You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Ivan Pechorin (JIRA)" <ji...@apache.org> on 2011/06/16 16:51:47 UTC

[jira] [Updated] (AMQ-3369) occasionally NPE in ActiveMQTextMessage.getSize()

     [ https://issues.apache.org/jira/browse/AMQ-3369?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ivan Pechorin updated AMQ-3369:
-------------------------------

    Description: 
Sometime we get NullPointerException when sending a text message. We use method send(destination, message) of interface javax.jms.MessageProducer.

java.lang.NullPointerException
 at org.apache.activemq.command.ActiveMQTextMessage.getSize(ActiveMQTextMessage.java:148)
 at org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1753)
 at org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:231)
 at org.apache.activemq.ActiveMQMessageProducerSupport.send(ActiveMQMessageProducerSupport.java:300)

Caller code is:

try {
    final TextMessage message = session.createTextMessage(msg);
    message.setJMSType(type);
    message.setJMSReplyTo(destination);
    message.setJMSCorrelationID(jmsMessageId);
    producer.send(destination, message);
} catch (JMSException ex) {
    ...
}

I.e. we don't reuse or store the message being sent.

We are also 100% sure that both session and its producer are used from one thread only at any point of time (we have use a custom session pool).

Broker URI is vm://jboss-activemq-broker?jms.copyMessageOnSend=false&jms.objectMessageSerializationDefered=true&jms.useAsyncSend=true

The NPE occurs occasionally, we were not able to reproduce it deterministically so far.

Any suggestions on how to investigate this?

  was:
Sometime we get NullPointerException when sending a text message. We use method send(destination, message) of interface javax.jms.MessageProducer.

java.lang.NullPointerException
 at org.apache.activemq.command.ActiveMQTextMessage.getSize(ActiveMQTextMessage.java:148)
 at org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1753)
 at org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:231)
 at org.apache.activemq.ActiveMQMessageProducerSupport.send(ActiveMQMessageProducerSupport.java:300)

Relevant code snippet is:

try {
    final TextMessage message = session.createTextMessage(msg);
    message.setJMSType(type);
    message.setJMSReplyTo(destination);
    message.setJMSCorrelationID(jmsMessageId);
    producer.send(destination, message);
} catch (JMSException ex) {
    ...
}

I.e. we don't reuse or store the message being sent.

We are also 100% sure that both session and its producer are used from one thread only at any point of time (we have use a custom session pool).

Broker URI is vm://jboss-activemq-broker?jms.copyMessageOnSend=false&jms.objectMessageSerializationDefered=true&jms.useAsyncSend=true

The NPE occurs occasionally, we were not able to reproduce it deterministically so far.

Any suggestions on how to investigate this?


> occasionally NPE in ActiveMQTextMessage.getSize()
> -------------------------------------------------
>
>                 Key: AMQ-3369
>                 URL: https://issues.apache.org/jira/browse/AMQ-3369
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.4.1
>         Environment: JDK 1.6 (64-bit), Windows Server 2008 x64
>            Reporter: Ivan Pechorin
>
> Sometime we get NullPointerException when sending a text message. We use method send(destination, message) of interface javax.jms.MessageProducer.
> java.lang.NullPointerException
>  at org.apache.activemq.command.ActiveMQTextMessage.getSize(ActiveMQTextMessage.java:148)
>  at org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1753)
>  at org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:231)
>  at org.apache.activemq.ActiveMQMessageProducerSupport.send(ActiveMQMessageProducerSupport.java:300)
> Caller code is:
> try {
>     final TextMessage message = session.createTextMessage(msg);
>     message.setJMSType(type);
>     message.setJMSReplyTo(destination);
>     message.setJMSCorrelationID(jmsMessageId);
>     producer.send(destination, message);
> } catch (JMSException ex) {
>     ...
> }
> I.e. we don't reuse or store the message being sent.
> We are also 100% sure that both session and its producer are used from one thread only at any point of time (we have use a custom session pool).
> Broker URI is vm://jboss-activemq-broker?jms.copyMessageOnSend=false&jms.objectMessageSerializationDefered=true&jms.useAsyncSend=true
> The NPE occurs occasionally, we were not able to reproduce it deterministically so far.
> Any suggestions on how to investigate this?

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira