diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/XBreakpointGroupingByClassRule.java b/java/debugger/impl/src/com/intellij/debugger/ui/XBreakpointGroupingByClassRule.java index f06a17ef0727..cebaf68612a0 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/XBreakpointGroupingByClassRule.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/XBreakpointGroupingByClassRule.java @@ -15,8 +15,11 @@ */ package com.intellij.debugger.ui; +import com.intellij.debugger.DebuggerManagerEx; import com.intellij.debugger.ui.breakpoints.Breakpoint; +import com.intellij.debugger.ui.breakpoints.BreakpointManager; import com.intellij.icons.AllIcons; +import com.intellij.xdebugger.breakpoints.XBreakpoint; import com.intellij.xdebugger.breakpoints.ui.XBreakpointGroupingRule; import com.intellij.xdebugger.breakpoints.ui.XBreakpointsGroupingPriorities; import org.jetbrains.annotations.NotNull; @@ -42,10 +45,14 @@ class XBreakpointGroupingByClassRule extends XBreakpointGroupingRule groups) { - if (b instanceof Breakpoint) { - final Breakpoint breakpoint = (Breakpoint)b; - String className = breakpoint.getShortClassName(); - String packageName = breakpoint.getPackageName(); + if (b instanceof XBreakpoint) { + BreakpointManager breakpointManager = DebuggerManagerEx.getInstanceEx(JavaDebuggerSupport.getCurrentProject()).getBreakpointManager(); + Breakpoint javaBreakpoint = breakpointManager.findBreakpoint((XBreakpoint)b); + if (javaBreakpoint == null) { + return null; + } + String className = javaBreakpoint.getShortClassName(); + String packageName = javaBreakpoint.getPackageName(); if (className == null) { return null; } diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/XBreakpointGroupingByPackageRule.java b/java/debugger/impl/src/com/intellij/debugger/ui/XBreakpointGroupingByPackageRule.java index 5763a3648f64..98ef5a3409ec 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/XBreakpointGroupingByPackageRule.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/XBreakpointGroupingByPackageRule.java @@ -15,10 +15,12 @@ */ package com.intellij.debugger.ui; -import com.intellij.debugger.ui.breakpoints.BreakpointWithHighlighter; -import com.intellij.debugger.ui.breakpoints.ExceptionBreakpoint; +import com.intellij.debugger.DebuggerManagerEx; +import com.intellij.debugger.ui.breakpoints.Breakpoint; +import com.intellij.debugger.ui.breakpoints.BreakpointManager; import com.intellij.icons.AllIcons; import com.intellij.openapi.util.text.StringUtil; +import com.intellij.xdebugger.breakpoints.XBreakpoint; import com.intellij.xdebugger.breakpoints.ui.XBreakpointGroupingRule; import com.intellij.xdebugger.breakpoints.ui.XBreakpointsGroupingPriorities; import org.jetbrains.annotations.NotNull; @@ -41,11 +43,12 @@ public class XBreakpointGroupingByPackageRule extends XBreakpointGroupingRule @Override public XBreakpointPackageGroup getGroup(@NotNull B breakpoint, @NotNull Collection groups) { String packageName = null; - if (breakpoint instanceof BreakpointWithHighlighter) { - packageName = ((BreakpointWithHighlighter)breakpoint).getPackageName(); - } - else if (breakpoint instanceof ExceptionBreakpoint) { - packageName = ((ExceptionBreakpoint)breakpoint).getPackageName(); + if (breakpoint instanceof XBreakpoint) { + BreakpointManager breakpointManager = DebuggerManagerEx.getInstanceEx(JavaDebuggerSupport.getCurrentProject()).getBreakpointManager(); + Breakpoint javaBreakpoint = breakpointManager.findBreakpoint((XBreakpoint)breakpoint); + if (javaBreakpoint != null) { + packageName = javaBreakpoint.getPackageName(); + } } if (packageName == null) { return null; diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointManager.java b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointManager.java index fc3dc2016eca..0746168336b7 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointManager.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointManager.java @@ -389,6 +389,10 @@ public class BreakpointManager { return null; } + public Breakpoint findBreakpoint(XBreakpoint xBreakpoint) { + return myBreakpoints.get(xBreakpoint); + } + private List myOriginalBreakpointsNodes = new ArrayList(); public void readExternal(@NotNull final Element parentNode) { @@ -584,6 +588,7 @@ public class BreakpointManager { Breakpoint breakpoint = createJavaBreakpoint(xBreakpoint); myBreakpoints.put(xBreakpoint, breakpoint); myBreakpointsListForIteration = null; + breakpoint.updateUI(); RequestManagerImpl.createRequests(breakpoint); myDispatcher.getMulticaster().breakpointsChanged(); } @@ -621,6 +626,7 @@ public class BreakpointManager { public void writeExternal(@NotNull final Element parentNode) { // restore old breakpoints for (Element group : myOriginalBreakpointsNodes) { + group.detach(); for (Element breakpoint : group.getChildren("breakpoint")) { if (breakpoint.getAttribute(CONVERTED_PARAM) == null) { breakpoint.setAttribute(CONVERTED_PARAM, "true");