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