[jboss-svn-commits] JBL Code SVN: r15759 - labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/message.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Oct 11 11:24:37 EDT 2007


Author: kevin.conner at jboss.com
Date: 2007-10-11 11:24:36 -0400 (Thu, 11 Oct 2007)
New Revision: 15759

Modified:
   labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java
Log:
Fixed ReplyTo/FaultTo for responses: JBESB-1158

Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java	2007-10-11 15:21:42 UTC (rev 15758)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java	2007-10-11 15:24:36 UTC (rev 15759)
@@ -31,6 +31,7 @@
 import org.jboss.soa.esb.actions.ActionPipelineProcessor;
 import org.jboss.soa.esb.actions.ActionProcessingFaultException;
 import org.jboss.soa.esb.actions.BeanConfiguredAction;
+import org.jboss.soa.esb.addressing.Call;
 import org.jboss.soa.esb.addressing.EPR;
 import org.jboss.soa.esb.addressing.MalformedEPRException;
 import org.jboss.soa.esb.addressing.util.DefaultFaultTo;
@@ -240,6 +241,7 @@
 		final EPR faultToAddress = DefaultFaultTo.getFaultToAddress(message);
 		long start = System.nanoTime();
 		serviceMessageCounter.incrementTotalCount();
+		final EPR fromAddress = message.getHeader().getCall().getTo() ;
 
 		if (active.get())
 		{
@@ -290,14 +292,14 @@
 
 						if (fault.getFaultMessage() == null)
 						{
-							faultTo(faultToAddress, Factory.createErrorMessage(Factory.PROCESSING_ERROR, message, ex));
+							faultTo(fromAddress, faultToAddress, Factory.createErrorMessage(Factory.PROCESSING_ERROR, message, ex));
 						}
 						else
-							faultTo(faultToAddress, fault.getFaultMessage());
+							faultTo(fromAddress, faultToAddress, fault.getFaultMessage());
 					}
 					else
 					{
-						faultTo(faultToAddress, Factory.createErrorMessage(Factory.UNEXPECTED_ERROR, message, ex));
+						faultTo(fromAddress, faultToAddress, Factory.createErrorMessage(Factory.UNEXPECTED_ERROR, message, ex));
 					}
 
 					long procTime = System.nanoTime() - start;
@@ -315,7 +317,7 @@
 			// Reply...
 			if ((currentMessage != null) && (replyToAddress != null))
 			{
-				replyTo(replyToAddress, currentMessage);
+				replyTo(fromAddress, replyToAddress, currentMessage);
 			}
 
 			notifySuccess(messages);
@@ -328,7 +330,7 @@
 		{
 			LOGGER.debug("pipeline process disabled for message: "+message.getHeader());
 
-			faultTo(faultToAddress, Factory.createErrorMessage(Factory.NOT_ENABLED, message, null));
+			faultTo(fromAddress, faultToAddress, Factory.createErrorMessage(Factory.NOT_ENABLED, message, null));
 			long procTime = System.nanoTime() - start;
         	DeliveryObservableLogger.getInstance().logMessage(new MessageStatusBean(procTime, message, 
         			MessageStatusBean.MESSAGE_FAILED));
@@ -340,13 +342,15 @@
 	/**
 	 * Send the reply.
 	 * 
+         * @param fromAddress
+         *            the EPR to which the original message was sent.
 	 * @param replyToAddress
 	 *            the EPR to target if one is not defined in the message.
 	 * @param message
 	 *            the message.
 	 */
 
-	private void replyTo(EPR replyToAddress, Message message)
+	private void replyTo(EPR fromAddress, EPR replyToAddress, Message message)
 	{
 		Courier courier = null;
 		EPR replyToEPR = DefaultReplyTo.getReplyToAddress(message);
@@ -360,6 +364,10 @@
 		}
 		else
 		{
+			final Call call = message.getHeader().getCall() ;
+			call.setFrom(fromAddress) ;
+			call.setReplyTo(null) ;
+			call.setFaultTo(null) ;
 			try
 			{
 				courier = CourierFactory.getCourier(replyToAddress);
@@ -393,13 +401,15 @@
 	/**
 	 * Send the fault message to the EPR.
 	 * 
+         * @param fromAddress
+         *            the EPR to which the original message was sent.
 	 * @param faultToAddress
 	 *            the EPR to target if one is not set in the message.
 	 * @param message
 	 *            the message.
 	 */
 
-	private void faultTo(EPR faultToAddress, Message message)
+	private void faultTo(EPR fromAddress, EPR faultToAddress, Message message)
 	{
 		Courier courier = null;
 		EPR faultToEPR = DefaultFaultTo.getFaultToAddress(message);
@@ -413,6 +423,10 @@
 		}
 		else
 		{
+			final Call call = message.getHeader().getCall() ;
+			call.setFrom(fromAddress) ;
+			call.setReplyTo(null) ;
+			call.setFaultTo(null) ;
 			try
 			{
 				courier = CourierFactory.getCourier(faultToAddress);




More information about the jboss-svn-commits mailing list