[ 
https://issues.apache.org/jira/browse/AMQ-9658?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17924338#comment-17924338
 ] 

ASF subversion and git services commented on AMQ-9658:
------------------------------------------------------

Commit 730cd7353e5ec78e75992070704ebf88656827da in activemq's branch 
refs/heads/activemq-5.19.x from Christopher L. Shannon
[ https://gitbox.apache.org/repos/asf?p=activemq.git;h=730cd7353e ]

AMQ-9658 - Improve auto+nio+ssl transport initialization for amqp

This makes small fix to ensure that the full initialization
buffer will always be entirely read and processed when using
the auto+nio+ssl transport with amqp. Previously the code assumed
only 8 bytes would ever exist (which should be the case under normal
circumstances) but now it will handle any extra bytes if a client sent
more.

(cherry picked from commit 526e83b3cb06ed099ef239b7b7c9d0d252f17a0f)


> TcpTransport volatile receiveCounter is not incremented atomically
> ------------------------------------------------------------------
>
>                 Key: AMQ-9658
>                 URL: https://issues.apache.org/jira/browse/AMQ-9658
>             Project: ActiveMQ Classic
>          Issue Type: Bug
>    Affects Versions: 5.18.6, 6.1.5
>            Reporter: Christopher L. Shannon
>            Assignee: Christopher L. Shannon
>            Priority: Minor
>             Fix For: 6.2.0, 5.19.0, 6.1.6
>
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> incrementing volatile integers is not an atomic operation because the 
> previous value must first be read, then incremented, and reset so it is a 
> multi step process. I noticed in the TCP transport code that the receive 
> counter was a volatile integer and not being incremented properly.  This 
> counter is should only be incremented in the same thread anyways (it can be 
> read by other threads like inactivity monitor) so it may not technically be 
> an issue in practice  but it still should be handled properly.
> The fix is to switch to an AtomicInteger. I also noticed a minor improvement 
> to make to to the NIOSSLtransport init code that is only used for the 
> auto+nio+ssl transport that I will fix as well. (ensure the full 
> initialization buffer will always be entirely read and processed when using 
> the auto+nio+ssl transport. ) This only applies to OpenWire and AMQP.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact


Reply via email to