You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Andrei Gheorghe (JIRA)" <ji...@apache.org> on 2014/01/27 15:55:37 UTC

[jira] [Created] (AMQCPP-532) Frequently deleting queue browser causes access violation

Andrei Gheorghe created AMQCPP-532:
--------------------------------------

             Summary: Frequently deleting queue browser causes access violation
                 Key: AMQCPP-532
                 URL: https://issues.apache.org/jira/browse/AMQCPP-532
             Project: ActiveMQ C++ Client
          Issue Type: Bug
    Affects Versions: 3.8.2
         Environment: Windows
            Reporter: Andrei Gheorghe
            Assignee: Timothy Bish


The following code should reproduce this issue :

#include <activemq/library/ActiveMQCPP.h>
#include <activemq/core/ActiveMQConnectionFactory.h>
#include <activemq/commands/ActiveMQQueue.h>

using namespace cms;

int main()
{
	try 
	{
	activemq::library::ActiveMQCPP::initializeLibrary();
	activemq::core::ActiveMQConnectionFactory connectionFactory( "tcp://localhost:61616" );
	auto connection = connectionFactory.createConnection();
	connection->start();
	auto session = connection->createSession( Session::SESSION_TRANSACTED );

	activemq::commands::ActiveMQQueue queue( "testqueue" ); //sometimes it doesn't crash if the queue is empty so it should have atleast a message
	while ( 1 )
	{
		auto queueBrowser = session->createBrowser( &queue, "" );
		auto enumeration = queueBrowser->getEnumeration();
	
		if ( enumeration->hasMoreMessages() )
			auto message = enumeration->nextMessage();

		delete queueBrowser;
	}
	}
	catch ( const std::exception& e )
	{
		std::string what = e.what(); //sometimes it throws an exception like "Monitor is still in use!"
	}
	while ( 1 ) {} //wait, sometimes an activemq thread fails
}



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)