diff -r d1ae132cee71 api.debugger.jpda/apichanges.xml
--- a/api.debugger.jpda/apichanges.xml Tue Feb 12 16:33:10 2013 +0100
+++ b/api.debugger.jpda/apichanges.xml Tue Feb 12 17:25:15 2013 +0100
@@ -801,6 +801,21 @@
+
+
+ Breakpoints can be made session-specific.
+
+
+
+
+
+ getSession()/setSession() methods are added to JPDABreakpoint class.
+ They can be used to make the breakpoint debugger session-specific.
+
+
+
+
+
diff -r d1ae132cee71 api.debugger.jpda/manifest.mf
--- a/api.debugger.jpda/manifest.mf Tue Feb 12 16:33:10 2013 +0100
+++ b/api.debugger.jpda/manifest.mf Tue Feb 12 17:25:15 2013 +0100
@@ -1,6 +1,6 @@
Manifest-Version: 1.0
OpenIDE-Module: org.netbeans.api.debugger.jpda/2
OpenIDE-Module-Localizing-Bundle: org/netbeans/api/debugger/jpda/Bundle.properties
-OpenIDE-Module-Specification-Version: 2.40
+OpenIDE-Module-Specification-Version: 2.41
OpenIDE-Module-Package-Dependencies: com.sun.jdi[VirtualMachineManager]
diff -r d1ae132cee71 api.debugger.jpda/src/org/netbeans/api/debugger/jpda/JPDABreakpoint.java
--- a/api.debugger.jpda/src/org/netbeans/api/debugger/jpda/JPDABreakpoint.java Tue Feb 12 16:33:10 2013 +0100
+++ b/api.debugger.jpda/src/org/netbeans/api/debugger/jpda/JPDABreakpoint.java Tue Feb 12 17:25:15 2013 +0100
@@ -98,7 +98,7 @@
private int suspend;
private String printText;
private Collection breakpointListeners = new HashSet();
- private JPDADebugger session;
+ private volatile JPDADebugger session;
private List engines = new ArrayList();
@@ -234,9 +234,9 @@
* This will make the breakpoint session-specific
*
* @param session the specific session
+ * @since 2.41
*/
- // TODO: make this public API
- synchronized void setSession(JPDADebugger session) {
+ public void setSession(JPDADebugger session) {
this.session = session;
}
@@ -246,9 +246,9 @@
* and is discarded after this session finishes.
*
* @return the specific session or null
.
+ * @since 2.41
*/
- // TODO: make this public API
- synchronized JPDADebugger getSession() {
+ public JPDADebugger getSession() {
return session;
}
diff -r d1ae132cee71 debugger.jpda.ui/nbproject/project.xml
--- a/debugger.jpda.ui/nbproject/project.xml Tue Feb 12 16:33:10 2013 +0100
+++ b/debugger.jpda.ui/nbproject/project.xml Tue Feb 12 17:25:15 2013 +0100
@@ -63,7 +63,7 @@
- 2
+ 2.41
diff -r d1ae132cee71 debugger.jpda.ui/src/org/netbeans/modules/debugger/jpda/ui/actions/RunToCursorActionProvider.java
--- a/debugger.jpda.ui/src/org/netbeans/modules/debugger/jpda/ui/actions/RunToCursorActionProvider.java Tue Feb 12 16:33:10 2013 +0100
+++ b/debugger.jpda.ui/src/org/netbeans/modules/debugger/jpda/ui/actions/RunToCursorActionProvider.java Tue Feb 12 17:25:15 2013 +0100
@@ -152,14 +152,7 @@
if (currentThread != null) {
breakpoint.setThreadFilters(debugger, new JPDAThread[] { currentThread });
}
- // TODO: mb.setSession(debugger);
- try {
- java.lang.reflect.Method setSessionMethod = JPDABreakpoint.class.getDeclaredMethod("setSession", JPDADebugger.class);
- setSessionMethod.setAccessible(true);
- setSessionMethod.invoke(breakpoint, debugger);
- } catch (Exception ex) {
- org.openide.util.Exceptions.printStackTrace(ex);
- }
+ breakpoint.setSession(debugger);
DebuggerManager.getDebuggerManager ().addBreakpoint (breakpoint);
if (currentThread != null) {
currentThread.resume();
diff -r d1ae132cee71 debugger.jpda/nbproject/project.xml
--- a/debugger.jpda/nbproject/project.xml Tue Feb 12 16:33:10 2013 +0100
+++ b/debugger.jpda/nbproject/project.xml Tue Feb 12 17:25:15 2013 +0100
@@ -64,7 +64,7 @@
2
- 2.37
+ 2.41
diff -r d1ae132cee71 debugger.jpda/src/org/netbeans/modules/debugger/jpda/JPDAStepImpl.java
--- a/debugger.jpda/src/org/netbeans/modules/debugger/jpda/JPDAStepImpl.java Tue Feb 12 16:33:10 2013 +0100
+++ b/debugger.jpda/src/org/netbeans/modules/debugger/jpda/JPDAStepImpl.java Tue Feb 12 17:25:15 2013 +0100
@@ -341,14 +341,7 @@
mb.setSuspend(JPDABreakpoint.SUSPEND_NONE);
lastMethodExitBreakpointListener = new MethodExitBreakpointListener(mb);
mb.addJPDABreakpointListener(lastMethodExitBreakpointListener);
- // TODO: mb.setSession(debugger);
- try {
- java.lang.reflect.Method setSessionMethod = JPDABreakpoint.class.getDeclaredMethod("setSession", JPDADebugger.class);
- setSessionMethod.setAccessible(true);
- setSessionMethod.invoke(mb, debugger);
- } catch (Exception ex) {
- org.openide.util.Exceptions.printStackTrace(ex);
- }
+ mb.setSession(debugger);
DebuggerManager.getDebuggerManager().addBreakpoint(mb);
}
}
diff -r d1ae132cee71 debugger.jpda/src/org/netbeans/modules/debugger/jpda/actions/RunIntoMethodActionProvider.java
--- a/debugger.jpda/src/org/netbeans/modules/debugger/jpda/actions/RunIntoMethodActionProvider.java Tue Feb 12 16:33:10 2013 +0100
+++ b/debugger.jpda/src/org/netbeans/modules/debugger/jpda/actions/RunIntoMethodActionProvider.java Tue Feb 12 17:25:15 2013 +0100
@@ -265,14 +265,7 @@
doAction(url, event.getReferenceType(), methodLine, methodOffset, method, false);
}
});
- // TODO: cbrkp.setSession(debugger);
- try {
- java.lang.reflect.Method setSessionMethod = JPDABreakpoint.class.getDeclaredMethod("setSession", JPDADebugger.class);
- setSessionMethod.setAccessible(true);
- setSessionMethod.invoke(cbrkp, debugger);
- } catch (Exception ex) {
- Exceptions.printStackTrace(ex);
- }
+ cbrkp.setSession(debugger);
DebuggerManager.getDebuggerManager().addBreakpoint(cbrkp);
resume(debugger);
}
diff -r d1ae132cee71 debugger.jpda/src/org/netbeans/modules/debugger/jpda/actions/StepActionProvider.java
--- a/debugger.jpda/src/org/netbeans/modules/debugger/jpda/actions/StepActionProvider.java Tue Feb 12 16:33:10 2013 +0100
+++ b/debugger.jpda/src/org/netbeans/modules/debugger/jpda/actions/StepActionProvider.java Tue Feb 12 17:25:15 2013 +0100
@@ -331,14 +331,7 @@
mb.setThreadFilters(getDebuggerImpl(), new JPDAThread[] { jtr });
lastMethodExitBreakpointListener = new MethodExitBreakpointListener(mb);
mb.addJPDABreakpointListener(lastMethodExitBreakpointListener);
- // TODO: mb.setSession(debugger);
- try {
- java.lang.reflect.Method setSessionMethod = JPDABreakpoint.class.getDeclaredMethod("setSession", JPDADebugger.class);
- setSessionMethod.setAccessible(true);
- setSessionMethod.invoke(mb, debugger);
- } catch (Exception ex) {
- Exceptions.printStackTrace(ex);
- }
+ mb.setSession(debugger);
DebuggerManager.getDebuggerManager().addBreakpoint(mb);
}
diff -r d1ae132cee71 debugger.jpda/src/org/netbeans/modules/debugger/jpda/breakpoints/BreakpointsEngineListener.java
--- a/debugger.jpda/src/org/netbeans/modules/debugger/jpda/breakpoints/BreakpointsEngineListener.java Tue Feb 12 16:33:10 2013 +0100
+++ b/debugger.jpda/src/org/netbeans/modules/debugger/jpda/breakpoints/BreakpointsEngineListener.java Tue Feb 12 17:25:15 2013 +0100
@@ -277,16 +277,7 @@
boolean removed = removeBreakpointImpl (bs [i]);
if (removed && bs[i] instanceof JPDABreakpoint) {
JPDABreakpoint jb = (JPDABreakpoint) bs[i];
- // TODO: JPDADebugger bDebugger = jb.getSession();
- JPDADebugger bDebugger;
- try {
- java.lang.reflect.Method getSessionMethod = JPDABreakpoint.class.getDeclaredMethod("getSession");
- getSessionMethod.setAccessible(true);
- bDebugger = (JPDADebugger) getSessionMethod.invoke(jb);
- } catch (Exception ex) {
- bDebugger = null;
- Exceptions.printStackTrace(ex);
- }
+ JPDADebugger bDebugger = jb.getSession();
if (bDebugger != null && bDebugger.equals(debugger)) {
// A hidden breakpoint submitted just for this one session. Remove it with the end of the session.
DebuggerManager.getDebuggerManager ().removeBreakpoint(jb);
@@ -317,16 +308,7 @@
synchronized (breakpointToImpl) {
if (breakpointToImpl.containsKey (b)) return;
if (!(b instanceof JPDABreakpoint)) return ;
- JPDADebugger bDebugger;
- try {
- // TODO: bDebugger = ((JPDADebugger) b).getSession();
- java.lang.reflect.Method getSessionMethod = JPDABreakpoint.class.getDeclaredMethod("getSession");
- getSessionMethod.setAccessible(true);
- bDebugger = (JPDADebugger) getSessionMethod.invoke(b);
- } catch (Exception ex) {
- bDebugger = null;
- Exceptions.printStackTrace(ex);
- }
+ JPDADebugger bDebugger = ((JPDABreakpoint) b).getSession();
if (bDebugger != null && !bDebugger.equals(debugger)) {
return ;
}