axis-java-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sc...@apache.org
Subject svn commit: r1024265 - in /axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws: handler/HandlerInvokerUtils.java server/JAXWSMessageReceiver.java
Date Tue, 19 Oct 2010 15:12:52 GMT
Author: scheu
Date: Tue Oct 19 15:12:52 2010
New Revision: 1024265

URL: http://svn.apache.org/viewvc?rev=1024265&view=rev
Log:
AXIS2-4857
Contributor:Rich Scheuerle
Summary:
The "caused by exception" is now captured and set during inbound handler processing.
Validation tests are added to verify the new code.

Modified:
    axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/handler/HandlerInvokerUtils.java
    axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/server/JAXWSMessageReceiver.java

Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/handler/HandlerInvokerUtils.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/handler/HandlerInvokerUtils.java?rev=1024265&r1=1024264&r2=1024265&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/handler/HandlerInvokerUtils.java
(original)
+++ axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/handler/HandlerInvokerUtils.java
Tue Oct 19 15:12:52 2010
@@ -75,6 +75,21 @@ public class HandlerInvokerUtils {
              * context and message are transformed.
              */
             HandlerChainProcessor.convertToFaultMessage(mepMessageCtx, re, proto);
+            
+            // Set the Caused By Exception on the MessageContext so that it can be obtained
in
+            // the JAXWSMessageReceiver
+            if (log.isDebugEnabled()) {
+                log.debug("Runtime Exception detected.  Setting causedByException field to
" + re);
+            }
+            
+            if (mepMessageCtx.getRequestMessageContext() != null) {
+                mepMessageCtx.getRequestMessageContext().setCausedByException(new AxisFault(re.getMessage(),
re));
+            }
+            if (mepMessageCtx.getResponseMessageContext() != null) {
+                mepMessageCtx.getResponseMessageContext().setCausedByException(new AxisFault(re.getMessage(),
re));
+            }
+            
+            
             // done invoking inbound handlers, be sure to set the access lock flag on the
context to true
             mepMessageCtx.setApplicationAccessLocked(true);
             return false;

Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/server/JAXWSMessageReceiver.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/server/JAXWSMessageReceiver.java?rev=1024265&r1=1024264&r2=1024265&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/server/JAXWSMessageReceiver.java
(original)
+++ axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/server/JAXWSMessageReceiver.java
Tue Oct 19 15:12:52 2010
@@ -194,11 +194,22 @@ public class JAXWSMessageReceiver implem
 
                         //Rather than create a new AxisFault, we should use the AxisFault
that was
                         //created at the causedBy
-                        if (responseMsgCtx.getCausedByException() != null)
+                        if (responseMsgCtx.getCausedByException() != null) {
                             faultToReturn = responseMsgCtx.getCausedByException();
-                        else {
+                            if (log.isDebugEnabled()) {
+                                log.debug("Setting causedByException from response MessageContext");
+                            }
+                        } else if (requestMsgCtx.getCausedByException() != null) {
+                            faultToReturn = requestMsgCtx.getCausedByException();
+                            if (log.isDebugEnabled()) {
+                                log.debug("Setting causedByException from request MessageContext..which
indicates an exception occured in the inbound handler processing");
+                            }
+                        } else {
                             faultToReturn = new AxisFault("An error was detected during JAXWS
processing",
                                     axisResponseMsgCtx);
+                            if (log.isDebugEnabled()) {
+                                log.debug("No causedByException detected");
+                            }
                         }
                     } else {
                     //This assumes that we are on the ultimate execution thread



Mime
View raw message