diff flys-client/src/main/java/de/intevation/flys/client/server/RiverServiceImpl.java @ 217:907b61e4d702

Improved the exception handling - added warnings for user authentication errors and errors that occur while fetching supported rivers. flys-client/trunk@1659 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Fri, 08 Apr 2011 10:05:14 +0000
parents 44c63e7fd0d0
children 924da6695800
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/server/RiverServiceImpl.java	Fri Apr 08 09:51:41 2011 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/server/RiverServiceImpl.java	Fri Apr 08 10:05:14 2011 +0000
@@ -18,6 +18,7 @@
 import de.intevation.artifacts.httpclient.http.HttpClient;
 import de.intevation.artifacts.httpclient.http.HttpClientImpl;
 
+import de.intevation.flys.client.shared.exceptions.ServerException;
 import de.intevation.flys.client.shared.model.DefaultRiver;
 import de.intevation.flys.client.shared.model.River;
 import de.intevation.flys.client.client.services.RiverService;
@@ -36,8 +37,14 @@
     /** The XPath string that points to the rivers in the resulting document.*/
     public static final String XPATH_RIVERS = "/art:rivers/art:river";
 
+    /** The error message key that is thrown if an error occured while reading
+     * the supported rivers from server.*/
+    public static final String ERROR_NO_RIVERS_FOUND = "error_no_rivers_found";
 
-    public River[] list(String serverUrl) {
+
+    public River[] list(String serverUrl)
+    throws ServerException
+    {
         Document doc      = XMLUtils.newDocument();
 
         XMLUtils.ElementCreator ec = new XMLUtils.ElementCreator(
@@ -58,6 +65,10 @@
                 XPathConstants.NODESET,
                 ArtifactNamespaceContext.INSTANCE);
 
+            if (rivers == null || rivers.getLength() == 0) {
+                throw new ServerException(ERROR_NO_RIVERS_FOUND);
+            }
+
             int count = rivers.getLength();
 
             List<River> theRivers = new ArrayList<River>(count);
@@ -77,7 +88,7 @@
             System.err.println(ce.getLocalizedMessage());
         }
 
-        return null;
+        throw new ServerException(ERROR_NO_RIVERS_FOUND);
     }
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org