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

TypeVersionMapper doesn't handle MonitorInfo correctly

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Not an Issue
    • Icon: P3 P3
    • None
    • 9
    • core-svc
    • None

      TypeVersionMapper::getVersionnedCompositeType will first look whether a filter exists for the composite type given as argument, and if no filter is found, then it will assume that no further processing is needed and simply return the given composite type.

      This doesn't take into account the fact that a composite type that hasn't changed between two versions can reference a composite type that has changed.

      This is the case for MonitorInfo. MonitorInfo itself has not changed, but it includes a field (lockedStackFrame) whose composite data has changed in JDK 9.

      As a result, if TypeVersionMapper is asked to retrieved the composite type of MonitorInfo for version 6, then that composite type will still reference types that are new in JDK 9 (it will contain the JDK 9 version of StackTraceElement which has module name and module version).
      This will impair the ability of a JDK 9 jvisualvm (or jconsole) to interoperate properly with a JDK 8 (or earlier) process.

            hb Harsha Wardhana B (Inactive)
            dfuchs Daniel Fuchs
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: