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


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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to