Quantcast
Channel: Forums - ArcGIS Viewer for Flex
Viewing all articles
Browse latest Browse all 2097

Getting a null object refference error at PortalBasemapAppender

$
0
0
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()[D:\Projects\FlexViewer3.2\src\com\esri\viewer\utils\PortalBasemapAppender.as:113]
at com.esri.viewer.utils::PortalBasemapAppender/portalItem_getJSONDataResultHandler()[D:\Projects\FlexViewer3.2\src\com\esri\viewer\utils\PortalBasemapAppender.as:95]
at mx.rpc::AsyncResponder/result()
at com.esri.ags.portal.tasks::PortalItemTask/dispatchResult()[C:\checkout\flex_api3\api\src\com\esri\ags\portal\tasks\PortalItemTask.as:324]
at com.esri.ags.portal.tasks::PortalItemTask/handleDecodedObject()[C:\checkout\flex_api3\api\src\com\esri\ags\portal\tasks\PortalItemTask.as:316]
at Function/http://adobe.com/AS3/2006/builtin::call()
at com.esri.ags.tasks::BaseTask/handleResultEvent()[C:\checkout\flex_api3\api\src\com\esri\ags\tasks\BaseTask.as:728]
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);
}

Viewing all articles
Browse latest Browse all 2097

Trending Articles