diff --git a/pom.xml b/pom.xml index 680227b..2bdf59a 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ io.timson firehose-mock - 0.0.2 + 0.0.3 Firehose Mock https://github.com/ptimson/firehose-mock diff --git a/src/main/java/io/timson/firehose/stream/S3DeliveryStream.java b/src/main/java/io/timson/firehose/stream/S3DeliveryStream.java index a5c4c84..ad18d67 100644 --- a/src/main/java/io/timson/firehose/stream/S3DeliveryStream.java +++ b/src/main/java/io/timson/firehose/stream/S3DeliveryStream.java @@ -34,11 +34,15 @@ public class S3DeliveryStream implements DeliveryStream { private final Long bufferIntervalMs; private final Long bufferFlushSizeBytes; private final CompressionFormat compressionFormat; - + private final TimerTask flushTimerTask = new TimerTask() { + @Override + public void run() { + flush(); + } + }; private StringBuilder buffer = new StringBuilder(); private long bufferSize = 0; private Timer flushTimer; - private TimerTask flushTimerTask; private S3DeliveryStream(String name, S3Client s3Client, @@ -64,17 +68,14 @@ private String extractBucketName(String s3BucketArn) { } private void startFlushTimer() { - flushTimerTask = new TimerTask() { - @Override - public void run() { - flush(); - } - }; flushTimer = new Timer(); flushTimer.schedule(flushTimerTask, bufferIntervalMs); } private void stopFlushTimer() { + if (flushTimer == null) { + return; + } flushTimer.cancel(); } diff --git a/src/test/java/io/timson/firehose/stream/S3DeliveryStreamTest.java b/src/test/java/io/timson/firehose/stream/S3DeliveryStreamTest.java index c13c367..4b96ed0 100644 --- a/src/test/java/io/timson/firehose/stream/S3DeliveryStreamTest.java +++ b/src/test/java/io/timson/firehose/stream/S3DeliveryStreamTest.java @@ -144,4 +144,9 @@ public void shouldCreateSnappyS3Object_WhenEncryptionTypeIsSnappy() throws Excep verify(s3Client, only()).createSnappyObject(eq(S3_BUCKET), anyString(), eq(MESSAGE_1)); } + @Test + public void shouldThrowNullPointer_WhenStoppedBeforeMessageWritten() throws Exception { + stream.stop(); + } + } \ No newline at end of file