You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2012/05/15 13:36:16 UTC

svn commit: r1338656 - /karaf/cellar/trunk/config/src/main/java/org/apache/karaf/cellar/config/LocalConfigurationListener.java

Author: jbonofre
Date: Tue May 15 11:36:15 2012
New Revision: 1338656

URL: http://svn.apache.org/viewvc?rev=1338656&view=rev
Log:
Fix issue with config delete event

Modified:
    karaf/cellar/trunk/config/src/main/java/org/apache/karaf/cellar/config/LocalConfigurationListener.java

Modified: karaf/cellar/trunk/config/src/main/java/org/apache/karaf/cellar/config/LocalConfigurationListener.java
URL: http://svn.apache.org/viewvc/karaf/cellar/trunk/config/src/main/java/org/apache/karaf/cellar/config/LocalConfigurationListener.java?rev=1338656&r1=1338655&r2=1338656&view=diff
==============================================================================
--- karaf/cellar/trunk/config/src/main/java/org/apache/karaf/cellar/config/LocalConfigurationListener.java (original)
+++ karaf/cellar/trunk/config/src/main/java/org/apache/karaf/cellar/config/LocalConfigurationListener.java Tue May 15 11:36:15 2012
@@ -55,21 +55,25 @@ public class LocalConfigurationListener 
         }
 
         String pid = event.getPid();
-        Configuration conf = null;
-        try {
-            conf = configurationAdmin.getConfiguration(pid);
-        } catch (Exception e) {
-            LOGGER.error("CELLAR CONFIG: can't retrieve configuration with PID {}", pid, e);
-            return;
-        }
 
-        Dictionary localDictionary = conf.getProperties();
-        if (localDictionary.get(Constants.SYNC_PROPERTY) != null) {
-            Long syncTimestamp = new Long((String) localDictionary.get(Constants.SYNC_PROPERTY));
-            Long currentTimestamp = System.currentTimeMillis();
-            if ((currentTimestamp - syncTimestamp) <= SYNC_TIMEOUT) {
+        Dictionary localDictionary = null;
+        if (event.getType() != ConfigurationEvent.CM_DELETED) {
+            Configuration conf = null;
+            try {
+                conf = configurationAdmin.getConfiguration(pid);
+            } catch (Exception e) {
+                LOGGER.error("CELLAR CONFIG: can't retrieve configuration with PID {}", pid, e);
                 return;
             }
+
+            localDictionary = conf.getProperties();
+            if (localDictionary.get(Constants.SYNC_PROPERTY) != null) {
+                Long syncTimestamp = new Long((String) localDictionary.get(Constants.SYNC_PROPERTY));
+                Long currentTimestamp = System.currentTimeMillis();
+                if ((currentTimestamp - syncTimestamp) <= SYNC_TIMEOUT) {
+                    return;
+                }
+            }
         }
 
         Set<Group> groups = groupManager.listLocalGroups();