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