[udig-devel] [jira] Created: (UDIG-1037) Deleting layer on map which is not open in editor

Aleksander Bandelj (JIRA) jira at codehaus.org
Thu Oct 5 04:33:27 PDT 2006


Deleting layer on map which is not open in editor
-------------------------------------------------

                 Key: UDIG-1037
                 URL: http://jira.codehaus.org/browse/UDIG-1037
             Project: uDIG
          Issue Type: Bug
          Components: API map, ui
    Affects Versions: UDIG 1.1.RC5, UDIG 1.1.0
            Reporter: Aleksander Bandelj


Layer on map without editor has no RenderManager. NullPointerException ensues, layer not deleted. Patch below.

Index: /home/alex/workspace/net.refractions.udig.project/src/net/refractions/udig/project/internal/commands/DeleteLayerCommand.java
===================================================================
--- /home/alex/workspace/net.refractions.udig.project/src/net/refractions/udig/project/internal/commands/DeleteLayerCommand.java	(revision 21825)
+++ /home/alex/workspace/net.refractions.udig.project/src/net/refractions/udig/project/internal/commands/DeleteLayerCommand.java	(working copy)
@@ -17,6 +17,7 @@
 import net.refractions.udig.project.internal.Map;
 import net.refractions.udig.project.internal.Policy;
 import net.refractions.udig.project.internal.render.RenderExecutor;
+import net.refractions.udig.project.internal.render.RenderManager;
 
 import org.eclipse.core.runtime.IProgressMonitor;
 
@@ -56,10 +57,13 @@
      */
     public void run( IProgressMonitor monitor ) throws Exception {
         map.getContextModel().getLayers().indexOf(layer);
-        RenderExecutor renderExecutor = layer.getContextModel().getMap().getRenderManagerInternal().getRenderExecutor();
         List<Layer> layers = layer.getContextModel().getLayers();
-        if (layers.size() == 1 && renderExecutor!=null )
-            renderExecutor.getContext().clearImage();
+	    RenderManager renderManager= layer.getContextModel().getMap().getRenderManagerInternal();
+	    if(renderManager != null) {
+		    RenderExecutor renderExecutor = renderManager.getRenderExecutor();
+		    if (layers.size() == 1 && renderExecutor!=null )
+		    	renderExecutor.getContext().clearImage();
+	    }
         layers.remove(layer);
         map.getColourScheme().removeItem(layer.getID().toString()); //remove from scheme
     }


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the udig-devel mailing list