Author: nthaker
Date: Fri Oct 8 15:49:18 2010
New Revision: 1005868
URL: http://svn.apache.org/viewvc?rev=1005868&view=rev
Log:
The WS-Addressing action that is being generated is not correct in some
scenarios where faults are generated. The problem was discovered during CTS
testing for jax-ws 2.2. I am committing code that will fix this issue.
Code Contribution by Brian DePradine.
JIRA Axis2-4839.
Modified:
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/impl/OperationDescriptionImpl.java
Modified:
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/impl/OperationDescriptionImpl.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/impl/OperationDescriptionImpl.java?rev=1005868&r1=1005867&r2=1005868&view=diff
==============================================================================
---
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/impl/OperationDescriptionImpl.java
(original)
+++
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/impl/OperationDescriptionImpl.java
Fri Oct 8 15:49:18 2010
@@ -529,6 +529,10 @@ class OperationDescriptionImpl
portTypeName,
operationName,
faultMessage.getName());
+
+ if (log.isDebugEnabled()) {
+ log.debug("Default faultAction = "+faultAction);
+ }
newAxisOperation.addFaultAction(faultDesc.getExceptionClassName(),
faultAction);
newAxisOperation.setFaultMessages(faultMessage);
@@ -559,7 +563,24 @@ class OperationDescriptionImpl
}
FaultDescription faultDesc =
resolveFaultByExceptionName(className);
if (faultDesc != null) {
- newAxisOperation.addFaultAction(className,
faultAction.value());
+
+ String faultActionString = faultAction.value();
+ if (log.isDebugEnabled()) {
+ log.debug("SANDERKA: faultAction value =
"+faultActionString);
+ }
+
+ if (faultActionString.equals("")) {
+ faultActionString =
+
WSDL11ActionHelper.getFaultActionFromStringInformation( targetNS,
+ portTypeName,
+ operationName,
+
className.substring((className.lastIndexOf('.'))+1));
+
+ if (log.isDebugEnabled()) {
+ log.debug("New faultAction value =
"+faultActionString);
+ }
+ }
+ newAxisOperation.addFaultAction(className,
faultActionString);
}
}
}