diff gnv/src/main/java/de/intevation/gnv/action/ChangeOptionsAction.java @ 34:25fdec8b4c69

Added Global Errorhandling to the GNV-Client gnv/trunk@170 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Fri, 02 Oct 2009 08:38:57 +0000
parents 07e9c137a2f1
children ad381cc47217
line wrap: on
line diff
--- a/gnv/src/main/java/de/intevation/gnv/action/ChangeOptionsAction.java	Mon Sep 28 10:36:08 2009 +0000
+++ b/gnv/src/main/java/de/intevation/gnv/action/ChangeOptionsAction.java	Fri Oct 02 08:38:57 2009 +0000
@@ -47,44 +47,50 @@
             HttpServletRequest request, HttpServletResponse response)
             throws Exception {
         log.debug("NextArtifactStepAction.execute");
-        SessionModel sm = SessionModelFactory.getInstance().getSessionModel(request);
-        
-        String target = request.getParameter("target");
-        OutputMode outputMode = sm.getOutputMode(target);
-        if (outputMode != null){
+        try {
+            SessionModel sm = SessionModelFactory.getInstance().getSessionModel(request);
             
-            Collection<OutputParameter> op = outputMode.getOutputParameters();
-            if (op != null){
-                Iterator<OutputParameter> it = op.iterator();
-                DiagrammOptions diagrammOptions = new DiagrammOptions();
-                while (it.hasNext()){
-                    OutputParameter parameter = it.next();
-                    diagrammOptions.setValue(parameter.getName(), request.getParameter(parameter.getName()));
-                    
+            String target = request.getParameter("target");
+            OutputMode outputMode = sm.getOutputMode(target);
+            if (outputMode != null){
+                
+                Collection<OutputParameter> op = outputMode.getOutputParameters();
+                if (op != null){
+                    Iterator<OutputParameter> it = op.iterator();
+                    DiagrammOptions diagrammOptions = new DiagrammOptions();
+                    while (it.hasNext()){
+                        OutputParameter parameter = it.next();
+                        diagrammOptions.setValue(parameter.getName(), request.getParameter(parameter.getName()));
+                        
+                    }
+                    sm.setDiagrammOptions(diagrammOptions);
                 }
-                sm.setDiagrammOptions(diagrammOptions);
             }
+            
+            ArtifactDescription ad = sm.getArtifactDescription();
+            ArtifactDatabaseClient adc = ArtifactDatabaseClientFactory.getInstance().getArtifactDatabaseClient();
+            ArtifactDescription artifactDescription = adc.getCurrentStepDescription(sm.getSelectedArtifactFactory(), sm.getCurrentArtifact());
+            
+            Node currentUI = artifactDescription.getCurrentUI();
+            XSLTransformer transformer = new XSLTransformer();
+            String ui = transformer.transform(new XMLUtils().getNodeXPath(currentUI, "dynamic"), "UTF-8", request.getRealPath("WEB-INF/config/templates/describe-ui.xsl"));
+            
+            request.setAttribute("ui", ui);
+            
+            String staticUI = transformer.transform(new XMLUtils().getNodeXPath(currentUI, "static"), "UTF-8", request.getRealPath("WEB-INF/config/templates/describe-ui-static.xsl"));
+            request.setAttribute("staticui", staticUI);
+            request.setAttribute("furthertargets", (ad.getReachableStates() != null && !ad.getReachableStates().isEmpty()));
+            
+            if (ad.getReachableStates() != null && !ad.getReachableStates().isEmpty()){
+            }else{
+                request.setAttribute("diagramm", true);
+            }
+            return super.execute(mapping, form, request, response);
+        } catch (Exception e) {
+            log.error(e,e);
+            request.setAttribute(CommunicationKeys.REQUEST_EXCEPTION_MESSAGE_ID, e.getMessage());
+            return super.getExceptionForward(mapping);
         }
-        
-        ArtifactDescription ad = sm.getArtifactDescription();
-        ArtifactDatabaseClient adc = ArtifactDatabaseClientFactory.getInstance().getArtifactDatabaseClient();
-        ArtifactDescription artifactDescription = adc.getCurrentStepDescription(sm.getSelectedArtifactFactory(), sm.getCurrentArtifact());
-        
-        Node currentUI = artifactDescription.getCurrentUI();
-        XSLTransformer transformer = new XSLTransformer();
-        String ui = transformer.transform(new XMLUtils().getNodeXPath(currentUI, "dynamic"), "UTF-8", request.getRealPath("WEB-INF/config/templates/describe-ui.xsl"));
-        
-        request.setAttribute("ui", ui);
-        
-        String staticUI = transformer.transform(new XMLUtils().getNodeXPath(currentUI, "static"), "UTF-8", request.getRealPath("WEB-INF/config/templates/describe-ui-static.xsl"));
-        request.setAttribute("staticui", staticUI);
-        request.setAttribute("furthertargets", (ad.getReachableStates() != null && !ad.getReachableStates().isEmpty()));
-        
-        if (ad.getReachableStates() != null && !ad.getReachableStates().isEmpty()){
-        }else{
-            request.setAttribute("diagramm", true);
-        }
-        return super.execute(mapping, form, request, response);
     }
     
     

http://dive4elements.wald.intevation.org