Author: manik.surtani(a)jboss.com
Date: 2009-05-01 07:07:43 -0400 (Fri, 01 May 2009)
New Revision: 8040
Modified:
core/tags/3.1.0.GA/src/main/java/org/jboss/cache/RPCManagerImpl.java
Log:
Fixed bug in RPCManager
Modified: core/tags/3.1.0.GA/src/main/java/org/jboss/cache/RPCManagerImpl.java
===================================================================
--- core/tags/3.1.0.GA/src/main/java/org/jboss/cache/RPCManagerImpl.java 2009-05-01
10:59:31 UTC (rev 8039)
+++ core/tags/3.1.0.GA/src/main/java/org/jboss/cache/RPCManagerImpl.java 2009-05-01
11:07:43 UTC (rev 8040)
@@ -231,9 +231,19 @@
public void lockProcessingLock() throws InterruptedException
{
- if
(!coordinationLock.readLock().tryLock(configuration.getStateRetrievalTimeout(),
TimeUnit.MILLISECONDS))
+ while (true)
{
- throw new TimeoutException("Could not obtain processing lock");
+ try
+ {
+ if
(!coordinationLock.readLock().tryLock(configuration.getStateRetrievalTimeout(),
TimeUnit.MILLISECONDS))
+ throw new TimeoutException("Could not obtain processing
lock");
+
+ return;
+ }
+ catch (InterruptedException ie)
+ {
+ Thread.currentThread().interrupt();
+ }
}
}
@@ -244,9 +254,19 @@
public void lockSuspendProcessingLock() throws InterruptedException
{
- if
(!coordinationLock.writeLock().tryLock(configuration.getStateRetrievalTimeout(),
TimeUnit.MILLISECONDS))
+ while (true)
{
- throw new TimeoutException("Could not obtain processing lock");
+ try
+ {
+ if
(!coordinationLock.writeLock().tryLock(configuration.getStateRetrievalTimeout(),
TimeUnit.MILLISECONDS))
+ throw new TimeoutException("Could not obtain processing
lock");
+
+ return;
+ }
+ catch (InterruptedException ie)
+ {
+ Thread.currentThread().interrupt();
+ }
}
}
@@ -258,22 +278,43 @@
}
}
+ @Override
public void waitForFlushCompletion(long timeout) throws InterruptedException
{
- if (!flushBlockGate.await(timeout, TimeUnit.MILLISECONDS))
+ while (true)
{
- throw new TimeoutException("State retrieval timed out waiting for flush
to unblock. (timeout = " + CachePrinter.prettyPrint(timeout) + ")");
+ try
+ {
+ if (!flushBlockGate.await(timeout, TimeUnit.MILLISECONDS))
+ throw new TimeoutException("State retrieval timed out waiting for
flush to unblock. (timeout = " + CachePrinter.prettyPrint(timeout) + ")");
+
+ return;
+ }
+ catch (InterruptedException ie)
+ {
+ Thread.currentThread().interrupt();
+ }
}
}
-
+
+ @Override
public void waitForFlushStart(long timeout) throws InterruptedException
{
- if (!flushWaitGate.await(timeout, TimeUnit.MILLISECONDS))
+ while (true)
{
- throw new TimeoutException("State retrieval timed out waiting for flush
to block. (timeout = " + CachePrinter.prettyPrint(timeout) + " )");
+ try
+ {
+ if (!flushWaitGate.await(timeout, TimeUnit.MILLISECONDS))
+ throw new TimeoutException("State retrieval timed out waiting for
flush to block. (timeout = " + CachePrinter.prettyPrint(timeout) + ")");
+
+ return;
+ }
+ catch (InterruptedException ie)
+ {
+ Thread.currentThread().interrupt();
+ }
}
}
-
}
// ------------ START: Lifecycle methods ------------
Show replies by date