Author: gatfora
Date: Wed Apr 23 01:12:42 2008
New Revision: 650780

URL: http://svn.apache.org/viewvc?rev=650780&view=rev
Log:
Apply patch from SANDESHA2-149

Modified:
    
webservices/sandesha/branches/sandesha2/java/1_4/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java

Modified: 
webservices/sandesha/branches/sandesha2/java/1_4/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/branches/sandesha2/java/1_4/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java?rev=650780&r1=650779&r2=650780&view=diff
==============================================================================
--- 
webservices/sandesha/branches/sandesha2/java/1_4/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java
 (original)
+++ 
webservices/sandesha/branches/sandesha2/java/1_4/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java
 Wed Apr 23 01:12:42 2008
@@ -761,7 +761,7 @@
                transaction = storageManager.getTransaction();
 
                // constructing the fault
-               AxisFault axisFault = getAxisFaultFromFromSOAPFault(faultPart);
+               AxisFault axisFault = getAxisFaultFromFromSOAPFault(faultPart, 
rmMsgCtx);
                response = manageIncomingFault (axisFault, rmMsgCtx, faultPart);
                
                if(transaction != null && transaction.isActive()) 
transaction.commit();
@@ -775,10 +775,28 @@
        }
 
        
-       private static AxisFault getAxisFaultFromFromSOAPFault(SOAPFault 
faultPart) {
-               AxisFault axisFault = new AxisFault(faultPart.getCode(), 
faultPart.getReason(), faultPart.getNode(), faultPart
-                               .getRole(), faultPart.getDetail());
+       private static AxisFault getAxisFaultFromFromSOAPFault(SOAPFault 
faultPart, RMMsgContext rmMsgCtx) {
+               
+               String soapFaultSubcode = null;
+               SequenceFault sequenceFault = rmMsgCtx.getSequenceFault();
+               AxisFault axisFault = null;
 
+               // If the sequence fault part is not null, then we have an RM 
specific fault.
+               if (sequenceFault != null) {
+                       soapFaultSubcode = 
sequenceFault.getFaultCode().getFaultCode().getLocalPart();
+                       
+                       //Need to concatenate all info about the error into 
string
+                       StringBuffer faultSB = new StringBuffer();
+                       faultSB.append(soapFaultSubcode + " ");
+                       faultSB.append(sequenceFault.getFaultCode().getDetail() 
+ " ");
+                       faultSB.append(faultPart.getDetail().getText());
+
+                       axisFault = new AxisFault(faultSB.toString(), 
sequenceFault.getFaultCode().getFaultCode());
+               } else {
+                       axisFault = new AxisFault(faultPart.getCode(), 
faultPart.getReason(), faultPart.getNode(), faultPart
+                                       .getRole(), faultPart.getDetail());
+               }
+                       
                return axisFault;
        }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to