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);
+        }
+    }
 }


Reply via email to