When sending STOMP frames out over WS the marshal isn't doing a proper
encode based on the STOMP version in use and so header values can be
transmitted without proper escaping.
(cherry picked from commit 2490c85fc5cc27cb32f01553784ef6bc63cd15f0)
The handshake now takes place inside of the async task that timesout so
that if the SSL handshake takes too long the connection attempt will
honor protocolDetectionTimeout and actually timeout. Also, change the
default of protocolDetectionTimeout to 30 seconds so it matches the rest
of the broker's default connection timeout settings.
(cherry picked from commit 2a0b785a041f35aa668d2371c9374eb0fd02063c)
Need to preserve the messages in the dispatched list when a
client-individual ack comes in so that on abort the state remains
dispatched and the message can still be ack'd
(cherry picked from commit e83bb6dc38ed793ead919e5d7d6d9146816c66a5)
Correctly ACK inside a TX and then Abort and then ACK again outside a TX
to show that the broker will then mark the message as consumed.
(cherry picked from commit bd8661796b190ef605458cdd7a0d90d9af4f51a0)
Fix handling of incoming MQTT binary data over WS. The handler should
use the MQTTCodec to ensure that partial or packed frames are fully
processed
(cherry picked from commit e69367fbc329aa66a90e33a917b0d4ccd86c015e)
Respect the wireFormat.maxFrameSize option on WS and WSS transports
allowing binary content larger than 65535
(cherry picked from commit 2e2d5ddd3de7d0fe36ce5eb3d4fe81e97fe990a4)
Protocol detection now takes into account the variable length header in
the CONNECT packet.
(cherry picked from commit 808a4c5c173bf789326d33ed6bbbc7a6544bf8e0)
Honor the sender settle mode from the client and ensure we always set
receiver mode to FIRST to reflect we don't support SECOND. Adds tests
coverage and needed test client changes for this.
(cherry picked from commit 381a1ae20611427eddb6a8743e4043c9917cfbbc)
Adds some additional logging to the connection validation code, adds
some additional tests as well.
(cherry picked from commit 0752d840b90a5acdb04410362fb16c943f09dc2f)
Fixing potential NPE when calling updateMessage on a Queue store in
KahaDB if subscription statistics are enabled. Also reduced the
visibily from public to protected to subscription statistic related
methods that shouldn't be public and added null pointer checks there as
well.
https://issues.apache.org/jira/browse/AMQ-6642
(cherry picked from commit 2731f04f1ca81312d08ffc21c0ceb09513165b7c)
Switching MessageDatabase to store JournalSyncStrategy as its enum value
instead of String to avoid the performance penalty of comparing Strings
everytime isEnableJournalDiskSyncs() is called which currently happens
on every write.
(cherry picked from commit 0d824a8e6832419cb952ef503504c5296b069ad9)
Track the message producer create and ensure it is not recreated on
failover if the creation resulted in an error response. Add failover
level tests to cover consumer and producer failed create tracking.
(cherry picked from commit 90b808ab98b760f06885a5f45628353c9d2224f2)
On network connector add or update after broker start (such as the
runtime plugins) the mbean was not created. There was also a couple of
other properties not set. Fixed the network connector start to be the
same for normal broker start and runtime reload.
(cherry picked from commit bab0887ed60907d4ccac1824d83371a592f94925)
Fixing a race condition in TaskRunnerFactory where if multiple threads
call createTaskRunner() at the same time some threads might see the
executor as null (if it hasn't finished initializing) leading to the
creation of extra DedicatedTaskRunner objects instead of sharing a
PooledTaskRunner.
(cherry picked from commit fe5164a404ebcb0879c1b769e16c00f475320419)
The soTimeout value needs to be applied to the TcpTransport as well as
the socket because the NIO transports use the value later on when
establishing a connection
(cherry picked from commit f6bf823dedba54dea40b597f1762ac6d7308ffa6)