]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/WebServiceTreeTestResultNotifier.java
Create separate Hibernate project
[gpl/argeo-slc.git] / org.argeo.slc.core / src / main / java / org / argeo / slc / core / test / tree / WebServiceTreeTestResultNotifier.java
index 7ca2f7da041de94fdc0b2b0c295b3b986e21355f..6cfd4da61b964d4bb8163903b7c579013aba83df 100644 (file)
@@ -1,5 +1,6 @@
 package org.argeo.slc.core.test.tree;\r
 \r
+import org.springframework.ws.client.WebServiceIOException;\r
 import org.springframework.ws.client.core.WebServiceTemplate;\r
 import org.springframework.ws.soap.client.SoapFaultClientException;\r
 \r
@@ -20,11 +21,16 @@ public class WebServiceTreeTestResultNotifier implements
 \r
        private Log log = LogFactory.getLog(getClass());\r
 \r
+       private Boolean cannotConnect = false;\r
+\r
        public void resultPartAdded(TreeTestResult testResult,\r
                        TestResultPart testResultPart) {\r
                if (onlyOnClose)\r
                        return;\r
 \r
+               if (cannotConnect)\r
+                       return;\r
+\r
                try {\r
                        if (testResult.getResultParts().size() == 1\r
                                        && testResult.getResultParts().values().iterator().next()\r
@@ -48,10 +54,16 @@ public class WebServiceTreeTestResultNotifier implements
                        }\r
                } catch (SoapFaultClientException e) {\r
                        WebServiceUtils.manageSoapException(e);\r
+\r
+               } catch (WebServiceIOException e) {\r
+                       manageIoException(e);\r
                }\r
        }\r
 \r
        public void close(TreeTestResult testResult) {\r
+               if (cannotConnect)\r
+                       return;\r
+\r
                try {\r
                        if (onlyOnClose) {\r
                                CreateTreeTestResultRequest req = new CreateTreeTestResultRequest(\r
@@ -75,8 +87,9 @@ public class WebServiceTreeTestResultNotifier implements
                        }\r
                } catch (SoapFaultClientException e) {\r
                        WebServiceUtils.manageSoapException(e);\r
+               } catch (WebServiceIOException e) {\r
+                       manageIoException(e);\r
                }\r
-\r
        }\r
 \r
        public void setTemplate(WebServiceTemplate template) {\r
@@ -86,4 +99,12 @@ public class WebServiceTreeTestResultNotifier implements
        public void setOnlyOnClose(Boolean onlyOnClose) {\r
                this.onlyOnClose = onlyOnClose;\r
        }\r
+\r
+       protected void manageIoException(WebServiceIOException e) {\r
+               if (!cannotConnect) {\r
+                       log.error("Cannot connect to " + template.getDefaultUri()\r
+                                       + ". Won't try again.", e);\r
+                       cannotConnect = true;\r
+               }\r
+       }\r
 }\r