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]
