]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.agent/src/main/java/org/argeo/slc/ws/client/WebServiceUtils.java
Make sure Spring context will be properly closed
[gpl/argeo-slc.git] / org.argeo.slc.agent / src / main / java / org / argeo / slc / ws / client / WebServiceUtils.java
index a7aaea1352f23841a7b0d162dfc824ead216a684..43ad31306ae6c6490ec536396f7e899c25d190b3 100644 (file)
@@ -5,6 +5,8 @@ import java.util.Iterator;
 import javax.xml.transform.Source;\r
 import javax.xml.transform.dom.DOMSource;\r
 \r
+import org.apache.commons.logging.Log;\r
+import org.apache.commons.logging.LogFactory;\r
 import org.springframework.ws.client.core.WebServiceTemplate;\r
 import org.springframework.ws.soap.SoapFaultDetail;\r
 import org.springframework.ws.soap.SoapFaultDetailElement;\r
@@ -12,9 +14,6 @@ import org.springframework.ws.soap.client.SoapFaultClientException;
 import org.springframework.xml.transform.StringResult;\r
 import org.w3c.dom.Node;\r
 \r
-import org.apache.commons.logging.Log;\r
-import org.apache.commons.logging.LogFactory;\r
-\r
 public abstract class WebServiceUtils {\r
        private final static Log log = LogFactory.getLog(WebServiceUtils.class);\r
 \r
@@ -51,24 +50,31 @@ public abstract class WebServiceUtils {
                log\r
                                .error("WS root cause: "\r
                                                + e.getSoapFault().getFaultStringOrReason());\r
-               StringBuffer stack = new StringBuffer("");\r
-               SoapFaultDetail detail = e.getSoapFault().getFaultDetail();\r
-               if (detail != null) {\r
-                       Iterator<SoapFaultDetailElement> it = (Iterator<SoapFaultDetailElement>) detail\r
-                                       .getDetailEntries();\r
-                       while (it.hasNext()) {\r
-                               SoapFaultDetailElement elem = it.next();\r
-                               if (elem.getName().getLocalPart().equals("StackElement")) {\r
-                                       Source source = elem.getSource();\r
-                                       if (source instanceof DOMSource) {\r
-                                               Node node = ((DOMSource) source).getNode();\r
-                                               stack.append(node.getTextContent()).append('\n');\r
+               if (log.isTraceEnabled()) {\r
+                       StringBuffer stack = new StringBuffer("");\r
+                       SoapFaultDetail detail = e.getSoapFault().getFaultDetail();\r
+                       if (detail != null) {\r
+                               Iterator<SoapFaultDetailElement> it = (Iterator<SoapFaultDetailElement>) detail\r
+                                               .getDetailEntries();\r
+                               while (it.hasNext()) {\r
+                                       SoapFaultDetailElement elem = it.next();\r
+                                       if (elem.getName().getLocalPart().equals("StackElement")) {\r
+                                               Source source = elem.getSource();\r
+                                               if (source instanceof DOMSource) {\r
+                                                       Node node = ((DOMSource) source).getNode();\r
+                                                       // stack.append(node.getTextContent()).append('\n');\r
+                                                       stack\r
+                                                                       .append(\r
+                                                                                       node.getChildNodes().item(0)\r
+                                                                                                       .getNodeValue()).append(\r
+                                                                                       '\n');\r
+                                               }\r
                                        }\r
                                }\r
-                       }\r
 \r
-                       if (stack.length() > 0 && log.isTraceEnabled())\r
-                               log.error("WS root cause stack: " + stack);\r
+                               if (stack.length() > 0)\r
+                                       log.error("WS root cause stack: " + stack);\r
+                       }\r
                }\r
        }\r
 \r