On Thu, Aug 27, 2009 at 11:29 AM, ant elder<[email protected]> wrote:
> On Thu, Aug 27, 2009 at 11:19 AM, Simon Laws<[email protected]> wrote:
>>> Nothing is throwing any "target not found" type exceptions. And
>>
>> It's currently an AxisFault. To make this make sense in this special
>> binding.sca case you'll have to reinstate the binding.sca invoker [1]
>> to trap the exception and wrap it with something that the RuntimeWire
>> can spot.
>>
>> Simon
>>
>
> In the testcase this is all local with two nodes within the single jvm
> so using the local sca binding not the WS based one so there's no
> AxisFault.
>
>  ...ant
>

To make this a bit clearer, this is the stack trace of the reference
invocation just before it fails:

Thread [main] (Suspended (breakpoint at line 42 in StatelessScopeContainer))    
        StatelessScopeContainer<KEY>.getWrapper(KEY) line: 42   
        JavaImplementationInvoker.invoke(Message) line: 100     
        PassByValueInterceptor.invoke(Message) line: 61 
        SCABindingInvoker.invoke(Message) line: 61      
        PassByValueInterceptor.invoke(Message) line: 61 
        JDKInvocationHandler.invoke(InvocationChain, Object[], RuntimeWire,
EndpointReference) line: 277
        JDKInvocationHandler.invoke(Object, Method, Object[]) line: 142 
        $Proxy10.sayHello(String) line: not available   
        HelloworldImpl.sayHello(String) line: 40        
        NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not
available [native method]
        NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39      
        DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25  
        Method.invoke(Object, Object...) line: 597      
        JavaImplementationInvoker.invoke(Message) line: 136     
        PassByValueInterceptor.invoke(Message) line: 61 
        SCABindingInvoker.invoke(Message) line: 61      
        PassByValueInterceptor.invoke(Message) line: 61 
        JDKInvocationHandler.invoke(InvocationChain, Object[], RuntimeWire,
EndpointReference) line: 277
        JDKInvocationHandler.invoke(Object, Method, Object[]) line: 142 
        $Proxy10.sayHello(String) line: not available   
        StopStartNodesTestCaseFIXME.testCalculator() line: 76   

That scope container at the top is actually in a STOPPED state but
nothing in the getWrapper call path checks that so eventually it gets
an NPE. We could (should) change that so it notices the scope
container is stopped and throws an exception. The
SCABindingInvoker.invoke call could then catch that exception and do
something, I guess thats where you're suggesting inserting the
initInvocationChains call. If the service node has been moved from
being local to be remote we actually need to change the
SCABindingInvoker impl from being the local sca binding to be the
remote one. I wonder if we need a new generic SCA binding impl that
can handle both local and remote invocations based on whether the
endpoint is local or remote.

   ...ant

Reply via email to