Author: gnodet
Date: Fri Mar 16 07:42:59 2012
New Revision: 1301356

URL: http://svn.apache.org/viewvc?rev=1301356&view=rev
Log:
[FELIX-3373] File install logging doesn't notify user of important errors
Patch provided by Bert Jacobs

Modified:
    
felix/trunk/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/DirectoryWatcher.java
    
felix/trunk/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/Util.java
    
felix/trunk/fileinstall/src/test/java/org/apache/felix/fileinstall/internal/DirectoryWatcherTest.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=1301356&r1=1301355&r2=1301356&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
 Fri Mar 16 07:42:59 2012
@@ -129,7 +129,7 @@ public class DirectoryWatcher extends Th
         this.properties = properties;
         this.context = context;
         poll = getLong(properties, POLL, 2000);
-        logLevel = getInt(properties, LOG_LEVEL, 0);
+        logLevel = getInt(properties, LOG_LEVEL, 
Util.getGlobalLogLevel(context));
         originatingFileName = (String) properties.get(FILENAME);
         watchedDirectory = getFile(properties, DIR, new File("./load"));
         verifyWatchedDir();
@@ -368,7 +368,8 @@ public class DirectoryWatcher extends Th
                     }
                     catch (IOException e)
                     {
-                        log(Logger.LOG_WARNING,
+                        // Notify user of problem, won't retry until the dir 
is updated.
+                        log(Logger.LOG_ERROR,
                             "Unable to create jar for: " + 
file.getAbsolutePath(), e);
                         continue;
                     }
@@ -935,7 +936,7 @@ public class DirectoryWatcher extends Th
         }
         catch (Exception e)
         {
-            log(Logger.LOG_WARNING, "Failed to install artifact: " + path, e);
+            log(Logger.LOG_ERROR, "Failed to install artifact: " + path, e);
 
             // Add it our bad jars list, so that we don't
             // attempt to install it again and again until the underlying
@@ -1185,6 +1186,7 @@ public class DirectoryWatcher extends Th
             }
             catch (BundleException e)
             {
+                // Don't log this as an error, instead we start the bundle 
repeatedly.
                 log(Logger.LOG_WARNING, "Error while starting bundle: " + 
bundle.getLocation(), e);
             }
         }

Modified: 
felix/trunk/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/Util.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/Util.java?rev=1301356&r1=1301355&r2=1301356&view=diff
==============================================================================
--- 
felix/trunk/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/Util.java
 (original)
+++ 
felix/trunk/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/Util.java
 Fri Mar 16 07:42:59 2012
@@ -27,10 +27,6 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.util.Collections;
-import java.util.Dictionary;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Map;
 import java.util.Set;
 import java.util.jar.JarFile;
 import java.util.jar.JarOutputStream;
@@ -47,6 +43,11 @@ public class Util
 {
     private static final String CHECKSUM_SUFFIX = ".checksum";
 
+    /**
+     * Returns the log level as defined in the BundleContext or System 
properties.
+     * @param context {@link BundleContext} of the FileInstall bundle.
+     * @return the global log level, or {@link Logger#LOG_ERROR}.
+     */
     public static int getGlobalLogLevel(BundleContext context)
     {
         String s = (String) context.getProperty(DirectoryWatcher.LOG_LEVEL);
@@ -54,7 +55,7 @@ public class Util
             ? 
System.getProperty(DirectoryWatcher.LOG_LEVEL.toUpperCase().replace('.', '_'))
             : s;
         s = (s == null) ? "1" : s;
-        int logLevel = 1;
+        int logLevel = Logger.LOG_ERROR;
         try
         {
             logLevel = Integer.parseInt(s);

Modified: 
felix/trunk/fileinstall/src/test/java/org/apache/felix/fileinstall/internal/DirectoryWatcherTest.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/fileinstall/src/test/java/org/apache/felix/fileinstall/internal/DirectoryWatcherTest.java?rev=1301356&r1=1301355&r2=1301356&view=diff
==============================================================================
--- 
felix/trunk/fileinstall/src/test/java/org/apache/felix/fileinstall/internal/DirectoryWatcherTest.java
 (original)
+++ 
felix/trunk/fileinstall/src/test/java/org/apache/felix/fileinstall/internal/DirectoryWatcherTest.java
 Fri Mar 16 07:42:59 2012
@@ -190,7 +190,7 @@ public class DirectoryWatcherTest extend
         assertTrue( "DIR parameter correctly read", 
dw.watchedDirectory.getAbsolutePath().endsWith(
             "src" + File.separatorChar + "test" + File.separatorChar + 
"resources" ) );
         assertEquals( "Default POLL parameter correctly read", 2000l, dw.poll 
);
-        assertEquals( "Default LOG_LEVEL parameter correctly read", 0, 
dw.logLevel );
+        assertEquals( "Default LOG_LEVEL parameter correctly read", 1, 
dw.logLevel );
         assertTrue( "Default TMPDIR parameter correctly read", 
dw.tmpDir.getAbsolutePath().startsWith(
                 new 
File(System.getProperty("java.io.tmpdir")).getAbsolutePath()) );
         assertEquals( "Default START_NEW_BUNDLES parameter correctly read", 
true, dw.startBundles );


Reply via email to