public void propertyChange (PropertyChangeEvent e) { boolean en = shouldBeEnabled (); setEnabled ( ActionsManager.ACTION_FIX, en ); if (debugger.getState () == JPDADebugger.STATE_DISCONNECTED) destroy (); } public void sessionRemoved (Session session) {}
DebuggerListener(JspWatchesTreeFilter jspWatchesFilter, JPDADebugger debugger) { jspWatchesFilterRef = new WeakReference<JspWatchesTreeFilter>(jspWatchesFilter); debuggerRef = new WeakReference<JPDADebugger>(debugger); debugger.addPropertyChangeListener(this); }
private void destroy() { JPDADebugger debugger = debuggerRef.get(); if (debugger != null) { debugger.removePropertyChangeListener(this); } }
@Override public void propertyChange(PropertyChangeEvent evt) { String propertyName = evt.getPropertyName(); if (DebuggerManager.PROP_CURRENT_SESSION.equals(propertyName)) { JPDADebugger newDebugger = getCurrentDebugger(); synchronized (this) { if (currentDebugger != null) { currentDebugger.removePropertyChangeListener(JPDADebugger.PROP_BREAKPOINTS_ACTIVE, this); } currentDebugger = newDebugger; } if (newDebugger != null) { setActive(newDebugger.getBreakpointsActive()); } else { setActive(true); } } if (JPDADebugger.PROP_BREAKPOINTS_ACTIVE.equals(propertyName)) { setActive(((JPDADebugger) evt.getSource()).getBreakpointsActive()); } }
private void setCurrentDebugger(DebuggerEngine engine) { JPDADebugger oldDebugger = currentDebugger; if (oldDebugger != null) { oldDebugger.removePropertyChangeListener(JPDADebugger.PROP_BREAKPOINTS_ACTIVE, this); } boolean active = true; JPDADebugger debugger = null; if (engine != null) { debugger = engine.lookupFirst(null, JPDADebugger.class); if (debugger != null) { debugger.addPropertyChangeListener(JPDADebugger.PROP_BREAKPOINTS_ACTIVE, this); active = debugger.getBreakpointsActive(); } } currentDebugger = debugger; getAnnotationProvider().setBreakpointsActive(active); }
static void attach(JPDADebugger d, ToolTipSupport tts) { DebuggerStateChangeListener dscl = new DebuggerStateChangeListener(tts); d.addPropertyChangeListener(JPDADebugger.PROP_STATE, dscl); tts.addPropertyChangeListener(propListener -> { if (ToolTipSupport.PROP_STATUS.equals(propListener.getPropertyName()) && !tts.isToolTipVisible()) { d.removePropertyChangeListener(JPDADebugger.PROP_STATE, dscl); } }); }
return; JPDAThread t = d.getCurrentThread(); if (t == null || !t.isSuspended()) { return; CallStackFrame currentCallStackFrame = d.getCurrentCallStackFrame(); if (currentCallStackFrame != null) { v = findField(currentCallStackFrame, fieldClass, expression); v = d.evaluate (expression);
public DebuggingJSTreeExpansionModelFilter(ContextProvider context) { debugger = context.lookupFirst(null, JPDADebugger.class); debugger.addPropertyChangeListener( JPDADebugger.PROP_CURRENT_CALL_STACK_FRAME, WeakListeners.propertyChange(this, JPDADebugger.PROP_CURRENT_CALL_STACK_FRAME, debugger)); dvSupport = context.lookupFirst(null, DVSupport.class); currentStackFrameChanged(debugger.getCurrentCallStackFrame()); }
throw new MojoFailureException("Current debugger is not JPDA one."); if (!debugger.canFixClasses ()) { throw new MojoFailureException("The debugger does not support Fix action."); if (debugger.getState () == JPDADebugger.STATE_DISCONNECTED) { throw new MojoFailureException ("The debugger is not running"); debugger.fixClasses (map); } catch (UnsupportedOperationException uoex) { error = "The virtual machine does not support this operation: "+uoex.getLocalizedMessage();
if (debugger == null) { error = NbBundle.getMessage(SourcePathProviderImpl.class, "MSG_NoJPDADebugger"); } else if (!debugger.canFixClasses()) { error = NbBundle.getMessage(SourcePathProviderImpl.class, "MSG_CanNotFix"); } else if (debugger.getState() == JPDADebugger.STATE_DISCONNECTED) { error = NbBundle.getMessage(SourcePathProviderImpl.class, "MSG_NoDebug");
private JPDAClassType getCurrentType() { CallStackFrame currentCallStackFrame = debugger.getCurrentCallStackFrame(); if (currentCallStackFrame == null) { return null; } //currentCallStackFrame.getClassType() - TODO: Add to API try { Method getClassTypeMethod = currentCallStackFrame.getClass().getMethod("getClassType"); return (JPDAClassType) getClassTypeMethod.invoke(currentCallStackFrame); } catch (Exception ex) { Exceptions.printStackTrace(ex); return null; } }
public StepIntoJSHandler(ContextProvider lookupProvider) { debugger = lookupProvider.lookupFirst(null, JPDADebugger.class); debugger.addPropertyChangeListener(JPDADebugger.PROP_CURRENT_CALL_STACK_FRAME, new CurrentSFTracker()); ScriptBPListener sbl = new ScriptBPListener(); int mbn = SCRIPT_ACCESS_METHODS.length; MethodBreakpoint mb = MethodBreakpoint.create(SCRIPT_ACCESS_CLASS, method); mb.setHidden(true); mb.setSuspend(debugger.getSuspend()); mb.setSession(debugger); mb.disable(); notifyInvokeBP.setMethodSignature(SCRIPT_NOTIFY_INVOKE_METHOD_SIG); notifyInvokeBP.setHidden(true); notifyInvokeBP.setSuspend(debugger.getSuspend()); notifyInvokeBP.setSession(debugger); notifyInvokeBP.disable();
JPDADebugger d = currentEngine.lookupFirst(null, JPDADebugger.class); if (d == null) return; JPDAThread t = d.getCurrentThread(); if (t == null || !t.isSuspended()) return ; String toolTipText = null; v = d.evaluate (expression);
private synchronized void evaluate() { String text = watch.getExpression (); text = text.replace("\"", "\\\""); text = "pageContext.getExpressionEvaluator().evaluate(\"" + text + "\", "+ "java.lang.String.class, "+ "((javax.servlet.jsp.PageContext) pageContext).getVariableResolver(), "+ "null)"; try { variable = debugger.evaluate(text); exception = null; } catch (Exception e) { exception = e; } finally { evaluated = true; } }
void run(Object[] nodes) { List<JPDAThread> threads = new ArrayList<>(nodes.length); for (Object node : nodes) { if (node instanceof JPDAThread) { threads.add((JPDAThread) node); } if (node instanceof CallStackFrame) { JPDAThread t = ((CallStackFrame) node).getThread(); if (!threads.contains(t)) { threads.add(t); } } } if (threads.isEmpty()) { threads.add(debugger.getCurrentThread()); } stackToCLBD (threads); } }
private boolean shouldBeEnabled () { // check if current debugger supports this action if (!debugger.canFixClasses()) return false; // check if current project supports this action Project p = getCurrentProject(); if (p == null) return false; ActionProvider actionProvider = (ActionProvider) p.getLookup (). lookup (ActionProvider.class); if (actionProvider == null) return false; String[] sa = actionProvider.getSupportedActions (); int i, k = sa.length; for (i = 0; i < k; i++) if (JavaProjectConstants.COMMAND_DEBUG_FIX.equals (sa [i])) break; if (i == k) return false; // check if this action should be enabled return ((ActionProvider) p.getLookup ().lookup ( ActionProvider.class )).isActionEnabled ( JavaProjectConstants.COMMAND_DEBUG_FIX, getLookup () ); }
public SessionActiveListener() { currentDebugger = getCurrentDebugger(); if (currentDebugger != null) { active = currentDebugger.getBreakpointsActive(); } }
private void setCurrentDebugger(DebuggerEngine engine) { JPDADebugger oldDebugger = currentDebugger; if (oldDebugger != null) { oldDebugger.removePropertyChangeListener(JPDADebugger.PROP_BREAKPOINTS_ACTIVE, this); } boolean active = true; JPDADebugger debugger = null; if (engine != null) { debugger = engine.lookupFirst(null, JPDADebugger.class); if (debugger != null) { debugger.addPropertyChangeListener(JPDADebugger.PROP_BREAKPOINTS_ACTIVE, this); active = debugger.getBreakpointsActive(); } } currentDebugger = debugger; getAnnotationProvider().setBreakpointsActive(active); }
@Override protected void handleToolTipClose(DebuggerEngine engine, ToolTipSupport tts) { JPDADebugger d = engine.lookupFirst(null, JPDADebugger.class); if (d == null) { return ; } PropertyChangeListener l = (PropertyChangeEvent evt) -> { int state = ((Integer) evt.getNewValue()); if (JPDADebugger.STATE_DISCONNECTED == state || JPDADebugger.STATE_RUNNING == state) { SwingUtilities.invokeLater(() -> tts.setToolTipVisible(false) ); } }; d.addPropertyChangeListener(JPDADebugger.PROP_STATE, l); tts.addPropertyChangeListener(pl -> { if (ToolTipSupport.PROP_STATUS.equals(pl.getPropertyName()) && !tts.isToolTipVisible()) { d.removePropertyChangeListener(JPDADebugger.PROP_STATE, l); } }); }
return; JPDAThread t = d.getCurrentThread(); if (t == null || !t.isSuspended()) { return; CallStackFrame currentCallStackFrame = d.getCurrentCallStackFrame(); if (currentCallStackFrame != null) { v = findField(currentCallStackFrame, fieldClass, expression); v = d.evaluate (expression);