Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6436034

Instance filter doesn't filter event if it occurs in native method

XMLWordPrintable

    • b128
    • generic
    • generic
    • Not verified

      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

            kamg Keith Mcguigan (Inactive)
            sboikovsunw Semen Boikov (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: