Skip to content

Commit be72edb

Browse files
committed
Fix restart frame handler
StepRequest should be deleted after we receive its corresponding debug event
1 parent 4d19fec commit be72edb

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

com.microsoft.java.debug.core/src/main/java/com/microsoft/java/debug/core/adapter/handler/RestartFrameHandler.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import com.microsoft.java.debug.core.protocol.Requests.RestartFrameArguments;
3333
import com.sun.jdi.StackFrame;
3434
import com.sun.jdi.ThreadReference;
35+
import com.sun.jdi.request.EventRequestManager;
3536
import com.sun.jdi.request.StepRequest;
3637

3738
/**
@@ -102,8 +103,10 @@ private void popStackFrames(IDebugAdapterContext context, ThreadReference thread
102103
}
103104

104105
private void stepInto(IDebugAdapterContext context, ThreadReference thread) {
106+
EventRequestManager manager = context.getDebugSession().getVM().eventRequestManager();
105107
StepRequest request = DebugUtility.createStepIntoRequest(thread, context.getStepFilters().allowClasses, context.getStepFilters().skipClasses);
106108
context.getDebugSession().getEventHub().stepEvents().filter(debugEvent -> request.equals(debugEvent.event.request())).take(1).subscribe(debugEvent -> {
109+
DebugUtility.deleteEventRequestSafely(manager, request);
107110
debugEvent.shouldResume = false;
108111
// Have to send two events to keep the UI sync with the step in operations:
109112
context.getProtocolServer().sendEvent(new Events.ContinuedEvent(thread.uniqueID()));

0 commit comments

Comments
 (0)