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: [email protected]
For additional commands, e-mail: [email protected]