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);
+ }
+ }
+ }
}