You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by "Alexander Zobkov (JIRA)" <ji...@apache.org> on 2010/02/12 07:51:35 UTC

[jira] Issue Comment Edited: (SM-1932) Properties of NormalizedMessage can be lost

    [ https://issues.apache.org/activemq/browse/SM-1932?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=57540#action_57540 ] 

Alexander Zobkov edited comment on SM-1932 at 2/12/10 6:50 AM:
---------------------------------------------------------------

Problem is resolved, by using cxf interceptor on PRE_INVOKE phase, but i don't understand why NormalizedMessage properties can be lost (SedaFlow) in the way between endpoints if custom cxf interceptor on INVOKE phase. With JMSFlow Properties does not copies at all if interceptor on INVOKE phase.

||Phase|| 	Functions ||
|RECEIVE 	|Transport level processing |
|(PRE/USER/POST)_STREAM |	Stream level processing/transformations |
|READ |	This is where header reading typically occurs. 
|(PRE/USER/POST)_PROTOCOL | 	Protocol processing, such as JAX-WS SOAP handlers |
|UNMARSHAL |	Unmarshalling of the request |
|(PRE/USER/POST)_LOGICAL  |	Processing of the umarshalled request |
|PRE_INVOKE  |	Pre invocation actions |
|INVOKE |	Invocation of the service | 
|POST_INVOKE | 	Invocation of the outgoing chain if there is one |

      was (Author: alexanderz):
    Problem is resolved, by using cxf interceptor on PRE_INVOKE phase, but i don't understand why NormalizedMessage properties can be lost if custom cxf interceptor on INVOKE phase.
  
> Properties of NormalizedMessage can be lost
> -------------------------------------------
>
>                 Key: SM-1932
>                 URL: https://issues.apache.org/activemq/browse/SM-1932
>             Project: ServiceMix
>          Issue Type: Bug
>          Components: servicemix-core
>    Affects Versions: 3.3.1
>         Environment: Windows XP.
>  java version "1.5.0_14"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_14-b03)
> Java HotSpot(TM) Client VM (build 1.5.0_14-b03, mixed mode)
> java version "1.6.0_17"
> Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
> Java HotSpot(TM) Client VM (build 14.3-b01, mixed mode, sharing)
> SMX 3.3.(1)
>            Reporter: Alexander Zobkov
>            Priority: Minor
>         Attachments: servicemix-itests.zip
>
>
> There is strange problem with copying properties in SMX/Flows/JBI components - properties can be lost in the way between two endpoints. The problem does not depends on endpoints/jbi components and can happens anywhere (see below). For example if we lost special property for eip: resequencer/eip:asyncbridge and it will not work properly. In attachment you can find reproducer based on servicemix-itests sub-project. If test will passed for first time, please run it again (and change amount of messages), it is non stable problem, but it is possible to catch.
> {code}
> <cxf-bc> -> <pipeline> -> trace
>                           |
>                      <saxon>
> {code}
> {panel:title= Property lost in exchange number (18) between  pipeline and trace}
> {noformat}
> ------------------------------------------------------------------------------
> Test set: org.apache.servicemix.itests.deadlock.DeadlockTest
> -------------------------------------------------------------------------------
> Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 8 sec <<< FAILURE!
> test(org.apache.servicemix.itests.deadlock.DeadlockTest)  Time elapsed: 7.86 sec  <<< FAILURE!
> junit.framework.AssertionFailedError: DefaultComparator.SEQUENCE_NUMBER_KEY must be here: 
>  Index:18 
>  Exchange: InOnly[
>   id: ID:16.52.178.165-126b7f9136b-5:16
>   status: Done
>   role: consumer
>   service: {http://example.com/performancetest}trace
>   endpoint: receiver
>   in: <?xml version="1.0" encoding="UTF-8"?><mtosiNotification xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><id/></mtosiNotification>
> ]
>  Exchange Properties: org.apache.servicemix.flow = Seda
> Pipeline.Transformer.{http://example.com/performancetest}pipeline.endpoint = ID:16.52.178.165-126b7f9136b-5:6
> Pipeline.Consumer.{http://example.com/performancetest}pipeline.endpoint = ID:16.52.178.165-126b7f9136b-4:6
> org.apache.servicemix.correlationId = ID:16.52.178.165-126b7f9136b-4:6
> org.apache.servicemix.datestamp = 2/10/10 4:02 PM
> org.apache.servicemix.senderEndpoint = {http://example.com/performancetest}pipeline:endpoint
>         at junit.framework.Assert.fail(Assert.java:47)
>         at junit.framework.Assert.assertTrue(Assert.java:20)
>         at junit.framework.Assert.assertNotNull(Assert.java:220)
>         at org.apache.servicemix.itests.deadlock.DeadlockTest.test(DeadlockTest.java:85)
> {noformat}
> {panel}
> {panel:title= Property lost in exchange number (1604) between  pipeline and xslt}
> {noformat}
> -------------------------------------------------------------------------------
> Test set: org.apache.servicemix.itests.deadlock.DeadlockTest
> -------------------------------------------------------------------------------
> Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 66.97 sec <<< FAILURE!
> test(org.apache.servicemix.itests.deadlock.DeadlockTest)  Time elapsed: 66.017 sec  <<< FAILURE!
> junit.framework.AssertionFailedError: DefaultComparator.SEQUENCE_NUMBER_KEY must be here: 
>  Index:1604 
>  Exchange: InOut[
>   id: ID:16.52.178.165-126b7fc2e5f-5:1541
>   status: Done
>   role: consumer
>   service: {http://example.com/performancetest}xslt
>   endpoint: endpoint
>   in: <?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:notify xmlns:ns2="tmf854.v1">
>                 <ns2:topic>topic/Fault</ns2:topic>
>                 <ns2:message>
>                     <ns2:Alarm>
>                         <ns2:eventInfo>
>                             <ns2:notificationId>0001</ns2:notificationId>
>                             <ns2:objectName>
>                                 <ns2:mdNm>mdsim</ns2:mdNm>
>                                 <ns2:meNm>ne1inessim</ns2:meNm>
>                             </ns2:objectName>
>                             <ns2:objectType>OT_MANAGED_ELEMENT</ns2:objectType>
>                             <ns2:osTime>20070528042211.11Z</ns2:osTime>
>                             <ns2:neTime>20061130110029.00Z</ns2:neTime>
>                             <ns2:edgePointRelated>false</ns2:edgePointRelated>
>                         </ns2:eventInfo>
>                         <ns2:isClearable>true</ns2:isClearable>
>                         <ns2:aliasNameList>
>                             <ns2:alias>
>                                 <ns2:aliasName>LAEU:ne1inessim</ns2:aliasName>
>                                 <ns2:aliasValue>LAEU:ne1inessim</ns2:aliasValue>
>                             </ns2:alias>
>                         </ns2:aliasNameList>
>                         <ns2:layerRate/>
>                         <ns2:probableCause>
>                             <ns2:ru>false</ns2:ru>
>       ...
>   out: <?xml version="1.0" encoding="UTF-8"?><mtosiNotification xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><id/></mtosiNotification>
> ]
>  Exchange Properties: org.apache.servicemix.flow = Seda
> Pipeline.Consumer.{http://example.com/performancetest}pipeline.endpoint = ID:16.52.178.165-126b7fc2e5f-4:772
> org.apache.servicemix.correlationId = ID:16.52.178.165-126b7fc2e5f-4:772
> Pipeline.Transformer = true
> org.apache.servicemix.datestamp = 2/10/10 4:06 PM
> Pipeline.ConsumerMEP = http://www.w3.org/2004/08/wsdl/in-only
> org.apache.servicemix.senderEndpoint = {http://example.com/performancetest}pipeline:endpoint
>         at junit.framework.Assert.fail(Assert.java:47)
>         at junit.framework.Assert.assertTrue(Assert.java:20)
>         at junit.framework.Assert.assertNotNull(Assert.java:220)
>         at org.apache.servicemix.itests.deadlock.DeadlockTest.test(DeadlockTest.java:85)
> {noformat}
> {panel}
> {panel:title= Property lost in exchange number (1112) between  pipeline and xslt}
> {noformat}
> -------------------------------------------------------------------------------
> Test set: org.apache.servicemix.itests.deadlock.DeadlockTest
> -------------------------------------------------------------------------------
> Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 64.644 sec <<< FAILURE!
> test(org.apache.servicemix.itests.deadlock.DeadlockTest)  Time elapsed: 64.019 sec  <<< FAILURE!
> junit.framework.AssertionFailedError: DefaultComparator.SEQUENCE_NUMBER_KEY must be here: 
>  Index:1112 
>  Exchange: InOut[
>   id: ID:16.52.178.165-126b80da3a3-5:1099
>   status: Done
>   role: consumer
>   service: {http://example.com/performancetest}xslt
>   endpoint: endpoint
>   in: <?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:notify xmlns:ns2="tmf854.v1">
>                 <ns2:topic>topic/Fault</ns2:topic>
>                 <ns2:message>
>                     <ns2:Alarm>
>                         <ns2:eventInfo>
>                             <ns2:notificationId>0001</ns2:notificationId>
>                             <ns2:objectName>
>                                 <ns2:mdNm>mdsim</ns2:mdNm>
>                                 <ns2:meNm>ne1inessim</ns2:meNm>
>                             </ns2:objectName>
>                             <ns2:objectType>OT_MANAGED_ELEMENT</ns2:objectType>
>                             <ns2:osTime>20070528042211.11Z</ns2:osTime>
>                             <ns2:neTime>20061130110029.00Z</ns2:neTime>
>                             <ns2:edgePointRelated>false</ns2:edgePointRelated>
>                         </ns2:eventInfo>
>                         <ns2:isClearable>true</ns2:isClearable>
>                         <ns2:aliasNameList>
>                             <ns2:alias>
>                                 <ns2:aliasName>LAEU:ne1inessim</ns2:aliasName>
>                                 <ns2:aliasValue>LAEU:ne1inessim</ns2:aliasValue>
>                             </ns2:alias>
>                         </ns2:aliasNameList>
>                         <ns2:layerRate/>
>                         <ns2:probableCause>
>                             <ns2:ru>false</ns2:ru>
>       ...
>   out: <?xml version="1.0" encoding="UTF-8"?><mtosiNotification xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><id/></mtosiNotification>
> ]
>  Exchange Properties: org.apache.servicemix.flow = Seda
> Pipeline.Consumer.{http://example.com/performancetest}pipeline.endpoint = ID:16.52.178.165-126b80da3a3-4:551
> org.apache.servicemix.correlationId = ID:16.52.178.165-126b80da3a3-4:551
> Pipeline.Transformer = true
> org.apache.servicemix.datestamp = 2/10/10 4:25 PM
> Pipeline.ConsumerMEP = http://www.w3.org/2004/08/wsdl/in-only
> org.apache.servicemix.senderEndpoint = {http://example.com/performancetest}pipeline:endpoint
>         at junit.framework.Assert.fail(Assert.java:47)
>         at junit.framework.Assert.assertTrue(Assert.java:20)
>         at junit.framework.Assert.assertNotNull(Assert.java:220)
>         at org.apache.servicemix.itests.deadlock.DeadlockTest.test(DeadlockTest.java:85)
> {noformat}
> {panel}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.