You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by an...@apache.org on 2009/10/07 13:53:08 UTC

svn commit: r822679 - /tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSFaultExceptionMapper.java

Author: antelder
Date: Wed Oct  7 11:53:08 2009
New Revision: 822679

URL: http://svn.apache.org/viewvc?rev=822679&view=rev
Log:
Updates to get some JMS exception tests working - merge 1.x changes from r681435 to r744162 to 2.x

Modified:
    tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSFaultExceptionMapper.java

Modified: tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSFaultExceptionMapper.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSFaultExceptionMapper.java?rev=822679&r1=822678&r2=822679&view=diff
==============================================================================
--- tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSFaultExceptionMapper.java (original)
+++ tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSFaultExceptionMapper.java Wed Oct  7 11:53:08 2009
@@ -126,36 +126,68 @@
         } catch (Throwable e) {
             // Ignore
         }
-        try {
-            // FIXME: What about if the faultBeanClass is a subclass of the argument type?
-            ctor = exceptionClass.getConstructor(String.class, faultBeanClass, Throwable.class);
-            ex = ctor.newInstance(message, faultInfo, cause);
-        } catch (NoSuchMethodException e1) {
+        if (faultInfo == null) {
             try {
-                ctor = exceptionClass.getConstructor(String.class, faultInfo.getClass());
-                ex = ctor.newInstance(message, faultInfo);
-            } catch (NoSuchMethodException e2) {
+                ctor = exceptionClass.getConstructor(String.class, Throwable.class);
+                ex = ctor.newInstance(message, cause);
+            } catch (NoSuchMethodException e1) {
                 try {
-                    ctor = exceptionClass.getConstructor(String.class, Throwable.class);
-                    ex = ctor.newInstance(message, cause);
-                    populateException(ex, faultInfo);
-                } catch (NoSuchMethodException e3) {
+                    ctor = exceptionClass.getConstructor(String.class);
+                    ex = ctor.newInstance(message);
+                } catch (NoSuchMethodException e2) {
                     try {
-                        ctor = exceptionClass.getConstructor(String.class);
-                        ex = ctor.newInstance(message);
-                        populateException(ex, faultInfo);
-                    } catch (NoSuchMethodException e4) {
+                        ctor = exceptionClass.getConstructor(Throwable.class);
+                        ex = ctor.newInstance(cause);
+                    } catch (NoSuchMethodException e3) {
                         ctor = exceptionClass.getConstructor();
-                        if (ctor != null) {
-                            ex = ctor.newInstance();
+                        ex = ctor.newInstance();
+                    }
+                }
+            }
+        } else {
+            try {
+                // FIXME: What about if the faultBeanClass is a subclass of the argument type?
+                ctor = exceptionClass.getConstructor(String.class, faultBeanClass, Throwable.class);
+                ex = ctor.newInstance(message, faultInfo, cause);
+            } catch (NoSuchMethodException e1) {
+                try {
+                    ctor = exceptionClass.getConstructor(String.class, faultInfo.getClass());
+                    ex = ctor.newInstance(message, faultInfo);
+                } catch (NoSuchMethodException e2) {
+                    try {
+                        ctor = exceptionClass.getConstructor(String.class, Throwable.class);
+                        ex = ctor.newInstance(message, cause);
+                        populateException(ex, faultInfo);
+                    } catch (NoSuchMethodException e3) {
+                        try {
+                            ctor = exceptionClass.getConstructor(String.class);
+                            ex = ctor.newInstance(message);
                             populateException(ex, faultInfo);
-                        } else {
-                            ex = new FaultException(message, faultInfo, cause);
+                        } catch (NoSuchMethodException e4) {
+                            try {
+                                ctor = exceptionClass.getConstructor();
+                                if (ctor != null) {
+                                    ex = ctor.newInstance();
+                                    populateException(ex, faultInfo);
+                                } else {
+                                    ex = new FaultException(message, faultInfo, cause);
+                                }
+                            } catch (NoSuchMethodException e5) {
+                                try {
+                                    ctor = exceptionClass.getConstructor(Throwable.class);
+                                    ex = ctor.newInstance(cause);
+                                    populateException(ex, faultInfo);
+                                } catch (NoSuchMethodException e6) {
+                                    ctor = exceptionClass.getConstructor();
+                                    ex = ctor.newInstance();
+                                }
+                            }
                         }
                     }
                 }
             }
         }
+
         return ex;
     }