diff options
Diffstat (limited to 'java/debugger/openapi/src/com/intellij/debugger')
3 files changed, 17 insertions, 11 deletions
diff --git a/java/debugger/openapi/src/com/intellij/debugger/SourcePosition.java b/java/debugger/openapi/src/com/intellij/debugger/SourcePosition.java index 45f50d34b922..86bdbde18201 100644 --- a/java/debugger/openapi/src/com/intellij/debugger/SourcePosition.java +++ b/java/debugger/openapi/src/com/intellij/debugger/SourcePosition.java @@ -233,7 +233,7 @@ public abstract class SourcePosition implements Navigatable{ } } - PsiElement element; + PsiElement element = null; int offset = startOffset; while (true) { final CharSequence charsSequence = document.getCharsSequence(); @@ -243,6 +243,8 @@ public abstract class SourcePosition implements Navigatable{ break; } } + if (offset >= charsSequence.length()) break; + element = rootElement.findElementAt(offset); if (element instanceof PsiComment) { diff --git a/java/debugger/openapi/src/com/intellij/debugger/engine/DebugProcess.java b/java/debugger/openapi/src/com/intellij/debugger/engine/DebugProcess.java index 66fea2d7f38c..7a3624b1d16a 100644 --- a/java/debugger/openapi/src/com/intellij/debugger/engine/DebugProcess.java +++ b/java/debugger/openapi/src/com/intellij/debugger/engine/DebugProcess.java @@ -22,6 +22,7 @@ import com.intellij.debugger.engine.jdi.VirtualMachineProxy; import com.intellij.debugger.engine.managerThread.DebuggerManagerThread; import com.intellij.debugger.requests.RequestManager; import com.intellij.execution.ExecutionResult; +import com.intellij.execution.process.ProcessHandler; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Key; import com.intellij.psi.search.GlobalSearchScope; @@ -37,7 +38,7 @@ import java.util.List; public interface DebugProcess { @NonNls String JAVA_STRATUM = "Java"; - <T> T getUserData(Key<T> key); + <T> T getUserData(Key<T> key); <T> void putUserData(Key<T> key, T value); Project getProject(); @@ -76,17 +77,17 @@ public interface DebugProcess { List args) throws EvaluateException; /** - * Is equivalent to invokeInstanceMethod(evaluationContext, classType, method, args, 0) + * Is equivalent to invokeInstanceMethod(evaluationContext, classType, method, args, 0) */ Value invokeMethod(EvaluationContext evaluationContext, ClassType classType, Method method, List args) throws EvaluateException; - Value invokeInstanceMethod(EvaluationContext evaluationContext, - ObjectReference objRef, - Method method, - List args, + Value invokeInstanceMethod(EvaluationContext evaluationContext, + ObjectReference objRef, + Method method, + List args, int invocationOptions) throws EvaluateException; ReferenceType findClass(EvaluationContext evaluationContext, @@ -112,4 +113,8 @@ public interface DebugProcess { */ @NotNull GlobalSearchScope getSearchScope(); + + void printToConsole(String text); + + ProcessHandler getProcessHandler(); } diff --git a/java/debugger/openapi/src/com/intellij/debugger/engine/JSR45PositionManager.java b/java/debugger/openapi/src/com/intellij/debugger/engine/JSR45PositionManager.java index f188409f607d..d33e9ade7e08 100644 --- a/java/debugger/openapi/src/com/intellij/debugger/engine/JSR45PositionManager.java +++ b/java/debugger/openapi/src/com/intellij/debugger/engine/JSR45PositionManager.java @@ -20,7 +20,6 @@ import com.intellij.debugger.NoDataException; import com.intellij.debugger.PositionManager; import com.intellij.debugger.SourcePosition; import com.intellij.debugger.requests.ClassPrepareRequestor; -import com.intellij.execution.process.ProcessOutputTypes; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.fileTypes.FileType; @@ -167,11 +166,11 @@ public abstract class JSR45PositionManager<Scope> implements PositionManager { } catch(AbsentInformationException ignored) { } - catch(ClassNotPreparedException ignored) { + catch(ClassNotPreparedException ignored) { } catch (InternalError ignored) { - myDebugProcess.getExecutionResult().getProcessHandler().notifyTextAvailable( - DebuggerBundle.message("internal.error.locations.of.line", type.name()), ProcessOutputTypes.SYSTEM); + myDebugProcess.printToConsole( + DebuggerBundle.message("internal.error.locations.of.line", type.name())); } return null; } |