This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit f03933faf8e54ed2b75607ca47200ec2a410ec52
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Thu Nov 25 13:50:42 2021 +0000

    Improve thread safety of open and close
---
 java/org/apache/juli/AsyncFileHandler.java | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/java/org/apache/juli/AsyncFileHandler.java 
b/java/org/apache/juli/AsyncFileHandler.java
index 8176392..a218cc2 100644
--- a/java/org/apache/juli/AsyncFileHandler.java
+++ b/java/org/apache/juli/AsyncFileHandler.java
@@ -68,6 +68,7 @@ public class AsyncFileHandler extends FileHandler {
         logger.start();
     }
 
+    private final Object closeLock = new Object();
     protected volatile boolean closed = false;
 
     public AsyncFileHandler() {
@@ -87,7 +88,12 @@ public class AsyncFileHandler extends FileHandler {
         if (closed) {
             return;
         }
-        closed = true;
+        synchronized (closeLock) {
+            if (closed) {
+                return;
+            }
+            closed = true;
+        }
         super.close();
     }
 
@@ -96,7 +102,12 @@ public class AsyncFileHandler extends FileHandler {
         if (!closed) {
             return;
         }
-        closed = false;
+        synchronized (closeLock) {
+            if (!closed) {
+                return;
+            }
+            closed = false;
+        }
         super.open();
     }
 

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

Reply via email to