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.