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 "Andrew Gatford (JIRA)" <ji...@apache.org> on 2006/06/23 16:21:30 UTC

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

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


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

Posted by "Chamikara Jayalath (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/SANDESHA2-7?page=all ]
     
Chamikara Jayalath resolved SANDESHA2-7:
----------------------------------------

    Resolution: Fixed

tests are pasing now after the correction in Axis2

> 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


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

Posted by "Chamikara Jayalath (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/SANDESHA2-7?page=all ]
     
Chamikara Jayalath resolved SANDESHA2-7:
----------------------------------------

    Resolution: Fixed

tests are pasing now after the correction in Axis2

> 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


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

Posted by "Chamikara Jayalath (JIRA)" <ji...@apache.org>.
    [ 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


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

Posted by "Andrew Gatford (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/SANDESHA2-7?page=all ]

Andrew Gatford updated SANDESHA2-7:
-----------------------------------

    Attachment: SandeshaReportsTestFailure.patch

Patch should solve this problem.  The Sandesha2TransportOutDesc now takes the getName as a parameter from the original transport.  This means that the check in the AxisEngine send method passes and the message is sent to the Sandesha2TransportOutDesc.invoke method.

> 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


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

Posted by "Chamikara Jayalath (JIRA)" <ji...@apache.org>.
    [ 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


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

Posted by "Andrew Gatford (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/SANDESHA2-7?page=all ]

Andrew Gatford updated SANDESHA2-7:
-----------------------------------

    Attachment: SandeshaReportsTestFailure.patch

Patch should solve this problem.  The Sandesha2TransportOutDesc now takes the getName as a parameter from the original transport.  This means that the check in the AxisEngine send method passes and the message is sent to the Sandesha2TransportOutDesc.invoke method.

> 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