Author: angelo.vandersijpt at luminis.eu
Date: Wed Dec 15 20:59:41 2010
New Revision: 505

Log:
AMDATU-232 Cleaned up InterruptedException handling.

Modified:
   
trunk/amdatu-cassandra/cassandra-listener/src/main/java/org/amdatu/cassandra/listener/service/ColumnFamilyHandler.java

Modified: 
trunk/amdatu-cassandra/cassandra-listener/src/main/java/org/amdatu/cassandra/listener/service/ColumnFamilyHandler.java
==============================================================================
--- 
trunk/amdatu-cassandra/cassandra-listener/src/main/java/org/amdatu/cassandra/listener/service/ColumnFamilyHandler.java
      (original)
+++ 
trunk/amdatu-cassandra/cassandra-listener/src/main/java/org/amdatu/cassandra/listener/service/ColumnFamilyHandler.java
      Wed Dec 15 20:59:41 2010
@@ -160,14 +160,20 @@
     private void waitForColumnFamilyAndRegisterService(final String keyspace, 
final String columnFamily) {
         new Thread("waiting for keyspace " + keyspace + ", columnfamily " + 
columnFamily) {
             public void run() {
-                waitFor(keyspace, columnFamily);
+                try {
+                    waitFor(keyspace, columnFamily);
+                }
+                catch (InterruptedException e) {
+                    // Right, someone wants us to stop. Abort!
+                    return;
+                }
                 addServiceFor(keyspace, columnFamily);
             }
 
         }.start();
     }
 
-    private void waitFor(String keyspace, String columnFamily) {
+    private void waitFor(String keyspace, String columnFamily) throws 
InterruptedException {
         CassandraPersistenceManager persistenceManager = 
getPersistenceManager(keyspace);
 
         long startTime = System.currentTimeMillis();
@@ -180,12 +186,7 @@
                 // apparently our columnFamily isn't available yet... try 
again next round.
             }
 
-            try {
-                Thread.sleep(500);
-            }
-            catch (InterruptedException e) {
-                Thread.currentThread().interrupt();
-            }
+            Thread.sleep(500);
         }
 
         if (!found) {
@@ -194,7 +195,7 @@
         }
     }
 
-    private CassandraPersistenceManager getPersistenceManager(String keyspace) 
{
+    private CassandraPersistenceManager getPersistenceManager(String keyspace) 
throws InterruptedException {
         String objectClassFilter = "(" + 
org.osgi.framework.Constants.OBJECTCLASS + "="
                 + CassandraPersistenceManager.class.getName() + ")";
         String keyspaceFilter = "(" + 
CassandraPersistenceManager.KEYSPACE_AWARE_KEY + "=" + keyspace + ")";
@@ -218,8 +219,8 @@
         try {
             persistenceManager = (CassandraPersistenceManager) 
tracker.waitForService(5000);
         }
-        catch (InterruptedException e) {
-            Thread.currentThread().interrupt();
+        finally {
+            tracker.close();
         }
 
         if (persistenceManager == null) {

Reply via email to