activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From seamuskerrigan <seamuskerri...@gmail.com>
Subject Re: NullPointerException from ActiveMQDestination
Date Mon, 23 Jul 2007 09:02:58 GMT

I'm running on Red Hat Linux 3 and using g++ compiler.

Here is the C++ code that I'm running (it's taken from the
HelloWorldProducer example from activemq-cpp). The line in bold is causing
the NullPointerException in ActiveMQ.

 	cms::Connection* connection;
    	Session* session;
    	Destination* destination;
    	MessageProducer* producer;
    	int numMessages;
    	bool useTopic = false;
    	std::string brokerURI = "tcp://localhost:61616?wireFormat=openwire";
        	
  	try {
            // Create a ConnectionFactory
            ActiveMQConnectionFactory* connectionFactory =
                new ActiveMQConnectionFactory();
	    connectionFactory->setBrokerURL( brokerURI );
			
			
            // Create a Connection
            connection = connectionFactory->createConnection();
            connection->start();

            // free the factory, we are done with it.
            delete connectionFactory;

            // Create a Session
            session = connection->createSession( Session::AUTO_ACKNOWLEDGE
);

            // Create the destination (Topic or Queue)
            if( useTopic ) {
                destination = session->createTopic( "TEST.FOO" );
            } else {
                destination = session->createQueue( "TEST.FOO" );
            }
            		
            // Create a MessageProducer from the Session to the Topic or
Queue
            producer = session->createProducer( destination );
            producer->setDeliveryMode( DeliveryMode::NON_PERSISTENT );

            // Create the Thread Id String
            string threadIdStr = Integer::toString(
activemq::concurrent::Thread::getId() );

            // Create a messages
            string text = (string)"Hello world! from thread ";
			
           for( int ix=0; ix<1; ix++ ){
                TextMessage* message = session->createTextMessage( text );

                message->setIntProperty( "Integer", ix );

                // Tell the producer to send the message
                printf( "Sent message #%d from thread %s\n", ix,
threadIdStr.c_str() );
                producer->send( message );
				
                delete message;
            }

        }catch ( CMSException& e ) {
            e.printStackTrace();
        }


Tim Bish wrote:
> 
> Could you provide the C++ code?  Also what platform and compiler?
> 
> Rob Davies wrote:
>> the c++ code must be passing in a null value for the destination name
>>
>> On Jul 21, 2007, at 4:16 PM, seamuskerrigan wrote:
>>
>>>
>>> I have succesfully set-up and ran the activemq-cpp example. However, 
>>> when I
>>> try integrating the HelloWorldProducer into an existing C++ process, 
>>> I've
>>> been running into problems creating the TEST.FOO queue. I have tested 
>>> this
>>> using ActiveMQ 4.1.1 and 5.0 on Red Hat Linux with the same exception.
>>>
>>> I have started ActiveMQ succesfully and connect to
>>> "tcp://localhost:61616?wireFormat=openwire". But when the C++ code 
>>> attemps
>>> the queue creation of TEST.FOO, I get the following exception in the
>>> ActiveMQ console window (using 5.0):
>>>
>>> Exception in thread "ActiveMQ Transport: tcp:///localhost:49120"
>>> java.lang.NullPointerException
>>>         at
>>> org.apache.activemq.command.ActiveMQDestination.setPhysicalName(ActiveMQDestination.java:204)

>>>
>>>         at
>>> org.apache.activemq.openwire.v2.ActiveMQDestinationMarshaller.looseUnmarshal(ActiveMQDestinationMarshaller.java:98)

>>>
>>>         at
>>> org.apache.activemq.openwire.v2.ActiveMQQueueMarshaller.looseUnmarshal(ActiveMQQueueMarshaller.java:101)

>>>
>>>         at
>>> org.apache.activemq.openwire.OpenWireFormat.looseUnmarshalNestedObject(OpenWireFormat.java:450)

>>>
>>>         at
>>> org.apache.activemq.openwire.v2.BaseDataStreamMarshaller.looseUnmarsalCachedObject(BaseDataStreamMarshaller.java:454)

>>>
>>>         at
>>> org.apache.activemq.openwire.v2.ProducerInfoMarshaller.looseUnmarshal(ProducerInfoMarshaller.java:134)

>>>
>>>         at
>>> org.apache.activemq.openwire.OpenWireFormat.doUnmarshal(OpenWireFormat.java:351)

>>>
>>>         at
>>> org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:275)

>>>
>>>         at
>>> org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:156)

>>>
>>>         at
>>> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:136) 
>>>
>>>         at java.lang.Thread.run(Thread.java:595)
>>>
>>>
>>> The port number in the above trace is 49120 but this varies between 
>>> runs of
>>> ActiveMQ.
>>>
>>> The executing C++ reports the following exception:
>>> free(): invalid pointer 0xb54ca26c!
>>> response from futureResponse was invalid
>>>         FILE: activemq/transport/ResponseCorrelator.cpp, LINE: 145
>>>         FILE: activemq/transport/ResponseCorrelator.cpp, LINE: 152
>>>         FILE: activemq/connector/openwire/OpenWireFormatNegotiator.cpp,
>>> LINE: 105
>>>         FILE: activemq/connector/openwire/OpenWireConnector.cpp, 
>>> LINE: 1468
>>>         FILE: activemq/connector/openwire/OpenWireConnector.cpp, 
>>> LINE: 757
>>>         FILE: activemq/core/ActiveMQSession.cpp, LINE: 376
>>>
>>>
>>> I'm not sure what is causing this issue. Any help would be appreciated.
>>>
>>> -- 
>>> View this message in context: 
>>> http://www.nabble.com/NullPointerException-from-ActiveMQDestination-tf4122144s2354.html#a11723114

>>>
>>> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>>>
> 
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/NullPointerException-from-ActiveMQDestination-tf4122144s2354.html#a11740179
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Mime
View raw message