You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2011/06/04 17:51:07 UTC
svn commit: r1131418 -
/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/openwire/marshal/BaseDataStreamMarshaller.cpp
Author: tabish
Date: Sat Jun 4 15:51:07 2011
New Revision: 1131418
URL: http://svn.apache.org/viewvc?rev=1131418&view=rev
Log:
fix for: https://issues.apache.org/jira/browse/AMQCPP-374
Modified:
activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/openwire/marshal/BaseDataStreamMarshaller.cpp
Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/openwire/marshal/BaseDataStreamMarshaller.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/openwire/marshal/BaseDataStreamMarshaller.cpp?rev=1131418&r1=1131417&r2=1131418&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/openwire/marshal/BaseDataStreamMarshaller.cpp (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/openwire/marshal/BaseDataStreamMarshaller.cpp Sat Jun 4 15:51:07 2011
@@ -674,8 +674,10 @@ std::vector<unsigned char> BaseDataStrea
if( bs->readBoolean() ) {
int size = dataIn->readInt();
- data.resize( size );
- dataIn->readFully( &data[0], (int)data.size() );
+ if (size > 0) {
+ data.resize( size );
+ dataIn->readFully( &data[0], (int)data.size() );
+ }
}
return data;
@@ -694,8 +696,10 @@ std::vector<unsigned char> BaseDataStrea
if( dataIn->readBoolean() ) {
int size = dataIn->readInt();
std::vector<unsigned char> data;
- data.resize( size );
- dataIn->readFully( &data[0], (int)data.size() );
+ if (size > 0) {
+ data.resize( size );
+ dataIn->readFully( &data[0], (int)data.size() );
+ }
return data;
}
@@ -708,14 +712,14 @@ std::vector<unsigned char> BaseDataStrea
////////////////////////////////////////////////////////////////////////////////
std::vector<unsigned char> BaseDataStreamMarshaller::tightUnmarshalConstByteArray(
- decaf::io::DataInputStream* dataIn,
- utils::BooleanStream* bs AMQCPP_UNUSED,
- int size ) {
+ decaf::io::DataInputStream* dataIn, utils::BooleanStream* bs AMQCPP_UNUSED, int size ) {
try{
std::vector<unsigned char> data;
- data.resize( size );
- dataIn->readFully( &data[0], (int)data.size() );
+ if (size > 0) {
+ data.resize( size );
+ dataIn->readFully( &data[0], (int)data.size() );
+ }
return data;
}
AMQ_CATCH_RETHROW( IOException )
@@ -729,8 +733,10 @@ std::vector<unsigned char> BaseDataStrea
try{
std::vector<unsigned char> data;
- data.resize( size );
- dataIn->readFully( &data[0], (int)data.size() );
+ if (size > 0) {
+ data.resize( size );
+ dataIn->readFully( &data[0], (int)data.size() );
+ }
return data;
}
AMQ_CATCH_RETHROW( IOException )