# HG changeset patch # User Ingo Weinzierl # Date 1272277942 0 # Node ID 21735fb8d29bfd9c1db1ee6521e9de00b1911fca # Parent c84147a3105c7c1f04fc35afd5120f2043194dfd Display an error message if the artifact server is down but the user tried to load an artifat (issue258). gnv/trunk@985 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r c84147a3105c -r 21735fb8d29b gnv/ChangeLog --- a/gnv/ChangeLog Mon Apr 26 09:36:40 2010 +0000 +++ b/gnv/ChangeLog Mon Apr 26 10:32:22 2010 +0000 @@ -1,3 +1,11 @@ +2010-04-26 Ingo Weinzierl + + Issue258 + + * src/main/java/de/intevation/gnv/action/LoadAction.java: An error message + is displayed if the user tried to load an existing project and the + artifact server is down. + 2010-04-26 Ingo Weinzierl Issue259 diff -r c84147a3105c -r 21735fb8d29b gnv/src/main/java/de/intevation/gnv/action/LoadAction.java --- a/gnv/src/main/java/de/intevation/gnv/action/LoadAction.java Mon Apr 26 09:36:40 2010 +0000 +++ b/gnv/src/main/java/de/intevation/gnv/action/LoadAction.java Mon Apr 26 10:32:22 2010 +0000 @@ -6,6 +6,8 @@ import de.intevation.gnv.artifactdatabase.client.ArtifactDatabaseClient; import de.intevation.gnv.artifactdatabase.client.ArtifactDatabaseClientFactory; +import de.intevation.gnv.artifactdatabase.client.exception.ArtifactDatabaseClientException; + import de.intevation.gnv.artifactdatabase.objects.Artifact; import de.intevation.gnv.artifactdatabase.objects.ArtifactFactory; @@ -92,36 +94,50 @@ return super.getExceptionForward(mapping); } - ArtifactDatabaseClientFactory adcf = - ArtifactDatabaseClientFactory.getInstance(); - ArtifactDatabaseClient adc = - adcf.getArtifactDatabaseClient(getLocale(request)); - ArtifactFactory factory = (ArtifactFactory) - (( List)adc.getArtifactFactories()).get(0); - - SessionModelFactory sf = SessionModelFactory.getInstance(); - SessionModel sm = sf.getSessionModel(request); - sm.selectArtifactFactory(factory.getId()); - - Document describe = adc.doImport( - factory, - artifactDocument); + try { + ArtifactDatabaseClientFactory adcf = + ArtifactDatabaseClientFactory.getInstance(); + ArtifactDatabaseClient adc = + adcf.getArtifactDatabaseClient(getLocale(request)); + ArtifactFactory factory = (ArtifactFactory) + (( List)adc.getArtifactFactories()).get(0); - String uuid = XMLUtils.xpathString( - describe, - "/art:result/art:uuid/@value", - ArtifactNamespaceContext.INSTANCE); - String hash = XMLUtils.xpathString( - describe, - "/art:result/art:hash/@value", - ArtifactNamespaceContext.INSTANCE); + SessionModelFactory sf = + SessionModelFactory.getInstance(); + SessionModel sm = sf.getSessionModel(request); + sm.selectArtifactFactory(factory.getId()); - Artifact artifact = new Artifact(uuid, hash); - sm.setCurrentArtifact(artifact); + Document describe = adc.doImport( + factory, + artifactDocument); - if (logger.isDebugEnabled()) { - logger.debug("Imported artifact UUID: "+artifact.getId()); - logger.debug("Imported artifact HASH: "+artifact.getHash()); + String uuid = XMLUtils.xpathString( + describe, + "/art:result/art:uuid/@value", + ArtifactNamespaceContext.INSTANCE); + String hash = XMLUtils.xpathString( + describe, + "/art:result/art:hash/@value", + ArtifactNamespaceContext.INSTANCE); + + Artifact artifact = new Artifact(uuid, hash); + sm.setCurrentArtifact(artifact); + + if (logger.isDebugEnabled()) { + logger.debug( + "Imported artifact UUID: "+artifact.getId()); + logger.debug( + "Imported artifact HASH: "+artifact.getHash()); + } + } + catch (ArtifactDatabaseClientException adce) { + logger.error(adce, adce); + request.setAttribute( + CommunicationKeys.REQUEST_EXCEPTION_MESSAGE_ID, + adce.getMessage()); + + // XXX + return super.getExceptionForward(mapping); } return new DescribeUIAction().execute(