Several {@link Event} objects may be created at a given time bythe target {@link VirtualMachine}. For example, there may be more than one {@link com.sun.jdi.request.BreakpointRequest}for a given {@link Location}or you might single step to the same location as a BreakpointRequest. These {@link Event} objects are deliveredtogether as an EventSet. For uniformity, an EventSet is always used to deliver {@link Event} objects. EventSets are delivered bythe {@link EventQueue}. EventSets are unmodifiable.
Associated with the issuance of an event set, suspensions may have occurred in the target VM. These suspensions correspond with the {@link #suspendPolicy() suspend policy}. To assure matching resumes occur, it is recommended, where possible, to complete the processing of an event set with {@link #resume() EventSet.resume()}.
The events that are grouped in an EventSet are restricted in the following ways:
- Always singleton sets:
- {@link VMStartEvent}
- {@link VMDisconnectEvent}
- Only with other VMDeathEvents:
- Only with other ThreadStartEvents for the same thread:
- Only with other ThreadDeathEvents for the same thread:
- Only with other ClassPrepareEvents for the same class:
- {@link ClassPrepareEvent}
- Only with other ClassUnloadEvents for the same class:
- Only with other AccessWatchpointEvents for the same field access:
- {@link AccessWatchpointEvent}
- Only with other ModificationWatchpointEvents for the same field modification:
- {@link ModificationWatchpointEvent}
- Only with other ExceptionEvents for the same exception occurrance:
- Only with other MethodExitEvents for the same method exit:
- Only with other Monitor contended enter events for the same monitor object:
- Monitor Contended Enter Event
- Only with other Monitor contended entered events for the same monitor object:
- Monitor Contended Entered Event
- Only with other Monitor wait events for the same monitor object:
- Only with other Monitor waited events for the same monitor object:
- Only with other members of this group, at the same location and in the same thread:
- {@link BreakpointEvent}
- {@link StepEvent}
- {@link MethodEntryEvent}
@see Event
@see EventQueue
@author Robert Field
@since 1.3