[#1472] Add a Settings.executeDebugging property, and move

server-side Console logic to core - Removed
Debugger.modifyBreakpoint(). It does the same as
Debugger.addBreakpoint()
This commit is contained in:
Lukas Eder 2012-09-11 20:57:30 +02:00
parent a31e00dad1
commit 09f49a08c2
5 changed files with 34 additions and 79 deletions

View File

@ -374,22 +374,22 @@ public class DebuggerPane extends JPanel {
Breakpoint breakpoint = new Breakpoint(nextID++, null, null, true, null, null, null);
CheckBoxNode breakpointNode = new CheckBoxNode(breakpoint, name, true);
rootNode.add(breakpointNode);
breakpointTreeModel.nodesWereInserted(rootNode, new int[] {rootNode.getIndex(breakpointNode)});
breakpointTreeModel.nodesWereInserted(rootNode, new int[] { rootNode.getIndex(breakpointNode) });
breakpointTree.expandPath(new TreePath(rootNode));
debugger.addBreakpoint(breakpoint);
DebuggerPane.this.debugger.setBreakpointHitHandler(breakpointHitHandler);
breakpointTree.setSelectionPath(new TreePath(new Object[] {rootNode, breakpointNode}));
breakpointTree.setSelectionPath(new TreePath(new Object[] { rootNode, breakpointNode }));
}
void modifyBreakpoint(Breakpoint breakpoint) {
int childCount = rootNode.getChildCount();
for(int i=0; i<childCount; i++) {
CheckBoxNode checkBoxNode = (CheckBoxNode)rootNode.getChildAt(i);
Breakpoint breakpoint_ = (Breakpoint)checkBoxNode.getUserObject();
if(breakpoint_.getID() == breakpoint.getID()) {
for (int i = 0; i < childCount; i++) {
CheckBoxNode checkBoxNode = (CheckBoxNode) rootNode.getChildAt(i);
Breakpoint b = (Breakpoint) checkBoxNode.getUserObject();
if (b.getID() == breakpoint.getID()) {
checkBoxNode.setUserObject(breakpoint);
if(checkBoxNode.isSelected()) {
debugger.modifyBreakpoint(breakpoint);
if (checkBoxNode.isSelected()) {
debugger.addBreakpoint(breakpoint);
}
break;
}

View File

@ -68,10 +68,14 @@ public interface Debugger extends QueryExecutorCreator {
*/
LoggingListener getLoggingListener();
/**
* Add (or modify) a breakpoint to the debugger
* <p>
* This method adds a breakpoint to the debugger, or modifies the breakpoint
* if it already exists.
*/
void addBreakpoint(Breakpoint breakpoint);
void modifyBreakpoint(Breakpoint breakpoint);
void removeBreakpoint(Breakpoint breakpoint);
Breakpoint[] getBreakpoints();

View File

@ -53,7 +53,6 @@ import org.jooq.tools.debug.ResultLog;
import org.jooq.tools.debug.impl.Message.NoResult;
import org.jooq.tools.debug.impl.ServerDebugger.CMS_addBreakpoint;
import org.jooq.tools.debug.impl.ServerDebugger.CMS_isExecutionSupported;
import org.jooq.tools.debug.impl.ServerDebugger.CMS_modifyBreakpoint;
import org.jooq.tools.debug.impl.ServerDebugger.CMS_removeBreakpoint;
import org.jooq.tools.debug.impl.ServerDebugger.CMS_setBreakpointHitHandlerActive;
import org.jooq.tools.debug.impl.ServerDebugger.CMS_setLoggingActive;
@ -83,14 +82,13 @@ class ClientDebugger implements Debugger {
@Override
public void setLoggingListener(LoggingListener listener) {
synchronized (LOGGING_LISTENER_LOCK) {
if(this.loggingListener == listener) {
if (this.loggingListener == listener) {
return;
}
this.loggingListener = listener;
}
comm.asyncSend((CommandMessage<?>) new CMS_setLoggingActive(
listener != null,
listener != null ? listener.getMatchers() : null));
comm.asyncSend(new CMS_setLoggingActive(listener != null, listener != null ? listener.getMatchers() : null));
}
@Override
@ -106,42 +104,27 @@ class ClientDebugger implements Debugger {
@Override
public void addBreakpoint(Breakpoint breakpoint) {
synchronized (BREAKPOINT_LOCK) {
if(this.breakpoints == null) {
this.breakpoints = new Breakpoint[] {breakpoint};
comm.asyncSend((CommandMessage<?>) new CMS_addBreakpoint(breakpoint));
if (this.breakpoints == null) {
this.breakpoints = new Breakpoint[] { breakpoint };
comm.asyncSend(new CMS_addBreakpoint(breakpoint));
return;
}
for(int i=0; i<breakpoints.length; i++) {
if(breakpoints[i].getID() == breakpoint.getID()) {
for (int i = 0; i < breakpoints.length; i++) {
if (breakpoints[i].getID() == breakpoint.getID()) {
breakpoints[i] = breakpoint;
comm.asyncSend((CommandMessage<?>) new CMS_modifyBreakpoint(breakpoint));
comm.asyncSend(new CMS_addBreakpoint(breakpoint));
return;
}
}
Breakpoint[] newBreakpoints = new Breakpoint[breakpoints.length + 1];
System.arraycopy(breakpoints, 0, newBreakpoints, 0, breakpoints.length);
newBreakpoints[breakpoints.length] = breakpoint;
breakpoints = newBreakpoints;
}
comm.asyncSend((CommandMessage<?>) new CMS_addBreakpoint(breakpoint));
}
@Override
public void modifyBreakpoint(Breakpoint breakpoint) {
synchronized (BREAKPOINT_LOCK) {
if (this.breakpoints == null) {
addBreakpoint(breakpoint);
return;
}
for (int i = 0; i < breakpoints.length; i++) {
if (breakpoints[i].getID() == breakpoint.getID()) {
breakpoints[i] = breakpoint;
comm.asyncSend((CommandMessage<?>) new CMS_modifyBreakpoint(breakpoint));
return;
}
}
addBreakpoint(breakpoint);
}
comm.asyncSend(new CMS_addBreakpoint(breakpoint));
}
@Override
@ -160,7 +143,7 @@ class ClientDebugger implements Debugger {
System.arraycopy(breakpoints, i + 1, newBreakpoints, i, newBreakpoints.length - i);
breakpoints = newBreakpoints;
}
comm.asyncSend((CommandMessage<?>) new CMS_removeBreakpoint(breakpoint));
comm.asyncSend(new CMS_removeBreakpoint(breakpoint));
break;
}
}
@ -185,7 +168,7 @@ class ClientDebugger implements Debugger {
}
this.breakpointHitHandler = breakpointHitHandler;
}
comm.asyncSend((CommandMessage<?>) new CMS_setBreakpointHitHandlerActive(breakpointHitHandler != null));
comm.asyncSend(new CMS_setBreakpointHitHandlerActive(breakpointHitHandler != null));
}
@Override

View File

@ -100,16 +100,18 @@ class LocalDebugger implements Debugger {
@Override
public void addBreakpoint(Breakpoint breakpoint) {
synchronized (BREAKPOINT_LOCK) {
if(this.breakpoints == null) {
this.breakpoints = new Breakpoint[] {breakpoint};
if (this.breakpoints == null) {
this.breakpoints = new Breakpoint[] { breakpoint };
return;
}
for(int i=0; i<breakpoints.length; i++) {
if(breakpoints[i].getID() == breakpoint.getID()) {
for (int i = 0; i < breakpoints.length; i++) {
if (breakpoints[i].getID() == breakpoint.getID()) {
breakpoints[i] = breakpoint;
return;
}
}
Breakpoint[] newBreakpoints = new Breakpoint[breakpoints.length + 1];
System.arraycopy(breakpoints, 0, newBreakpoints, 0, breakpoints.length);
newBreakpoints[breakpoints.length] = breakpoint;
@ -117,23 +119,6 @@ class LocalDebugger implements Debugger {
}
}
@Override
public void modifyBreakpoint(Breakpoint breakpoint) {
synchronized (BREAKPOINT_LOCK) {
if(this.breakpoints == null) {
addBreakpoint(breakpoint);
return;
}
for(int i=0; i<breakpoints.length; i++) {
if(breakpoints[i].getID() == breakpoint.getID()) {
breakpoints[i] = breakpoint;
return;
}
}
addBreakpoint(breakpoint);
}
}
@Override
public void removeBreakpoint(Breakpoint breakpoint) {
synchronized (BREAKPOINT_LOCK) {

View File

@ -151,23 +151,6 @@ class ServerDebugger extends LocalDebugger {
}
}
static class CMS_modifyBreakpoint extends CommandMessage<NoResult> {
private final Breakpoint breakpoint;
CMS_modifyBreakpoint(Breakpoint breakpoint) {
this.breakpoint = breakpoint;
}
@Override
public NoResult run(MessageContext context) {
// Serialization has a cache, assuming objects are immutable. We
// have to reset our internal states.
breakpoint.reset();
context.getDebugger().modifyBreakpoint(breakpoint);
return null;
}
}
static class CMS_removeBreakpoint extends CommandMessage<NoResult> {
private final Breakpoint breakpoint;