From 84a4de633d6475ebe00a5e1541974ac826754bc5 Mon Sep 17 00:00:00 2001 From: Mykola Morhun Date: Fri, 21 Jul 2017 15:43:06 +0300 Subject: [PATCH] CHE-5235: Fix step into when source cannot be obtained (#5768) CHE-5235: Fix step into when source cannot be obtained. --- .../plugin/debugger/ide/debug/AbstractDebugger.java | 12 ++++++++++++ .../eclipse/che/plugin/jdb/server/JavaDebugger.java | 7 ++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/plugins/plugin-debugger/che-plugin-debugger-ide/src/main/java/org/eclipse/che/plugin/debugger/ide/debug/AbstractDebugger.java b/plugins/plugin-debugger/che-plugin-debugger-ide/src/main/java/org/eclipse/che/plugin/debugger/ide/debug/AbstractDebugger.java index 62dcdebe15..5c975be44b 100644 --- a/plugins/plugin-debugger/che-plugin-debugger-ide/src/main/java/org/eclipse/che/plugin/debugger/ide/debug/AbstractDebugger.java +++ b/plugins/plugin-debugger/che-plugin-debugger-ide/src/main/java/org/eclipse/che/plugin/debugger/ide/debug/AbstractDebugger.java @@ -215,6 +215,18 @@ public abstract class AbstractDebugger implements Debugger, DebuggerObservable { } private void openCurrentFile() { + // Handle the situation when resource isn't found in the workspace + // It means that it is impossible to open it. + if (currentLocation.getResourcePath() == null) { + for (DebuggerObserver observer : observers) { + observer.onBreakpointStopped(currentLocation.getTarget(), + currentLocation.getTarget(), + currentLocation.getLineNumber()); + } + + return; + } + //todo we need add possibility to handle few files activeFileHandler.openFile(currentLocation, new AsyncCallback() { diff --git a/plugins/plugin-java-debugger/che-plugin-java-debugger-server/src/main/java/org/eclipse/che/plugin/jdb/server/JavaDebugger.java b/plugins/plugin-java-debugger/che-plugin-java-debugger-server/src/main/java/org/eclipse/che/plugin/jdb/server/JavaDebugger.java index 830d92529b..88d277697d 100644 --- a/plugins/plugin-java-debugger/che-plugin-java-debugger-server/src/main/java/org/eclipse/che/plugin/jdb/server/JavaDebugger.java +++ b/plugins/plugin-java-debugger/che-plugin-java-debugger-server/src/main/java/org/eclipse/che/plugin/jdb/server/JavaDebugger.java @@ -596,7 +596,12 @@ public class JavaDebugger implements EventsHandler, Debugger { setCurrentThread(event.thread()); com.sun.jdi.Location jdiLocation = event.location(); - Location location = debuggerUtil.getLocation(jdiLocation); + Location location; + try { + location = debuggerUtil.getLocation(jdiLocation); + } catch (DebuggerException de) { + location = new LocationImpl(jdiLocation.declaringType().name(), jdiLocation.lineNumber()); + } debuggerCallback.onEvent(new SuspendEventImpl(location)); return false; }