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