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

miroslav pushed a commit to branch issue/OAK-9212_2
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git

commit 6ae505aa1b5954a2a05725b7150cffe518e1399f
Author: Miroslav Smiljanic <miros...@apache.com>
AuthorDate: Wed Aug 27 16:33:23 2025 +0200

    OAK-9212 add nonblocking method to WriteAccessController
---
 .../jackrabbit/oak/segment/remote/WriteAccessController.java   | 10 ++++++++++
 .../oak/segment/remote/WriteAccessControllerTest.java          |  9 +++++++++
 2 files changed, 19 insertions(+)

diff --git 
a/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/WriteAccessController.java
 
b/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/WriteAccessController.java
index 929e5375f0..3fa162cbc0 100644
--- 
a/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/WriteAccessController.java
+++ 
b/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/WriteAccessController.java
@@ -33,6 +33,9 @@ public class WriteAccessController {
         }
     }
 
+    /**
+     * Blocks the current thread until writing is allowed.
+     */
     public void checkWritingAllowed() {
         while (!isWritingAllowed) {
             synchronized (lock) {
@@ -48,4 +51,11 @@ public class WriteAccessController {
             }
         }
     }
+
+    /**
+     * @return true if writing is allowed, false otherwise
+     */
+    public boolean isWritingAllowed() {
+        return isWritingAllowed;
+    }
 }
diff --git 
a/oak-segment-remote/src/test/java/org/apache/jackrabbit/oak/segment/remote/WriteAccessControllerTest.java
 
b/oak-segment-remote/src/test/java/org/apache/jackrabbit/oak/segment/remote/WriteAccessControllerTest.java
index 4302d8158e..751a12b67d 100644
--- 
a/oak-segment-remote/src/test/java/org/apache/jackrabbit/oak/segment/remote/WriteAccessControllerTest.java
+++ 
b/oak-segment-remote/src/test/java/org/apache/jackrabbit/oak/segment/remote/WriteAccessControllerTest.java
@@ -19,6 +19,7 @@ package org.apache.jackrabbit.oak.segment.remote;
 import org.junit.Test;
 
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
 
 public class WriteAccessControllerTest {
 
@@ -51,6 +52,14 @@ public class WriteAccessControllerTest {
         assertFalse(t2.isAlive());
     }
 
+    @Test
+    public void testWritingAllowed() {
+        WriteAccessController controller = new WriteAccessController();
+        assertFalse(controller.isWritingAllowed());
+        controller.enableWriting();
+        assertTrue(controller.isWritingAllowed());
+    }
+
     private void assertThreadWaiting(Thread.State state) {
         assert state == Thread.State.WAITING || state == 
Thread.State.TIMED_WAITING;
     }

Reply via email to