# HG changeset patch # User Tim Englich # Date 1268134977 0 # Node ID 199982e8866e610b8e1317d43e01a7581ce66166 # Parent b98d1adee7a60a5c13c336a54992f6429376bef5 Integrated ExceptionHandling if no Data was found for the given Layer. gnv-artifacts/trunk@753 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r b98d1adee7a6 -r 199982e8866e gnv-artifacts/ChangeLog --- a/gnv-artifacts/ChangeLog Mon Mar 08 15:15:08 2010 +0000 +++ b/gnv-artifacts/ChangeLog Tue Mar 09 11:42:57 2010 +0000 @@ -1,3 +1,10 @@ +2010-03-09 Tim Englich + + * src/main/java/de/intevation/gnv/state/layer/LayerOutputState.java (out): + Integrated ExceptionHandling if no Data was found for the given Layer. + If no data couuld be retrieved from the Database an XMl-Exceptionreport + will be generated which must be analized by the Clients. + 2010-03-08 Ingo Weinzierl Issue186 diff -r b98d1adee7a6 -r 199982e8866e gnv-artifacts/src/main/java/de/intevation/gnv/state/layer/LayerOutputState.java --- a/gnv-artifacts/src/main/java/de/intevation/gnv/state/layer/LayerOutputState.java Mon Mar 08 15:15:08 2010 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/state/layer/LayerOutputState.java Tue Mar 09 11:42:57 2010 +0000 @@ -33,6 +33,7 @@ import de.intevation.gnv.state.InputData; import de.intevation.gnv.state.OutputStateBase; import de.intevation.gnv.state.exception.StateException; +import de.intevation.gnv.utils.ArtifactXMLUtilities; import de.intevation.gnv.utils.FileUtils; import de.intevation.gnv.utils.MapfileGenerator; import de.intevation.gnv.utils.MetaWriter; @@ -102,12 +103,32 @@ format, XPATH_OUTPUT_MODE, ArtifactNamespaceContext.INSTANCE); if (outputMode.equalsIgnoreCase("wms")) { Collection data = this.fetchData(); - XMLUtils.toStream(this.getWMS(uuid, callContext, data),outputStream); + if (data != null && !data.isEmpty()){ + XMLUtils.toStream(this.getWMS(uuid, callContext, data), + outputStream); + }else{ + this.writeExceptionReport2Stream(outputStream); + } }else if (outputMode.equalsIgnoreCase("zip")){ Collection data = this.fetchData(); - this.writeZip(uuid, callContext, outputStream, data); + if (data != null && !data.isEmpty()){ + this.writeZip(uuid, callContext, outputStream, data); + }else{ + this.writeExceptionReport2Stream(outputStream); + } + } } + + /** + * @param outputStream + */ + private void writeExceptionReport2Stream(OutputStream outputStream) { + Document document = XMLUtils.newDocument(); + new ArtifactXMLUtilities(). + createExceptionReport("No Data to Export", document); + XMLUtils.toStream(document,outputStream); + } /**