You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Raul Kripalani (JIRA)" <ji...@apache.org> on 2012/04/23 23:32:33 UTC

[jira] [Created] (AMQ-3817) Marshalled properties don't get updated if modified during preProcessDispatch (TraceBrokerPathPlugin looks broken)

Raul Kripalani created AMQ-3817:
-----------------------------------

             Summary: Marshalled properties don't get updated if modified during preProcessDispatch (TraceBrokerPathPlugin looks broken)
                 Key: AMQ-3817
                 URL: https://issues.apache.org/jira/browse/AMQ-3817
             Project: ActiveMQ
          Issue Type: Bug
            Reporter: Raul Kripalani


Enabling the TraceBrokerPathPlugin with a custom property name = 'JMSXTrace' sends outdated information to the consumer. When inspecting the property at the consumer code, it has not been updated with the complete broker path. Only the first broker, where the message was produced into, appears. No matter how many brokers are in the route (tested with 4).

Having dug into the code, it looks like marshalledProperties in Message were already set but not dirtied when setProperty was called again from the TraceBrokerPathPlugin. Also, Message.beforeMarshall() assumes that since marshalledProperties is already set, it doesn't need updating. Therefore, the message is dispatched to the consumer with an old version of the properties.

I think Message.setProperty() should check whether marshalledProperties already has a value. If it does, it should re-marshall (i.e. dirty the cache).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Reopened] (AMQ-3817) Marshalled properties don't get updated if modified during preProcessDispatch (TraceBrokerPathPlugin looks broken)

Posted by "Timothy Bish (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AMQ-3817?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Timothy Bish reopened AMQ-3817:
-------------------------------


You probably don't want to mark this as resolved until someone reviews it and actually commits the patch
                
> Marshalled properties don't get updated if modified during preProcessDispatch (TraceBrokerPathPlugin looks broken)
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-3817
>                 URL: https://issues.apache.org/jira/browse/AMQ-3817
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.5.1
>            Reporter: Raul Kripalani
>              Labels: marshaling, openwire, plugin
>             Fix For: 5.5.1, 5.6.0
>
>         Attachments: amq-tracebrokerpath-fix.diff, amq-tracebrokerpath-testcase.diff
>
>
> Enabling the TraceBrokerPathPlugin with a custom property name = 'JMSXTrace' sends outdated information to the consumer. When inspecting the property at the consumer code, it has not been updated with the complete broker path. Only the first broker, where the message was produced into, appears. No matter how many brokers are in the route (tested with 4).
> Having dug into the code, it looks like marshalledProperties in Message were already set but not dirtied when setProperty was called again from the TraceBrokerPathPlugin. Also, Message.beforeMarshall() assumes that since marshalledProperties is already set, it doesn't need updating. Therefore, the message is dispatched to the consumer with an old version of the properties.
> I think Message.setProperty() should check whether marshalledProperties already has a value. If it does, it should re-marshall (i.e. dirty the cache).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Resolved] (AMQ-3817) Marshalled properties don't get updated if modified during preProcessDispatch (TraceBrokerPathPlugin looks broken)

Posted by "Timothy Bish (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AMQ-3817?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Timothy Bish resolved AMQ-3817.
-------------------------------

    Resolution: Fixed
      Assignee: Timothy Bish

Patch applied with thanks.  
                
> Marshalled properties don't get updated if modified during preProcessDispatch (TraceBrokerPathPlugin looks broken)
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-3817
>                 URL: https://issues.apache.org/jira/browse/AMQ-3817
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.5.1
>            Reporter: Raul Kripalani
>            Assignee: Timothy Bish
>              Labels: marshaling, openwire, plugin
>             Fix For: 5.6.0, 5.5.1
>
>         Attachments: amq-tracebrokerpath-fix.diff, amq-tracebrokerpath-testcase.diff
>
>
> Enabling the TraceBrokerPathPlugin with a custom property name = 'JMSXTrace' sends outdated information to the consumer. When inspecting the property at the consumer code, it has not been updated with the complete broker path. Only the first broker, where the message was produced into, appears. No matter how many brokers are in the route (tested with 4).
> Having dug into the code, it looks like marshalledProperties in Message were already set but not dirtied when setProperty was called again from the TraceBrokerPathPlugin. Also, Message.beforeMarshall() assumes that since marshalledProperties is already set, it doesn't need updating. Therefore, the message is dispatched to the consumer with an old version of the properties.
> I think Message.setProperty() should check whether marshalledProperties already has a value. If it does, it should re-marshall (i.e. dirty the cache).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (AMQ-3817) Marshalled properties don't get updated if modified during preProcessDispatch (TraceBrokerPathPlugin looks broken)

Posted by "Timothy Bish (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AMQ-3817?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13260549#comment-13260549 ] 

Timothy Bish commented on AMQ-3817:
-----------------------------------

I recommend you try and create a JUnit test that demonstrates the issue, that way you can ensure that when it gets fixed that it will stay fixed into the future. 
                
> Marshalled properties don't get updated if modified during preProcessDispatch (TraceBrokerPathPlugin looks broken)
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-3817
>                 URL: https://issues.apache.org/jira/browse/AMQ-3817
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.5.1
>            Reporter: Raul Kripalani
>              Labels: marshaling, openwire, plugin
>
> Enabling the TraceBrokerPathPlugin with a custom property name = 'JMSXTrace' sends outdated information to the consumer. When inspecting the property at the consumer code, it has not been updated with the complete broker path. Only the first broker, where the message was produced into, appears. No matter how many brokers are in the route (tested with 4).
> Having dug into the code, it looks like marshalledProperties in Message were already set but not dirtied when setProperty was called again from the TraceBrokerPathPlugin. Also, Message.beforeMarshall() assumes that since marshalledProperties is already set, it doesn't need updating. Therefore, the message is dispatched to the consumer with an old version of the properties.
> I think Message.setProperty() should check whether marshalledProperties already has a value. If it does, it should re-marshall (i.e. dirty the cache).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (AMQ-3817) Marshalled properties don't get updated if modified during preProcessDispatch (TraceBrokerPathPlugin looks broken)

Posted by "Raul Kripalani (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AMQ-3817?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Raul Kripalani updated AMQ-3817:
--------------------------------

    Patch Info: Patch Available
    
> Marshalled properties don't get updated if modified during preProcessDispatch (TraceBrokerPathPlugin looks broken)
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-3817
>                 URL: https://issues.apache.org/jira/browse/AMQ-3817
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.5.1
>            Reporter: Raul Kripalani
>              Labels: marshaling, openwire, plugin
>             Fix For: 5.5.1, 5.6.0
>
>         Attachments: amq-tracebrokerpath-fix.diff, amq-tracebrokerpath-testcase.diff
>
>
> Enabling the TraceBrokerPathPlugin with a custom property name = 'JMSXTrace' sends outdated information to the consumer. When inspecting the property at the consumer code, it has not been updated with the complete broker path. Only the first broker, where the message was produced into, appears. No matter how many brokers are in the route (tested with 4).
> Having dug into the code, it looks like marshalledProperties in Message were already set but not dirtied when setProperty was called again from the TraceBrokerPathPlugin. Also, Message.beforeMarshall() assumes that since marshalledProperties is already set, it doesn't need updating. Therefore, the message is dispatched to the consumer with an old version of the properties.
> I think Message.setProperty() should check whether marshalledProperties already has a value. If it does, it should re-marshall (i.e. dirty the cache).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (AMQ-3817) Marshalled properties don't get updated if modified during preProcessDispatch (TraceBrokerPathPlugin looks broken)

Posted by "Raul Kripalani (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AMQ-3817?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Raul Kripalani updated AMQ-3817:
--------------------------------

    Attachment: amq-tracebrokerpath-testcase.diff
                amq-tracebrokerpath-fix.diff

Attached test case and fix.
                
> Marshalled properties don't get updated if modified during preProcessDispatch (TraceBrokerPathPlugin looks broken)
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-3817
>                 URL: https://issues.apache.org/jira/browse/AMQ-3817
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.5.1
>            Reporter: Raul Kripalani
>              Labels: marshaling, openwire, plugin
>         Attachments: amq-tracebrokerpath-fix.diff, amq-tracebrokerpath-testcase.diff
>
>
> Enabling the TraceBrokerPathPlugin with a custom property name = 'JMSXTrace' sends outdated information to the consumer. When inspecting the property at the consumer code, it has not been updated with the complete broker path. Only the first broker, where the message was produced into, appears. No matter how many brokers are in the route (tested with 4).
> Having dug into the code, it looks like marshalledProperties in Message were already set but not dirtied when setProperty was called again from the TraceBrokerPathPlugin. Also, Message.beforeMarshall() assumes that since marshalledProperties is already set, it doesn't need updating. Therefore, the message is dispatched to the consumer with an old version of the properties.
> I think Message.setProperty() should check whether marshalledProperties already has a value. If it does, it should re-marshall (i.e. dirty the cache).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Resolved] (AMQ-3817) Marshalled properties don't get updated if modified during preProcessDispatch (TraceBrokerPathPlugin looks broken)

Posted by "Raul Kripalani (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AMQ-3817?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Raul Kripalani resolved AMQ-3817.
---------------------------------

       Resolution: Fixed
    Fix Version/s: 5.5.1
                   5.6.0

Please apply fix on 5.5 branch also.
Thanks!
                
> Marshalled properties don't get updated if modified during preProcessDispatch (TraceBrokerPathPlugin looks broken)
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-3817
>                 URL: https://issues.apache.org/jira/browse/AMQ-3817
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.5.1
>            Reporter: Raul Kripalani
>              Labels: marshaling, openwire, plugin
>             Fix For: 5.6.0, 5.5.1
>
>         Attachments: amq-tracebrokerpath-fix.diff, amq-tracebrokerpath-testcase.diff
>
>
> Enabling the TraceBrokerPathPlugin with a custom property name = 'JMSXTrace' sends outdated information to the consumer. When inspecting the property at the consumer code, it has not been updated with the complete broker path. Only the first broker, where the message was produced into, appears. No matter how many brokers are in the route (tested with 4).
> Having dug into the code, it looks like marshalledProperties in Message were already set but not dirtied when setProperty was called again from the TraceBrokerPathPlugin. Also, Message.beforeMarshall() assumes that since marshalledProperties is already set, it doesn't need updating. Therefore, the message is dispatched to the consumer with an old version of the properties.
> I think Message.setProperty() should check whether marshalledProperties already has a value. If it does, it should re-marshall (i.e. dirty the cache).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (AMQ-3817) Marshalled properties don't get updated if modified during preProcessDispatch (TraceBrokerPathPlugin looks broken)

Posted by "Raul Kripalani (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AMQ-3817?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Raul Kripalani updated AMQ-3817:
--------------------------------

          Component/s: Broker
    Affects Version/s: 5.5.1
    
> Marshalled properties don't get updated if modified during preProcessDispatch (TraceBrokerPathPlugin looks broken)
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-3817
>                 URL: https://issues.apache.org/jira/browse/AMQ-3817
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.5.1
>            Reporter: Raul Kripalani
>              Labels: marshaling, openwire, plugin
>
> Enabling the TraceBrokerPathPlugin with a custom property name = 'JMSXTrace' sends outdated information to the consumer. When inspecting the property at the consumer code, it has not been updated with the complete broker path. Only the first broker, where the message was produced into, appears. No matter how many brokers are in the route (tested with 4).
> Having dug into the code, it looks like marshalledProperties in Message were already set but not dirtied when setProperty was called again from the TraceBrokerPathPlugin. Also, Message.beforeMarshall() assumes that since marshalledProperties is already set, it doesn't need updating. Therefore, the message is dispatched to the consumer with an old version of the properties.
> I think Message.setProperty() should check whether marshalledProperties already has a value. If it does, it should re-marshall (i.e. dirty the cache).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira