Skip to content

Commit

Permalink
Fix various NPEs in events APIs
Browse files Browse the repository at this point in the history
Fixes #372
  • Loading branch information
jamesnetherton committed Sep 21, 2024
1 parent 455457a commit 273c26d
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.github.jamesnetherton.zulip.client.api.event.request.DeleteEventQueueApiRequest;
import com.github.jamesnetherton.zulip.client.api.event.request.GetMessageEventsApiRequest;
import com.github.jamesnetherton.zulip.client.api.event.request.RegisterEventQueueApiRequest;
import com.github.jamesnetherton.zulip.client.api.message.Message;
import com.github.jamesnetherton.zulip.client.api.narrow.Narrow;
import com.github.jamesnetherton.zulip.client.exception.ZulipClientException;
import com.github.jamesnetherton.zulip.client.http.ZulipHttpClient;
Expand Down Expand Up @@ -97,7 +98,14 @@ public void run() {

List<MessageEvent> messageEvents = getEvents.execute();
for (MessageEvent event : messageEvents) {
eventListenerExecutorService.submit(() -> listener.onEvent(event.getMessage()));
eventListenerExecutorService.submit(() -> {
Message message = event.getMessage();
if (message == null
|| (message.getContent() != null && message.getContent().equals("heartbeat"))) {
return;
}
listener.onEvent(message);
});
}

lastEventId = messageEvents.stream().max(Comparator.comparing(Event::getId))
Expand Down Expand Up @@ -135,14 +143,20 @@ public synchronized void stop() {
try {
LOG.info("EventPoller stopping");
status = Status.STOPPING;
executor.shutdown();

if (executor != null) {
executor.shutdown();
}

if (userManagedEventListenerExecutorService) {
eventListenerExecutorService.shutdown();
eventListenerExecutorService = null;
}

DeleteEventQueueApiRequest deleteQueue = new DeleteEventQueueApiRequest(this.client, queue.getQueueId());
deleteQueue.execute();
if (queue != null) {
DeleteEventQueueApiRequest deleteQueue = new DeleteEventQueueApiRequest(this.client, queue.getQueueId());
deleteQueue.execute();
}
} catch (ZulipClientException e) {
LOG.warning("Error deleting event queue - " + e.getMessage());
} finally {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public RegisterEventQueueApiRequest(ZulipHttpClient client, Narrow... narrows) {
putParamAsJsonString(EVENT_TYPES, MONITORED_EVENTS);

if (narrows.length > 0) {
String[][] stringNarrows = new String[1][narrows.length];
String[][] stringNarrows = new String[narrows.length][2];
for (int i = 0; i < narrows.length; i++) {
stringNarrows[i] = new String[] { narrows[i].getOperator(), narrows[i].getOperand() };
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ public void onEvent(Message event) {
messages.add(event.getContent());
latch.countDown();
}
}, Narrow.of("stream", streamA));
}, Narrow.of("stream", streamA), Narrow.of("is", "stream"));

try {
eventPoller.start();
Expand All @@ -123,9 +123,6 @@ public void onEvent(Message event) {

count += 2;
}
} catch (ZulipClientException e) {
e.printStackTrace();
throw e;
} finally {
eventPoller.stop();
}
Expand Down

0 comments on commit 273c26d

Please sign in to comment.