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

JDI: Signature lookups for unprepared classes can take a long time


    • Type: Enhancement
    • Status: Resolved
    • Priority: P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 13
    • Component/s: core-svc
    • Labels:
    • Subcomponent:
    • Resolved In Build:


      VisibleClasses can take very long on high delay networks. The issue is that visibleClasses does not include signatures in its response, and when we on the client side cache the result we need the signature. So for classes that are not previously cached we will do sequential remote calls to load their signature. Those remote calls are what causes the client to "hang" for several minutes.

      Worth noting is that most classes will already be cached, with signatures, by either an initial allClasses call, or by the internal event handler. But those only cache classes that are prepared, so this is a problem for unprepared classes.

      The ideal solution to this would be to add a new visibleClassesWithSignatures the JDWP spec, which includes signatures.

      Another way to fix this (in a hackish way) would be to stop caching some classes. Either caching could be skipped entirely for visibleClasses, or only classes that do not have a signature provided could be skipped. Or, as Martin Entlicher has suggested in JDK-6457137, caching can be removed entirely from JDI.


          Issue Links



              • Assignee:
                sspitsyn Serguei Spitsyn
                aeriksso Andreas Eriksson (Inactive)
              • Votes:
                0 Vote for this issue
                6 Start watching this issue


                • Created: