Skip to content

Commit 71bef56

Browse files
CR: add test
1 parent daa9fc7 commit 71bef56

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

server/src/test/java/org/elasticsearch/index/shard/RefreshListenersTests.java

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import org.elasticsearch.common.UUIDs;
3232
import org.elasticsearch.common.bytes.BytesArray;
3333
import org.elasticsearch.common.bytes.BytesReference;
34+
import org.elasticsearch.common.lease.Releasable;
3435
import org.elasticsearch.common.lucene.uid.Versions;
3536
import org.elasticsearch.common.settings.Settings;
3637
import org.elasticsearch.common.unit.TimeValue;
@@ -342,6 +343,40 @@ public void testLotsOfThreads() throws Exception {
342343
refresher.cancel();
343344
}
344345

346+
public void testDisallowAddListeners() throws Exception {
347+
assertEquals(0, listeners.pendingCount());
348+
DummyRefreshListener listener = new DummyRefreshListener();
349+
assertFalse(listeners.addOrNotify(index("1").getTranslogLocation(), listener));
350+
engine.refresh("I said so");
351+
assertFalse(listener.forcedRefresh.get());
352+
listener.assertNoError();
353+
354+
try (Releasable releaseable1 = listeners.forceRefreshes()) {
355+
listener = new DummyRefreshListener();
356+
assertTrue(listeners.addOrNotify(index("1").getTranslogLocation(), listener));
357+
assertTrue(listener.forcedRefresh.get());
358+
listener.assertNoError();
359+
assertEquals(0, listeners.pendingCount());
360+
361+
try (Releasable releaseable2 = listeners.forceRefreshes()) {
362+
listener = new DummyRefreshListener();
363+
assertTrue(listeners.addOrNotify(index("1").getTranslogLocation(), listener));
364+
assertTrue(listener.forcedRefresh.get());
365+
listener.assertNoError();
366+
assertEquals(0, listeners.pendingCount());
367+
}
368+
369+
listener = new DummyRefreshListener();
370+
assertTrue(listeners.addOrNotify(index("1").getTranslogLocation(), listener));
371+
assertTrue(listener.forcedRefresh.get());
372+
listener.assertNoError();
373+
assertEquals(0, listeners.pendingCount());
374+
}
375+
376+
assertFalse(listeners.addOrNotify(index("1").getTranslogLocation(), new DummyRefreshListener()));
377+
assertEquals(1, listeners.pendingCount());
378+
}
379+
345380
private Engine.IndexResult index(String id) throws IOException {
346381
return index(id, "test");
347382
}

0 commit comments

Comments
 (0)