[infinispan-commits] Infinispan SVN: r2065 - trunk/core/src/main/java/org/infinispan/loaders/decorators.
infinispan-commits at lists.jboss.org
infinispan-commits at lists.jboss.org
Tue Jul 20 04:11:16 EDT 2010
Author: galder.zamarreno at jboss.com
Date: 2010-07-20 04:11:15 -0400 (Tue, 20 Jul 2010)
New Revision: 2065
Modified:
trunk/core/src/main/java/org/infinispan/loaders/decorators/AsyncStore.java
Log:
[ISPN-545] (AsyncStore ignoring potential InterruptedException arising from 3rd party cache store libraries) Done.
Modified: trunk/core/src/main/java/org/infinispan/loaders/decorators/AsyncStore.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loaders/decorators/AsyncStore.java 2010-07-20 08:09:23 UTC (rev 2064)
+++ trunk/core/src/main/java/org/infinispan/loaders/decorators/AsyncStore.java 2010-07-20 08:11:15 UTC (rev 2065)
@@ -381,12 +381,22 @@
}
}
- boolean put(ConcurrentMap<Object, Modification> mods) {
+ boolean put(ConcurrentMap<Object, Modification> mods) throws InterruptedException {
try {
AsyncStore.this.applyModificationsSync(mods);
return true;
} catch (Exception e) {
- if (log.isDebugEnabled()) log.debug("Failed to process async modifications", e);
+ boolean isDebug = log.isDebugEnabled();
+ if (isDebug) log.debug("Failed to process async modifications", e);
+ Throwable cause = e;
+ while (cause != null) {
+ if (cause instanceof InterruptedException) {
+ // 3rd party code may have cleared the thread interrupt status
+ if (isDebug) log.debug("Rethrowing InterruptedException");
+ throw (InterruptedException) cause;
+ }
+ cause = cause.getCause();
+ }
return false;
}
}
More information about the infinispan-commits
mailing list