You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2018/09/21 08:28:25 UTC

svn commit: r1841555 - /tomcat/trunk/java/org/apache/catalina/users/MemoryUserDatabase.java

Author: markt
Date: Fri Sep 21 08:28:25 2018
New Revision: 1841555

URL: http://svn.apache.org/viewvc?rev=1841555&view=rev
Log:
Review of fix for BZ 58590 from kkolinko.
Protect against in progress file updates

Modified:
    tomcat/trunk/java/org/apache/catalina/users/MemoryUserDatabase.java

Modified: tomcat/trunk/java/org/apache/catalina/users/MemoryUserDatabase.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/users/MemoryUserDatabase.java?rev=1841555&r1=1841554&r2=1841555&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/users/MemoryUserDatabase.java (original)
+++ tomcat/trunk/java/org/apache/catalina/users/MemoryUserDatabase.java Fri Sep 21 08:28:25 2018
@@ -668,7 +668,12 @@ public class MemoryUserDatabase implemen
             if (this.lastModified != uConn.getLastModified()) {
                 writeLock.lock();
                 try {
-                    if (this.lastModified != uConn.getLastModified()) {
+                    long detectedLastModified = uConn.getLastModified();
+                    // Last modified as a resolution of 1s. Ensure that a write
+                    // to the file is not in progress by ensuring that the last
+                    // modified time is at least 2 seconds ago.
+                    if (this.lastModified != detectedLastModified &&
+                            detectedLastModified + 2000 < System.currentTimeMillis()) {
                         log.info(sm.getString("memoryUserDatabase.reload", id, uri));
                         open();
                     }



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org