Author: ritchiem
Date: Thu Apr 16 12:25:05 2009
New Revision: 765600

URL: http://svn.apache.org/viewvc?rev=765600&view=rev
Log:
QPID-1813 : Check the value of _sessionIdentifier and return null if it is null 
rather than an NPE.

Modified:
    
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQMessage.java
    
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/SubscriptionImpl.java

Modified: 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQMessage.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQMessage.java?rev=765600&r1=765599&r2=765600&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQMessage.java
 (original)
+++ 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQMessage.java
 Thu Apr 16 12:25:05 2009
@@ -457,12 +457,32 @@
 
     public Object getPublisherClientInstance()
     {
-        return _sessionIdentifier.getSessionInstance();
+        //todo store sessionIdentifier/client id with message in store
+        //Currently the _sessionIdentifier will be null if the message has been
+        // restored from a message Store
+        if (_sessionIdentifier == null)
+        {
+            return null;
+        }
+        else
+        {
+            return _sessionIdentifier.getSessionInstance();
+        }
     }
                                                                                
           
     public Object getPublisherIdentifier()
     {
-        return _sessionIdentifier.getSessionIdentifier();
+        //todo store sessionIdentifier/client id with message in store
+        //Currently the _sessionIdentifier will be null if the message has been
+        // restored from a message Store
+        if (_sessionIdentifier == null)
+        {
+            return null;
+        }
+        else
+        {
+            return _sessionIdentifier.getSessionIdentifier();
+        }
     }
 
     public void setClientIdentifier(final 
AMQProtocolSession.ProtocolSessionIdentifier sessionIdentifier)

Modified: 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/SubscriptionImpl.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/SubscriptionImpl.java?rev=765600&r1=765599&r2=765600&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/SubscriptionImpl.java
 (original)
+++ 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/SubscriptionImpl.java
 Thu Apr 16 12:25:05 2009
@@ -382,11 +382,10 @@
 //            return false;
         }
 
-
-
-        //todo - client id should be recoreded and this test removed but 
handled below
         if (_noLocal)
         {
+            //todo - client id should be recoreded so we don't have to handle
+            // the case where this is null.
             final Object publisherId = 
entry.getMessage().getPublisherClientInstance();
 
             // We don't want local messages so check to see if message is one 
we sent
@@ -404,9 +403,8 @@
             {
 
                 localInstance = getProtocolSession().getClientIdentifier();
-                //todo - client id should be recoreded and this test removed 
but handled here
-
 
+                //todo - client id should be recoreded so we don't have to do 
the null check
                 if (localInstance != null && 
localInstance.equals(entry.getMessage().getPublisherIdentifier()))
                 {
                     return false;



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to