You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2013/09/27 14:13:53 UTC

svn commit: r1526864 - in /qpid/trunk/qpid/java: amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageProducerImpl.java amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/type/transport/codec/ErrorConstructor.java

Author: rgodfrey
Date: Fri Sep 27 12:13:53 2013
New Revision: 1526864

URL: http://svn.apache.org/r1526864
Log:
QPID-5182 : The details of custom error-conditions are not being preserved up to the Error object

Modified:
    qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageProducerImpl.java
    qpid/trunk/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/type/transport/codec/ErrorConstructor.java

Modified: qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageProducerImpl.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageProducerImpl.java?rev=1526864&r1=1526863&r2=1526864&view=diff
==============================================================================
--- qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageProducerImpl.java (original)
+++ qpid/trunk/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageProducerImpl.java Fri Sep 27 12:13:53 2013
@@ -306,7 +306,14 @@ public class MessageProducerImpl impleme
             if (action.getOutcome() instanceof Rejected)
             {
                 Error err = ((Rejected) action.getOutcome()).getError();
-                throw new MessageRejectedException(err.getDescription(), err.getCondition().toString());
+                if(err != null)
+                {
+                    throw new MessageRejectedException(err.getDescription(), err.getCondition().toString());
+                }
+                else
+                {
+                    throw new MessageRejectedException("Message was rejected: " + action.getOutcome());
+                }
             }
             else
             {

Modified: qpid/trunk/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/type/transport/codec/ErrorConstructor.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/type/transport/codec/ErrorConstructor.java?rev=1526864&r1=1526863&r2=1526864&view=diff
==============================================================================
--- qpid/trunk/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/type/transport/codec/ErrorConstructor.java (original)
+++ qpid/trunk/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/type/transport/codec/ErrorConstructor.java Fri Sep 27 12:13:53 2013
@@ -86,6 +86,10 @@ public class ErrorConstructor extends De
                                     if(condition == null)
                                     {
                                         condition = TransactionErrors.valueOf(val);
+                                        if(condition == null)
+                                        {
+                                            condition = new UnknownErrorCondition((Symbol)val);
+                                        }
                                     }
                                 }
                             }
@@ -166,4 +170,52 @@ public class ErrorConstructor extends De
     }
 
 
+    private static final class UnknownErrorCondition implements ErrorCondition
+    {
+        private final Symbol _value;
+
+        public UnknownErrorCondition(final Symbol value)
+        {
+            _value = value;
+        }
+
+        public Symbol getValue()
+        {
+            return _value;
+        }
+
+        @Override
+        public boolean equals(final Object o)
+        {
+            if (this == o)
+            {
+                return true;
+            }
+            if (o == null || getClass() != o.getClass())
+            {
+                return false;
+            }
+
+            final UnknownErrorCondition that = (UnknownErrorCondition) o;
+
+            if (!_value.equals(that._value))
+            {
+                return false;
+            }
+
+            return true;
+        }
+
+        @Override
+        public int hashCode()
+        {
+            return _value.hashCode();
+        }
+
+        @Override
+        public String toString()
+        {
+            return _value.toString();
+        }
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org