Duplicate :
|
|
Relates :
|
|
Relates :
|
Several jdi event requests provide method addInstanceFilter(ObjectReference instance) which should restrict the events generated by this request to those in which the currently executing instance ("this") is the object specified. But if events occur in native method this filter doesn't affect such events. Attached test try use instance filter for ExceptionRequest, MonitorContendedEnterRequest, MonitorContendedEnteredRequest. 10 objects in debuggee VM generate events in native method, debugger expect events only from one of them, but receive events generated by all objects. Test output: Breakpoint Initialize requests Requests initialized Received event: ###@###.###veThrowException()+-1 in thread main Received event: ###@###.###veMonitorEnter()+-1 in thread main Received event: ###@###.###veMonitorEnter()+-1 in thread main Received event: ###@###.###veThrowException()+-1 in thread main Received event: ###@###.###veMonitorEnter()+-1 in thread main Received event: ###@###.###veMonitorEnter()+-1 in thread main Received event: ###@###.###veThrowException()+-1 in thread main Received event: ###@###.###veMonitorEnter()+-1 in thread main Received event: ###@###.###veMonitorEnter()+-1 in thread main Received event: ###@###.###veThrowException()+-1 in thread main Received event: ###@###.###veMonitorEnter()+-1 in thread main Received event: ###@###.###veMonitorEnter()+-1 in thread main Received event: ###@###.###veThrowException()+-1 in thread main Received event: ###@###.###veMonitorEnter()+-1 in thread main Received event: ###@###.###veMonitorEnter()+-1 in thread main Received event: ###@###.###veThrowException()+-1 in thread main Received event: ###@###.###veMonitorEnter()+-1 in thread main Received event: ###@###.###veMonitorEnter()+-1 in thread main Received event: ###@###.###veThrowException()+-1 in thread main Received event: ###@###.###veMonitorEnter()+-1 in thread main Received event: ###@###.###veMonitorEnter()+-1 in thread main Received event: ###@###.###veThrowException()+-1 in thread main Received event: ###@###.###veMonitorEnter()+-1 in thread main Received event: ###@###.###veMonitorEnter()+-1 in thread main Received event: ###@###.###veThrowException()+-1 in thread main Received event: ###@###.###veMonitorEnter()+-1 in thread main Received event: ###@###.###veMonitorEnter()+-1 in thread main Received event: ###@###.###veThrowException()+-1 in thread main Received event: ###@###.###veMonitorEnter()+-1 in thread main Received event: ###@###.###veMonitorEnter()+-1 in thread main Breakpoint Received event: VMDeathEvent Received event: VMDisconnectEvent Total events: Enter events: 10 Entered events: 10 Exception events: 10 Error: enter events != 1 actually: 10 Error: entered events != 1 actually: 10 Error: exception events != 1 actually: 10 TEST FAIL
|