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

        
_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel

Reply via email to