Author: antelder
Date: Fri Feb 13 12:33:53 2009
New Revision: 744098
URL: http://svn.apache.org/viewvc?rev=744098&view=rev
Log:
Change XMLTextMessageProcessor to override the createFaultMessage to handle
FaultExceptions
Modified:
tuscany/branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/XMLTextMessageProcessor.java
Modified:
tuscany/branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/XMLTextMessageProcessor.java
URL:
http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/XMLTextMessageProcessor.java?rev=744098&r1=744097&r2=744098&view=diff
==============================================================================
---
tuscany/branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/XMLTextMessageProcessor.java
(original)
+++
tuscany/branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/XMLTextMessageProcessor.java
Fri Feb 13 12:33:53 2009
@@ -32,7 +32,9 @@
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.impl.builder.StAXOMBuilder;
import org.apache.tuscany.sca.binding.jms.impl.JMSBinding;
+import org.apache.tuscany.sca.binding.jms.impl.JMSBindingConstants;
import org.apache.tuscany.sca.binding.jms.impl.JMSBindingException;
+import org.apache.tuscany.sca.interfacedef.util.FaultException;
/**
* MessageProcessor for sending/receiving XML javax.jms.TextMessage with the
JMSBinding.
@@ -92,5 +94,26 @@
throw new JMSBindingException(e);
}
}
+
+ @Override
+ public Message createFaultMessage(Session session, Throwable o) {
+ if (session == null) {
+ logger.fine("no response session to create fault message: " +
String.valueOf(o));
+ return null;
+ }
+ if (o instanceof FaultException) {
+ try {
+ TextMessage message = session.createTextMessage();
+
message.setText(String.valueOf(((FaultException)o).getFaultInfo()));
+ message.setBooleanProperty(JMSBindingConstants.FAULT_PROPERTY,
true);
+ return message;
+
+ } catch (JMSException e) {
+ throw new JMSBindingException(e);
+ }
+ } else {
+ return super.createFaultMessage(session, o);
+ }
+ }
}