[jboss-svn-commits] JBL Code SVN: r38194 - in labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta/src/org/jboss/soa/esb/listeners/message: errors and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Sep 24 12:44:53 EDT 2012


Author: tcunning
Date: 2012-09-24 12:44:53 -0400 (Mon, 24 Sep 2012)
New Revision: 38194

Modified:
   labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java
   labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta/src/org/jboss/soa/esb/listeners/message/errors/Factory.java
Log:
JBESB-3851
Port Tadayoshi's changes to JBESB-3796 to the 4.11 branch.   Add another Factory#createErrorMessage(...) 
method, which creates an error message from the Call information.
Change the innermost ActionProcessingPipeline#processPipeline(Message) method to use this 
Factory#createErrorMessage(...) method for error message creation.


Modified: labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java	2012-09-24 07:33:40 UTC (rev 38193)
+++ labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java	2012-09-24 16:44:53 UTC (rev 38194)
@@ -687,14 +687,14 @@
 
 							if (fault.getFaultMessage() == null)
 							{
-								faultTo(callDetails, Factory.createErrorMessage(Factory.PROCESSING_ERROR, message, ex));
+								faultTo(callDetails, Factory.createErrorMessage(Factory.PROCESSING_ERROR, message.getType(), callDetails, ex, message));
 							}
 							else
 								faultTo(callDetails, fault.getFaultMessage());
 						}
 						else if (!throwRuntime)
 						{
-							faultTo(callDetails, Factory.createErrorMessage(Factory.UNEXPECTED_ERROR, message, ex));
+							faultTo(callDetails, Factory.createErrorMessage(Factory.UNEXPECTED_ERROR, message.getType(), callDetails, ex, message));
 						}
 
 						final long totalProcTime = System.nanoTime() - start;
@@ -767,7 +767,7 @@
 			if (validationFailure != null)
 			{
 				final MessageValidationException mve = new MessageValidationException(validationFailure) ;
-				faultTo(callDetails, Factory.createErrorMessage(Factory.VALIDATION_FAILURE, message, mve));
+				faultTo(callDetails, Factory.createErrorMessage(Factory.VALIDATION_FAILURE, message.getType(), callDetails, mve, message));
 				long procTime = System.nanoTime() - start;
 				MessageCounterStatistics.getMessageCounterStatistics().update(new MessageStatusBean(procTime, message,
 					MessageStatusBean.MESSAGE_FAILED));

Modified: labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta/src/org/jboss/soa/esb/listeners/message/errors/Factory.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta/src/org/jboss/soa/esb/listeners/message/errors/Factory.java	2012-09-24 07:33:40 UTC (rev 38193)
+++ labs/jbossesb/branches/JBESB_4_11_CP/product/rosetta/src/org/jboss/soa/esb/listeners/message/errors/Factory.java	2012-09-24 16:44:53 UTC (rev 38194)
@@ -23,6 +23,7 @@
 import java.net.URI;
 
 import org.apache.log4j.Logger;
+import org.jboss.soa.esb.addressing.Call;
 import org.jboss.soa.esb.addressing.EPR;
 import org.jboss.soa.esb.couriers.FaultMessageException;
 import org.jboss.soa.esb.message.Fault;
@@ -55,12 +56,21 @@
 		if (input == null)
 			throw new IllegalArgumentException();
 		
-		Message errorMessage = MessageFactory.getInstance().getMessage(input.getType());
+		return createErrorMessage(type, input.getType(), input.getHeader().getCall(), problem, input);
+	}
+	
+	// JBESB-3796
+	public static Message createErrorMessage (String type, URI messageType, Call call, Throwable problem, Message defaultError)
+	{
+		if (call == null)
+			throw new IllegalArgumentException();
 		
+		Message errorMessage = MessageFactory.getInstance().getMessage(messageType);
+		
 		if (errorMessage == null)
-			throw new IllegalArgumentException("Could not create error message from "+input.getType());
+			throw new IllegalArgumentException("Could not create error message from "+messageType);
 		
-		if (modifyMessage(input, errorMessage))
+		if (modifyMessage(call, errorMessage))
 		{
 			errorMessage.getBody().add(Fault.THROWABLE_CONTENT, problem);
 			
@@ -85,30 +95,30 @@
 			return errorMessage;
 		}
 		else
-			return input;
+			return defaultError;
 	}
 	
 	/**
-	 * Where should the error message go? Check the header of the original
+	 * Where should the error message go? Check the Call header of the original
 	 * input message.
 	 */
 	
-	private final static boolean modifyMessage (Message input, Message errorMessage)
+	private final static boolean modifyMessage (Call call, Message errorMessage)
 	{
-		EPR destination = input.getHeader().getCall().getFaultTo();
+		EPR destination = call.getFaultTo();
 		
-		if ((destination == null) && (input.getHeader().getCall().getReplyTo() != null))
-			destination = input.getHeader().getCall().getReplyTo();
+		if ((destination == null) && (call.getReplyTo() != null))
+			destination = call.getReplyTo();
 		
-		if ((destination == null) && (input.getHeader().getCall().getFrom() != null))
-			destination = input.getHeader().getCall().getFrom();
+		if ((destination == null) && (call.getFrom() != null))
+			destination = call.getFrom();
 		
 		if (destination != null)
 		{
 			errorMessage.getHeader().getCall().setTo(destination);
 			
-			if (input.getHeader().getCall().getMessageID() != null)
-				errorMessage.getHeader().getCall().setRelatesTo(input.getHeader().getCall().getMessageID());
+			if (call.getMessageID() != null)
+				errorMessage.getHeader().getCall().setRelatesTo(call.getMessageID());
 			
 			return true;
 		}



More information about the jboss-svn-commits mailing list