Author: tabish
Date: Thu Mar 31 15:46:53 2011
New Revision: 1087347

URL: http://svn.apache.org/viewvc?rev=1087347&view=rev
Log:
fix for: https://issues.apache.org/jira/browse/AMQCPP-359

Modified:
    
activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQBytesMessage.cpp
    
activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/commands/ActiveMQBytesMessageTest.cpp

Modified: 
activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQBytesMessage.cpp
URL: 
http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQBytesMessage.cpp?rev=1087347&r1=1087346&r2=1087347&view=diff
==============================================================================
--- 
activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQBytesMessage.cpp
 (original)
+++ 
activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ActiveMQBytesMessage.cpp
 Thu Mar 31 15:46:53 2011
@@ -33,6 +33,7 @@ using namespace activemq::commands;
 using namespace activemq::exceptions;
 using namespace decaf::io;
 using namespace decaf::lang;
+using namespace decaf::lang::exceptions;
 using namespace decaf::util;
 using namespace decaf::util::zip;
 
@@ -290,6 +291,10 @@ int ActiveMQBytesMessage::readBytes( uns
     initializeReading();
     try{
 
+        if( length < 0 ) {
+            throw IndexOutOfBoundsException(__FILE__, __LINE__, "Array length 
given was negative");
+        }
+
         int n = 0;
 
         while( n < length ) {

Modified: 
activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/commands/ActiveMQBytesMessageTest.cpp
URL: 
http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/commands/ActiveMQBytesMessageTest.cpp?rev=1087347&r1=1087346&r2=1087347&view=diff
==============================================================================
--- 
activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/commands/ActiveMQBytesMessageTest.cpp
 (original)
+++ 
activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/commands/ActiveMQBytesMessageTest.cpp
 Thu Mar 31 15:46:53 2011
@@ -212,6 +212,12 @@ void ActiveMQBytesMessageTest::testReadB
         for( int i = 0; i < 50; i++ ) {
             CPPUNIT_ASSERT( test[i] == i );
         }
+
+        CPPUNIT_ASSERT_THROW_MESSAGE(
+            "Should have thrown a CMSException",
+            msg.readBytes( test, -1 ),
+            CMSException);
+
     } catch( CMSException& ex ) {
         ex.printStackTrace();
         CPPUNIT_ASSERT( false );


Reply via email to