Incorrect length specification in loose encoding?
-------------------------------------------------
Key: AMQ-718
URL: https://issues.apache.org/activemq/browse/AMQ-718
Project: ActiveMQ
Type: Bug
Components: Transport
Reporter: Andrew Lusk
Unless loose-encoded length is mean to mean something different from
tight-encoded length, I believe that the length written to the wire for
loosely-encoded OpenWire messages is off by 4. I imagine this hasn't been
caught before because most clients synchronously read packets off the wire and
so can ignore the length specification.
---
activemq-core/src/main/java/org/apache/activemq/openwire/OpenWireFormat.java
(revision 399408)
+++
activemq-core/src/main/java/org/apache/activemq/openwire/OpenWireFormat.java
(working copy)
@@ -172,7 +172,7 @@
sequence = baos.toByteSequence();
if( !sizePrefixDisabled ) {
- size = sequence.getLength()-4;
+ size = sequence.getLength();
ByteArrayPacket packet = new ByteArrayPacket(sequence);
PacketData.writeIntBig(packet, size);
}
@@ -253,7 +253,7 @@
if( !sizePrefixDisabled ) {
looseOut.close();
ByteSequence sequence = baos.toByteSequence();
- dataOut.writeInt(sequence.getLength()-4);
+ dataOut.writeInt(sequence.getLength());
dataOut.write(sequence.getData(), sequence.getOffset(),
sequence.getLength());
}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira