You are viewing a plain text version of this content. The canonical link for it is here.
Posted to sandesha-dev@ws.apache.org by ga...@apache.org on 2008/04/23 10:12:43 UTC

svn commit: r650780 - /webservices/sandesha/branches/sandesha2/java/1_4/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java

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: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org