[ 
http://issues.apache.org/jira/browse/AXIS2-1061?page=comments#action_12429972 ] 
            
Eran Chinthaka commented on AXIS2-1061:
---------------------------------------

Few more comment on this.

1. Yes you can use the same instance of the callback, if you wait the first one 
to finish by checking isComplete --> you are back to blocking invocation :D. 
But if you do simultaneous invocations at the same time, with the same instance 
of the callback object, you might get in to trouble.

2. You are trying to use the same payload for two invocations. Let me explain 
how this is handled inside the engine.

When this payload is added to the first SOAP envelope (calling addChild of 
SOAPBody), the detach method of the payload will be called. In this method we 
remove all the existing links to the parents this payload has.
Ok, then you add the same payload to the SOAP envelope. Again, the detach 
method will be called. Here the payload gets out of the first SOAPEnvelope and 
attaches itself to the second SOAP envelope.

Thats the reason behind you getting, one SOAP envelope with the payload and the 
other without it. And thats why cloning is encouraged. 


> sendReceiveNonBlocking fails to send multiple (identical) requests
> ------------------------------------------------------------------
>
>                 Key: AXIS2-1061
>                 URL: http://issues.apache.org/jira/browse/AXIS2-1061
>             Project: Apache Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: client-api
>         Environment: Windows XP sp2, jdk 1.5.03, mac os X 10.4.7, jdk 1.5_06, 
> axis2 17/08/06
>            Reporter: Michele Mazzucco
>            Priority: Critical
>
> The call sendReceiveNonBlocking call fails when multiple, identical messages 
> are sent. More in detail, the first send succeeds, but the second fails 
> because the message is sent with an empty SOAP body. A workaround is to 
> interleave two consecutive send operations by (at least) 600 ms (on my 
> system).
> In other words:
> for (int i = 0; i < execution.requestNum; i++) {
>       OMElement payload = getTestOMElement();
>       sender.sendReceiveNonBlocking(payload, callback);
> }
> succeeds, while:
> OMElement payload payload = getTestOMElement();
> for (int i = 0; i < execution.requestNum; i++) {
>       sender.sendReceiveNonBlocking(payload, callback);
> }
> fails, because (from the second send) the SOAP message is empty

-- 
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

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to