Author: [email protected]
Date: Tue Apr 5 15:56:42 2011
New Revision: 943
Log:
[AMDATU-357] Fixed proper de-registration of ColumnFamilyAvailable services
Modified:
trunk/amdatu-cassandra/cassandra-listener/src/main/java/org/amdatu/cassandra/listener/service/CassandraUpdateListenerImpl.java
Modified:
trunk/amdatu-cassandra/cassandra-listener/src/main/java/org/amdatu/cassandra/listener/service/CassandraUpdateListenerImpl.java
==============================================================================
---
trunk/amdatu-cassandra/cassandra-listener/src/main/java/org/amdatu/cassandra/listener/service/CassandraUpdateListenerImpl.java
(original)
+++
trunk/amdatu-cassandra/cassandra-listener/src/main/java/org/amdatu/cassandra/listener/service/CassandraUpdateListenerImpl.java
Tue Apr 5 15:56:42 2011
@@ -22,6 +22,7 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
import org.amdatu.cassandra.application.CassandraDaemonService;
import org.amdatu.cassandra.listener.ColumnFamilyAvailable;
@@ -65,6 +66,8 @@
// The interval for each individual inspect
private int INSPECT_INTERVAL = 5000;
+
+ private Map<String, Component> m_componentMap = new
ConcurrentHashMap<String, Component>();
public void start() {
// Now start the inspect thread
@@ -241,9 +244,12 @@
String keyspace =
servRef.getProperty(CassandraPersistenceManager.KEYSPACE_AWARE_KEY).toString();
String columnFamily =
servRef.getProperty(ColumnFamilyAvailable.FILTER_NAME).toString();
if (m_snapshot.get(keyspace) == null ||
!m_snapshot.get(keyspace).contains(columnFamily)) {
- m_context.ungetService(servRef);
- m_logService.log(LogService.LOG_INFO,
"ColumnFamilyAvailable service for keyspace '" + keyspace
- + "' and ColumnFamily '" + columnFamily + "'
unregistered");
+ if (m_componentMap.containsKey(columnFamily)) {
+
m_dependencyManager.remove(m_componentMap.get(columnFamily));
+ m_componentMap.remove(columnFamily);
+ m_logService.log(LogService.LOG_INFO,
"ColumnFamilyAvailable service for keyspace '" + keyspace
+ + "' and ColumnFamily '" + columnFamily + "'
unregistered");
+ }
}
}
}
@@ -259,6 +265,7 @@
.setImplementation(ColumnFamilyAvailableImpl.class);
m_dependencyManager.add(component);
+ m_componentMap.put(columnFamily, component);
m_logService.log(LogService.LOG_INFO, "ColumnFamilyAvailable
service for keyspace '" + keyspace + "' and ColumnFamily '" + columnFamily +
"' registered");
}
}
_______________________________________________
Amdatu-commits mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-commits