You are viewing a plain text version of this content. The canonical link for it is here.
Posted to sandesha-dev@ws.apache.org by "Chamikara Jayalath (JIRA)" <ji...@apache.org> on 2006/06/28 01:20:30 UTC

[jira] Commented: (SANDESHA2-7) SandeshaReportsTest.testSequenceReports fails as the terminate sequence message is not received

    [ http://issues.apache.org/jira/browse/SANDESHA2-7?page=comments#action_12418144 ] 

Chamikara Jayalath commented on SANDESHA2-7:
--------------------------------------------

I guess the actual error is with Axis2. The send method simply overrides the Sender using the scheme of the ReplyTo EPR. But this may hv been set by some other handler purposely (which is the case in our scenario).  Setting the sender based on the scheme should happen only if a handler has not previously set one. Let me try to correct this

> SandeshaReportsTest.testSequenceReports fails as the terminate sequence message is not received
> -----------------------------------------------------------------------------------------------
>
>          Key: SANDESHA2-7
>          URL: http://issues.apache.org/jira/browse/SANDESHA2-7
>      Project: Apache Sandesha2
>         Type: Bug

>     Reporter: Andrew Gatford
>  Attachments: SandeshaReportsTestFailure.patch
>
> SandeshaReportsTest.testSequenceReports (and others) fail as the terminate sequence message is not received.
> The problem appears to have been caused by a change in the AxisEngine.send method
>         if (!msgContext.isPaused()) {
>             // write the Message to the Wire
>             TransportOutDescription transportOut = msgContext.getTransportOut();
>             TransportSender sender = transportOut.getSender();
>             //there may be instance where you want to send the response to replyTo
>             if (msgContext.isServerSide() && msgContext.getTo() != null) {
>                 try {
>                     String replyToAddress = msgContext.getTo().getAddress();
>                     if (!(AddressingConstants.Final.WSA_ANONYMOUS_URL.equals(replyToAddress)
>                             || AddressingConstants.Submission.WSA_ANONYMOUS_URL.equals(replyToAddress))) {
>                         URI uri = new URI(replyToAddress);
>                         String scheme = uri.getScheme();
>                         if (!transportOut.getName().getLocalPart().equals(scheme)) {
>                             ConfigurationContext configurationContext = msgContext.getConfigurationContext();
>                             transportOut = configurationContext.getAxisConfiguration()
>                                     .getTransportOut(new QName(scheme));
>                             if (transportOut == null) {
>                                 throw new AxisFault("Can not find the transport sender : " + scheme);
>                             }
>                             sender = transportOut.getSender();
>                         }
>                     }
>                     //
>                 } catch (URISyntaxException e) {
>                     log.info("error in infer transport from replyTo address");
>                 }
>             }
> The terminate message sets the Transport out to be the Sandesha2TransportOutDesc.
> The check transportOut.getName().getLocalPart().equals(scheme) fails as the scheme returned is http but the getLocalPart is  Sandesha2TransportOutDesc.
> This means the default http sender is used.
> This then means the message isn't sent by the sender thread and ACK messages are not piggy backed.

-- 
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: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org