[ 
http://issues.apache.org/jira/browse/AXIS-1908?page=comments#action_12316474 ] 

thomas schaedler commented on AXIS-1908:
----------------------------------------

Thanks for your quick reply.

I see things different. The code you have shown is in the method 'invokeEngine' 
and is OK for me, but my concern was the method invokeEngineOneWay', which is 
chosen if you call invoke() on a oneway message (void return type).

see in method invoke()
...
        if(!invokeOneWay) { //this is 'true' for me, hence -> invokeEngineOneWay
            invokeEngine(msgContext);
        } else {
            invokeEngineOneWay(msgContext);
        }
...

therefore this code is invoked:

    private void invokeEngineOneWay(final MessageContext msgContext) {
        Runnable runnable = new Runnable(){
            public void run() {
                try {
                    service.getEngine().invoke( msgContext );
                } catch (AxisFault af){
                    log.debug(Messages.getMessage("exceptionPrinting"), af);
                }
            }
        };
        Thread thread = new Thread(runnable);
        thread.start();
    }

as you can see: absolutely no fault will be thrown back to the caller.

The whole thing is called/invoked by a wsdl2java generated stub:
...
        setRequestHeaders(_call);
        setAttachments(_call);
        _call.invokeOneWay(new java.lang.Object[] {someId, fromDate, toDate});
...

and again it's origin is the following call (using the stub):

    stub.printReport(someId,from,to);

because of the method call path from above, i NEVER get an Exception if 
something happens after the last call (service.getEngine().invoke( msgContext 
)). if there is some error, is will never know it which is not what i want.

got it?


> Exception Handling in org.apache.axis.client.Call.invokeEngineOneWay
> --------------------------------------------------------------------
>
>          Key: AXIS-1908
>          URL: http://issues.apache.org/jira/browse/AXIS-1908
>      Project: Apache Axis
>         Type: Improvement
>   Components: Basic Architecture
>  Environment: Windows XP Pro, Java 1.4.2, Axis 1.2 RC3
>     Reporter: Bobby Lawrence
>     Priority: Minor

>
> It would be nice if the private method invokeEngineOneWay threw a runtime 
> subclass of AxisFault or something instead of just catching it an logging.
> I see that it has 'todo' comments around it, I thought that reworking the 
> architecture slightly to have a runtime version of an AxisFault might help.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to