[udig-devel] split editing windows => null pointer
exception in "zoom to layer".
Vince Darley
vince.darley at eurobios.com
Fri Nov 9 04:49:25 PST 2007
Here's another example of an NPE from a split window and/or
situations where the map isn't currently visible:
LayerImpl.java:
void resetConnection(IResolveDelta delta) {
if( PlatformUI.getWorkbench().isClosing() )
return;
warned=false;
this.geoResources = null;
if( delta.getKind()==Kind.CHANGED ){
// the resource has changed so this means it could have
moved or parameters may have changed
// so set modified on the map so the new params will be
saved on shutdown.
getMapInternal().eResource().setModified(true);
the map is null...
Vince.
At 14:29 07/11/2007, Vince Darley wrote:
>I get a bunch of exceptions with split windows. It seems code like
>this is to blame:
>
>RenderManagerAdapters.java:
>
> case RenderPackage.VIEWPORT_MODEL__BOUNDS: {
> if(
> ApplicationGISInternal.getActiveEditor().isVisible() )
> refreshDirtyArea(msg);
> break;
> }
>
> public static MapEditor getActiveEditor() {
> try{
> final ArrayList<IEditorPart> editor = new
> ArrayList<IEditorPart>();
>
> PlatformGIS.syncInDisplayThread(
> new Runnable() {
> public void run() {
> try {
> editor.add(
>
>PlatformUI.getWorkbench().getActiveWorkbenchWindow()
> .getActivePage().getActiveEditor()
> );
> }
>...
> if (editor.get(0) instanceof MapEditor) {
> return (MapEditor)editor.get(0);
> }
>...
> return null;
>
>with a split window, if the non-map page is active, but the map is
>still entirely visible, then getActiveEditor() will return null, and
>a null pointer exception will be thrown in RenderManagerAdapters and
>my event (right-click on layer and zoom-to-layer) will do nothing at all.
>
>It seems to me that getActiveEditor() probably needs to be rewritten
>to get the most recent MapEditor that was active, or at least check
>if a map editor is visible even if it is not active. Realistically
>'zoom to layer' ought to work on the last active map, since I might
>trigger that action even if I can't currently see the map (but am
>about to make it active).
>
>regards,
>
>Vince.
>
>
>_______________________________________________
>User-friendly Desktop Internet GIS (uDig)
>http://udig.refractions.net
>http://lists.refractions.net/mailman/listinfo/udig-devel
>
>
>
>--
>No virus found in this incoming message.
>Checked by AVG Free Edition. Version: 7.5.503 / Virus Database:
>269.15.23/1114 - Release Date: 06/11/2007 20:05
More information about the udig-devel
mailing list