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;
}