Author: gnodet
Date: Mon Mar 19 08:44:41 2012
New Revision: 1302323

URL: http://svn.apache.org/viewvc?rev=1302323&view=rev
Log:
[FELIX-2787] Do not perform management activities while framework is 
starting/stopping

Modified:
    
felix/trunk/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/DirectoryWatcher.java

Modified: 
felix/trunk/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/DirectoryWatcher.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/DirectoryWatcher.java?rev=1302323&r1=1302322&r2=1302323&view=diff
==============================================================================
--- 
felix/trunk/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/DirectoryWatcher.java
 (original)
+++ 
felix/trunk/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/DirectoryWatcher.java
 Mon Mar 19 08:44:41 2012
@@ -274,7 +274,8 @@ public class DirectoryWatcher extends Th
             try
             {
                 // Don't access the disk when the framework is still in a 
startup phase.
-                if (FileInstall.getStartLevel().getStartLevel() >= activeLevel)
+                if (FileInstall.getStartLevel().getStartLevel() >= activeLevel
+                        && context.getBundle(0).getState() == Bundle.ACTIVE)
                 {
                     Set/*<File>*/ files = scanner.scan(false);
                     // Check that there is a result.  If not, this means that 
the directory can not be listed,
@@ -1353,4 +1354,22 @@ public class DirectoryWatcher extends Th
         }
         return result;
     }
+
+    protected void checkRemovedListener()
+    {
+        List/*<ArtifactListener>*/ listeners = FileInstall.getListeners();
+        for (Iterator it = currentManagedArtifacts.values().iterator(); 
it.hasNext(); )
+        {
+            Artifact artifact = (Artifact) it.next();
+            File file = artifact.getPath();
+            ArtifactListener listener = findListener(file, listeners);
+            // If no listener can handle this artifact, we need to defer the
+            // processing for this artifact until one is found
+            if (listener == null)
+            {
+                processingFailures.add(file);
+                artifact.setListener(null);
+            }
+        }
+    }
 }


Reply via email to