From e94e313185d003181ad874136d9b09608006035a Mon Sep 17 00:00:00 2001 From: ambientlabs Date: Mon, 8 Jun 2020 10:02:46 -1000 Subject: [PATCH] NPE fix for closing with pending AckClosure(s) on Android --- src/main/java/io/nats/streaming/StreamingConnectionImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/nats/streaming/StreamingConnectionImpl.java b/src/main/java/io/nats/streaming/StreamingConnectionImpl.java index 6a410c2..1cf8242 100644 --- a/src/main/java/io/nats/streaming/StreamingConnectionImpl.java +++ b/src/main/java/io/nats/streaming/StreamingConnectionImpl.java @@ -354,7 +354,8 @@ void close(boolean silent) throws IOException, InterruptedException { for (AckClosure ac : this.pubAckMap.values()) { ac.ackTask.cancel(); - if (!ac.ch.isEmpty()) { + // Note: Providing an Ack Handler when publishing to STAN (on Android) can result in NPEs during some closing scenarios + if (ac.ch != null && !ac.ch.isEmpty()) { ac.ch.take(); } }