You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "juergen schmied (JIRA)" <ji...@apache.org> on 2010/02/26 20:22:40 UTC

[jira] Created: (AMQ-2630) NullPointerException in ActiveMQDestination (with patch)

NullPointerException in ActiveMQDestination (with patch)
--------------------------------------------------------

                 Key: AMQ-2630
                 URL: https://issues.apache.org/activemq/browse/AMQ-2630
             Project: ActiveMQ
          Issue Type: Bug
            Reporter: juergen schmied
             Fix For: 5.4.0
         Attachments: Destination.patch

The Oracle AQjmsDestination Object implements all the interfaces:

AQjmsDestination
 <-Queue<-Destination
 <-TemporaryQueue<-Queue<-Destination
 <-TemporaryTopicTopic<-Destination
 <-Topic<-Destination

The function ActiveMQDestination.transform fails to indicate the type of the Destination Object right, because it implements all Interfaces.

When the Object its a Topic in reality, the

        if (dest instanceof TemporaryQueue) {
            return new ActiveMQTempQueue(((TemporaryQueue)dest).getQueueName());
        }

thinks its a TemporaryQueue.

This causes the following stacktrace:
java.lang.NullPointerException
	at org.apache.activemq.command.ActiveMQDestination.setPhysicalName(ActiveMQDestination.java:208)
	at org.apache.activemq.command.ActiveMQTempDestination.setPhysicalName(ActiveMQTempDestination.java:63)
	at org.apache.activemq.command.ActiveMQDestination.<init>(ActiveMQDestination.java:77)
	at org.apache.activemq.command.ActiveMQTempDestination.<init>(ActiveMQTempDestination.java:39)
	at org.apache.activemq.command.ActiveMQTempQueue.<init>(ActiveMQTempQueue.java:35)
	at org.apache.activemq.command.ActiveMQDestination.transform(ActiveMQDestination.java:121)
	at org.apache.activemq.command.ActiveMQMessage.setJMSDestination(ActiveMQMessage.java:222)
	at org.apache.activemq.network.jms.TopicBridge.sendMessage(TopicBridge.java:91)
	at org.apache.activemq.network.jms.DestinationBridge.onMessage(DestinationBridge.java:146)
	at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1088)
	at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:127)
	at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:197)
	at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
	at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:619)


 


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (AMQ-2630) NullPointerException in ActiveMQDestination (with patch)

Posted by "Gary Tully (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQ-2630?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gary Tully resolved AMQ-2630.
-----------------------------

    Resolution: Fixed

variant of patch added with test in r918381 thanks. Can you validate against your use case to ensure it still does what you want?

> NullPointerException in ActiveMQDestination (with patch)
> --------------------------------------------------------
>
>                 Key: AMQ-2630
>                 URL: https://issues.apache.org/activemq/browse/AMQ-2630
>             Project: ActiveMQ
>          Issue Type: Bug
>            Reporter: juergen schmied
>            Assignee: Gary Tully
>             Fix For: 5.4.0
>
>         Attachments: Destination.patch
>
>
> The Oracle AQjmsDestination Object implements all the interfaces:
> AQjmsDestination
>  <-Queue<-Destination
>  <-TemporaryQueue<-Queue<-Destination
>  <-TemporaryTopicTopic<-Destination
>  <-Topic<-Destination
> The function ActiveMQDestination.transform fails to indicate the type of the Destination Object right, because it implements all Interfaces.
> When the Object its a Topic in reality, the
>         if (dest instanceof TemporaryQueue) {
>             return new ActiveMQTempQueue(((TemporaryQueue)dest).getQueueName());
>         }
> thinks its a TemporaryQueue.
> This causes the following stacktrace:
> java.lang.NullPointerException
> 	at org.apache.activemq.command.ActiveMQDestination.setPhysicalName(ActiveMQDestination.java:208)
> 	at org.apache.activemq.command.ActiveMQTempDestination.setPhysicalName(ActiveMQTempDestination.java:63)
> 	at org.apache.activemq.command.ActiveMQDestination.<init>(ActiveMQDestination.java:77)
> 	at org.apache.activemq.command.ActiveMQTempDestination.<init>(ActiveMQTempDestination.java:39)
> 	at org.apache.activemq.command.ActiveMQTempQueue.<init>(ActiveMQTempQueue.java:35)
> 	at org.apache.activemq.command.ActiveMQDestination.transform(ActiveMQDestination.java:121)
> 	at org.apache.activemq.command.ActiveMQMessage.setJMSDestination(ActiveMQMessage.java:222)
> 	at org.apache.activemq.network.jms.TopicBridge.sendMessage(TopicBridge.java:91)
> 	at org.apache.activemq.network.jms.DestinationBridge.onMessage(DestinationBridge.java:146)
> 	at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1088)
> 	at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:127)
> 	at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:197)
> 	at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
> 	at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:619)
>  

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Assigned: (AMQ-2630) NullPointerException in ActiveMQDestination (with patch)

Posted by "Gary Tully (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQ-2630?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gary Tully reassigned AMQ-2630:
-------------------------------

    Assignee: Gary Tully

> NullPointerException in ActiveMQDestination (with patch)
> --------------------------------------------------------
>
>                 Key: AMQ-2630
>                 URL: https://issues.apache.org/activemq/browse/AMQ-2630
>             Project: ActiveMQ
>          Issue Type: Bug
>            Reporter: juergen schmied
>            Assignee: Gary Tully
>             Fix For: 5.4.0
>
>         Attachments: Destination.patch
>
>
> The Oracle AQjmsDestination Object implements all the interfaces:
> AQjmsDestination
>  <-Queue<-Destination
>  <-TemporaryQueue<-Queue<-Destination
>  <-TemporaryTopicTopic<-Destination
>  <-Topic<-Destination
> The function ActiveMQDestination.transform fails to indicate the type of the Destination Object right, because it implements all Interfaces.
> When the Object its a Topic in reality, the
>         if (dest instanceof TemporaryQueue) {
>             return new ActiveMQTempQueue(((TemporaryQueue)dest).getQueueName());
>         }
> thinks its a TemporaryQueue.
> This causes the following stacktrace:
> java.lang.NullPointerException
> 	at org.apache.activemq.command.ActiveMQDestination.setPhysicalName(ActiveMQDestination.java:208)
> 	at org.apache.activemq.command.ActiveMQTempDestination.setPhysicalName(ActiveMQTempDestination.java:63)
> 	at org.apache.activemq.command.ActiveMQDestination.<init>(ActiveMQDestination.java:77)
> 	at org.apache.activemq.command.ActiveMQTempDestination.<init>(ActiveMQTempDestination.java:39)
> 	at org.apache.activemq.command.ActiveMQTempQueue.<init>(ActiveMQTempQueue.java:35)
> 	at org.apache.activemq.command.ActiveMQDestination.transform(ActiveMQDestination.java:121)
> 	at org.apache.activemq.command.ActiveMQMessage.setJMSDestination(ActiveMQMessage.java:222)
> 	at org.apache.activemq.network.jms.TopicBridge.sendMessage(TopicBridge.java:91)
> 	at org.apache.activemq.network.jms.DestinationBridge.onMessage(DestinationBridge.java:146)
> 	at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1088)
> 	at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:127)
> 	at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:197)
> 	at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
> 	at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:619)
>  

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (AMQ-2630) NullPointerException in ActiveMQDestination (with patch)

Posted by "Gary Tully (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQ-2630?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gary Tully updated AMQ-2630:
----------------------------

          Component/s: Broker
    Affects Version/s: 5.3.0
        Fix Version/s: 5.3.1

applied to 5.3.1 branch

> NullPointerException in ActiveMQDestination (with patch)
> --------------------------------------------------------
>
>                 Key: AMQ-2630
>                 URL: https://issues.apache.org/activemq/browse/AMQ-2630
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.3.0
>            Reporter: juergen schmied
>            Assignee: Gary Tully
>             Fix For: 5.3.1, 5.4.0
>
>         Attachments: Destination.patch
>
>
> The Oracle AQjmsDestination Object implements all the interfaces:
> AQjmsDestination
>  <-Queue<-Destination
>  <-TemporaryQueue<-Queue<-Destination
>  <-TemporaryTopicTopic<-Destination
>  <-Topic<-Destination
> The function ActiveMQDestination.transform fails to indicate the type of the Destination Object right, because it implements all Interfaces.
> When the Object its a Topic in reality, the
>         if (dest instanceof TemporaryQueue) {
>             return new ActiveMQTempQueue(((TemporaryQueue)dest).getQueueName());
>         }
> thinks its a TemporaryQueue.
> This causes the following stacktrace:
> java.lang.NullPointerException
> 	at org.apache.activemq.command.ActiveMQDestination.setPhysicalName(ActiveMQDestination.java:208)
> 	at org.apache.activemq.command.ActiveMQTempDestination.setPhysicalName(ActiveMQTempDestination.java:63)
> 	at org.apache.activemq.command.ActiveMQDestination.<init>(ActiveMQDestination.java:77)
> 	at org.apache.activemq.command.ActiveMQTempDestination.<init>(ActiveMQTempDestination.java:39)
> 	at org.apache.activemq.command.ActiveMQTempQueue.<init>(ActiveMQTempQueue.java:35)
> 	at org.apache.activemq.command.ActiveMQDestination.transform(ActiveMQDestination.java:121)
> 	at org.apache.activemq.command.ActiveMQMessage.setJMSDestination(ActiveMQMessage.java:222)
> 	at org.apache.activemq.network.jms.TopicBridge.sendMessage(TopicBridge.java:91)
> 	at org.apache.activemq.network.jms.DestinationBridge.onMessage(DestinationBridge.java:146)
> 	at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1088)
> 	at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:127)
> 	at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:197)
> 	at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
> 	at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:619)
>  

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (AMQ-2630) NullPointerException in ActiveMQDestination (with patch)

Posted by "juergen schmied (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQ-2630?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

juergen schmied updated AMQ-2630:
---------------------------------

    Attachment: Destination.patch

> NullPointerException in ActiveMQDestination (with patch)
> --------------------------------------------------------
>
>                 Key: AMQ-2630
>                 URL: https://issues.apache.org/activemq/browse/AMQ-2630
>             Project: ActiveMQ
>          Issue Type: Bug
>            Reporter: juergen schmied
>             Fix For: 5.4.0
>
>         Attachments: Destination.patch
>
>
> The Oracle AQjmsDestination Object implements all the interfaces:
> AQjmsDestination
>  <-Queue<-Destination
>  <-TemporaryQueue<-Queue<-Destination
>  <-TemporaryTopicTopic<-Destination
>  <-Topic<-Destination
> The function ActiveMQDestination.transform fails to indicate the type of the Destination Object right, because it implements all Interfaces.
> When the Object its a Topic in reality, the
>         if (dest instanceof TemporaryQueue) {
>             return new ActiveMQTempQueue(((TemporaryQueue)dest).getQueueName());
>         }
> thinks its a TemporaryQueue.
> This causes the following stacktrace:
> java.lang.NullPointerException
> 	at org.apache.activemq.command.ActiveMQDestination.setPhysicalName(ActiveMQDestination.java:208)
> 	at org.apache.activemq.command.ActiveMQTempDestination.setPhysicalName(ActiveMQTempDestination.java:63)
> 	at org.apache.activemq.command.ActiveMQDestination.<init>(ActiveMQDestination.java:77)
> 	at org.apache.activemq.command.ActiveMQTempDestination.<init>(ActiveMQTempDestination.java:39)
> 	at org.apache.activemq.command.ActiveMQTempQueue.<init>(ActiveMQTempQueue.java:35)
> 	at org.apache.activemq.command.ActiveMQDestination.transform(ActiveMQDestination.java:121)
> 	at org.apache.activemq.command.ActiveMQMessage.setJMSDestination(ActiveMQMessage.java:222)
> 	at org.apache.activemq.network.jms.TopicBridge.sendMessage(TopicBridge.java:91)
> 	at org.apache.activemq.network.jms.DestinationBridge.onMessage(DestinationBridge.java:146)
> 	at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1088)
> 	at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:127)
> 	at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:197)
> 	at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
> 	at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:619)
>  

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.