[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