You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ra...@apache.org on 2011/04/12 19:24:10 UTC

svn commit: r1091507 - /qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Session.java

Author: rajith
Date: Tue Apr 12 17:24:10 2011
New Revision: 1091507

URL: http://svn.apache.org/viewvc?rev=1091507&view=rev
Log:
QPID-3205
Added the nessacery null checks to avoid a NPE due to missing delivery props or headers all together.

Modified:
    qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Session.java

Modified: qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Session.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Session.java?rev=1091507&r1=1091506&r2=1091507&view=diff
==============================================================================
--- qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Session.java (original)
+++ qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Session.java Tue Apr 12 17:24:10 2011
@@ -42,7 +42,10 @@ import static org.apache.qpid.util.Seria
 import static org.apache.qpid.util.Strings.toUTF8;
 
 import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.concurrent.Semaphore;
 import java.util.concurrent.TimeUnit;
@@ -262,7 +265,32 @@ public class Session extends SessionInvo
                 }
                 else if (m instanceof MessageTransfer)
                 {
-                    ((MessageTransfer)m).getHeader().get(DeliveryProperties.class).setRedelivered(true);
+                	MessageTransfer xfr = (MessageTransfer)m;
+                	
+                	if (xfr.getHeader() != null)
+                	{
+                		if (xfr.getHeader().get(DeliveryProperties.class) != null)
+                		{
+                		   xfr.getHeader().get(DeliveryProperties.class).setRedelivered(true);
+                		}
+                		else
+                		{
+                			Struct[] structs = xfr.getHeader().getStructs();
+                			DeliveryProperties deliveryProps = new DeliveryProperties();
+                    		deliveryProps.setRedelivered(true);
+                    		
+                    		List<Struct> list = Arrays.asList(structs);
+                    		list.add(deliveryProps);
+                    		xfr.setHeader(new Header(list));
+                		}
+                		
+                	}
+                	else
+                	{
+                		DeliveryProperties deliveryProps = new DeliveryProperties();
+                		deliveryProps.setRedelivered(true);
+                		xfr.setHeader(new Header(deliveryProps));
+                	}
                 }
                 sessionCommandPoint(m.getId(), 0);
                 send(m);



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org