[jbossws-commits] JBossWS SVN: r3677 - in branches/jbossws-2.0: jbossws-core/src/main/java/org/jboss/ws/core and 5 other directories.

jbossws-commits at lists.jboss.org jbossws-commits at lists.jboss.org
Thu Jun 21 10:40:45 EDT 2007


Author: thomas.diesler at jboss.com
Date: 2007-06-21 10:40:45 -0400 (Thu, 21 Jun 2007)
New Revision: 3677

Added:
   branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/core/CommonSOAPFaultException.java
Modified:
   branches/jbossws-2.0/integration/native/src/main/java/org/jboss/wsf/stack/jbws/RequestHandlerImpl.java
   branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/core/jaxrpc/SOAPFaultHelperJAXRPC.java
   branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/core/jaxws/SOAPFaultHelperJAXWS.java
   branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/core/server/ServiceEndpointInvoker.java
   branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/core/soap/EnvelopeBuilderDOM.java
   branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/core/soap/SOAPEnvelopeImpl.java
   branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/extensions/security/WSSecurityDispatcher.java
Log:
[JBWS-805] Fault code is always 'Client'

Modified: branches/jbossws-2.0/integration/native/src/main/java/org/jboss/wsf/stack/jbws/RequestHandlerImpl.java
===================================================================
--- branches/jbossws-2.0/integration/native/src/main/java/org/jboss/wsf/stack/jbws/RequestHandlerImpl.java	2007-06-21 13:10:11 UTC (rev 3676)
+++ branches/jbossws-2.0/integration/native/src/main/java/org/jboss/wsf/stack/jbws/RequestHandlerImpl.java	2007-06-21 14:40:45 UTC (rev 3677)
@@ -58,6 +58,7 @@
 import org.jboss.ws.core.CommonBinding;
 import org.jboss.ws.core.CommonBindingProvider;
 import org.jboss.ws.core.CommonMessageContext;
+import org.jboss.ws.core.CommonSOAPFaultException;
 import org.jboss.ws.core.HTTPMessageImpl;
 import org.jboss.ws.core.MessageAbstraction;
 import org.jboss.ws.core.MessageTrace;
@@ -339,7 +340,7 @@
          {
             QName faultCode = Constants.SOAP11_FAULT_CODE_SERVER;
             String faultString = "Endpoint cannot handle requests in state: " + state;
-            throw new SOAPFaultException(faultCode, faultString, null, null);
+            throw new CommonSOAPFaultException(faultCode, faultString);
          }
 
          log.debug("BEGIN handleRequest: " + ep.getName());

Added: branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/core/CommonSOAPFaultException.java
===================================================================
--- branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/core/CommonSOAPFaultException.java	                        (rev 0)
+++ branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/core/CommonSOAPFaultException.java	2007-06-21 14:40:45 UTC (rev 3677)
@@ -0,0 +1,55 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.ws.core;
+
+// $Id: SOAPFaultException.java 3509 2007-06-08 15:50:12Z thomas.diesler at jboss.com $
+
+import javax.xml.namespace.QName;
+
+/** 
+ * The SOAPFaultException exception represents a SOAP fault.
+ * 
+ * @author Thomas.Diesler at jboss.org
+ */
+public class CommonSOAPFaultException extends RuntimeException
+{
+   private QName faultCode;
+   private String faultString;
+
+   public CommonSOAPFaultException(QName faultCode, String faultString)
+   {
+      super(faultString);
+
+      this.faultCode = faultCode;
+      this.faultString = faultString;
+   }
+
+   public QName getFaultCode()
+   {
+      return faultCode;
+   }
+
+   public String getFaultString()
+   {
+      return faultString;
+   }
+}


Property changes on: branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/core/CommonSOAPFaultException.java
___________________________________________________________________
Name: svn:executable
   + *

Modified: branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/core/jaxrpc/SOAPFaultHelperJAXRPC.java
===================================================================
--- branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/core/jaxrpc/SOAPFaultHelperJAXRPC.java	2007-06-21 13:10:11 UTC (rev 3676)
+++ branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/core/jaxrpc/SOAPFaultHelperJAXRPC.java	2007-06-21 14:40:45 UTC (rev 3677)
@@ -39,7 +39,6 @@
 import javax.xml.soap.SOAPElement;
 import javax.xml.soap.SOAPException;
 import javax.xml.soap.SOAPFault;
-import javax.xml.soap.SOAPMessage;
 import javax.xml.transform.Result;
 import javax.xml.transform.Source;
 import javax.xml.transform.dom.DOMSource;
@@ -48,7 +47,7 @@
 import org.jboss.ws.Constants;
 import org.jboss.ws.WSException;
 import org.jboss.ws.core.CommonMessageContext;
-import org.jboss.ws.core.MessageAbstraction;
+import org.jboss.ws.core.CommonSOAPFaultException;
 import org.jboss.ws.core.jaxrpc.binding.BindingException;
 import org.jboss.ws.core.jaxrpc.binding.DeserializerFactoryBase;
 import org.jboss.ws.core.jaxrpc.binding.DeserializerSupport;
@@ -181,9 +180,18 @@
       {
          faultEx = (SOAPFaultException)reqEx;
       }
+      else if (reqEx instanceof CommonSOAPFaultException)
+      {
+         CommonSOAPFaultException soapEx = (CommonSOAPFaultException)reqEx;
+         QName faultCode = soapEx.getFaultCode();
+         String faultString = soapEx.getFaultString();
+         Throwable cause = soapEx.getCause();
+         faultEx = new SOAPFaultException(faultCode, faultString, null, null);
+         faultEx.initCause(cause);
+      }
       else
       {
-         QName faultCode = Constants.SOAP11_FAULT_CODE_CLIENT;
+         QName faultCode = Constants.SOAP11_FAULT_CODE_SERVER;
          String faultString = (reqEx.getMessage() != null ? reqEx.getMessage() : reqEx.toString());
          faultEx = new SOAPFaultException(faultCode, faultString, null, null);
          faultEx.initCause(reqEx);

Modified: branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/core/jaxws/SOAPFaultHelperJAXWS.java
===================================================================
--- branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/core/jaxws/SOAPFaultHelperJAXWS.java	2007-06-21 13:10:11 UTC (rev 3676)
+++ branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/core/jaxws/SOAPFaultHelperJAXWS.java	2007-06-21 14:40:45 UTC (rev 3677)
@@ -26,7 +26,6 @@
 import javax.xml.soap.SOAPElement;
 import javax.xml.soap.SOAPException;
 import javax.xml.soap.SOAPFault;
-import javax.xml.soap.SOAPMessage;
 import javax.xml.transform.Result;
 import javax.xml.transform.Source;
 import javax.xml.transform.dom.DOMSource;
@@ -36,7 +35,7 @@
 import org.jboss.logging.Logger;
 import org.jboss.ws.Constants;
 import org.jboss.ws.core.CommonMessageContext;
-import org.jboss.ws.core.MessageAbstraction;
+import org.jboss.ws.core.CommonSOAPFaultException;
 import org.jboss.ws.core.jaxrpc.SOAPFaultHelperJAXRPC;
 import org.jboss.ws.core.jaxrpc.binding.BindingException;
 import org.jboss.ws.core.jaxrpc.binding.DeserializerFactoryBase;
@@ -153,10 +152,8 @@
          {
             faultMessage = toSOAPMessage((SOAPFaultException)reqEx);
          }
-         else if (reqEx instanceof javax.xml.rpc.soap.SOAPFaultException)
+         else if (reqEx instanceof CommonSOAPFaultException)
          {
-            /* this exception should not occur in JAX-WS endpoints, but JBossWS
-             * throws it to signal internal error conditions */
             faultMessage = SOAPFaultHelperJAXRPC.exceptionToFaultMessage(reqEx);
          }
          else

Modified: branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/core/server/ServiceEndpointInvoker.java
===================================================================
--- branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/core/server/ServiceEndpointInvoker.java	2007-06-21 13:10:11 UTC (rev 3676)
+++ branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/core/server/ServiceEndpointInvoker.java	2007-06-21 14:40:45 UTC (rev 3677)
@@ -44,6 +44,7 @@
 import org.jboss.ws.core.CommonBindingProvider;
 import org.jboss.ws.core.CommonMessageContext;
 import org.jboss.ws.core.CommonSOAPBinding;
+import org.jboss.ws.core.CommonSOAPFaultException;
 import org.jboss.ws.core.DirectionHolder;
 import org.jboss.ws.core.EndpointInvocation;
 import org.jboss.ws.core.MessageAbstraction;
@@ -413,12 +414,12 @@
             if (soapHeader != null && soapHeader.examineMustUnderstandHeaderElements(Constants.URI_SOAP11_NEXT_ACTOR).hasNext())
             {
                QName faultCode = Constants.SOAP11_FAULT_CODE_MUST_UNDERSTAND;
-               throw new SOAPFaultException(faultCode, faultString, null, null);
+               throw new CommonSOAPFaultException(faultCode, faultString);
             }
             else
             {
                QName faultCode = Constants.SOAP11_FAULT_CODE_CLIENT;
-               throw new SOAPFaultException(faultCode, faultString, null, null);
+               throw new CommonSOAPFaultException(faultCode, faultString);
             }
          }
       }

Modified: branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/core/soap/EnvelopeBuilderDOM.java
===================================================================
--- branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/core/soap/EnvelopeBuilderDOM.java	2007-06-21 13:10:11 UTC (rev 3676)
+++ branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/core/soap/EnvelopeBuilderDOM.java	2007-06-21 14:40:45 UTC (rev 3677)
@@ -41,6 +41,7 @@
 import org.jboss.logging.Logger;
 import org.jboss.ws.Constants;
 import org.jboss.ws.WSException;
+import org.jboss.ws.core.CommonSOAPFaultException;
 import org.jboss.wsf.spi.utils.DOMUtils;
 import org.w3c.dom.Comment;
 import org.w3c.dom.Document;
@@ -88,7 +89,8 @@
          {
             return null;
          }
-         throw ex;
+         QName faultCode = Constants.SOAP11_FAULT_CODE_CLIENT;
+         throw new CommonSOAPFaultException(faultCode, ex.getMessage());
       }
 
       return build(soapMessage, domEnv);
@@ -108,7 +110,8 @@
          {
             return null;
          }
-         throw ex;
+         QName faultCode = Constants.SOAP11_FAULT_CODE_CLIENT;
+         throw new CommonSOAPFaultException(faultCode, ex.getMessage());
       }
 
       return build(soapMessage, domEnv);

Modified: branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/core/soap/SOAPEnvelopeImpl.java
===================================================================
--- branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/core/soap/SOAPEnvelopeImpl.java	2007-06-21 13:10:11 UTC (rev 3676)
+++ branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/core/soap/SOAPEnvelopeImpl.java	2007-06-21 14:40:45 UTC (rev 3677)
@@ -37,6 +37,7 @@
 import javax.xml.soap.SOAPMessage;
 
 import org.jboss.ws.Constants;
+import org.jboss.ws.core.CommonSOAPFaultException;
 import org.w3c.dom.Document;
 
 /**
@@ -199,7 +200,7 @@
       {
          QName faultCode = Constants.SOAP11_FAULT_CODE_VERSION_MISMATCH;
          String faultString = "Invalid SOAP envelope namespace: " + namespaceURI;
-         throw new SOAPFaultException(faultCode, faultString, null, null);
+         throw new CommonSOAPFaultException(faultCode, faultString);
       }
    }
 }

Modified: branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/extensions/security/WSSecurityDispatcher.java
===================================================================
--- branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/extensions/security/WSSecurityDispatcher.java	2007-06-21 13:10:11 UTC (rev 3676)
+++ branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/extensions/security/WSSecurityDispatcher.java	2007-06-21 14:40:45 UTC (rev 3677)
@@ -35,6 +35,7 @@
 import org.jboss.logging.Logger;
 import org.jboss.ws.WSException;
 import org.jboss.ws.core.CommonMessageContext;
+import org.jboss.ws.core.CommonSOAPFaultException;
 import org.jboss.ws.core.StubExt;
 import org.jboss.ws.core.soap.SOAPMessageImpl;
 import org.jboss.ws.metadata.umdm.EndpointMetaData;
@@ -98,9 +99,9 @@
       return operation.getConfig();
    }
 
-   private static SOAPFaultException convertToFault(WSSecurityException e)
+   private static CommonSOAPFaultException convertToFault(WSSecurityException e)
    {
-      return new SOAPFaultException(e.getFaultCode(), e.getFaultString(), null, null);
+      return new CommonSOAPFaultException(e.getFaultCode(), e.getFaultString());
    }
 
    public static void handleInbound(CommonMessageContext ctx) throws SOAPException, SOAPFaultException




More information about the jbossws-commits mailing list