Skip to content

Commit ce5c9cc

Browse files
trancexpressiloveeclipse
authored andcommitted
Log console contents if SeparateVMTests hangs
Fixes: #2550
1 parent cd6abcb commit ce5c9cc

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

  • ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin

ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AntUITestUtil.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,16 @@
2828
import org.eclipse.core.runtime.CoreException;
2929
import org.eclipse.core.runtime.FileLocator;
3030
import org.eclipse.core.runtime.IPath;
31+
import org.eclipse.core.runtime.IStatus;
32+
import org.eclipse.core.runtime.Status;
3133
import org.eclipse.debug.core.DebugEvent;
3234
import org.eclipse.debug.core.DebugPlugin;
3335
import org.eclipse.debug.core.ILaunch;
3436
import org.eclipse.debug.core.ILaunchConfiguration;
3537
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
3638
import org.eclipse.debug.core.ILaunchManager;
3739
import org.eclipse.debug.core.model.IProcess;
40+
import org.eclipse.debug.internal.ui.views.console.ProcessConsole;
3841
import org.eclipse.jdt.core.IJavaProject;
3942
import org.eclipse.jdt.core.JavaCore;
4043
import org.eclipse.jface.text.BadLocationException;
@@ -45,6 +48,9 @@
4548
import org.eclipse.jface.text.Position;
4649
import org.eclipse.swt.graphics.Color;
4750
import org.eclipse.swt.widgets.Display;
51+
import org.eclipse.ui.console.ConsolePlugin;
52+
import org.eclipse.ui.console.IConsole;
53+
import org.eclipse.ui.console.IConsoleManager;
4854
import org.eclipse.ui.console.IHyperlink;
4955
import org.eclipse.ui.internal.console.ConsoleHyperlinkPosition;
5056
import org.eclipse.ui.internal.console.IOConsolePartition;
@@ -85,6 +91,7 @@ public static Object launchAndWait(ILaunchConfiguration configuration, DebugEven
8591
ILaunch launch = configuration.launch(ILaunchManager.RUN_MODE, null);
8692
Object suspendee = waiter.waitForEvent();
8793
if (suspendee == null) {
94+
logProcessConsoleContents();
8895
try {
8996
launch.terminate();
9097
}
@@ -334,4 +341,23 @@ public static IHyperlink getHyperlink(int offset, IDocument doc) {
334341
public static void activateLink(final IHyperlink link) {
335342
Display.getDefault().asyncExec(() -> link.linkActivated());
336343
}
344+
345+
public static void logProcessConsoleContents() {
346+
try {
347+
StringBuilder buf = new StringBuilder();
348+
IConsoleManager manager = ConsolePlugin.getDefault().getConsoleManager();
349+
for (IConsole console : manager.getConsoles()) {
350+
if (console instanceof ProcessConsole) {
351+
ProcessConsole processConsole = (ProcessConsole) console;
352+
String string = processConsole.getDocument().get();
353+
buf.append("Console output for \"" + processConsole.getName() + "\" follows:\n"); //$NON-NLS-1$ //$NON-NLS-2$
354+
buf.append(string);
355+
}
356+
}
357+
buf.append("\n"); //$NON-NLS-1$
358+
AntUIPlugin.log(new Status(IStatus.INFO, "org.eclipse.jdt.debug.ui.tests", buf.toString())); //$NON-NLS-1$
359+
} catch (Throwable t) {
360+
AntUIPlugin.log(t);
361+
}
362+
}
337363
}

0 commit comments

Comments
 (0)