Bug 225377 - Debugging a simple program opens editor for Object.class
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/threadgroups/JavaDebugTargetProxy.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/threadgroups/JavaDebugTargetProxy.java
index 30f9cbe..63d251c 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/threadgroups/JavaDebugTargetProxy.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/threadgroups/JavaDebugTargetProxy.java
@@ -10,6 +10,10 @@
*******************************************************************************/
package org.eclipse.jdt.internal.debug.ui.threadgroups;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.debug.core.model.IDebugTarget;
import org.eclipse.debug.internal.ui.viewers.update.DebugEventHandler;
import org.eclipse.debug.internal.ui.viewers.update.DebugTargetEventHandler;
@@ -44,7 +48,19 @@
* @see org.eclipse.debug.internal.ui.viewers.update.DebugTargetProxy#installed(org.eclipse.jface.viewers.Viewer)
*/
public void installed(Viewer viewer) {
- super.installed(viewer);
+ final Viewer finalViewer = viewer;
+ // Delay the auto-select-expand job to allow for transient suspend states to resolve.
+ // See bug 225377
+ Job job = new Job("Initialize Java Debug Session") { //$NON-NLS-1$
+ protected IStatus run(IProgressMonitor monitor) {
+ if (!isDisposed()) {
+ JavaDebugTargetProxy.super.installed(finalViewer);
+ }
+ return Status.OK_STATUS;
+ }
+ };
+ job.setSystem(true);
+ job.schedule(500);
fThreadEventHandler.init(viewer);
}