diff gnv/src/main/java/de/intevation/gnv/action/SelectArtifactFactoryAction.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 4405f31bbc30
line wrap: on
line diff
--- a/gnv/src/main/java/de/intevation/gnv/action/SelectArtifactFactoryAction.java	Mon Sep 28 10:36:08 2009 +0000
+++ b/gnv/src/main/java/de/intevation/gnv/action/SelectArtifactFactoryAction.java	Fri Oct 02 08:38:57 2009 +0000
@@ -43,31 +43,36 @@
         String selectedArtifactFactoryID = request.getParameter("artifactFactory");
         log.debug("Selected ArtifactFactory ==> "+selectedArtifactFactoryID);
         
-        SessionModel sm = SessionModelFactory.getInstance().getSessionModel(request);
-        Collection<ArtifactObject> artifactFactories = sm.getArtifactFactories();
-        // Löscht die Artifactspezifischen Attribute am Sessionmodel
-        sm.resetModel();
-        if (artifactFactories == null || artifactFactories.isEmpty()){
-            new FetchArtifactFactoriesAction().execute(mapping, form, request, response);
-           
+        try {
+            SessionModel sm = SessionModelFactory.getInstance().getSessionModel(request);
+            Collection<ArtifactObject> artifactFactories = sm.getArtifactFactories();
+            // Löscht die Artifactspezifischen Attribute am Sessionmodel
+            sm.resetModel();
+            if (artifactFactories == null || artifactFactories.isEmpty()){
+                new FetchArtifactFactoriesAction().execute(mapping, form, request, response);
+               
+            }
+            
+            sm.selectArtifactFactory(selectedArtifactFactoryID);
+            ArtifactObject af =  sm.getSelectedArtifactFactory();;
+            ArtifactDatabaseClient adc = ArtifactDatabaseClientFactory.getInstance().getArtifactDatabaseClient();
+            ArtifactObject artifact = adc.createNewArtifact(af);
+            sm.setCurrentArtifact(artifact);
+            
+            ArtifactDescription artifactdescription = adc.getCurrentStepDescription(af, artifact);
+            
+            XSLTransformer transformer = new XSLTransformer();
+            String ui = transformer.transform(artifactdescription.getCurrentUI(), "UTF-8", request.getRealPath("WEB-INF/config/templates/describe-ui.xsl"));
+            
+            request.setAttribute("ui", ui);
+            
+            // return succsess
+            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);
         }
-        
-        
-        sm.selectArtifactFactory(selectedArtifactFactoryID);
-        ArtifactObject af =  sm.getSelectedArtifactFactory();;
-        ArtifactDatabaseClient adc = ArtifactDatabaseClientFactory.getInstance().getArtifactDatabaseClient();
-        ArtifactObject artifact = adc.createNewArtifact(af);
-        sm.setCurrentArtifact(artifact);
-        
-        ArtifactDescription artifactdescription = adc.getCurrentStepDescription(af, artifact);
-        
-        XSLTransformer transformer = new XSLTransformer();
-        String ui = transformer.transform(artifactdescription.getCurrentUI(), "UTF-8", request.getRealPath("WEB-INF/config/templates/describe-ui.xsl"));
-        
-        request.setAttribute("ui", ui);
-        
-        // return succsess
-        return super.execute(mapping, form, request, response);
     }
 
     /**

http://dive4elements.wald.intevation.org