diff --git a/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/DirectoryWatcher.java b/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/DirectoryWatcher.java
index 734dacc..4fd54e9 100644
--- a/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/DirectoryWatcher.java
+++ b/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/DirectoryWatcher.java
@@ -520,7 +520,7 @@
         String value = (String) properties.get(property);
         if (value != null)
         {
-            return Boolean.parseBoolean(value);
+            return Boolean.valueOf(value).booleanValue();
         }
         return dflt;
     }
@@ -801,9 +801,9 @@
             artifact.setLastModified(Util.getLastModified(path));
             log("Updated " + path, null);
         }
-        catch (Exception e)
+        catch (Throwable t)
         {
-            log("Failed to update artifact " + artifact.getPath(), e);
+            log("Failed to update artifact " + artifact.getPath(), t);
         }
         return bundle;
     }
diff --git a/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/Scanner.java b/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/Scanner.java
index 0697414..3ea0b6f 100644
--- a/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/Scanner.java
+++ b/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/Scanner.java
@@ -84,7 +84,7 @@
     {
         for (Iterator it = files.iterator(); it.hasNext();)
         {
-            storedChecksums.put(it.next(), Long.valueOf(0));
+            storedChecksums.put(it.next(), new Long(0));
         }
     }
 
@@ -113,11 +113,11 @@
             long lastChecksum = lastChecksums.get(file) != null ? ((Long) lastChecksums.get(file)).longValue() : 0;
             long storedChecksum = storedChecksums.get(file) != null ? ((Long) storedChecksums.get(file)).longValue() : 0;
             long newChecksum = checksum(file);
-            lastChecksums.put(file, Long.valueOf(newChecksum));
+            lastChecksums.put(file, new Long(newChecksum));
             // Only handle file when it does not change anymore and it has changed since last reported
             if ((newChecksum == lastChecksum || reportImmediately) && newChecksum != storedChecksum)
             {
-                storedChecksums.put(file, Long.valueOf(newChecksum));
+                storedChecksums.put(file, new Long(newChecksum));
                 files.add(file);
             }
             removed.remove(file);
