You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ri...@apache.org on 2007/09/10 16:46:05 UTC

svn commit: r574266 - in /incubator/qpid/branches/M2.1/java/client/src: main/java/org/apache/qpid/client/ main/java/org/apache/qpid/client/protocol/ test/java/org/apache/qpid/test/unit/client/connection/

Author: ritchiem
Date: Mon Sep 10 07:46:04 2007
New Revision: 574266

URL: http://svn.apache.org/viewvc?rev=574266&view=rev
Log:
QPID-584 : Client exceptions are now presented via any set Exception Listener 

Modified:
    incubator/qpid/branches/M2.1/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java
    incubator/qpid/branches/M2.1/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java
    incubator/qpid/branches/M2.1/java/client/src/test/java/org/apache/qpid/test/unit/client/connection/ConnectionStartTest.java

Modified: incubator/qpid/branches/M2.1/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/M2.1/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java?rev=574266&r1=574265&r2=574266&view=diff
==============================================================================
--- incubator/qpid/branches/M2.1/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java (original)
+++ incubator/qpid/branches/M2.1/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java Mon Sep 10 07:46:04 2007
@@ -1114,6 +1114,10 @@
         {
             _exceptionListener.onException(je);
         }
+        else
+        {
+            _logger.error("Throwable Received but no listener set: " + cause.getMessage());
+        }
 
         if (!(cause instanceof AMQUndeliveredException) && !(cause instanceof AMQAuthenticationException))
         {

Modified: incubator/qpid/branches/M2.1/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/M2.1/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java?rev=574266&r1=574265&r2=574266&view=diff
==============================================================================
--- incubator/qpid/branches/M2.1/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java (original)
+++ incubator/qpid/branches/M2.1/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java Mon Sep 10 07:46:04 2007
@@ -24,6 +24,7 @@
 import org.apache.mina.common.IoHandlerAdapter;
 import org.apache.mina.common.IoSession;
 import org.apache.mina.filter.SSLFilter;
+import org.apache.mina.filter.codec.ProtocolCodecException;
 import org.apache.mina.filter.codec.ProtocolCodecFilter;
 
 import org.apache.qpid.AMQConnectionClosedException;
@@ -335,6 +336,20 @@
                 // this will attemp failover
 
                 sessionClosed(session);
+            }
+            else
+            {
+
+                if (cause instanceof ProtocolCodecException)
+                {
+                    _logger.info("Protocol Exception caught NOT going to attempt failover as " +
+                                 "cause isn't AMQConnectionClosedException: " + cause, cause);
+
+                    AMQException amqe = new AMQException("Protocol handler error: " + cause, cause);
+                    propagateExceptionToWaiters(amqe);
+                }
+
+                _connection.exceptionReceived(cause);
             }
 
             // FIXME Need to correctly handle other exceptions. Things like ...

Modified: incubator/qpid/branches/M2.1/java/client/src/test/java/org/apache/qpid/test/unit/client/connection/ConnectionStartTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/M2.1/java/client/src/test/java/org/apache/qpid/test/unit/client/connection/ConnectionStartTest.java?rev=574266&r1=574265&r2=574266&view=diff
==============================================================================
--- incubator/qpid/branches/M2.1/java/client/src/test/java/org/apache/qpid/test/unit/client/connection/ConnectionStartTest.java (original)
+++ incubator/qpid/branches/M2.1/java/client/src/test/java/org/apache/qpid/test/unit/client/connection/ConnectionStartTest.java Mon Sep 10 07:46:04 2007
@@ -96,7 +96,7 @@
             // should really not be called before _connection start
             assertTrue("There should not be messages waiting for the consumer", _consumer.receiveNoWait() == null);
             _connection.start();
-            assertTrue("There should be messages waiting for the consumer", _consumer.receiveNoWait() == null);
+            assertTrue("There should be messages waiting for the consumer", _consumer.receive(1000) == null);
             assertTrue("Connection should be started", _connection.started());
 
         }