You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by oh...@apache.org on 2013/03/25 20:13:54 UTC

svn commit: r1460853 - /commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/reloading/FileHandlerReloadingDetector.java

Author: oheger
Date: Mon Mar 25 19:13:54 2013
New Revision: 1460853

URL: http://svn.apache.org/r1460853
Log:
Made FileHandlerReloadingDetector more extensible.

Modified:
    commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/reloading/FileHandlerReloadingDetector.java

Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/reloading/FileHandlerReloadingDetector.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/reloading/FileHandlerReloadingDetector.java?rev=1460853&r1=1460852&r2=1460853&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/reloading/FileHandlerReloadingDetector.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/reloading/FileHandlerReloadingDetector.java Mon Mar 25 19:13:54 2013
@@ -154,17 +154,17 @@ public class FileHandlerReloadingDetecto
         {
             lastChecked = now;
 
-            File file = getExistingFile();
-            if (file != null)
+            long modified = getLastModificationDate();
+            if (modified > 0)
             {
                 if (lastModified == 0)
                 {
                     // initialization
-                    updateLastModified(file);
+                    updateLastModified(modified);
                 }
                 else
                 {
-                    if (file.lastModified() != lastModified)
+                    if (modified != lastModified)
                     {
                         return true;
                     }
@@ -182,7 +182,31 @@ public class FileHandlerReloadingDetecto
      */
     public void reloadingPerformed()
     {
-        updateLastModified(getExistingFile());
+        updateLastModified(getLastModificationDate());
+    }
+
+    /**
+     * Returns the date of the last modification of the monitored file. A return
+     * value of 0 indicates, that the monitored file does not exist.
+     *
+     * @return the last modification date
+     */
+    protected long getLastModificationDate()
+    {
+        File file = getExistingFile();
+        return (file != null) ? file.lastModified() : 0;
+    }
+
+    /**
+     * Updates the last modification date of the monitored file. The need for a
+     * reload is detected only if the file's modification date is different from
+     * this value.
+     *
+     * @param time the new last modification date
+     */
+    protected void updateLastModified(long time)
+    {
+        lastModified = time;
     }
 
     /**
@@ -217,20 +241,6 @@ public class FileHandlerReloadingDetecto
     }
 
     /**
-     * Updates the last modified field based on the given {@code File} object.
-     * The file is checked for <b>null</b>.
-     *
-     * @param file the file to be monitored
-     */
-    private void updateLastModified(File file)
-    {
-        if (file != null)
-        {
-            lastModified = file.lastModified();
-        }
-    }
-
-    /**
      * Helper method for transforming a URL into a file object. This method
      * handles file: and jar: URLs.
      *