Author: antelder
Date: Fri Feb 22 04:40:07 2008
New Revision: 630178

URL: http://svn.apache.org/viewvc?rev=630178&view=rev
Log:
Fix for no arg invocations and add an itest for exceptions

Modified:
    
incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingInvoker.java
    
incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSMessageProcessorImpl.java

Modified: 
incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingInvoker.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingInvoker.java?rev=630178&r1=630177&r2=630178&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingInvoker.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingInvoker.java
 Fri Feb 22 04:40:07 2008
@@ -34,6 +34,7 @@
 import org.apache.tuscany.sca.interfacedef.Operation;
 import org.apache.tuscany.sca.invocation.Invoker;
 import org.apache.tuscany.sca.invocation.PassByValueAware;
+import org.osoa.sca.ServiceRuntimeException;
 
 /**
  * Interceptor for the JMS binding.
@@ -182,6 +183,16 @@
             msg.setBody(resp);
         } catch (InvocationTargetException e) {
             msg.setFaultBody(e.getCause());
+        } catch (ServiceRuntimeException e) {
+            if (e.getCause() instanceof InvocationTargetException) {
+                if ((e.getCause().getCause() instanceof RuntimeException)) {
+                    msg.setFaultBody(e.getCause());
+                } else {
+                    msg.setFaultBody(e.getCause().getCause());
+                }
+            } else {
+                msg.setFaultBody(e);
+            }
         } catch (Throwable e) {
             msg.setFaultBody(e);
         }

Modified: 
incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSMessageProcessorImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSMessageProcessorImpl.java?rev=630178&r1=630177&r2=630178&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSMessageProcessorImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSMessageProcessorImpl.java
 Fri Feb 22 04:40:07 2008
@@ -20,7 +20,6 @@
 
 import java.io.Serializable;
 import java.io.StringReader;
-import java.lang.reflect.InvocationTargetException;
 
 import javax.jms.JMSException;
 import javax.jms.Message;
@@ -115,12 +114,15 @@
         try {
 
             String xml = ((TextMessage)msg).getText();
-
-            XMLStreamReader reader = 
XMLInputFactory.newInstance().createXMLStreamReader(new StringReader(xml));
-            StAXOMBuilder builder = new StAXOMBuilder(reader);
-            OMElement omElement = builder.getDocumentElement();
-
-            return new Object[] {omElement};
+            Object o = null;
+            if (xml != null) {
+                XMLStreamReader reader = 
XMLInputFactory.newInstance().createXMLStreamReader(new StringReader(xml));
+                StAXOMBuilder builder = new StAXOMBuilder(reader);
+                o = new Object[] { builder.getDocumentElement() };
+            } else {
+                o = new Object[]{};
+            }
+            return o;
 
         } catch (XMLStreamException e) {
             throw new JMSBindingException(e);
@@ -149,7 +151,7 @@
             } else {
                 if (o instanceof Object[]) {
                     message.setText(((Object[])o)[0].toString());
-                } else {
+                } else if (o != null) {
                     message.setText(String.valueOf(o));
                 }
             }
@@ -177,11 +179,7 @@
         try {
 
             ObjectMessage message = session.createObjectMessage(); 
-            if (o instanceof InvocationTargetException) {
-                
message.setObject(((InvocationTargetException)o).getTargetException());
-            } else {
-                message.setObject(o);
-            }
+            message.setObject(o);
             message.setBooleanProperty(JMSBindingConstants.FAULT_PROPERTY, 
true);
             return message;
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to