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); }
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.