# 3.0 JDT Debug Change Notes

This document describes important changes in the 3.0 JDT debugger, relative to the 2.1 release.

## API Changes

### Java Breakpoint Listener Voting

Two methods on the `IJavaBreakpointListener` interface have changed return values from boolean to int. In releases prior to 3.0, listeners could only vote "suspend" or "don't suspend" when a breakpoint was hit, and "install" or "don't install" when a breakpoint was about to be installed. In 3.0, listeners can also vote "don't care" for either of these notifications. This allows clients to only make a decisive vote in situations that they care about. For "breakpoint hit" notifications, the breakpoint will suspend if any listeners vote to suspend or if all listeners vote "don't care". Similarly, for "breakpoint installing" notifications, the breakpoint will be installed if any listeners vote to install, or all listeners vote "don't care". In general, implementors should return DONT_CARE unless they have a strong opinion one way or the other. It is important to keep in mind, for example, that voting "suspend" will override any other listener's vote of "don't suspend".

The affected methods are `breakpointHit(IJavaBreakpoint, IJavaThread)` and `installingBreakpoing(IJavaTarget, IJavaBreakpoint, IJavaType)`.