Ticket #225 (closed defect: fixed)

Opened 3 years ago

Last modified 3 years ago

NPE in CopyInheritanceBreakpointManager

Reported by: stephan Owned by:
Priority: major Milestone: OTDT_1.3.0_M4
Component: debug Version: 1.2.7
Keywords: Cc:

Description

I was stepping through a modified version of the flightbonus example, where I placed role FlightBonus.Subscriber in a role file. While stepping worked mostly OK, when the program terminated the following exception was logged:

java.lang.NullPointerException
        at org.objectteams.otdt.debug.ui.internal.CopyInheritanceBreakpointManager.deleteCopiedBreakpoints(CopyInheritanceBreakpointManager.java:421)
        at org.objectteams.otdt.debug.ui.internal.CopyInheritanceBreakpointManager.breakpointRemoved(CopyInheritanceBreakpointManager.java:395)
        at org.eclipse.jdt.internal.debug.core.JDIDebugPlugin$BreakpointNotifier.run(JDIDebugPlugin.java:455)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
        at org.eclipse.jdt.internal.debug.core.JDIDebugPlugin$BreakpointNotifier.notify(JDIDebugPlugin.java:485)
        at org.eclipse.jdt.internal.debug.core.JDIDebugPlugin.fireBreakpointRemoved(JDIDebugPlugin.java:379)
        at org.eclipse.jdt.internal.debug.core.breakpoints.JavaBreakpoint.fireRemoved(JavaBreakpoint.java:904)
        at org.eclipse.jdt.internal.debug.core.breakpoints.JavaBreakpoint.removeFromTarget(JavaBreakpoint.java:646)
        at org.eclipse.jdt.internal.debug.core.breakpoints.JavaLineBreakpoint.removeFromTarget(JavaLineBreakpoint.java:177)
        at org.eclipse.jdt.internal.debug.core.model.JDIDebugTarget.removeAllBreakpoints(JDIDebugTarget.java:1444)
        at org.eclipse.jdt.internal.debug.core.model.JDIDebugTarget.cleanup(JDIDebugTarget.java:1402)
        at org.eclipse.jdt.internal.debug.core.model.JDIDebugTarget.terminated(JDIDebugTarget.java:1367)
        at org.eclipse.jdt.internal.debug.core.model.JDIDebugTarget.handleVMDeath(JDIDebugTarget.java:926)
        at org.eclipse.jdt.internal.debug.core.EventDispatcher.dispatch(EventDispatcher.java:151)
        at org.eclipse.jdt.internal.debug.core.EventDispatcher.run(EventDispatcher.java:232)
        at java.lang.Thread.run(Thread.java:619)

Initial analysis shows that getClassFilePathFor computes a wrong path for the role file Subscriber, which ended in fbapplication/FlightBonus/Subscriber.class. The final "/" is wrong and should instead read "$__OT__".

This might have prevented some breakpoints from being properly installed. The NPE occurred during cleanup, though.

Change History

Changed 3 years ago by stephan

  • status changed from new to closed
  • resolution set to fixed
  • milestone set to OTDT_1.3.0_M4

No longer reproducable, assuming it was fixed by the fixes for #262.

Note: See TracTickets for help on using tickets.