Use AtomicReference in TestEventListener to store event

This commit is contained in:
Torsten Grote
2021-03-09 10:11:15 -03:00
parent f42a9a20d8
commit d3204ab3ee

View File

@@ -4,7 +4,7 @@ import org.briarproject.bramble.api.event.Event;
import org.briarproject.bramble.api.event.EventListener; import org.briarproject.bramble.api.event.EventListener;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import javax.annotation.Nullable; import java.util.concurrent.atomic.AtomicReference;
import static org.briarproject.briar.test.BriarIntegrationTest.waitForEvents; import static org.briarproject.briar.test.BriarIntegrationTest.waitForEvents;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
@@ -38,21 +38,20 @@ public class TestEventListener<T extends Event> implements EventListener {
private final Class<T> clazz; private final Class<T> clazz;
@Nullable private final AtomicReference<T> event = new AtomicReference<>();
private T event;
@Override @Override
public void eventOccurred(Event e) { public void eventOccurred(Event e) {
if (e.getClass().equals(clazz)) { if (e.getClass().equals(clazz)) {
assertNull("Event already received", event);
//noinspection unchecked //noinspection unchecked
event = (T) e; assertNull("Event already received", event.getAndSet((T) e));
} }
} }
private T assertAndGetEvent() { private T assertAndGetEvent() {
assertNotNull("No event received", event); T t = event.get();
return event; assertNotNull("No event received", t);
return t;
} }
} }