You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tuscany.apache.org by "York (He Yuan) HUANG (JIRA)" <tu...@ws.apache.org> on 2007/09/16 06:06:32 UTC

[jira] Reopened: (TUSCANY-1398) Nested Callbacks Fail

     [ https://issues.apache.org/jira/browse/TUSCANY-1398?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

York (He Yuan) HUANG reopened TUSCANY-1398:
-------------------------------------------


The test case has been run again on Tuscany next, Tuscany 0.99, Tuscany 1.0 RC1 respectively.  Looks like it doesn't work. Below you could find the result:

Result of Tuscany Next Version: svn check out from http://svn.apache.org/repos/asf/incubator/tuscany/java/sca
------------------------------------------------------------------------------------------------------------------------------------------------------
send a request....
Customer place an order - apple
creating Orders...... I want to buy apple
order placed.   notify me when finished!
Ship apple by HighwayTransport  
Ship apple by RailWayTransport
java.lang.NullPointerException
	at org.apache.tuscany.sca.core.invocation.JDKCallbackInvocationHandler.invoke(JDKCallbackInvocationHandler.java:104)
	at $Proxy11.notify(Unknown Source)
	at orderprocess.SupplierImpl.notify(SupplierImpl.java:71)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke(JavaImplementationInvoker.java:105)
	at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:233)
	at org.apache.tuscany.sca.core.invocation.JDKCallbackInvocationHandler.invoke(JDKCallbackInvocationHandler.java:119)
	at $Proxy13.notify(Unknown Source)
	at orderprocess.RaiwayTransport.doShipping(RaiwayTransport.java:56)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke(JavaImplementationInvoker.java:105)
	at org.apache.tuscany.sca.core.invocation.NonBlockingInterceptor$1.run(NonBlockingInterceptor.java:68)
	at org.apache.tuscany.sca.core.work.Jsr237Work.run(Jsr237Work.java:61)
	at org.apache.tuscany.sca.core.work.ThreadPoolWorkManager$DecoratingWork.run(ThreadPoolWorkManager.java:205)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Supplier RuntimeException invoking notify: java.lang.NullPointerException

------------------------------------------------------------------------------------------------------------------------------------------------------

Result of Tuscany 0.99 Version
------------------------------------------------------------------------------------------------------------------------------------------------------

send a request....
Customer place an order - apple
creating Orders...... I want to buy apple
order placed.   notify me when finished!
Ship apple by RailWayTransport
Ship apple by HighwayTransport  
java.lang.NullPointerException
	at org.apache.tuscany.sca.core.invocation.JDKCallbackInvocationHandler.invoke(JDKCallbackInvocationHandler.java:67)
	at $Proxy11.notify(Unknown Source)
	at orderprocess.SupplierImpl.notify(SupplierImpl.java:71)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke(JavaImplementationInvoker.java:91)
	at org.apache.tuscany.sca.binding.sca.impl.RuntimeSCABindingInvoker.invoke(RuntimeSCABindingInvoker.java:48)
	at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:270)
	at org.apache.tuscany.sca.core.invocation.JDKCallbackInvocationHandler.invoke(JDKCallbackInvocationHandler.java:95)
	at $Proxy13.notify(Unknown Source)
	at orderprocess.RaiwayTransport.doShipping(RaiwayTransport.java:56)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke(JavaImplementationInvoker.java:91)
	at org.apache.tuscany.sca.binding.sca.impl.RuntimeSCABindingInvoker.invoke(RuntimeSCABindingInvoker.java:48)
	at org.apache.tuscany.sca.core.invocation.NonBlockingInterceptor$1.run(NonBlockingInterceptor.java:69)
	at org.apache.tuscany.sca.core.work.Jsr237Work.run(Jsr237Work.java:61)
	at org.apache.tuscany.sca.core.work.ThreadPoolWorkManager$DecoratingWork.run(ThreadPoolWorkManager.java:205)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Supplier RuntimeException invoking notify: java.lang.NullPointerException


------------------------------------------------------------------------------------------------------------------------------------------------------


Result of Tuscany 1.0 Version: download from http://people.apache.org/~antelder/tuscany/1.0-RC1/
------------------------------------------------------------------------------------------------------------------------------------------------------

send a request....
Customer place an order - apple
creating Orders...... I want to buy apple
order placed.   notify me when finished!
Ship apple by RailWayTransport
Ship apple by HighwayTransport  
java.lang.NullPointerException
	at org.apache.tuscany.sca.core.invocation.JDKCallbackInvocationHandler.invoke(JDKCallbackInvocationHandler.java:104)
	at $Proxy11.notify(Unknown Source)
	at orderprocess.SupplierImpl.notify(SupplierImpl.java:71)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke(JavaImplementationInvoker.java:105)
	at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:233)
	at org.apache.tuscany.sca.core.invocation.JDKCallbackInvocationHandler.invoke(JDKCallbackInvocationHandler.java:119)
	at $Proxy13.notify(Unknown Source)
	at orderprocess.RaiwayTransport.doShipping(RaiwayTransport.java:56)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke(JavaImplementationInvoker.java:105)
	at org.apache.tuscany.sca.core.invocation.NonBlockingInterceptor$1.run(NonBlockingInterceptor.java:78)
	at org.apache.tuscany.sca.core.work.Jsr237Work.run(Jsr237Work.java:61)
	at org.apache.tuscany.sca.core.work.ThreadPoolWorkManager$DecoratingWork.run(ThreadPoolWorkManager.java:205)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
Supplier RuntimeException invoking notify: java.lang.NullPointerException
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)


> Nested Callbacks Fail
> ---------------------
>
>                 Key: TUSCANY-1398
>                 URL: https://issues.apache.org/jira/browse/TUSCANY-1398
>             Project: Tuscany
>          Issue Type: Bug
>          Components: Java SCA Java Implementation Extension
>    Affects Versions: Java-SCA-0.90, Java-SCA-Next
>            Reporter: York (He Yuan) HUANG
>             Fix For: Java-SCA-Next
>
>         Attachments: non-block-orderprocess.zip
>
>
> I created a simple SCA application, which involves an order process.  The application was attached. Below is the composite file of the application. Note that, the callback method of Supplier will invoke the callback interface of Customer. Thus, there are nested callbacks.
> <?xml version="1.0" encoding="UTF-8"?>
> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
> 	targetNamespace="http://orderprocess"
> 	xmlns:cb="http://orderprocess"
> 	name="orderprocess">
> 	<component name="Customer">
> 		<implementation.java class="orderprocess.CustomerImpl"/>
> 		<reference name="supplier" target="Supplier/Order">
> 			<interface.java interface="orderprocess.Order" callbackInterface="orderprocess.OrderNotification"/>
> 		</reference>
> 	</component>
>     <component name="Supplier">
>     	<service name="Order">
> 			<interface.java interface="orderprocess.Order" callbackInterface="orderprocess.OrderNotification"/>
>     	</service>
>         <implementation.java class="orderprocess.SupplierImpl"/>
>         <reference name="railway" target="RailwayTransport/Shipment">
> 			<interface.java interface="orderprocess.Shipment" callbackInterface="orderprocess.ShipmentNotification"/>
>         </reference>
>         <reference name="highway" target="HighwayTransport">
> 			<interface.java interface="orderprocess.Shipment" callbackInterface="orderprocess.ShipmentNotification"/>
>         </reference>        
>     </component>
>     
>     <component name="HighwayTransport">
>         <service name="Shipment">
> 			<interface.java interface="orderprocess.Shipment" callbackInterface="orderprocess.ShipmentNotification"/>
>     	</service>
>         <implementation.java class="orderprocess.HighwayTransport"/>
>         <property name="period">5000</property>
>     </component>
>  
>     <component name="RailwayTransport">
>         <service name="Shipment">
> 			<interface.java interface="orderprocess.Shipment" callbackInterface="orderprocess.ShipmentNotification"/>
>     	</service>    
>         <implementation.java class="orderprocess.RaiwayTransport"/>
>         <property name="period">1000</property>
>     </component>
>     
> </composite>
> However, the application fails on both SCA Java 0.90 and trunk. Below is the error message. When I debugged the application, I found that it might be caused by wrong "from" info in ThreadMessageContext.
> java.lang.NullPointerException
> 	at org.apache.tuscany.sca.core.invocation.JDKCallbackInvocationHandler.invoke(JDKCallbackInvocationHandler.java:77)
> 	at $Proxy11.notify(Unknown Source)
> 	at orderprocess.SupplierImpl.notify(SupplierImpl.java:70)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:585)
> 	at org.apache.tuscany.sca.implementation.java.invocation.JavaTargetInvoker.invokeTarget(JavaTargetInvoker.java:112)
> 	at org.apache.tuscany.sca.implementation.java.invocation.JavaTargetInvoker.invoke(JavaTargetInvoker.java:134)
> 	at org.apache.tuscany.sca.implementation.java.invocation.TargetInvokerInvoker.invoke(TargetInvokerInvoker.java:46)
> 	at org.apache.tuscany.sca.core.invocation.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:84)
> 	at org.apache.tuscany.sca.core.invocation.JDKCallbackInvocationHandler.invoke(JDKCallbackInvocationHandler.java:85)
> 	at $Proxy13.notify(Unknown Source)
> 	at orderprocess.RaiwayTransport.doShipping(RaiwayTransport.java:56)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:585)
> 	at org.apache.tuscany.sca.implementation.java.invocation.JavaTargetInvoker.invokeTarget(JavaTargetInvoker.java:112)
> 	at org.apache.tuscany.sca.implementation.java.invocation.JavaTargetInvoker.invoke(JavaTargetInvoker.java:134)RuntimeException invoking receiveResult: java.lang.NullPointerException
> 	at org.apache.tuscany.sca.implementation.java.invocation.TargetInvokerInvoker.invoke(TargetInvokerInvoker.java:46)
> 	at org.apache.tuscany.sca.core.invocation.NonBlockingInterceptor$1.run(NonBlockingInterceptor.java:68)
> 	at org.apache.tuscany.sca.core.work.Jsr237Work.run(Jsr237Work.java:61)
> 	at org.apache.tuscany.sca.core.work.ThreadPoolWorkManager$DecoratingWork.run(ThreadPoolWorkManager.java:206)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
> 	at java.lang.Thread.run(Thread.java:595)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org