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 2012/10/04 15:51:43 UTC
svn commit: r1394076 -
/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/openwire/marshal/BaseDataStreamMarshaller.cpp
Author: tabish
Date: Thu Oct 4 13:51:43 2012
New Revision: 1394076
URL: http://svn.apache.org/viewvc?rev=1394076&view=rev
Log:
Fix a potential memory leak when unmarshaling a BrokerError object and the connection drops.
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=1394076&r1=1394075&r2=1394076&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 Thu Oct 4 13:51:43 2012
@@ -46,156 +46,115 @@ using namespace decaf::lang;
utils::HexTable BaseDataStreamMarshaller::hexTable;
////////////////////////////////////////////////////////////////////////////////
-commands::DataStructure* BaseDataStreamMarshaller::tightUnmarshalCachedObject(
- OpenWireFormat* wireFormat,
- decaf::io::DataInputStream* dataIn,
- utils::BooleanStream* bs ) {
-
- try{
- return wireFormat->tightUnmarshalNestedObject( dataIn, bs );
+commands::DataStructure* BaseDataStreamMarshaller::tightUnmarshalCachedObject(OpenWireFormat* wireFormat, decaf::io::DataInputStream* dataIn,utils::BooleanStream* bs) {
+ try {
+ return wireFormat->tightUnmarshalNestedObject(dataIn, bs);
}
- AMQ_CATCH_RETHROW( IOException )
- AMQ_CATCH_EXCEPTION_CONVERT( Exception, IOException )
- AMQ_CATCHALL_THROW( IOException )
+ AMQ_CATCH_RETHROW(IOException)
+ AMQ_CATCH_EXCEPTION_CONVERT(Exception, IOException)
+ AMQ_CATCHALL_THROW(IOException)
}
////////////////////////////////////////////////////////////////////////////////
-int BaseDataStreamMarshaller::tightMarshalCachedObject1(
- OpenWireFormat* wireFormat,
- commands::DataStructure* data,
- utils::BooleanStream* bs ) {
-
- try{
- return wireFormat->tightMarshalNestedObject1( data, bs );
+int BaseDataStreamMarshaller::tightMarshalCachedObject1(OpenWireFormat* wireFormat, commands::DataStructure* data, utils::BooleanStream* bs) {
+ try {
+ return wireFormat->tightMarshalNestedObject1(data, bs);
}
- AMQ_CATCH_RETHROW( IOException )
- AMQ_CATCH_EXCEPTION_CONVERT( Exception, IOException )
- AMQ_CATCHALL_THROW( IOException )
+ AMQ_CATCH_RETHROW(IOException)
+ AMQ_CATCH_EXCEPTION_CONVERT(Exception, IOException)
+ AMQ_CATCHALL_THROW(IOException)
}
////////////////////////////////////////////////////////////////////////////////
-void BaseDataStreamMarshaller::tightMarshalCachedObject2(
- OpenWireFormat* wireFormat,
- commands::DataStructure* data,
- decaf::io::DataOutputStream* dataOut,
- utils::BooleanStream* bs ) {
-
- try{
- wireFormat->tightMarshalNestedObject2( data, dataOut, bs );
+void BaseDataStreamMarshaller::tightMarshalCachedObject2(OpenWireFormat* wireFormat, commands::DataStructure* data, decaf::io::DataOutputStream* dataOut,utils::BooleanStream* bs) {
+ try {
+ wireFormat->tightMarshalNestedObject2(data, dataOut, bs);
}
- AMQ_CATCH_RETHROW( IOException )
- AMQ_CATCH_EXCEPTION_CONVERT( Exception, IOException )
- AMQ_CATCHALL_THROW( IOException )
+ AMQ_CATCH_RETHROW(IOException)
+ AMQ_CATCH_EXCEPTION_CONVERT(Exception, IOException)
+ AMQ_CATCHALL_THROW(IOException)
}
////////////////////////////////////////////////////////////////////////////////
-void BaseDataStreamMarshaller::looseMarshalCachedObject(
- OpenWireFormat* wireFormat,
- commands::DataStructure* data,
- decaf::io::DataOutputStream* dataOut ) {
-
- try{
- wireFormat->looseMarshalNestedObject( data, dataOut );
+void BaseDataStreamMarshaller::looseMarshalCachedObject(OpenWireFormat* wireFormat, commands::DataStructure* data, decaf::io::DataOutputStream* dataOut) {
+ try {
+ wireFormat->looseMarshalNestedObject(data, dataOut);
}
- AMQ_CATCH_RETHROW( IOException )
- AMQ_CATCH_EXCEPTION_CONVERT( Exception, IOException )
- AMQ_CATCHALL_THROW( IOException )
+ AMQ_CATCH_RETHROW(IOException)
+ AMQ_CATCH_EXCEPTION_CONVERT(Exception, IOException)
+ AMQ_CATCHALL_THROW(IOException)
}
////////////////////////////////////////////////////////////////////////////////
-commands::DataStructure* BaseDataStreamMarshaller::looseUnmarshalCachedObject(
- OpenWireFormat* wireFormat,
- decaf::io::DataInputStream* dataIn ) {
-
- try{
- return wireFormat->looseUnmarshalNestedObject( dataIn );
+commands::DataStructure* BaseDataStreamMarshaller::looseUnmarshalCachedObject(OpenWireFormat* wireFormat, decaf::io::DataInputStream* dataIn) {
+ try {
+ return wireFormat->looseUnmarshalNestedObject(dataIn);
}
- AMQ_CATCH_RETHROW( IOException )
- AMQ_CATCH_EXCEPTION_CONVERT( Exception, IOException )
- AMQ_CATCHALL_THROW( IOException )
+ AMQ_CATCH_RETHROW(IOException)
+ AMQ_CATCH_EXCEPTION_CONVERT(Exception, IOException)
+ AMQ_CATCHALL_THROW(IOException)
}
////////////////////////////////////////////////////////////////////////////////
-int BaseDataStreamMarshaller::tightMarshalNestedObject1(
- OpenWireFormat* wireFormat,
- commands::DataStructure* object,
- utils::BooleanStream* bs ) {
-
- try{
- return wireFormat->tightMarshalNestedObject1( object, bs );
+int BaseDataStreamMarshaller::tightMarshalNestedObject1(OpenWireFormat* wireFormat, commands::DataStructure* object, utils::BooleanStream* bs) {
+ try {
+ return wireFormat->tightMarshalNestedObject1(object, bs);
}
- AMQ_CATCH_RETHROW( IOException )
- AMQ_CATCH_EXCEPTION_CONVERT( Exception, IOException )
- AMQ_CATCHALL_THROW( IOException )
+ AMQ_CATCH_RETHROW(IOException)
+ AMQ_CATCH_EXCEPTION_CONVERT(Exception, IOException)
+ AMQ_CATCHALL_THROW(IOException)
}
////////////////////////////////////////////////////////////////////////////////
-void BaseDataStreamMarshaller::tightMarshalNestedObject2(
- OpenWireFormat* wireFormat,
- commands::DataStructure* object,
- decaf::io::DataOutputStream* dataOut,
- utils::BooleanStream* bs ) {
-
- try{
- wireFormat->tightMarshalNestedObject2( object, dataOut, bs );
+void BaseDataStreamMarshaller::tightMarshalNestedObject2(OpenWireFormat* wireFormat, commands::DataStructure* object, decaf::io::DataOutputStream* dataOut, utils::BooleanStream* bs) {
+ try {
+ wireFormat->tightMarshalNestedObject2(object, dataOut, bs);
}
- AMQ_CATCH_RETHROW( IOException )
- AMQ_CATCH_EXCEPTION_CONVERT( Exception, IOException )
- AMQ_CATCHALL_THROW( IOException )
+ AMQ_CATCH_RETHROW(IOException)
+ AMQ_CATCH_EXCEPTION_CONVERT(Exception, IOException)
+ AMQ_CATCHALL_THROW(IOException)
}
////////////////////////////////////////////////////////////////////////////////
-commands::DataStructure* BaseDataStreamMarshaller::tightUnmarshalNestedObject(
- OpenWireFormat* wireFormat,
- decaf::io::DataInputStream* dataIn,
- utils::BooleanStream* bs ) {
-
- try{
- return wireFormat->tightUnmarshalNestedObject( dataIn, bs );
+commands::DataStructure* BaseDataStreamMarshaller::tightUnmarshalNestedObject(OpenWireFormat* wireFormat, decaf::io::DataInputStream* dataIn,utils::BooleanStream* bs) {
+ try {
+ return wireFormat->tightUnmarshalNestedObject(dataIn, bs);
}
- AMQ_CATCH_RETHROW( IOException )
- AMQ_CATCH_EXCEPTION_CONVERT( Exception, IOException )
- AMQ_CATCHALL_THROW( IOException )
+ AMQ_CATCH_RETHROW(IOException)
+ AMQ_CATCH_EXCEPTION_CONVERT(Exception, IOException)
+ AMQ_CATCHALL_THROW(IOException)
}
////////////////////////////////////////////////////////////////////////////////
-commands::DataStructure* BaseDataStreamMarshaller::looseUnmarshalNestedObject(
- OpenWireFormat* wireFormat,
- decaf::io::DataInputStream* dataIn ) {
+commands::DataStructure* BaseDataStreamMarshaller::looseUnmarshalNestedObject(OpenWireFormat* wireFormat, decaf::io::DataInputStream* dataIn) {
- try{
- return wireFormat->looseUnmarshalNestedObject( dataIn );
+ try {
+ return wireFormat->looseUnmarshalNestedObject(dataIn);
}
- AMQ_CATCH_RETHROW( IOException )
- AMQ_CATCH_EXCEPTION_CONVERT( Exception, IOException )
- AMQ_CATCHALL_THROW( IOException )
+ AMQ_CATCH_RETHROW(IOException)
+ AMQ_CATCH_EXCEPTION_CONVERT(Exception, IOException)
+ AMQ_CATCHALL_THROW(IOException)
}
////////////////////////////////////////////////////////////////////////////////
-void BaseDataStreamMarshaller::looseMarshalNestedObject(
- OpenWireFormat* wireFormat,
- commands::DataStructure* object,
- decaf::io::DataOutputStream* dataOut ) {
+void BaseDataStreamMarshaller::looseMarshalNestedObject(OpenWireFormat* wireFormat, commands::DataStructure* object, decaf::io::DataOutputStream* dataOut) {
- try{
- wireFormat->looseMarshalNestedObject( object, dataOut );
+ try {
+ wireFormat->looseMarshalNestedObject(object, dataOut);
}
- AMQ_CATCH_RETHROW( IOException )
- AMQ_CATCH_EXCEPTION_CONVERT( Exception, IOException )
- AMQ_CATCHALL_THROW( IOException )
+ AMQ_CATCH_RETHROW(IOException)
+ AMQ_CATCH_EXCEPTION_CONVERT(Exception, IOException)
+ AMQ_CATCHALL_THROW(IOException)
}
////////////////////////////////////////////////////////////////////////////////
-std::string BaseDataStreamMarshaller::tightUnmarshalString(
- decaf::io::DataInputStream* dataIn,
- utils::BooleanStream* bs ) {
+std::string BaseDataStreamMarshaller::tightUnmarshalString(decaf::io::DataInputStream* dataIn, utils::BooleanStream* bs) {
- try{
+ try {
- if( bs->readBoolean() ) {
-
- if (bs->readBoolean() ) {
- return this->readAsciiString( dataIn );
+ if (bs->readBoolean()) {
+ if (bs->readBoolean()) {
+ return this->readAsciiString(dataIn);
} else {
return dataIn->readUTF();
}
@@ -203,143 +162,122 @@ std::string BaseDataStreamMarshaller::ti
return "";
}
}
- AMQ_CATCH_RETHROW( IOException )
- AMQ_CATCH_EXCEPTION_CONVERT( Exception, IOException )
- AMQ_CATCHALL_THROW( IOException )
+ AMQ_CATCH_RETHROW(IOException)
+ AMQ_CATCH_EXCEPTION_CONVERT(Exception, IOException)
+ AMQ_CATCHALL_THROW(IOException)
}
////////////////////////////////////////////////////////////////////////////////
-int BaseDataStreamMarshaller::tightMarshalString1( const std::string& value,
- utils::BooleanStream* bs ) {
- try{
+int BaseDataStreamMarshaller::tightMarshalString1(const std::string& value, utils::BooleanStream* bs) {
+ try {
- bs->writeBoolean( value != "" );
- if( value != "" )
- {
+ bs->writeBoolean(value != "");
+ if (value != "") {
size_t strlen = value.length();
int utflen = 0;
int c = 0;
bool isOnlyAscii = true;
- for( size_t i = 0; i < strlen; ++i ) {
+ for (size_t i = 0; i < strlen; ++i) {
c = value[i];
- if( (c >= 0x0001) && (c <= 0x007F) ) // ASCII char
- {
+ if ((c >= 0x0001) && (c <= 0x007F)) { // ASCII char
utflen++;
- }
- else if( c > 0x07FF )
- {
+ } else if (c > 0x07FF) {
utflen += 3;
isOnlyAscii = false;
- }
- else
- {
+ } else {
isOnlyAscii = false;
utflen += 2;
}
}
- if( utflen >= 0x10000 ) {
- throw IOException(
- __FILE__, __LINE__,
- "BaseDataStreamMarshaller::tightMarshalString1 - "
- "Encountered a String value that is too long to encode." );
+ if (utflen >= 0x10000) {
+ throw IOException(__FILE__, __LINE__, "BaseDataStreamMarshaller::tightMarshalString1 - "
+ "Encountered a String value that is too long to encode.");
}
- bs->writeBoolean( isOnlyAscii );
+ bs->writeBoolean(isOnlyAscii);
return utflen + 2;
- }
- else
- {
+ } else {
return 0;
}
}
- AMQ_CATCH_RETHROW( IOException )
- AMQ_CATCH_EXCEPTION_CONVERT( ActiveMQException, IOException )
- AMQ_CATCHALL_THROW( IOException )
+ AMQ_CATCH_RETHROW(IOException)
+ AMQ_CATCH_EXCEPTION_CONVERT(ActiveMQException, IOException)
+ AMQ_CATCHALL_THROW(IOException)
}
////////////////////////////////////////////////////////////////////////////////
-void BaseDataStreamMarshaller::tightMarshalString2(
- const std::string& value,
- decaf::io::DataOutputStream* dataOut,
- utils::BooleanStream* bs ) {
+void BaseDataStreamMarshaller::tightMarshalString2(const std::string& value, decaf::io::DataOutputStream* dataOut, utils::BooleanStream* bs) {
- try{
-
- if( bs->readBoolean() ) {
+ try {
+ if (bs->readBoolean()) {
// If we verified it only holds ascii values
- if( bs->readBoolean() ) {
- dataOut->writeShort( (short)value.length() );
- dataOut->writeBytes( value );
+ if (bs->readBoolean()) {
+ dataOut->writeShort((short) value.length());
+ dataOut->writeBytes(value);
} else {
- dataOut->writeUTF( value );
+ dataOut->writeUTF(value);
}
}
}
- AMQ_CATCH_RETHROW( IOException )
- AMQ_CATCH_EXCEPTION_CONVERT( Exception, IOException )
- AMQ_CATCHALL_THROW( IOException )
+ AMQ_CATCH_RETHROW(IOException)
+ AMQ_CATCH_EXCEPTION_CONVERT(Exception, IOException)
+ AMQ_CATCHALL_THROW(IOException)
}
////////////////////////////////////////////////////////////////////////////////
-void BaseDataStreamMarshaller::looseMarshalString(
- const std::string value,
- decaf::io::DataOutputStream* dataOut ) {
-
- try{
+void BaseDataStreamMarshaller::looseMarshalString(const std::string value, decaf::io::DataOutputStream* dataOut) {
- dataOut->writeBoolean( value != "" );
- if( value != "" ) {
- dataOut->writeUTF( value );
+ try {
+ dataOut->writeBoolean(value != "");
+ if (value != "") {
+ dataOut->writeUTF(value);
}
}
- AMQ_CATCH_RETHROW( IOException )
- AMQ_CATCH_EXCEPTION_CONVERT( Exception, IOException )
- AMQ_CATCHALL_THROW( IOException )
+ AMQ_CATCH_RETHROW(IOException)
+ AMQ_CATCH_EXCEPTION_CONVERT(Exception, IOException)
+ AMQ_CATCHALL_THROW(IOException)
}
////////////////////////////////////////////////////////////////////////////////
-std::string BaseDataStreamMarshaller::looseUnmarshalString(
- decaf::io::DataInputStream* dataIn ) {
+std::string BaseDataStreamMarshaller::looseUnmarshalString(decaf::io::DataInputStream* dataIn) {
- try{
- if( dataIn->readBoolean() ) {
+ try {
+ if (dataIn->readBoolean()) {
return dataIn->readUTF();
} else {
return "";
}
}
- AMQ_CATCH_RETHROW( IOException )
- AMQ_CATCH_EXCEPTION_CONVERT( Exception, IOException )
- AMQ_CATCHALL_THROW( IOException )
+ AMQ_CATCH_RETHROW(IOException)
+ AMQ_CATCH_EXCEPTION_CONVERT(Exception, IOException)
+ AMQ_CATCHALL_THROW(IOException)
}
////////////////////////////////////////////////////////////////////////////////
-int BaseDataStreamMarshaller::tightMarshalLong1( OpenWireFormat* wireFormat AMQCPP_UNUSED,
- long long value,
- utils::BooleanStream* bs ) {
+int BaseDataStreamMarshaller::tightMarshalLong1(OpenWireFormat* wireFormat AMQCPP_UNUSED, long long value, utils::BooleanStream* bs) {
- try{
+ try {
- if( value == 0L ) {
+ if (value == 0L) {
- bs->writeBoolean( false );
- bs->writeBoolean( false );
+ bs->writeBoolean(false);
+ bs->writeBoolean(false);
return 0;
} else {
- unsigned long long ul = (unsigned long long)value;
- if( (ul & 0xFFFFFFFFFFFF0000ULL) == 0ULL ) {
+ unsigned long long ul = (unsigned long long) value;
+ if ((ul & 0xFFFFFFFFFFFF0000ULL) == 0ULL) {
bs->writeBoolean(false);
bs->writeBoolean(true);
return 2;
- } else if( (ul & 0xFFFFFFFF00000000ULL) == 0ULL ) {
+ } else if ((ul & 0xFFFFFFFF00000000ULL) == 0ULL) {
bs->writeBoolean(true);
bs->writeBoolean(false);
return 4;
@@ -350,468 +288,425 @@ int BaseDataStreamMarshaller::tightMarsh
}
}
}
- AMQ_CATCH_RETHROW( IOException )
- AMQ_CATCH_EXCEPTION_CONVERT( Exception, IOException )
- AMQ_CATCHALL_THROW( IOException )
+ AMQ_CATCH_RETHROW(IOException)
+ AMQ_CATCH_EXCEPTION_CONVERT(Exception, IOException)
+ AMQ_CATCHALL_THROW(IOException)
}
////////////////////////////////////////////////////////////////////////////////
-void BaseDataStreamMarshaller::tightMarshalLong2( OpenWireFormat* wireFormat AMQCPP_UNUSED,
- long long value,
- decaf::io::DataOutputStream* dataOut,
- utils::BooleanStream* bs ) {
- try{
+void BaseDataStreamMarshaller::tightMarshalLong2(OpenWireFormat* wireFormat AMQCPP_UNUSED, long long value, decaf::io::DataOutputStream* dataOut,
+ utils::BooleanStream* bs) {
+ try {
- if( bs->readBoolean() ) {
+ if (bs->readBoolean()) {
- if( bs->readBoolean() ) {
- dataOut->writeLong( value );
+ if (bs->readBoolean()) {
+ dataOut->writeLong(value);
} else {
- dataOut->writeInt( (int)value );
+ dataOut->writeInt((int) value);
}
} else {
- if( bs->readBoolean() ) {
- dataOut->writeShort( (short)value );
+ if (bs->readBoolean()) {
+ dataOut->writeShort((short) value);
}
}
}
- AMQ_CATCH_RETHROW( IOException )
- AMQ_CATCH_EXCEPTION_CONVERT( Exception, IOException )
- AMQ_CATCHALL_THROW( IOException )
+ AMQ_CATCH_RETHROW(IOException)
+ AMQ_CATCH_EXCEPTION_CONVERT(Exception, IOException)
+ AMQ_CATCHALL_THROW(IOException)
}
////////////////////////////////////////////////////////////////////////////////
-long long BaseDataStreamMarshaller::tightUnmarshalLong(
- OpenWireFormat* wireFormat AMQCPP_UNUSED,
- decaf::io::DataInputStream* dataIn,
- utils::BooleanStream* bs ) {
+long long BaseDataStreamMarshaller::tightUnmarshalLong(OpenWireFormat* wireFormat AMQCPP_UNUSED, decaf::io::DataInputStream* dataIn, utils::BooleanStream* bs) {
- try{
- if( bs->readBoolean() ) {
+ try {
+ if (bs->readBoolean()) {
- if( bs->readBoolean() ) {
+ if (bs->readBoolean()) {
return dataIn->readLong();
} else {
- return (unsigned int)dataIn->readInt();
+ return (unsigned int) dataIn->readInt();
}
} else {
- if( bs->readBoolean()) {
+ if (bs->readBoolean()) {
return dataIn->readUnsignedShort();
} else {
return 0;
}
}
}
- AMQ_CATCH_RETHROW( IOException )
- AMQ_CATCH_EXCEPTION_CONVERT( Exception, IOException )
- AMQ_CATCHALL_THROW( IOException )
+ AMQ_CATCH_RETHROW(IOException)
+ AMQ_CATCH_EXCEPTION_CONVERT(Exception, IOException)
+ AMQ_CATCHALL_THROW(IOException)
}
////////////////////////////////////////////////////////////////////////////////
-void BaseDataStreamMarshaller::looseMarshalLong( OpenWireFormat* wireFormat AMQCPP_UNUSED,
- long long value,
- decaf::io::DataOutputStream* dataOut ) {
+void BaseDataStreamMarshaller::looseMarshalLong(OpenWireFormat* wireFormat AMQCPP_UNUSED, long long value, decaf::io::DataOutputStream* dataOut) {
- try{
- dataOut->writeLong( value );
+ try {
+ dataOut->writeLong(value);
}
- AMQ_CATCH_RETHROW( IOException )
- AMQ_CATCH_EXCEPTION_CONVERT( Exception, IOException )
- AMQ_CATCHALL_THROW( IOException )
+ AMQ_CATCH_RETHROW(IOException)
+ AMQ_CATCH_EXCEPTION_CONVERT(Exception, IOException)
+ AMQ_CATCHALL_THROW(IOException)
}
////////////////////////////////////////////////////////////////////////////////
-long long BaseDataStreamMarshaller::looseUnmarshalLong(
- OpenWireFormat* wireFormat AMQCPP_UNUSED,
- decaf::io::DataInputStream* dataIn ) {
+long long BaseDataStreamMarshaller::looseUnmarshalLong(OpenWireFormat* wireFormat AMQCPP_UNUSED, decaf::io::DataInputStream* dataIn) {
- try{
+ try {
return dataIn->readLong();
}
- AMQ_CATCH_RETHROW( IOException )
- AMQ_CATCH_EXCEPTION_CONVERT( Exception, IOException )
- AMQ_CATCHALL_THROW( IOException )
+ AMQ_CATCH_RETHROW(IOException)
+ AMQ_CATCH_EXCEPTION_CONVERT(Exception, IOException)
+ AMQ_CATCHALL_THROW(IOException)
}
////////////////////////////////////////////////////////////////////////////////
-commands::DataStructure* BaseDataStreamMarshaller::tightUnmarshalBrokerError(
- OpenWireFormat* wireFormat,
- decaf::io::DataInputStream* dataIn,
- utils::BooleanStream* bs ) {
+commands::DataStructure* BaseDataStreamMarshaller::tightUnmarshalBrokerError(OpenWireFormat* wireFormat, decaf::io::DataInputStream* dataIn,utils::BooleanStream* bs) {
- try{
+ try {
- if( bs->readBoolean() ) {
+ if (bs->readBoolean()) {
- BrokerError* answer = new BrokerError();
+ std::auto_ptr<BrokerError> answer(new BrokerError());
- answer->setExceptionClass( tightUnmarshalString( dataIn, bs ) );
- answer->setMessage( tightUnmarshalString( dataIn, bs ) );
+ answer->setExceptionClass(tightUnmarshalString(dataIn, bs));
+ answer->setMessage(tightUnmarshalString(dataIn, bs));
- if( wireFormat->isStackTraceEnabled() ) {
+ if (wireFormat->isStackTraceEnabled()) {
short length = dataIn->readShort();
- std::vector< Pointer<BrokerError::StackTraceElement> > stackTrace;
+ std::vector<Pointer<BrokerError::StackTraceElement> > stackTrace;
- for( int i = 0; i < length; ++i ) {
+ for (int i = 0; i < length; ++i) {
- Pointer<BrokerError::StackTraceElement> element(
- new BrokerError::StackTraceElement );
+ Pointer<BrokerError::StackTraceElement> element(new BrokerError::StackTraceElement);
- element->ClassName = tightUnmarshalString( dataIn, bs );
- element->MethodName = tightUnmarshalString( dataIn, bs );
- element->FileName = tightUnmarshalString( dataIn, bs );
+ element->ClassName = tightUnmarshalString(dataIn, bs);
+ element->MethodName = tightUnmarshalString(dataIn, bs);
+ element->FileName = tightUnmarshalString(dataIn, bs);
element->LineNumber = dataIn->readInt();
- stackTrace.push_back( element );
+ stackTrace.push_back(element);
}
- answer->setStackTraceElements( stackTrace );
- answer->setCause( Pointer<BrokerError>( dynamic_cast<BrokerError*>(
- tightUnmarshalBrokerError( wireFormat, dataIn, bs ) ) ) );
+ answer->setStackTraceElements(stackTrace);
+ answer->setCause(Pointer<BrokerError>(dynamic_cast<BrokerError*>(tightUnmarshalBrokerError(wireFormat, dataIn, bs))));
}
- return answer;
+ return answer.release();
} else {
return NULL;
}
}
- AMQ_CATCH_RETHROW( IOException )
- AMQ_CATCH_EXCEPTION_CONVERT( Exception, IOException )
- AMQ_CATCHALL_THROW( IOException )
+ AMQ_CATCH_RETHROW(IOException)
+ AMQ_CATCH_EXCEPTION_CONVERT(Exception, IOException)
+ AMQ_CATCHALL_THROW(IOException)
}
////////////////////////////////////////////////////////////////////////////////
-int BaseDataStreamMarshaller::tightMarshalBrokerError1(
- OpenWireFormat* wireFormat,
- commands::DataStructure* data,
- utils::BooleanStream* bs ) {
+int BaseDataStreamMarshaller::tightMarshalBrokerError1(OpenWireFormat* wireFormat, commands::DataStructure* data, utils::BooleanStream* bs) {
- try{
+ try {
- BrokerError* error = dynamic_cast<BrokerError*>( data );
+ BrokerError* error = dynamic_cast<BrokerError*>(data);
- if( error == NULL ) {
+ if (error == NULL) {
- bs->writeBoolean( false );
+ bs->writeBoolean(false);
return 0;
} else {
int rc = 0;
- bs->writeBoolean( true );
- rc += tightMarshalString1( error->getExceptionClass(), bs );
- rc += tightMarshalString1( error->getMessage(), bs );
+ bs->writeBoolean(true);
+ rc += tightMarshalString1(error->getExceptionClass(), bs);
+ rc += tightMarshalString1(error->getMessage(), bs);
- if( wireFormat->isStackTraceEnabled() ) {
+ if (wireFormat->isStackTraceEnabled()) {
rc += 2;
- for( unsigned int i = 0; i < error->getStackTraceElements().size(); ++i ) {
+ for (unsigned int i = 0; i < error->getStackTraceElements().size(); ++i) {
- const Pointer<BrokerError::StackTraceElement> element =
- error->getStackTraceElements()[i];
- rc += tightMarshalString1( element->ClassName, bs );
- rc += tightMarshalString1( element->MethodName, bs );
- rc += tightMarshalString1( element->FileName, bs );
+ const Pointer<BrokerError::StackTraceElement> element = error->getStackTraceElements()[i];
+ rc += tightMarshalString1(element->ClassName, bs);
+ rc += tightMarshalString1(element->MethodName, bs);
+ rc += tightMarshalString1(element->FileName, bs);
rc += 4;
}
- rc += tightMarshalBrokerError1( wireFormat, error->getCause().get(), bs );
+ rc += tightMarshalBrokerError1(wireFormat, error->getCause().get(), bs);
}
return rc;
}
}
- AMQ_CATCH_RETHROW( IOException )
- AMQ_CATCH_EXCEPTION_CONVERT( Exception, IOException )
- AMQ_CATCHALL_THROW( IOException )
+ AMQ_CATCH_RETHROW(IOException)
+ AMQ_CATCH_EXCEPTION_CONVERT(Exception, IOException)
+ AMQ_CATCHALL_THROW(IOException)
}
////////////////////////////////////////////////////////////////////////////////
-void BaseDataStreamMarshaller::tightMarshalBrokerError2(
- OpenWireFormat* wireFormat,
- commands::DataStructure* data,
- decaf::io::DataOutputStream* dataOut,
- utils::BooleanStream* bs ) {
+void BaseDataStreamMarshaller::tightMarshalBrokerError2(OpenWireFormat* wireFormat, commands::DataStructure* data, decaf::io::DataOutputStream* dataOut,
+ utils::BooleanStream* bs) {
- try{
+ try {
- if( bs->readBoolean() ) {
+ if (bs->readBoolean()) {
- BrokerError* error = dynamic_cast<BrokerError*>( data );
+ BrokerError* error = dynamic_cast<BrokerError*>(data);
- tightMarshalString2( error->getExceptionClass(), dataOut, bs );
- tightMarshalString2( error->getMessage(), dataOut, bs );
+ tightMarshalString2(error->getExceptionClass(), dataOut, bs);
+ tightMarshalString2(error->getMessage(), dataOut, bs);
- if( wireFormat->isStackTraceEnabled() ) {
+ if (wireFormat->isStackTraceEnabled()) {
- int length = (short)error->getStackTraceElements().size();
- dataOut->writeShort( (short)length );
+ int length = (short) error->getStackTraceElements().size();
+ dataOut->writeShort((short) length);
- for( int i = 0; i < length; ++i ) {
+ for (int i = 0; i < length; ++i) {
- Pointer<BrokerError::StackTraceElement> element =
- error->getStackTraceElements()[i];
+ Pointer<BrokerError::StackTraceElement> element = error->getStackTraceElements()[i];
- tightMarshalString2( element->ClassName, dataOut, bs );
- tightMarshalString2( element->MethodName, dataOut, bs );
- tightMarshalString2( element->FileName, dataOut, bs );
- dataOut->writeInt( element->LineNumber );
+ tightMarshalString2(element->ClassName, dataOut, bs);
+ tightMarshalString2(element->MethodName, dataOut, bs);
+ tightMarshalString2(element->FileName, dataOut, bs);
+ dataOut->writeInt(element->LineNumber);
}
- tightMarshalBrokerError2(
- wireFormat, error->getCause().get(), dataOut, bs );
+ tightMarshalBrokerError2(wireFormat, error->getCause().get(), dataOut, bs);
}
}
}
- AMQ_CATCH_RETHROW( IOException )
- AMQ_CATCH_EXCEPTION_CONVERT( Exception, IOException )
- AMQ_CATCHALL_THROW( IOException )
+ AMQ_CATCH_RETHROW(IOException)
+ AMQ_CATCH_EXCEPTION_CONVERT(Exception, IOException)
+ AMQ_CATCHALL_THROW(IOException)
}
////////////////////////////////////////////////////////////////////////////////
-commands::DataStructure* BaseDataStreamMarshaller::looseUnmarshalBrokerError(
- OpenWireFormat* wireFormat,
- decaf::io::DataInputStream* dataIn ) {
+commands::DataStructure* BaseDataStreamMarshaller::looseUnmarshalBrokerError(OpenWireFormat* wireFormat, decaf::io::DataInputStream* dataIn) {
- try{
+ try {
- if( dataIn->readBoolean() ) {
+ if (dataIn->readBoolean()) {
- BrokerError* answer = new BrokerError();
+ std::auto_ptr<BrokerError> answer(new BrokerError());
- answer->setExceptionClass( looseUnmarshalString( dataIn ) );
- answer->setMessage( looseUnmarshalString( dataIn ) );
+ answer->setExceptionClass(looseUnmarshalString(dataIn));
+ answer->setMessage(looseUnmarshalString(dataIn));
- if( wireFormat->isStackTraceEnabled() ) {
+ if (wireFormat->isStackTraceEnabled()) {
short length = dataIn->readShort();
- std::vector< Pointer<BrokerError::StackTraceElement> > stackTrace;
+ std::vector<Pointer<BrokerError::StackTraceElement> > stackTrace;
- for( int i = 0; i < length; ++i ) {
+ for (int i = 0; i < length; ++i) {
- Pointer<BrokerError::StackTraceElement> element(
- new BrokerError::StackTraceElement );
+ Pointer<BrokerError::StackTraceElement> element(new BrokerError::StackTraceElement);
- element->ClassName = looseUnmarshalString( dataIn );
- element->MethodName = looseUnmarshalString( dataIn );
- element->FileName = looseUnmarshalString( dataIn );
+ element->ClassName = looseUnmarshalString(dataIn);
+ element->MethodName = looseUnmarshalString(dataIn);
+ element->FileName = looseUnmarshalString(dataIn);
element->LineNumber = dataIn->readInt();
- stackTrace.push_back( element );
+ stackTrace.push_back(element);
}
- answer->setStackTraceElements( stackTrace );
- answer->setCause( Pointer<BrokerError>( dynamic_cast<BrokerError*>(
- looseUnmarshalBrokerError( wireFormat, dataIn ) ) ) );
+ answer->setStackTraceElements(stackTrace);
+ answer->setCause(Pointer<BrokerError>(dynamic_cast<BrokerError*>(looseUnmarshalBrokerError(wireFormat, dataIn))));
}
- return answer;
-
+ return answer.release();
} else {
return NULL;
}
}
- AMQ_CATCH_RETHROW( IOException )
- AMQ_CATCH_EXCEPTION_CONVERT( Exception, IOException )
- AMQ_CATCHALL_THROW( IOException )
+ AMQ_CATCH_RETHROW(IOException)
+ AMQ_CATCH_EXCEPTION_CONVERT(Exception, IOException)
+ AMQ_CATCHALL_THROW(IOException)
}
////////////////////////////////////////////////////////////////////////////////
-void BaseDataStreamMarshaller::looseMarshalBrokerError(
- OpenWireFormat* wireFormat,
- commands::DataStructure* data,
- decaf::io::DataOutputStream* dataOut ) {
+void BaseDataStreamMarshaller::looseMarshalBrokerError(OpenWireFormat* wireFormat, commands::DataStructure* data, decaf::io::DataOutputStream* dataOut) {
- try{
+ try {
- BrokerError* error = dynamic_cast<BrokerError*>( data );
+ BrokerError* error = dynamic_cast<BrokerError*>(data);
- dataOut->write( error != NULL );
+ dataOut->write(error != NULL);
- if( error != NULL ){
+ if (error != NULL) {
- looseMarshalString( error->getExceptionClass(), dataOut );
- looseMarshalString( error->getMessage(), dataOut );
+ looseMarshalString(error->getExceptionClass(), dataOut);
+ looseMarshalString(error->getMessage(), dataOut);
- if( wireFormat->isStackTraceEnabled() ) {
+ if (wireFormat->isStackTraceEnabled()) {
size_t length = error->getStackTraceElements().size();
- dataOut->writeShort( (short)length );
+ dataOut->writeShort((short) length);
- for( size_t i = 0; i < length; ++i ) {
+ for (size_t i = 0; i < length; ++i) {
- Pointer<BrokerError::StackTraceElement> element(
- error->getStackTraceElements()[i] );
+ Pointer<BrokerError::StackTraceElement> element(error->getStackTraceElements()[i]);
- looseMarshalString( element->ClassName, dataOut );
- looseMarshalString( element->MethodName, dataOut );
- looseMarshalString( element->FileName, dataOut );
+ looseMarshalString(element->ClassName, dataOut);
+ looseMarshalString(element->MethodName, dataOut);
+ looseMarshalString(element->FileName, dataOut);
- dataOut->writeInt( element->LineNumber );
+ dataOut->writeInt(element->LineNumber);
}
- looseMarshalBrokerError( wireFormat, error->getCause().get(), dataOut );
+ looseMarshalBrokerError(wireFormat, error->getCause().get(), dataOut);
}
}
}
- AMQ_CATCH_RETHROW( IOException )
- AMQ_CATCH_EXCEPTION_CONVERT( Exception, IOException )
- AMQ_CATCHALL_THROW( IOException )
+ AMQ_CATCH_RETHROW(IOException)
+ AMQ_CATCH_EXCEPTION_CONVERT(Exception, IOException)
+ AMQ_CATCHALL_THROW(IOException)
}
////////////////////////////////////////////////////////////////////////////////
-std::vector<unsigned char> BaseDataStreamMarshaller::tightUnmarshalByteArray(
- decaf::io::DataInputStream* dataIn,
- utils::BooleanStream* bs ) {
+std::vector<unsigned char> BaseDataStreamMarshaller::tightUnmarshalByteArray(decaf::io::DataInputStream* dataIn, utils::BooleanStream* bs) {
- try{
+ try {
std::vector<unsigned char> data;
-
- if( bs->readBoolean() ) {
+ if (bs->readBoolean()) {
int size = dataIn->readInt();
if (size > 0) {
- data.resize( size );
- dataIn->readFully( &data[0], (int)data.size() );
+ data.resize(size);
+ dataIn->readFully(&data[0], (int) data.size());
}
}
return data;
}
- AMQ_CATCH_RETHROW( IOException )
- AMQ_CATCH_EXCEPTION_CONVERT( Exception, IOException )
- AMQ_CATCHALL_THROW( IOException )
+ AMQ_CATCH_RETHROW(IOException)
+ AMQ_CATCH_EXCEPTION_CONVERT(Exception, IOException)
+ AMQ_CATCHALL_THROW(IOException)
}
////////////////////////////////////////////////////////////////////////////////
-std::vector<unsigned char> BaseDataStreamMarshaller::looseUnmarshalByteArray(
- decaf::io::DataInputStream* dataIn ) {
+std::vector<unsigned char> BaseDataStreamMarshaller::looseUnmarshalByteArray(decaf::io::DataInputStream* dataIn) {
- try{
+ try {
- if( dataIn->readBoolean() ) {
+ if (dataIn->readBoolean()) {
int size = dataIn->readInt();
std::vector<unsigned char> data;
if (size > 0) {
- data.resize( size );
- dataIn->readFully( &data[0], (int)data.size() );
+ data.resize(size);
+ dataIn->readFully(&data[0], (int) data.size());
}
return data;
}
return std::vector<unsigned char>();
}
- AMQ_CATCH_RETHROW( IOException )
- AMQ_CATCH_EXCEPTION_CONVERT( Exception, IOException )
- AMQ_CATCHALL_THROW( IOException )
+ AMQ_CATCH_RETHROW(IOException)
+ AMQ_CATCH_EXCEPTION_CONVERT(Exception, IOException)
+ AMQ_CATCHALL_THROW(IOException)
}
////////////////////////////////////////////////////////////////////////////////
-std::vector<unsigned char> BaseDataStreamMarshaller::tightUnmarshalConstByteArray(
- decaf::io::DataInputStream* dataIn, utils::BooleanStream* bs AMQCPP_UNUSED, int size ) {
+std::vector<unsigned char> BaseDataStreamMarshaller::tightUnmarshalConstByteArray(decaf::io::DataInputStream* dataIn, utils::BooleanStream* bs AMQCPP_UNUSED,int size) {
- try{
+ try {
std::vector<unsigned char> data;
if (size > 0) {
- data.resize( size );
- dataIn->readFully( &data[0], (int)data.size() );
+ data.resize(size);
+ dataIn->readFully(&data[0], (int) data.size());
}
return data;
}
- AMQ_CATCH_RETHROW( IOException )
- AMQ_CATCH_EXCEPTION_CONVERT( Exception, IOException )
- AMQ_CATCHALL_THROW( IOException )
+ AMQ_CATCH_RETHROW(IOException)
+ AMQ_CATCH_EXCEPTION_CONVERT(Exception, IOException)
+ AMQ_CATCHALL_THROW(IOException)
}
////////////////////////////////////////////////////////////////////////////////
-std::vector<unsigned char> BaseDataStreamMarshaller::looseUnmarshalConstByteArray(
- decaf::io::DataInputStream* dataIn, int size ) {
+std::vector<unsigned char> BaseDataStreamMarshaller::looseUnmarshalConstByteArray(decaf::io::DataInputStream* dataIn, int size) {
- try{
+ try {
std::vector<unsigned char> data;
if (size > 0) {
- data.resize( size );
- dataIn->readFully( &data[0], (int)data.size() );
+ data.resize(size);
+ dataIn->readFully(&data[0], (int) data.size());
}
return data;
}
- AMQ_CATCH_RETHROW( IOException )
- AMQ_CATCH_EXCEPTION_CONVERT( Exception, IOException )
- AMQ_CATCHALL_THROW( IOException )
+ AMQ_CATCH_RETHROW(IOException)
+ AMQ_CATCH_EXCEPTION_CONVERT(Exception, IOException)
+ AMQ_CATCHALL_THROW(IOException)
}
////////////////////////////////////////////////////////////////////////////////
-std::string BaseDataStreamMarshaller::toString( const commands::MessageId* id ) {
- if( id == NULL ) return "";
+std::string BaseDataStreamMarshaller::toString(const commands::MessageId* id) {
+ if (id == NULL) {
+ return "";
+ }
- return toString( id->getProducerId().get() ) + ":" +
- Long::toString( id->getProducerSequenceId() );
+ return toString(id->getProducerId().get()) + ":" + Long::toString(id->getProducerSequenceId());
}
////////////////////////////////////////////////////////////////////////////////
-std::string BaseDataStreamMarshaller::toString( const commands::ProducerId* id ) {
- return id->getConnectionId() + ":" +
- Long::toString( id->getSessionId() ) + ":" +
- Long::toString( id->getValue() );
+std::string BaseDataStreamMarshaller::toString(const commands::ProducerId* id) {
+ return id->getConnectionId() + ":" + Long::toString(id->getSessionId()) + ":" + Long::toString(id->getValue());
}
////////////////////////////////////////////////////////////////////////////////
-std::string BaseDataStreamMarshaller::toString( const commands::TransactionId* txnId ) {
+std::string BaseDataStreamMarshaller::toString(const commands::TransactionId* txnId) {
- const LocalTransactionId* ltxnId =
- dynamic_cast<const LocalTransactionId*>( txnId );
- const XATransactionId* xaTxnId =
- dynamic_cast<const XATransactionId*>( txnId );
+ const LocalTransactionId* ltxnId = dynamic_cast<const LocalTransactionId*>(txnId);
+ const XATransactionId* xaTxnId = dynamic_cast<const XATransactionId*>(txnId);
- if( ltxnId != NULL ) {
- return Long::toString( ltxnId->getValue() );
- } else if( xaTxnId != NULL ) {
- return string("XID:") + Integer::toString( xaTxnId->getFormatId() ) + ":" +
- toHexFromBytes( xaTxnId->getGlobalTransactionId() ) + ":" +
- toHexFromBytes( xaTxnId->getBranchQualifier() );
+ if (ltxnId != NULL) {
+ return Long::toString(ltxnId->getValue());
+ } else if (xaTxnId != NULL) {
+ return string("XID:") + Integer::toString(xaTxnId->getFormatId()) + ":" +
+ toHexFromBytes(xaTxnId->getGlobalTransactionId()) + ":" +
+ toHexFromBytes(xaTxnId->getBranchQualifier());
}
return "";
}
////////////////////////////////////////////////////////////////////////////////
-std::string BaseDataStreamMarshaller::toHexFromBytes(
- const std::vector<unsigned char>& data ) {
+std::string BaseDataStreamMarshaller::toHexFromBytes(const std::vector<unsigned char>& data) {
std::string buffer = "";
- for( unsigned int i = 0; i < data.size(); i++ ) {
- buffer.append( hexTable[ data[i] ] );
+ for (unsigned int i = 0; i < data.size(); i++) {
+ buffer.append(hexTable[data[i]]);
}
return buffer;
}
////////////////////////////////////////////////////////////////////////////////
-std::string BaseDataStreamMarshaller::readAsciiString(
- decaf::io::DataInputStream* dataIn ) {
+std::string BaseDataStreamMarshaller::readAsciiString(decaf::io::DataInputStream* dataIn) {
- try{
+ try {
std::string text;
int size = dataIn->readShort();
- if( size > 0 ) {
+ if (size > 0) {
- std::vector<char> data( size );
- dataIn->readFully( (unsigned char*)&data[0], size );
+ std::vector<char> data(size);
+ dataIn->readFully((unsigned char*) &data[0], size);
// Now build a string and copy data into it.
- text.insert( text.begin(), data.begin(), data.end() );
+ text.insert(text.begin(), data.begin(), data.end());
}
return text;
}
- AMQ_CATCH_RETHROW( IOException )
- AMQ_CATCH_EXCEPTION_CONVERT( Exception, IOException )
- AMQ_CATCHALL_THROW( IOException )
+ AMQ_CATCH_RETHROW(IOException)
+ AMQ_CATCH_EXCEPTION_CONVERT(Exception, IOException)
+ AMQ_CATCHALL_THROW(IOException)
}