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 2009/04/17 15:48:01 UTC

svn commit: r766005 - in /qpid/branches/0.5-release/qpid/java: ./ client/src/main/java/org/apache/qpid/client/ management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/ systests/src/main/java/org/apache/qpid/test/unit/client/connection/

Author: ritchiem
Date: Fri Apr 17 13:48:01 2009
New Revision: 766005

URL: http://svn.apache.org/viewvc?rev=766005&view=rev
Log:
QPID-1779 : Update to ensure CACFTest reports failures correctly and resolved the issue that it was not showing.

merged from trunk r764790

Modified:
    qpid/branches/0.5-release/qpid/java/   (props changed)
    qpid/branches/0.5-release/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java
    qpid/branches/0.5-release/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession.java
    qpid/branches/0.5-release/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/AttributesTabControl.java   (props changed)
    qpid/branches/0.5-release/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/CloseAfterConnectionFailureTest.java

Propchange: qpid/branches/0.5-release/qpid/java/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Apr 17 13:48:01 2009
@@ -1 +1 @@
-/qpid/trunk/qpid/java:764838
+/qpid/trunk/qpid/java:764790,764838

Modified: qpid/branches/0.5-release/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java
URL: http://svn.apache.org/viewvc/qpid/branches/0.5-release/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java?rev=766005&r1=766004&r2=766005&view=diff
==============================================================================
--- qpid/branches/0.5-release/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java (original)
+++ qpid/branches/0.5-release/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java Fri Apr 17 13:48:01 2009
@@ -1326,6 +1326,8 @@
         // handling sequence
         if (cause instanceof IOException || cause instanceof AMQDisconnectedException)
         {
+            // If we have an IOE/AMQDisconnect there is no connection to close on.
+            _closing.set(false);
             closer = !_closed.getAndSet(true);
 
             _protocolHandler.getProtocolSession().notifyError(je);

Modified: qpid/branches/0.5-release/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession.java
URL: http://svn.apache.org/viewvc/qpid/branches/0.5-release/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession.java?rev=766005&r1=766004&r2=766005&view=diff
==============================================================================
--- qpid/branches/0.5-release/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession.java (original)
+++ qpid/branches/0.5-release/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession.java Fri Apr 17 13:48:01 2009
@@ -21,6 +21,7 @@
 package org.apache.qpid.client;
 
 import java.io.Serializable;
+import java.io.IOException;
 import java.net.URISyntaxException;
 import java.text.MessageFormat;
 import java.util.ArrayList;
@@ -698,7 +699,11 @@
                 // Failover failed and ain't coming back. Knife the dispatcher.
                 _dispatcherThread.interrupt();
             }
-        }
+
+       }
+
+        //if we don't have an exception then we can perform closing operations  
+        _closing.set(e == null);
 
         if (!_closed.getAndSet(true))
         {
@@ -3000,4 +3005,27 @@
             }
         }
     }
+
+    /**
+     * Checks if the Session and its parent connection are closed
+     *
+     * @return <tt>true</tt> if this is closed, <tt>false</tt> otherwise.
+     */
+    @Override
+    public boolean isClosed()
+    {
+        return _closed.get() || _connection.isClosed();
+    }
+
+    /**
+     * Checks if the Session and its parent connection are capable of performing
+     * closing operations
+     *
+     * @return <tt>true</tt> if we are closing, <tt>false</tt> otherwise.
+     */
+    @Override
+    public boolean isClosing()
+    {
+        return _closing.get()|| _connection.isClosing();
+    }
 }

Propchange: qpid/branches/0.5-release/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/AttributesTabControl.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Apr 17 13:48:01 2009
@@ -1 +1 @@
-/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/AttributesTabControl.java:762365,764838
+/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/AttributesTabControl.java:762365,764790,764838

Modified: qpid/branches/0.5-release/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/CloseAfterConnectionFailureTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/0.5-release/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/CloseAfterConnectionFailureTest.java?rev=766005&r1=766004&r2=766005&view=diff
==============================================================================
--- qpid/branches/0.5-release/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/CloseAfterConnectionFailureTest.java (original)
+++ qpid/branches/0.5-release/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/CloseAfterConnectionFailureTest.java Fri Apr 17 13:48:01 2009
@@ -42,6 +42,7 @@
     Session session;
     MessageConsumer consumer;
     private CountDownLatch _latch = new CountDownLatch(1);
+    private JMSException _fail;
 
     public void testNoFailover() throws URLSyntaxException, AMQVMBrokerCreationException,
                                         InterruptedException, JMSException
@@ -63,6 +64,12 @@
             //Kill connection
             TransportConnection.killAllVMBrokers();
             _latch.await();
+
+            if (_fail != null)
+            {
+                _fail.printStackTrace(System.out);
+                fail("Exception thrown:" + _fail.getMessage());
+            }
         }
         catch (AMQException e)
         {
@@ -72,39 +79,43 @@
 
     public void onException(JMSException e)
     {
-        System.err.println("Connection isClosed after connection Falure?:" + connection.isClosed());
+        System.out.println("Connection isClosed after connection Falure?:" + connection.isClosed());
         try
         {
             consumer.close();
         }
-        catch (JMSException jsme)
+        catch (JMSException jmse)
         {
-            System.err.println("Consumer close failed with:" + jsme.getMessage());
+            System.out.println("Consumer close failed with:" + jmse.getMessage());
+            _fail = jmse;
         }
-        System.err.println("Connection isClosed after connection Falure?:" + connection.isClosed());
+        System.out.println("Connection isClosed after connection Falure?:" + connection.isClosed());
         try
         {
             //Note that if we actually do session.close() we will lock up as the session will never receive a frame
             // from the
-            ((AMQSession)session).close(10);
+            ((AMQSession) session).close(10);
         }
-        catch (JMSException jsme)
+        catch (JMSException jmse)
         {
-            System.err.println("Session close failed with:" + jsme.getMessage());
+            System.out.println("Session close failed with:" + jmse.getMessage());
+            _fail = jmse;
         }
-        System.err.println("Connection isClosed after connection Falure?:" + connection.isClosed());
+        System.out.println("Connection isClosed after connection Falure?:" + connection.isClosed());
 
         try
         {
             connection.close();
         }
-        catch (JMSException jsme)
+        catch (JMSException jmse)
         {
-            System.err.println("Session close failed with:" + jsme.getMessage());
+            System.out.println("Session close failed with:" + jmse.getMessage());
+            _fail = jmse;
         }
-        System.err.println("Connection isClosed after connection Falure?:" + connection.isClosed());
+        System.out.println("Connection isClosed after connection Falure?:" + connection.isClosed());
 
         _latch.countDown();
+
     }
 
 }



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