From cfd5f6f651ec128e71dd11994ba4eca79f55fc04 Mon Sep 17 00:00:00 2001 From: Carl-Robert Linnupuu Date: Fri, 15 Nov 2024 18:25:15 +0000 Subject: [PATCH] fix: chat response streaming for messages received faster than polling rate (fixes #757) --- .../chat/ToolWindowCompletionResponseEventListener.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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(); }