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