You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2005/04/24 19:10:15 UTC

svn commit: r164489 - in /geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/client: OperationInfo.java ServiceEndpointMethodInterceptor.java

Author: djencks
Date: Sun Apr 24 10:10:13 2005
New Revision: 164489

URL: http://svn.apache.org/viewcvs?rev=164489&view=rev
Log:
unwrap faults

Modified:
    geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/client/OperationInfo.java
    geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/client/ServiceEndpointMethodInterceptor.java

Modified: geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/client/OperationInfo.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/client/OperationInfo.java?rev=164489&r1=164488&r2=164489&view=diff
==============================================================================
--- geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/client/OperationInfo.java (original)
+++ geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/client/OperationInfo.java Sun Apr 24 10:10:13 2005
@@ -17,12 +17,15 @@
 package org.apache.geronimo.axis.client;
 
 import java.io.Serializable;
+import java.rmi.RemoteException;
 
 import javax.xml.namespace.QName;
 
 import org.apache.axis.description.OperationDesc;
+import org.apache.axis.description.FaultDesc;
 import org.apache.axis.client.Call;
 import org.apache.axis.soap.SOAPConstants;
+import org.apache.axis.AxisFault;
 import net.sf.cglib.core.Signature;
 
 /**
@@ -81,5 +84,15 @@
         //GAH!!!
         call.setOperationStyle(operationDesc.getStyle());
         call.setOperationUse(operationDesc.getUse());
+    }
+
+    public Throwable unwrapFault(RemoteException re) {
+        if (re instanceof AxisFault && re.getCause() != null) {
+            Throwable t = re.getCause();
+            if (operationDesc.getFaultByClass(t.getClass()) != null) {
+                return t;
+            }
+        }
+        return re;
     }
 }

Modified: geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/client/ServiceEndpointMethodInterceptor.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/client/ServiceEndpointMethodInterceptor.java?rev=164489&r1=164488&r2=164489&view=diff
==============================================================================
--- geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/client/ServiceEndpointMethodInterceptor.java (original)
+++ geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/client/ServiceEndpointMethodInterceptor.java Sun Apr 24 10:10:13 2005
@@ -17,6 +17,7 @@
 package org.apache.geronimo.axis.client;
 
 import java.lang.reflect.Method;
+import java.rmi.RemoteException;
 import java.util.Arrays;
 import java.util.Iterator;
 import java.util.Set;
@@ -77,10 +78,15 @@
                 }
             }
         }
-        java.lang.Object response = call.invoke(objects);
+        Object response = null;
+        try {
+            response = call.invoke(objects);
+        } catch (RemoteException e) {
+            throw operationInfo.unwrapFault(e);
+        }
 
         if (response instanceof java.rmi.RemoteException) {
-            throw (java.rmi.RemoteException)response;
+            throw operationInfo.unwrapFault((RemoteException) response);
         }
         else {
             stub.extractAttachments(call);