Uploaded image for project: 'Code Tools'
  1. Code Tools
  2. CODETOOLS-7902721

JOL should be more resilient with weak references to instances

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Fixed
    • Icon: P4 P4
    • None
    • None
    • tools
    • None
    • jol

      At least with current Valhalla prototype this happens:

      $ cat Point.java
      inline class Point {
        int x;
        int y;
        Point() { x = 0; y = 0; }
      }

      $ javac Point.java
      $ java -jar ~/projects/jol/jol-cli/target/jol-cli.jar internals Point -cp .
      ...

      Instantiated the sample instance via default constructor.

      java.lang.IllegalArgumentException: cannot reference an inline value of type: Point
      at java.base/java.lang.ref.Reference.<init>(Reference.java:401)
      at java.base/java.lang.ref.Reference.<init>(Reference.java:395)
      at java.base/java.lang.ref.WeakReference.<init>(WeakReference.java:62)
      at org.openjdk.jol.info.ClassData.<init>(ClassData.java:139)
      at org.openjdk.jol.info.ClassData.parse(ClassData.java:97)
      at org.openjdk.jol.info.ClassData.parseInstance(ClassData.java:53)
      at org.openjdk.jol.info.ClassLayout.parseInstance(ClassLayout.java:100)
      at org.openjdk.jol.info.ClassLayout.parseInstance(ClassLayout.java:83)
      at org.openjdk.jol.operations.ObjectInternals.runWith(ObjectInternals.java:51)
      at org.openjdk.jol.operations.ClasspathedOperation.run(ClasspathedOperation.java:76)
      at org.openjdk.jol.Main.main(Main.java:60)

            shade Aleksey Shipilev
            shade Aleksey Shipilev
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: