diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/StreamEvents.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/StreamEvents.java index 1c0a4247ac..76d15f7c1e 100644 --- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/StreamEvents.java +++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/StreamEvents.java @@ -169,9 +169,15 @@ final class StreamEvents extends BaseCommand { .create(); } + private void removeEventListenerRegistration() { + if (eventListenerRegistration != null) { + eventListenerRegistration.remove(); + } + } + @Override protected void onExit(final int rc) { - eventListenerRegistration.remove(); + removeEventListenerRegistration(); synchronized (taskLock) { done = true; @@ -182,7 +188,7 @@ final class StreamEvents extends BaseCommand { @Override public void destroy() { - eventListenerRegistration.remove(); + removeEventListenerRegistration(); final boolean exit; synchronized (taskLock) { @@ -230,7 +236,7 @@ final class StreamEvents extends BaseCommand { // destroy() above, or it closed the stream and is no longer // accepting output. Either way terminate this instance. // - eventListenerRegistration.remove(); + removeEventListenerRegistration(); flush(); onExit(0); return;