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

reschke pushed a commit to branch OAK-11621
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git


The following commit(s) were added to refs/heads/OAK-11621 by this push:
     new 2f8a52db1d OAK-11621: Reduce usage of Guava Ticker - 
oak-lucene/oak-search
2f8a52db1d is described below

commit 2f8a52db1d3338a0c42e5357f1b88f1ada618d1f
Author: Julian Reschke <[email protected]>
AuthorDate: Wed Mar 26 05:38:04 2025 +0100

    OAK-11621: Reduce usage of Guava Ticker - oak-lucene/oak-search
---
 .../oak/plugins/index/lucene/BadIndexTrackerTest.java  | 18 ++++++++++++------
 .../oak/plugins/index/lucene/IndexTrackerTest.java     |  9 +++++----
 .../oak/plugins/index/search/BadIndexTracker.java      | 15 +++++++++++----
 3 files changed, 28 insertions(+), 14 deletions(-)

diff --git 
a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/BadIndexTrackerTest.java
 
b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/BadIndexTrackerTest.java
index 524b22ed63..8b1f9acdf0 100644
--- 
a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/BadIndexTrackerTest.java
+++ 
b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/BadIndexTrackerTest.java
@@ -20,9 +20,10 @@
 package org.apache.jackrabbit.oak.plugins.index.lucene;
 
 import java.util.Collections;
-import java.util.concurrent.TimeUnit;
 
 import org.apache.jackrabbit.oak.plugins.index.search.BadIndexTracker;
+import org.apache.jackrabbit.oak.stats.Clock;
+import org.junit.Before;
 import org.junit.Test;
 
 import static org.hamcrest.Matchers.hasItem;
@@ -30,9 +31,14 @@ import static org.junit.Assert.*;
 
 public class BadIndexTrackerTest {
 
-    private VirtualTicker ticker = new VirtualTicker();
+    private Clock clock = new Clock.Virtual();
     private BadIndexTracker tracker = new BadIndexTracker();
 
+    @Before
+    public void before() throws InterruptedException {
+        clock.waitUntil(System.currentTimeMillis());
+    }
+
     @Test
     public void basics() throws Exception{
         tracker.markBadIndexForRead("foo", new Exception());
@@ -56,17 +62,17 @@ public class BadIndexTrackerTest {
     @Test
     public void recheckDelay() throws Exception{
         tracker = new BadIndexTracker(100);
-        tracker.setTicker(ticker);
+        tracker.setClock(clock);
         tracker.markBadIndexForRead("foo", new Exception());
-        ticker.addTime(50, TimeUnit.MILLISECONDS);
+        clock.waitUntil(clock.getTime() + 50);
 
         assertTrue(tracker.isIgnoredBadIndex("foo"));
 
-        ticker.addTime(30, TimeUnit.MILLISECONDS);
+        clock.waitUntil(clock.getTime() + 30);
         assertTrue(tracker.isIgnoredBadIndex("foo"));
 
         //Now cross the threshold
-        ticker.addTime(30, TimeUnit.MILLISECONDS);
+        clock.waitUntil(clock.getTime() + 30);
         assertFalse(tracker.isIgnoredBadIndex("foo"));
 
         //However index is still considered bad
diff --git 
a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexTrackerTest.java
 
b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexTrackerTest.java
index 872ded46e7..8adebd982f 100644
--- 
a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexTrackerTest.java
+++ 
b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexTrackerTest.java
@@ -21,7 +21,6 @@ package org.apache.jackrabbit.oak.plugins.index.lucene;
 
 import java.util.Collections;
 import java.util.Set;
-import java.util.concurrent.TimeUnit;
 
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.api.Type;
@@ -38,6 +37,7 @@ import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
 import org.apache.jackrabbit.oak.spi.commit.EditorHook;
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
+import org.apache.jackrabbit.oak.stats.Clock;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -134,8 +134,9 @@ public class IndexTrackerTest {
         tracker = new IndexTracker();
         tracker.update(indexed);
 
-        VirtualTicker ticker = new VirtualTicker();
-        tracker.getBadIndexTracker().setTicker(ticker);
+        Clock clock = new Clock.Virtual();
+        clock.waitUntil(System.currentTimeMillis());
+        tracker.getBadIndexTracker().setClock(clock);
 
         indexNode = tracker.acquireIndexNode("/oak:index/foo");
 
@@ -157,7 +158,7 @@ public class IndexTrackerTest {
         assertEquals(0, badIdxInfo.getFailedAccessCount());
 
         //5. Move clock forward
-        ticker.addTime(tracker.getBadIndexTracker().getRecheckIntervalMillis() 
+ 1, TimeUnit.MILLISECONDS);
+        clock.waitUntil(clock.getTime() + 
tracker.getBadIndexTracker().getRecheckIntervalMillis() + 1);
 
         //Now index access must be attempted again
         indexNode = tracker.acquireIndexNode("/oak:index/foo");
diff --git 
a/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/BadIndexTracker.java
 
b/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/BadIndexTracker.java
index 2efd4881cc..9ec7528d5b 100644
--- 
a/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/BadIndexTracker.java
+++ 
b/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/BadIndexTracker.java
@@ -27,6 +27,7 @@ import java.util.concurrent.TimeUnit;
 import org.apache.jackrabbit.guava.common.base.Stopwatch;
 import org.apache.jackrabbit.guava.common.base.Throwables;
 import org.apache.jackrabbit.guava.common.base.Ticker;
+import org.apache.jackrabbit.oak.stats.Clock;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -51,7 +52,7 @@ public class BadIndexTracker {
     private final Map<String, BadIndexInfo> badIndexesForRead = new 
ConcurrentHashMap<>();
     private final Map<String, BadIndexInfo> badPersistedIndexes = new 
ConcurrentHashMap<>();
     private final long recheckIntervalMillis;
-    private Ticker ticker = Ticker.systemTicker();
+    private Clock clock = Clock.SIMPLE;
     private int indexerCycleCount;
 
     public BadIndexTracker() {
@@ -143,8 +144,8 @@ public class BadIndexTracker {
         return recheckIntervalMillis;
     }
 
-    public void setTicker(Ticker ticker) {
-        this.ticker = ticker;
+    public void setClock(Clock clock) {
+        this.clock = clock;
     }
 
     public boolean hasBadIndexes(){
@@ -154,8 +155,14 @@ public class BadIndexTracker {
     public class BadIndexInfo {
         public final String path;
         final int lastIndexerCycleCount = indexerCycleCount;
-        private final long createdTime = 
TimeUnit.NANOSECONDS.toMillis(ticker.read());
+        private final long createdTime = clock.getTime();
         private final boolean persistedIndex;
+        private final Ticker ticker = new Ticker() {
+            @Override
+            public long read() {
+                return TimeUnit.MILLISECONDS.toNanos(clock.getTime());
+            }
+        };
         private final Stopwatch created = Stopwatch.createStarted(ticker);
         private final Stopwatch watch = Stopwatch.createStarted(ticker);
         private String exception;

Reply via email to