Select to view content in your preferred language

Getting a null object refference error at PortalBasemapAppender

2448
3
05-02-2013 01:38 AM
SuryaKant
Deactivated User
Hi

Getting an Error #1009: Cannot access a property or method of a null object reference
on the preload of the ArcGIS viewer 3.2. The error message is

TypeError: Error #1009: Cannot access a property or method of a null object reference.
at com.esri.viewer.utils::PortalBasemapAppender/createBasemapLayerObject()
at com.esri.viewer.utils::PortalBasemapAppender/portalItem_getJSONDataResultHandler()
at mx.rpc::AsyncResponder/result()
at com.esri.ags.portal.tasks::PortalItemTask/dispatchResult()
at com.esri.ags.portal.tasks::PortalItemTask/handleDecodedObject()
at Function/http://adobe.com/AS3/2006/builtin::call()
at com.esri.ags.tasks::BaseTask/handleResultEvent()
at mx.rpc::AsyncResponder/result()
at mx.rpc::AsyncToken/http://www.adobe.com/2006/flex/mx/internal::applyResult()
at mx.rpc.events::ResultEvent/http://www.adobe.com/2006/flex/mx/internal::callTokenResponders()
at HTTPOperation/http://www.adobe.com/2006/flex/mx/internal::dispatchRpcEvent()
at mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::resultHandler()
at mx.rpc::Responder/result()
at mx.rpc::AsyncRequest/acknowledge()
at DirectHTTPMessageResponder/completeHandler()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()
=================================================================================================
I rectified it by checking
if(itemData.baseMap != null) in function createBasemapLayerObject(itemData:Object, item:PortalItem):void
and if(basemapObject != null) in function isDefaultBasemap(basemapObject:Object):Boolean
at com.esri.viewer.utils.PortalBasemapAppender.as

code snippet is
private function createBasemapLayerObject(itemData:Object, item:PortalItem):void
{
if (!itemData)
{
return;
}

if(itemData.baseMap != null)
{
var basemapObject:Object = itemData.baseMap;
var basemapLayerObjects:Array = basemapObject.baseMapLayers;
if (!(basemapObject && basemapLayerObjects))
{
return;
}

var title:String = basemapObject.title;
var iconURL:String = item.thumbnailURL;
var existingBasemapLayerObject:Object = findBasemapLayerObjectById(title);

if (existingBasemapLayerObject)
{
existingBasemapLayerObject.icon = iconURL;
return;
}
var basemapLayerObject:Object = basemapLayerObjects[0];
addBasemapLayerObject(baseMapLayerObjectToLayerXML(title,
basemapLayerObject,
iconURL));


var totalBaseMapLayers:int = basemapLayerObjects.length;
if (totalBaseMapLayers > 1)
{
basemapLayerObject = basemapLayerObjects[1];
addBasemapLayerObject(baseMapLayerObjectToLayerXML(title,
basemapLayerObject,
iconURL));
}
}
}

private function isDefaultBasemap(basemapObject:Object):Boolean
{
if(basemapObject != null)
var comparableBasemapObjects:Array = getComparableBasemapObjects(basemapObject);

return (ObjectUtil.compare(comparableBasemapObjects, comparableDefaultBasemapObjects) == 0);
}
Tags (2)
0 Kudos
3 Replies
Juan_CarlosFranco
Esri Contributor
Could you provide more details on how to reproduce the issue?
0 Kudos
SuryaKant
Deactivated User
Could you provide more details on how to reproduce the issue?


Few days back one of the ESRI base map was down, it remained for a week. When I set 'addarcgisbasemaps="false" ' in config.xml, it wasn't came. I checked the PortalBasemapAppender where it had the null value instead of map data.
0 Kudos
Juan_CarlosFranco
Esri Contributor
Thank you for clearing that up.
0 Kudos