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(); } }