Details
Description
If the URI option connection.useCompression=true, an ActiveMQBytesMessage's size will always become doubled. I changed the ActiveMQByteMessage.cpp as follow, the problem seems been solved.
class ByteCounterOutputStream : public FilterOutputStream { private: int* length; private: ByteCounterOutputStream( const ByteCounterOutputStream& ); ByteCounterOutputStream operator= ( const ByteCounterOutputStream& ); public: ByteCounterOutputStream( int* length, OutputStream* stream, bool own = false ) : FilterOutputStream( stream, own ), length( length ) { } virtual ~ByteCounterOutputStream() {} protected: virtual void doWriteByte( unsigned char value ) { (*length)++; FilterOutputStream::doWriteByte( value ); } virtual void doWriteArray( const unsigned char* buffer, int size ) { //(*length) += size; removed because of length has been double sized FilterOutputStream::doWriteArray( buffer, size ); } virtual void doWriteArrayBounded( const unsigned char* buffer, int size, int offset, int length ) { //(*this->length) += length; removed because of length has been double sized FilterOutputStream::doWriteArrayBounded( buffer, size, offset, length ); } };