[infinispan-commits] Infinispan SVN: r2064 - branches/4.1.x/core/src/main/java/org/infinispan/loaders/decorators.

infinispan-commits at lists.jboss.org infinispan-commits at lists.jboss.org
Tue Jul 20 04:09:24 EDT 2010


Author: galder.zamarreno at jboss.com
Date: 2010-07-20 04:09:23 -0400 (Tue, 20 Jul 2010)
New Revision: 2064

Modified:
   branches/4.1.x/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: branches/4.1.x/core/src/main/java/org/infinispan/loaders/decorators/AsyncStore.java
===================================================================
--- branches/4.1.x/core/src/main/java/org/infinispan/loaders/decorators/AsyncStore.java	2010-07-20 06:35:24 UTC (rev 2063)
+++ branches/4.1.x/core/src/main/java/org/infinispan/loaders/decorators/AsyncStore.java	2010-07-20 08:09:23 UTC (rev 2064)
@@ -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