Author: arnaudsimon
Date: Thu Jun  5 02:17:40 2008
New Revision: 663507

URL: http://svn.apache.org/viewvc?rev=663507&view=rev
Log:
QPID-1123: Added a timeout (threading issue is still to be fixed)

Modified:
    
incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/nclient/Client.java

Modified: 
incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/nclient/Client.java
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/nclient/Client.java?rev=663507&r1=663506&r2=663507&view=diff
==============================================================================
--- 
incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/nclient/Client.java
 (original)
+++ 
incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/nclient/Client.java
 Thu Jun  5 02:17:40 2008
@@ -25,6 +25,7 @@
 import java.util.concurrent.locks.Condition;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
+import java.util.concurrent.TimeUnit;
 
 import org.apache.qpid.client.url.URLParser_0_10;
 import org.apache.qpid.jms.BrokerDetails;
@@ -255,15 +256,24 @@
         _lock.lock();
         try
         {
-            try {
-                while (!closed)
+            try
+            {
+                long timeout = 60000;
+                long start = System.currentTimeMillis();
+                long elapsed = 0;
+                while (!closed && elapsed < timeout)
+                {
+                    closeOk.await(timeout - elapsed, TimeUnit.MILLISECONDS);
+                    elapsed = System.currentTimeMillis() - start;
+                }
+                if(! closed )
                 {
-                    closeOk.await();
+                    throw new QpidException("Timed out when closing 
connection", ErrorCode.CONNECTION_ERROR, null);
                 }
             }
             catch (InterruptedException e)
             {
-                // do nothing
+                 throw new QpidException("Interrupted when closing 
connection", ErrorCode.CONNECTION_ERROR, null);
             }
         }
         finally


Reply via email to