diff --git a/rollbar-java/src/main/java/com/rollbar/notifier/RollbarBase.java b/rollbar-java/src/main/java/com/rollbar/notifier/RollbarBase.java index cc61f94c..5fdd32ca 100644 --- a/rollbar-java/src/main/java/com/rollbar/notifier/RollbarBase.java +++ b/rollbar-java/src/main/java/com/rollbar/notifier/RollbarBase.java @@ -345,7 +345,7 @@ protected RollbarThrowableWrapper wrapThrowable(Throwable error) { protected abstract RESULT sendPayload(C config, Payload payload); private Body makeBody(ThrowableWrapper error, String description) { - List telemetryEvents = telemetryEventTracker.dump(); + List telemetryEvents = telemetryEventTracker.getAll(); if (telemetryEvents.isEmpty()) { return bodyFactory.from(error, description); } diff --git a/rollbar-java/src/main/java/com/rollbar/notifier/telemetry/RollbarTelemetryEventTracker.java b/rollbar-java/src/main/java/com/rollbar/notifier/telemetry/RollbarTelemetryEventTracker.java index 265f11db..184560b1 100644 --- a/rollbar-java/src/main/java/com/rollbar/notifier/telemetry/RollbarTelemetryEventTracker.java +++ b/rollbar-java/src/main/java/com/rollbar/notifier/telemetry/RollbarTelemetryEventTracker.java @@ -51,10 +51,8 @@ public RollbarTelemetryEventTracker( } @Override - public List dump() { - List events = new ArrayList<>(telemetryEvents); - telemetryEvents.clear(); - return events; + public List getAll() { + return new ArrayList<>(telemetryEvents); } @Override diff --git a/rollbar-java/src/main/java/com/rollbar/notifier/telemetry/TelemetryEventTracker.java b/rollbar-java/src/main/java/com/rollbar/notifier/telemetry/TelemetryEventTracker.java index a5bbc16d..434cf1eb 100644 --- a/rollbar-java/src/main/java/com/rollbar/notifier/telemetry/TelemetryEventTracker.java +++ b/rollbar-java/src/main/java/com/rollbar/notifier/telemetry/TelemetryEventTracker.java @@ -10,9 +10,9 @@ public interface TelemetryEventTracker { /** - * Dump all the events recorded. + * Get all the events recorded. */ - List dump(); + List getAll(); /** * Record log telemetry event. ({@link TelemetryType#LOG}). diff --git a/rollbar-java/src/test/java/com/rollbar/notifier/telemetry/RollbarTelemetryEventTrackerTest.java b/rollbar-java/src/test/java/com/rollbar/notifier/telemetry/RollbarTelemetryEventTrackerTest.java index a0d4475f..c9141666 100644 --- a/rollbar-java/src/test/java/com/rollbar/notifier/telemetry/RollbarTelemetryEventTrackerTest.java +++ b/rollbar-java/src/test/java/com/rollbar/notifier/telemetry/RollbarTelemetryEventTrackerTest.java @@ -32,13 +32,23 @@ public class RollbarTelemetryEventTrackerTest { private static final int MINIMUM_CAPACITY_FOR_TELEMETRY_EVENTS = 0; private static final int MAXIMUM_CAPACITY_FOR_TELEMETRY_EVENTS = 100; + @Test + public void shouldKeepAllTheEventsDuringSessionIfGetAllIsInvoked() { + telemetryEventTracker.recordManualEventFor(LEVEL, SOURCE, MESSAGE); + + List telemetryEventsFirstCall = telemetryEventTracker.getAll(); + List telemetryEventsSecondCall = telemetryEventTracker.getAll(); + + assertThat(telemetryEventsFirstCall, is(telemetryEventsSecondCall)); + } + @Test public void shouldDiscardOldestEventsWhenMaxCapacityIsReached() { telemetryEventTracker.recordManualEventFor(LEVEL, SOURCE, MESSAGE); telemetryEventTracker.recordLogEventFor(LEVEL, SOURCE, MESSAGE); telemetryEventTracker.recordLogEventFor(LEVEL, SOURCE, MESSAGE); - List telemetryEvents = telemetryEventTracker.dump(); + List telemetryEvents = telemetryEventTracker.getAll(); assertThat(telemetryEvents.size(), is(MAXIMUM_TELEMETRY_DATA)); verifyContainsOnlyLogEvents(telemetryEvents); @@ -84,7 +94,7 @@ public void shouldTrackANetworkEvent() { public void shouldSetTheMaximumTelemetryDataLimitedToItsLowerLimit() { TelemetryEventTracker telemetryEventTracker = newEventTracker(MINIMUM_CAPACITY_FOR_TELEMETRY_EVENTS - 1); - List telemetryEvents = record70EventsAndDump(telemetryEventTracker); + List telemetryEvents = record101EventsAndDump(telemetryEventTracker); assertThat(telemetryEvents.size(), is(MINIMUM_CAPACITY_FOR_TELEMETRY_EVENTS)); } @@ -93,7 +103,7 @@ public void shouldSetTheMaximumTelemetryDataLimitedToItsLowerLimit() { public void shouldSetTheMaximumTelemetryDataLimitedToItsUpperLimit() { TelemetryEventTracker telemetryEventTracker = newEventTracker(MAXIMUM_CAPACITY_FOR_TELEMETRY_EVENTS + 1); - List telemetryEvents = record70EventsAndDump(telemetryEventTracker); + List telemetryEvents = record101EventsAndDump(telemetryEventTracker); assertThat(telemetryEvents.size(), is(MAXIMUM_CAPACITY_FOR_TELEMETRY_EVENTS)); } @@ -103,7 +113,7 @@ public void shouldSetTheMaximumTelemetryDataLimitedToAValueBetweenBounds() { int maximumTelemetryEvents = 20; TelemetryEventTracker telemetryEventTracker = newEventTracker(maximumTelemetryEvents); - List telemetryEvents = record70EventsAndDump(telemetryEventTracker); + List telemetryEvents = record101EventsAndDump(telemetryEventTracker); assertThat(telemetryEvents.size(), is(maximumTelemetryEvents)); } @@ -115,11 +125,11 @@ private TelemetryEventTracker newEventTracker(int maximumTelemetryData) { ); } - private List record70EventsAndDump(TelemetryEventTracker telemetryEventTracker) { - for (int i = 0; i < 120; i++) { + private List record101EventsAndDump(TelemetryEventTracker telemetryEventTracker) { + for (int i = 0; i < 101; i++) { telemetryEventTracker.recordManualEventFor(LEVEL, SOURCE, MESSAGE); } - return telemetryEventTracker.dump(); + return telemetryEventTracker.getAll(); } private Map getTrackedEventAsJson() { @@ -127,7 +137,7 @@ private Map getTrackedEventAsJson() { } private TelemetryEvent getFirstEvent() { - return telemetryEventTracker.dump().get(0); + return telemetryEventTracker.getAll().get(0); } private Map getExpectedJsonForALogTelemetryEvent() {