axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chamikara Jayalath <chamikar...@gmail.com>
Subject [Axis2] Possible bug in the AxisEngine.resume() method
Date Thu, 15 Dec 2005 06:21:59 GMT
Hi All,

There seems to be a bug in the AxisEngine.resume() method (which was
recently added)

Wihtin this, only the currently attached execution chain is resumed. But
AxisEngine.send() method attachs two execution chains (service specific and
global) and invoke both. Because of this if pausing happen in a service
specific out handler, the global out handlers are ommitted when resuming.
Also resume mothod does not seem to be calling the MessageReceiver or
TransportSender.

I have attached a fix to this. First doing two msgContext.invoke() calls in
the send() method will not work because when resuming we don't know weather
the first or second chain we were in when pausing. So I combined both chains
to a one ArrayList and invoked at once.

Also since we have to call the MessageReceiver or TransportSender after the
invocation of handlers (depending on weather we paused in the send() method
or receive() method) it seems better to have two resume methods named
resumeSend() and resumeReceive() which will call TransportSender and
MessageReceiver respectively (after invoking the execution chain).

Please see the attached patch.

Thank you,
Chamikara

Mime
View raw message