From 9af4afc9976472744a4452e5376caa4599116dcd Mon Sep 17 00:00:00 2001 From: "Egor.Ushakov" Date: Fri, 12 Aug 2016 12:37:27 +0300 Subject: [PATCH] clear positions cache on hotswap --- .../com/intellij/debugger/engine/CompoundPositionManager.java | 4 ++++ .../src/com/intellij/debugger/impl/ReloadClassesWorker.java | 2 ++ 2 files changed, 6 insertions(+) diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/CompoundPositionManager.java b/java/debugger/impl/src/com/intellij/debugger/engine/CompoundPositionManager.java index 67f1e7b73cfd..68ee9f2c92f4 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/CompoundPositionManager.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/CompoundPositionManager.java @@ -54,6 +54,10 @@ public class CompoundPositionManager extends PositionManagerEx implements MultiR public void appendPositionManager(PositionManager manager) { myPositionManagers.remove(manager); myPositionManagers.add(0, manager); + clearCache(); + } + + public void clearCache() { mySourcePositionCache.clear(); } diff --git a/java/debugger/impl/src/com/intellij/debugger/impl/ReloadClassesWorker.java b/java/debugger/impl/src/com/intellij/debugger/impl/ReloadClassesWorker.java index b3a3cd01416f..319d1e781988 100644 --- a/java/debugger/impl/src/com/intellij/debugger/impl/ReloadClassesWorker.java +++ b/java/debugger/impl/src/com/intellij/debugger/impl/ReloadClassesWorker.java @@ -168,6 +168,8 @@ class ReloadClassesWorker { processException(e); } + debugProcess.getPositionManager().clearCache(); + DebuggerContextImpl context = myDebuggerSession.getContextManager().getContext(); SuspendContextImpl suspendContext = context.getSuspendContext(); if (suspendContext != null) {