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-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org