From 7014f9fc684261dc9c9906ec92f91b3f28f81e99 Mon Sep 17 00:00:00 2001 From: "Egor.Ushakov" Date: Thu, 3 Dec 2015 11:54:31 +0300 Subject: [PATCH] IDEA-148802 Java Scratch files debugging: debugger ignores breakpoints in module classes and doesn't show their sources --- .../debugger/engine/PositionManagerImpl.java | 2 +- .../scratch/JavaScratchPositionManager.java | 17 ++++++++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/PositionManagerImpl.java b/java/debugger/impl/src/com/intellij/debugger/engine/PositionManagerImpl.java index 6b2713e87a9b..92782de35e97 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/PositionManagerImpl.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/PositionManagerImpl.java @@ -333,7 +333,7 @@ public class PositionManagerImpl implements PositionManager, MultiRequestPositio } @Nullable - protected PsiFile getPsiFileByLocation(final Project project, final Location location) { + protected PsiFile getPsiFileByLocation(final Project project, final Location location) throws NoDataException { if (location == null) { return null; } diff --git a/java/execution/impl/src/com/intellij/execution/scratch/JavaScratchPositionManager.java b/java/execution/impl/src/com/intellij/execution/scratch/JavaScratchPositionManager.java index 46756fc35048..58380e1b91d3 100644 --- a/java/execution/impl/src/com/intellij/execution/scratch/JavaScratchPositionManager.java +++ b/java/execution/impl/src/com/intellij/execution/scratch/JavaScratchPositionManager.java @@ -15,6 +15,7 @@ */ package com.intellij.execution.scratch; +import com.intellij.debugger.NoDataException; import com.intellij.debugger.engine.DebugProcessImpl; import com.intellij.debugger.engine.PositionManagerImpl; import com.intellij.openapi.project.Project; @@ -40,9 +41,7 @@ public class JavaScratchPositionManager extends PositionManagerImpl{ myScratchFile = scratchFile; } - @Nullable - @Override - protected PsiFile getPsiFileByLocation(Project project, Location location) { + private PsiFile getScratchPsiFileByLocation(Project project, Location location) { if (location == null) { return null; } @@ -78,4 +77,16 @@ public class JavaScratchPositionManager extends PositionManagerImpl{ return null; } + + @Nullable + @Override + protected PsiFile getPsiFileByLocation(Project project, Location location) throws NoDataException { + PsiFile file = getScratchPsiFileByLocation(project, location); + if (file != null) { + return file; + } + else { + throw NoDataException.INSTANCE; + } + } }