diff --git a/src/main/java/ee/carlrobert/codegpt/toolwindow/chat/ToolWindowCompletionResponseEventListener.java b/src/main/java/ee/carlrobert/codegpt/toolwindow/chat/ToolWindowCompletionResponseEventListener.java index d6d307f4..5f5c927a 100644 --- a/src/main/java/ee/carlrobert/codegpt/toolwindow/chat/ToolWindowCompletionResponseEventListener.java +++ b/src/main/java/ee/carlrobert/codegpt/toolwindow/chat/ToolWindowCompletionResponseEventListener.java @@ -38,6 +38,7 @@ abstract class ToolWindowCompletionResponseEventListener implements private final Timer updateTimer = new Timer(UPDATE_INTERVAL_MS, e -> processBufferedMessages()); private final ConcurrentLinkedQueue messageBuffer = new ConcurrentLinkedQueue<>(); + private boolean stopped = false; public ToolWindowCompletionResponseEventListener( ConversationService conversationService, @@ -134,6 +135,9 @@ abstract class ToolWindowCompletionResponseEventListener implements private void processBufferedMessages() { if (messageBuffer.isEmpty()) { + if (stopped) { + updateTimer.stop(); + } return; } @@ -147,7 +151,7 @@ abstract class ToolWindowCompletionResponseEventListener implements } private void stopStreaming(ChatMessageResponseBody responseContainer) { - updateTimer.stop(); + stopped = true; textArea.setSubmitEnabled(true); responseContainer.hideCaret(); }