svn commit: r698510 - /webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java

[email protected]
Newsgroups gmane.comp.apache.webservices.fx.devel
Message-ID <[email protected]>
Author: mckierna
Date: Wed Sep 24 03:24:30 2008
New Revision: 698510

URL: http://svn.apache.org/viewvc?rev=698510&view=rev
Log:
Further improvements to invalid ack processing

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

Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java?rev=698510&r1=698509&r2=698510&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java Wed Sep 24 03:24:30 2008
@@ -269,6 +269,8 @@
 			data.setCode(SOAP11Constants.FAULT_CODE_SENDER);
 		else
 			data.setCode(SOAP12Constants.FAULT_CODE_SENDER);
+		
+		System.out.println("makingInvalidAck piggy=" + piggybackedMessage + ": soap=" + SOAPVersion);
 
 		data.setType(Sandesha2Constants.SOAPFaults.FaultType.INVALID_ACKNOWLEDGEMENT);
 		data.setSubcode(SpecSpecificConstants.getFaultSubcode(rmMsgCtx.getRMNamespaceValue(), 
@@ -567,72 +569,88 @@
 		
 		String SOAPNamespaceValue = factory.getSoapVersionURI();
 		
-		if (SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(SOAPNamespaceValue)) {
-                        reasonText.setLang(Sandesha2Constants.LANG_EN);
+		if (SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(SOAPNamespaceValue)) 
+		{
+            reasonText.setLang(Sandesha2Constants.LANG_EN);
 			reason.addSOAPText(reasonText);
 			referenceRMMsgContext.setProperty(SOAP12Constants.SOAP_FAULT_CODE_LOCAL_NAME, faultCode);
 			referenceRMMsgContext.setProperty(SOAP12Constants.SOAP_FAULT_REASON_LOCAL_NAME, reason);
 			referenceRMMsgContext.setProperty(SOAP12Constants.SOAP_FAULT_DETAIL_LOCAL_NAME, detail);
-		} else if (SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals (SOAPNamespaceValue)) {
-			reason.setText(data.getReason());
-			referenceRMMsgContext.setProperty(SOAP11Constants.SOAP_FAULT_CODE_LOCAL_NAME, faultCode);
-			referenceRMMsgContext.setProperty(SOAP11Constants.SOAP_FAULT_DETAIL_LOCAL_NAME, detail);
-			referenceRMMsgContext.setProperty(SOAP11Constants.SOAP_FAULT_STRING_LOCAL_NAME, reason);
-			// Need to send this message as the Axis Layer doesn't set the "SequenceFault" header
-			MessageContext faultMessageContext = 
-				MessageContextBuilder.createFaultMessageContext(referenceRMMsgContext.getMessageContext(), null);
-			if(acksToEPR!=null){
-        		if (log.isDebugEnabled())
-        			log.debug("Debug: FaultManager::getOrSendFault: rewrriting fault destination EPR to " + acksToEPR);
-        		faultMessageContext.setTo(acksToEPR);
-			}
-
-			SOAPFaultEnvelopeCreator.addSOAPFaultEnvelope(faultMessageContext, Sandesha2Constants.SOAPVersion.v1_1, data, referenceRMMsgContext.getRMNamespaceValue());			
 			
-			// Set the action // TODO SET THE ACTION BASED ON THE SPEC
-			faultMessageContext.setWSAAction(
-					SpecSpecificConstants.getAddressingFaultAction(referenceRMMsgContext.getRMSpecVersion()));
+			AxisFault fault = new AxisFault(faultColdValue.getTextAsQName(), data.getReason(), "", "", data.getDetail());
+			fault.setFaultAction(SpecSpecificConstants.getAddressingFaultAction(referenceRMMsgContext.getRMSpecVersion()));
 			
-			if (log.isDebugEnabled())
-				log.debug("Sending fault message " + faultMessageContext.getEnvelope().getHeader());
+			//if this is throwable throwing it out, else we will log here.
+			
+			if (throwable)
+			{
+	            if (referenceRMMsgContext.getMessageContext().isServerSide()) {
+	        		if (log.isDebugEnabled())
+	        			log.debug("Exit: FaultManager::getOrSendFault: " + fault);
+	        		System.out.println("throw fault2 " + fault);
+	                throw fault; 
+	            }
+			}
+			else
+				log.error("Sandesha2 got a fault when processing the message " + referenceRMMsgContext.getMessageId(), fault);
+		} 
+		else if (SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals (SOAPNamespaceValue)) 
+		{
+			
+				reason.setText(data.getReason());
+				referenceRMMsgContext.setProperty(SOAP11Constants.SOAP_FAULT_CODE_LOCAL_NAME, faultCode);
+				referenceRMMsgContext.setProperty(SOAP11Constants.SOAP_FAULT_DETAIL_LOCAL_NAME, detail);
+				referenceRMMsgContext.setProperty(SOAP11Constants.SOAP_FAULT_STRING_LOCAL_NAME, reason);
+				// Need to send this message as the Axis Layer doesn't set the "SequenceFault" header
+				MessageContext faultMessageContext = 
+					MessageContextBuilder.createFaultMessageContext(referenceRMMsgContext.getMessageContext(), null);
+				if(acksToEPR!=null){
+	        		if (log.isDebugEnabled())
+	        			log.debug("Debug: FaultManager::getOrSendFault: rewrriting fault destination EPR to " + acksToEPR);
+	        		faultMessageContext.setTo(acksToEPR);
+				}
 
-				// Sending the message
-				//having a surrounded try block will make sure that the error is logged here 
-				//and that this does not disturb the processing of a carrier message.
-				try {
-					AxisEngine.sendFault(faultMessageContext);
-					
-					EndpointReference destination = faultMessageContext.getTo();
-					if(destination == null || destination.hasAnonymousAddress()) {
-						TransportUtils.setResponseWritten(referenceRMMsgContext.getMessageContext(), true);
-					}
-				} catch (Exception e) {
+				SOAPFaultEnvelopeCreator.addSOAPFaultEnvelope(faultMessageContext, Sandesha2Constants.SOAPVersion.v1_1, data, referenceRMMsgContext.getRMNamespaceValue());			
+				
+				// Set the action // TODO SET THE ACTION BASED ON THE SPEC
+				faultMessageContext.setWSAAction(
+						SpecSpecificConstants.getAddressingFaultAction(referenceRMMsgContext.getRMSpecVersion()));
+				
+				if(throwable)
+				{
+					if (log.isDebugEnabled())
+						log.debug("Sending fault message " + faultMessageContext.getEnvelope().getHeader());
+	
+					// Sending the message
+					//having a surrounded try block will make sure that the error is logged here 
+					//and that this does not disturb the processing of a carrier message.
+					try {
+						System.out.println("sendFault " + faultMessageContext.getEnvelope());
+						AxisEngine.sendFault(faultMessageContext);
+						
+						EndpointReference destination = faultMessageContext.getTo();
+						if(destination == null || destination.hasAnonymousAddress()) {
+							TransportUtils.setResponseWritten(referenceRMMsgContext.getMessageContext(), true);
+						}
+					} catch (Exception e) {
+						AxisFault fault = new AxisFault(faultColdValue.getTextAsQName(), data.getReason(), "", "", data.getDetail());
+						String message = SandeshaMessageHelper.getMessage(SandeshaMessageKeys.couldNotSendFaultDueToException, fault.getMessage(), e.getMessage());
+						log.error(message);
+					}	
+				}
+				else
+				{
 					AxisFault fault = new AxisFault(faultColdValue.getTextAsQName(), data.getReason(), "", "", data.getDetail());
-					String message = SandeshaMessageHelper.getMessage(SandeshaMessageKeys.couldNotSendFaultDueToException, fault.getMessage(), e.getMessage());
+					String message = SandeshaMessageHelper.getMessage(SandeshaMessageKeys.couldNotSendFaultDueToException, fault.getMessage());
 					log.error(message);
 				}
-			
-			return;
-			
-		} else {
+		} 
+		else 
+		{
 			String message = SandeshaMessageHelper.getMessage(SandeshaMessageKeys.unknownSoapVersion);
+			System.out.println("throwing exception " + message);
 			throw new SandeshaException (message);
 		}
-		
-		AxisFault fault = new AxisFault(faultColdValue.getTextAsQName(), data.getReason(), "", "", data.getDetail());
-		fault.setFaultAction(SpecSpecificConstants.getAddressingFaultAction(referenceRMMsgContext.getRMSpecVersion()));
-		
-		//if this is throwable throwing it out, else we will log here.
-		
-		if (throwable)
-            if (referenceRMMsgContext.getMessageContext().isServerSide()) {
-        		if (log.isDebugEnabled())
-        			log.debug("Exit: FaultManager::getOrSendFault: " + fault);
-                throw fault; 
-            }
-        
-		// TODO - Remove console written strings
-		log.error("Sandesha2 got a fault when processing the message " + referenceRMMsgContext.getMessageId(), fault);
 
 		if (log.isDebugEnabled())
 			log.debug("Exit: FaultManager::getOrSendFault");
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.