Author: slaws
Date: Tue May  5 14:27:06 2009
New Revision: 771740

URL: http://svn.apache.org/viewvc?rev=771740&view=rev
Log:
TUSCANY-3005 - Take account of the case where there are either no input 
parameters or a void return type (or both). Thanks for the patch Kaushik.

Modified:
    
tuscany/branches/sca-java-1.x/itest/jms-format/src/main/java/org/apache/tuscany/sca/binding/jms/format/jmsdefault/helloworld/HelloWorldReferenceImpl.java
    
tuscany/branches/sca-java-1.x/itest/jms-format/src/main/java/org/apache/tuscany/sca/binding/jms/format/jmsdefault/helloworld/HelloWorldService.java
    
tuscany/branches/sca-java-1.x/itest/jms-format/src/main/java/org/apache/tuscany/sca/binding/jms/format/jmsdefault/helloworld/HelloWorldServiceImpl.java
    
tuscany/branches/sca-java-1.x/itest/jms-format/src/test/java/org/apache/tuscany/sca/binding/jms/format/FormatJMSDefaultTestCase.java
    
tuscany/branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/DefaultMessageProcessor.java

Modified: 
tuscany/branches/sca-java-1.x/itest/jms-format/src/main/java/org/apache/tuscany/sca/binding/jms/format/jmsdefault/helloworld/HelloWorldReferenceImpl.java
URL: 
http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/itest/jms-format/src/main/java/org/apache/tuscany/sca/binding/jms/format/jmsdefault/helloworld/HelloWorldReferenceImpl.java?rev=771740&r1=771739&r2=771740&view=diff
==============================================================================
--- 
tuscany/branches/sca-java-1.x/itest/jms-format/src/main/java/org/apache/tuscany/sca/binding/jms/format/jmsdefault/helloworld/HelloWorldReferenceImpl.java
 (original)
+++ 
tuscany/branches/sca-java-1.x/itest/jms-format/src/main/java/org/apache/tuscany/sca/binding/jms/format/jmsdefault/helloworld/HelloWorldReferenceImpl.java
 Tue May  5 14:27:06 2009
@@ -48,5 +48,13 @@
                helloWorldService3.getPersonGreetings(person) + " " +
                helloWorldService4.getPersonGreetings(person);
     }
+    
+    public void nullInVoidOut() {
+        helloWorldService1.nullInVoidOut();  
+        helloWorldService2.nullInVoidOut();
+        helloWorldService3.nullInVoidOut();
+        helloWorldService4.nullInVoidOut();
+        
+    }
 }
 

Modified: 
tuscany/branches/sca-java-1.x/itest/jms-format/src/main/java/org/apache/tuscany/sca/binding/jms/format/jmsdefault/helloworld/HelloWorldService.java
URL: 
http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/itest/jms-format/src/main/java/org/apache/tuscany/sca/binding/jms/format/jmsdefault/helloworld/HelloWorldService.java?rev=771740&r1=771739&r2=771740&view=diff
==============================================================================
--- 
tuscany/branches/sca-java-1.x/itest/jms-format/src/main/java/org/apache/tuscany/sca/binding/jms/format/jmsdefault/helloworld/HelloWorldService.java
 (original)
+++ 
tuscany/branches/sca-java-1.x/itest/jms-format/src/main/java/org/apache/tuscany/sca/binding/jms/format/jmsdefault/helloworld/HelloWorldService.java
 Tue May  5 14:27:06 2009
@@ -29,5 +29,7 @@
     public String getGreetings(String name);
     
     public String getPersonGreetings(Person person);
+    
+    public void nullInVoidOut();
 }
 

Modified: 
tuscany/branches/sca-java-1.x/itest/jms-format/src/main/java/org/apache/tuscany/sca/binding/jms/format/jmsdefault/helloworld/HelloWorldServiceImpl.java
URL: 
http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/itest/jms-format/src/main/java/org/apache/tuscany/sca/binding/jms/format/jmsdefault/helloworld/HelloWorldServiceImpl.java?rev=771740&r1=771739&r2=771740&view=diff
==============================================================================
--- 
tuscany/branches/sca-java-1.x/itest/jms-format/src/main/java/org/apache/tuscany/sca/binding/jms/format/jmsdefault/helloworld/HelloWorldServiceImpl.java
 (original)
+++ 
tuscany/branches/sca-java-1.x/itest/jms-format/src/main/java/org/apache/tuscany/sca/binding/jms/format/jmsdefault/helloworld/HelloWorldServiceImpl.java
 Tue May  5 14:27:06 2009
@@ -19,6 +19,8 @@
 package org.apache.tuscany.sca.binding.jms.format.jmsdefault.helloworld;
 
 public class HelloWorldServiceImpl implements HelloWorldService {
+    
+    public static int nullInVoidOutCalled = 0;
 
     public String getGreetings(String name){
         String response =  "Hello " + name;
@@ -31,5 +33,10 @@
         System.out.println("getPersonGreetings: " + response);
         return response;
     }
+    
+    public void nullInVoidOut() {
+        System.out.println("nullInVoidOut");
+        nullInVoidOutCalled++;
+    }
 }
 

Modified: 
tuscany/branches/sca-java-1.x/itest/jms-format/src/test/java/org/apache/tuscany/sca/binding/jms/format/FormatJMSDefaultTestCase.java
URL: 
http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/itest/jms-format/src/test/java/org/apache/tuscany/sca/binding/jms/format/FormatJMSDefaultTestCase.java?rev=771740&r1=771739&r2=771740&view=diff
==============================================================================
--- 
tuscany/branches/sca-java-1.x/itest/jms-format/src/test/java/org/apache/tuscany/sca/binding/jms/format/FormatJMSDefaultTestCase.java
 (original)
+++ 
tuscany/branches/sca-java-1.x/itest/jms-format/src/test/java/org/apache/tuscany/sca/binding/jms/format/FormatJMSDefaultTestCase.java
 Tue May  5 14:27:06 2009
@@ -21,12 +21,14 @@
 import static org.junit.Assert.assertEquals;
 
 import 
org.apache.tuscany.sca.binding.jms.format.jmsdefault.helloworld.HelloWorldService;
+import 
org.apache.tuscany.sca.binding.jms.format.jmsdefault.helloworld.HelloWorldServiceImpl;
 import org.apache.tuscany.sca.binding.jms.format.jmsdefault.helloworld.Person;
 import org.apache.tuscany.sca.node.SCAClient;
 import org.apache.tuscany.sca.node.SCAContribution;
 import org.apache.tuscany.sca.node.SCANode;
 import org.apache.tuscany.sca.node.SCANodeFactory;
 import org.junit.After;
+import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -57,6 +59,10 @@
         person.setFirstName("Fred");
         person.setLastName("Bloggs");
         assertEquals("Hello Fred Bloggs Hello Fred Bloggs Hello Fred Bloggs 
Hello Fred Bloggs", helloWorldService.getPersonGreetings(person));
+        
+        // this just makes sure that there are no exceptions thrown for this 
case
+        helloWorldService.nullInVoidOut();
+        Assert.assertEquals(4, HelloWorldServiceImpl.nullInVoidOutCalled);
     }
 
     @After

Modified: 
tuscany/branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/DefaultMessageProcessor.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/DefaultMessageProcessor.java?rev=771740&r1=771739&r2=771740&view=diff
==============================================================================
--- 
tuscany/branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/DefaultMessageProcessor.java
 (original)
+++ 
tuscany/branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/DefaultMessageProcessor.java
 Tue May  5 14:27:06 2009
@@ -93,7 +93,9 @@
                     //don't modify the original wrapper since it will be reused
                     //clone the wrapper
                     OMElement newWrapper = wrapper.cloneOMElement();
-                    newWrapper.addChild((OMNode)os);
+                    if (os != null){
+                        newWrapper.addChild((OMNode)os);
+                    }
                     return newWrapper;
                 }
                 
@@ -119,16 +121,23 @@
             if (o instanceof OMElement) {
                 
                 if (unwrap){
-                    if (((OMElement)o).getFirstElement() != null ){
-                        
message.setText(((OMElement)o).getFirstElement().toString());
+                    OMElement firstElement = ((OMElement)o).getFirstElement();
+                    if (firstElement == null ) {
+                        message.setText(null);
+                    } else {
+                        message.setText(firstElement.toString());
                     }
                 }else {
                     message.setText(o.toString());
                 }
             } else if ((o instanceof Object[]) && ((Object[]) o)[0] instanceof 
OMElement) {
                 if (unwrap){
-                    message.setText(((OMElement)((Object[]) 
o)[0]).getFirstElement().toString());
-                    //message.setText((((Object[]) o)[0]).toString());
+                    OMElement firstElement = ((OMElement)((Object[]) 
o)[0]).getFirstElement();
+                    if (firstElement == null ) {
+                        message.setText(null);
+                    } else {
+                        message.setText(firstElement.toString());
+                    }
                 }else {
                     message.setText(((Object[]) o)[0].toString());
                 }
@@ -218,16 +227,26 @@
 
             if (o instanceof OMElement) {
                 if (unwrap) {
-                    if (((OMElement)o).getFirstElement() != null){
-                        
message.writeBytes(((OMElement)o).getFirstElement().toString().getBytes());
+                    OMElement firstElement = ((OMElement)o).getFirstElement();
+                    if (firstElement == null ) {
+                        //do nothing, the message will just be set with a 
byte[0]
+                    } else {
+                        message.writeBytes(firstElement.toString().getBytes());
                     }
+
                 } else {
                     message.writeBytes(o.toString().getBytes());               
     
                 }
 
             } else if ((o instanceof Object[]) && ((Object[]) o)[0] instanceof 
OMElement) {
                 if (unwrap){
-                    message.writeBytes(((OMElement)((Object[]) 
o)[0]).getFirstElement().toString().getBytes());
+                    OMElement firstElement = ((OMElement)((Object[]) 
o)[0]).getFirstElement();
+                    if (firstElement == null ) {
+                        //do nothing, the message will just be set with a 
byte[0]
+                    } else {
+                        message.writeBytes(firstElement.toString().getBytes());
+                    }
+
                 }else {
                     message.writeBytes(((Object[]) 
o)[0].toString().getBytes());
                 }


Reply via email to