Author: kwall
Date: Wed Feb 25 08:47:18 2015
New Revision: 1662184

URL: http://svn.apache.org/r1662184
Log:
QPID-6411: [AMQP 1.0 JMS Client ] NPE during session#unsubscribe is link is 
refused but detach contains no error condition

svn merge -c 1662051  https://svn.apache.org/repos/asf/qpid/trunk


Modified:
    qpid/branches/0.32/   (props changed)
    qpid/branches/0.32/qpid/   (props changed)
    qpid/branches/0.32/qpid/java/   (props changed)
    
qpid/branches/0.32/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Receiver.java

Propchange: qpid/branches/0.32/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Feb 25 08:47:18 2015
@@ -3,4 +3,4 @@
 /qpid/branches/java-broker-bdb-ha2:1576683-1583556
 /qpid/branches/java-network-refactor:805429-825319
 /qpid/branches/mcpierce-QPID-4719:1477004-1477093
-/qpid/trunk:1661162,1661165-1661166,1661207,1661530-1661531,1661693,1661741,1661929
+/qpid/trunk:1661162,1661165-1661166,1661207,1661530-1661531,1661693,1661741,1661929,1662051

Propchange: qpid/branches/0.32/qpid/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Feb 25 08:47:18 2015
@@ -6,4 +6,4 @@
 /qpid/branches/mcpierce-QPID-4719/qpid:1477004-1477093
 /qpid/branches/qpid-2935/qpid:1061302-1072333
 /qpid/branches/qpid-3346/qpid:1144319-1179855
-/qpid/trunk/qpid:1661079,1661142,1661162,1661165-1661166,1661207,1661212,1661364,1661368,1661373,1661530-1661531,1661693,1661741,1661929
+/qpid/trunk/qpid:1661079,1661142,1661162,1661165-1661166,1661207,1661212,1661364,1661368,1661373,1661530-1661531,1661693,1661741,1661929,1662051

Propchange: qpid/branches/0.32/qpid/java/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Feb 25 08:47:18 2015
@@ -9,4 +9,4 @@
 /qpid/branches/java-network-refactor/qpid/java:805429-821809
 /qpid/branches/qpid-2935/qpid/java:1061302-1072333
 /qpid/trunk/qpid:796646-796653
-/qpid/trunk/qpid/java:1661079,1661142,1661162,1661165-1661166,1661207,1661212,1661364,1661368,1661373,1661530-1661531,1661693,1661741,1661929
+/qpid/trunk/qpid/java:1661079,1661142,1661162,1661165-1661166,1661207,1661212,1661364,1661368,1661373,1661530-1661531,1661693,1661741,1661929,1662051

Modified: 
qpid/branches/0.32/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Receiver.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/0.32/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Receiver.java?rev=1662184&r1=1662183&r2=1662184&view=diff
==============================================================================
--- 
qpid/branches/0.32/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Receiver.java
 (original)
+++ 
qpid/branches/0.32/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Receiver.java
 Wed Feb 25 08:47:18 2015
@@ -38,8 +38,10 @@ import org.apache.qpid.amqp_1_0.transpor
 import org.apache.qpid.amqp_1_0.type.AmqpErrorException;
 import org.apache.qpid.amqp_1_0.type.Binary;
 import org.apache.qpid.amqp_1_0.type.DeliveryState;
+import org.apache.qpid.amqp_1_0.type.ErrorCondition;
 import org.apache.qpid.amqp_1_0.type.Outcome;
 import org.apache.qpid.amqp_1_0.type.Section;
+import org.apache.qpid.amqp_1_0.type.Symbol;
 import org.apache.qpid.amqp_1_0.type.UnsignedInteger;
 import org.apache.qpid.amqp_1_0.type.messaging.Accepted;
 import org.apache.qpid.amqp_1_0.type.messaging.Modified;
@@ -58,6 +60,20 @@ import org.apache.qpid.amqp_1_0.type.tra
 
 public class Receiver implements DeliveryStateHandler
 {
+    private static final ErrorCondition UNKNOWN_ERROR_CONDITION = new 
ErrorCondition()
+    {
+        @Override
+        public Symbol getValue()
+        {
+            return Symbol.valueOf("Unknown");
+        }
+
+        @Override
+        public String toString()
+        {
+            return getValue().toString();
+        }
+    };
     private ReceivingLinkEndpoint _endpoint;
     private int _id;
     private static final UnsignedInteger DEFAULT_INITIAL_CREDIT = 
UnsignedInteger.valueOf(100);
@@ -196,16 +212,20 @@ public class Receiver implements Deliver
             {
                 throw new 
ConnectionErrorException(AmqpError.INTERNAL_ERROR,"Interrupted while waiting 
for detach following failed attach");
             }
-            throw new ConnectionErrorException(getError().getCondition(),
-                                               getError().getDescription() == 
null
-                                                       ? "AMQP error: '" + 
getError().getCondition().toString()
+
+            Error error = getError() == null
+                    ? new Error(UNKNOWN_ERROR_CONDITION, "Unknown")
+                    : getError();
+
+
+            ErrorCondition condition = error.getCondition() == null ? 
UNKNOWN_ERROR_CONDITION : error.getCondition();
+
+            throw new ConnectionErrorException(condition,
+                                               error.getDescription() == null
+                                                       ? "AMQP error: '" + 
condition.toString()
                                                          + "' when attempting 
to create a receiver"
                                                          + (source != null ? " 
from: '" + source.getAddress() +"'" : "")
-                                                       : 
getError().getDescription());
-        }
-        else
-        {
-
+                                                       : 
error.getDescription());
         }
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to