void (Debugger client) { myDebuggerSession = XsltDebuggerSession.getInstance(myProcessHandler); myDebuggerSession.addListener(new XsltDebuggerSession.Listener() { @Override public void debuggerSuspended() { final Debugger c = myDebuggerSession.getClient(); getSession().positionReached(new MySuspendContext(myDebuggerSession, c.getCurrentFrame(), c.getSourceFrame())); } @Override public void debuggerResumed() { } @Override public void debuggerStopped() { myBreakpointManager = new BreakpointManagerImpl(); } }); final BreakpointManager mgr = client.getBreakpointManager(); if (myBreakpointManager != mgr) { final List<Breakpoint> breakpoints = myBreakpointManager.getBreakpoints(); for (Breakpoint breakpoint : breakpoints) { final Breakpoint bp = mgr.setBreakpoint(breakpoint.getUri(), breakpoint.getLine()); bp.setEnabled(breakpoint.isEnabled()); bp.setLogMessage(breakpoint.getLogMessage()); bp.setTraceMessage(breakpoint.getTraceMessage()); bp.setCondition(breakpoint.getCondition()); bp.setSuspend(breakpoint.isSuspend()); } myBreakpointManager = mgr; } }