From 0b4f8ff2dc7d216ec27b44aa80aa522da4507d8e Mon Sep 17 00:00:00 2001 From: Rob Stryker Date: Wed, 19 Aug 2026 17:18:18 -0400 Subject: [PATCH] Fix InputStreamMonitor.writeNext() wait() not in loop Use while loop instead of if to guard Object.wait() against spurious wakeups per JLS 17.2.1. Fixes https://github.com/eclipse-platform/eclipse.platform/issues/2881 --- .../org/eclipse/debug/internal/core/InputStreamMonitor.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/debug/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/InputStreamMonitor.java b/debug/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/InputStreamMonitor.java index 56b6d53d807..19b9c8343ad 100644 --- a/debug/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/InputStreamMonitor.java +++ b/debug/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/InputStreamMonitor.java @@ -186,7 +186,8 @@ private void writeNext() throws IOException { synchronized(fLock) { // Queue could receive more input between last empty check and // lock acquire. See https://bugs.eclipse.org/550834 - if (fQueue.isEmpty()) { + // Use while instead of if to guard against spurious wakeups. + while (fQueue.isEmpty()) { fLock.wait(); } }