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


Reply via email to