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 77c40f52b4 OAK-11621: Reduce usage of Guava Ticker -
oak-search/oak-lucene
77c40f52b4 is described below
commit 77c40f52b496f01538e80391efb4352791d98eae
Author: Julian Reschke <[email protected]>
AuthorDate: Mon Mar 31 14:17:50 2025 +0100
OAK-11621: Reduce usage of Guava Ticker - oak-search/oak-lucene
---
.../plugins/index/lucene/BadIndexTrackerTest.java | 13 ++++++------
.../oak/plugins/index/lucene/IndexTrackerTest.java | 9 ++++----
.../oak/plugins/index/search/BadIndexTracker.java | 24 +++++++++++++++-------
3 files changed, 27 insertions(+), 19 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..e4b9c274ab 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
@@ -16,13 +16,12 @@
* specific language governing permissions and limitations
* under the License.
*/
-
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.Test;
import static org.hamcrest.Matchers.hasItem;
@@ -30,7 +29,7 @@ import static org.junit.Assert.*;
public class BadIndexTrackerTest {
- private VirtualTicker ticker = new VirtualTicker();
+ private Clock clock = new Clock.Virtual();
private BadIndexTracker tracker = new BadIndexTracker();
@Test
@@ -56,17 +55,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.millis() + 50);
assertTrue(tracker.isIgnoredBadIndex("foo"));
- ticker.addTime(30, TimeUnit.MILLISECONDS);
+ clock.waitUntil(clock.millis() + 30);
assertTrue(tracker.isIgnoredBadIndex("foo"));
//Now cross the threshold
- ticker.addTime(30, TimeUnit.MILLISECONDS);
+ clock.waitUntil(clock.millis() + 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..3846006808 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
@@ -16,12 +16,10 @@
* specific language governing permissions and limitations
* under the License.
*/
-
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 +36,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 +133,8 @@ public class IndexTrackerTest {
tracker = new IndexTracker();
tracker.update(indexed);
- VirtualTicker ticker = new VirtualTicker();
- tracker.getBadIndexTracker().setTicker(ticker);
+ Clock clock = new Clock.Virtual();
+ tracker.getBadIndexTracker().setClock(clock);
indexNode = tracker.acquireIndexNode("/oak:index/foo");
@@ -157,7 +156,7 @@ public class IndexTrackerTest {
assertEquals(0, badIdxInfo.getFailedAccessCount());
//5. Move clock forward
- ticker.addTime(tracker.getBadIndexTracker().getRecheckIntervalMillis()
+ 1, TimeUnit.MILLISECONDS);
+ clock.waitUntil(clock.millis() +
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..1512cfa7d9 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
@@ -16,9 +16,9 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.jackrabbit.oak.plugins.index.search;
+import java.time.Clock;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
@@ -51,7 +51,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.systemUTC();
private int indexerCycleCount;
public BadIndexTracker() {
@@ -143,8 +143,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,10 +154,20 @@ 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.millis();
private final boolean persistedIndex;
- private final Stopwatch created = Stopwatch.createStarted(ticker);
- private final Stopwatch watch = Stopwatch.createStarted(ticker);
+ private final Stopwatch created = Stopwatch.createStarted(new Ticker()
{
+ @Override
+ public long read() {
+ return TimeUnit.MILLISECONDS.toNanos(clock.millis());
+ }
+ });
+ private final Stopwatch watch = Stopwatch.createStarted(new Ticker() {
+ @Override
+ public long read() {
+ return TimeUnit.MILLISECONDS.toNanos(clock.millis());
+ }
+ });
private String exception;
private int accessCount;
private int failedAccessCount;