From vyazelenko at yahoo.com Mon Sep 4 20:14:19 2017 From: vyazelenko at yahoo.com (Dmitry Vyazelenko) Date: Mon, 4 Sep 2017 20:14:19 +0000 (UTC) Subject: OOME from GraphLayout.parseInstance().toFootprint() References: <894754757.2631556.1504556059288.ref@mail.yahoo.com> Message-ID: <894754757.2631556.1504556059288@mail.yahoo.com> Hi, I have the following code that throws OutOfMemoryError on 8 GB heap: LinkedList linkedList = new LinkedList<>();for (int i = 0; i < 1_000_000; i++) {? linkedList.add(i);}System.out.println(GraphLayout.parseInstance(linkedList).toFootprint()); The problem is with the GraphWalker which accumulates GraphPathRecord objects whose path field is ever growing but in the case of toFootprint() call this field is not used at all. Suggestion: compute path lazily in path() method using a reference to parent GraphPathRecord object. Best regards, Dmitry Vyazelenko From vyazelenko at yahoo.com Mon Sep 4 20:22:43 2017 From: vyazelenko at yahoo.com (Dmitry Vyazelenko) Date: Mon, 4 Sep 2017 20:22:43 +0000 (UTC) Subject: java.lang.ArithmeticException: / by zero References: <2072298330.2632944.1504556563378.ref@mail.yahoo.com> Message-ID: <2072298330.2632944.1504556563378@mail.yahoo.com> Hi, Using JOL 0.8 and 0.9-SNAPSHOT I get the following exception: Exception in thread "main" java.lang.ArithmeticException: / by zero ?? ?at org.openjdk.jol.info.GraphLayout.toImage(GraphLayout.java:354) ?? ?at DivisionByZero.main(DivisionByZero.java:8) >From the following code: import org.openjdk.jol.info.GraphLayout;import java.io.IOException;public class DivisionByZero {?? ? public static void main(String[] args) throws IOException {?????????? int[] array = new int[10];?????? ??? GraphLayout.parseInstance(array).toImage("array.jpg");?? ? }} Best regards, Dmitry Vyazelenko From vyazelenko at yahoo.com Mon Sep 4 20:33:35 2017 From: vyazelenko at yahoo.com (Dmitry Vyazelenko) Date: Mon, 4 Sep 2017 20:33:35 +0000 (UTC) Subject: Using JOL with JDK 9+181 References: <471795616.2660847.1504557215282.ref@mail.yahoo.com> Message-ID: <471795616.2660847.1504557215282@mail.yahoo.com> Hi, I'm trying to use JOL with the latest JDK 9 build: java version "9" Java(TM) SE Runtime Environment (build 9+181) Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode) But get tons of warnings when I try to run any of the JOL samples, e.g.: /home/jdk-9/bin/java -classpath /home/projects/jol/jol-samples/target/classes:/home/projects/jol/jol-core/target/classes org.openjdk.jol.samples.JOLSample_01_Basic ? # WARNING: Unable to get Instrumentation. Dynamic Attach failed: null. You may add this JAR as -javaagent manually. WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by org.openjdk.jol.vm.sa.ServiceabilityAgentSupport (file:/home/dmitry/projects/oss/jol/jol-core/target/classes/) to field sun.management.RuntimeImpl.jvm WARNING: Please consider reporting this to the maintainers of org.openjdk.jol.vm.sa.ServiceabilityAgentSupport WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release # Running 64-bit HotSpot VM. # Using compressed oop with 3-bit shift. # Using compressed klass with 3-bit shift. # Objects are 8 bytes aligned. # Field sizes by type: 4, 1, 1, 2, 2, 4, 4, 8, 8 [bytes] # Array element sizes: 4, 1, 1, 2, 2, 4, 4, 8, 8 [bytes] org.openjdk.jol.samples.JOLSample_01_Basic$A object internals: ?OFFSET? SIZE????? TYPE DESCRIPTION?????????????????????????????? VALUE ????? 0??? 12?????????? (object header)?????????????????????????? N/A ???? 12???? 1?? boolean A.f?????????????????????????????????????? N/A ???? 13???? 3?????????? (loss due to the next object alignment) Instance size: 16 bytes Space losses: 0 bytes internal + 3 bytes external = 3 bytes total Any idea on how to fix those? Best regards, Dmitry Vyazelenko From vyazelenko at yahoo.com Thu Sep 21 17:30:02 2017 From: vyazelenko at yahoo.com (Dmitry Vyazelenko) Date: Thu, 21 Sep 2017 19:30:02 +0200 Subject: java.lang.ArithmeticException: / by zero References: <2072298330.2632944.1504556563378.ref@mail.yahoo.com> Message-ID: <87CB442D-3705-4F39-B564-1FBBE2E0F289@yahoo.com> Hi, Using JOL 0.8 and 0.9-SNAPSHOT I get the following exception: Exception in thread "main" java.lang.ArithmeticException: / by zero at org.openjdk.jol.info.GraphLayout.toImage(GraphLayout.java:354) at DivisionByZero.main(DivisionByZero.java:8) From the following code: import org.openjdk.jol.info.GraphLayout; import java.io.IOException; public class DivisionByZero { public static void main(String[] args) throws IOException { int[] array = new int[10]; GraphLayout.parseInstance(array).toImage("array.jpg"); } } Best regards, Dmitry Vyazelenko From vyazelenko at yahoo.com Thu Sep 21 17:29:51 2017 From: vyazelenko at yahoo.com (Dmitry Vyazelenko) Date: Thu, 21 Sep 2017 19:29:51 +0200 Subject: OOME from GraphLayout.parseInstance().toFootprint() References: <894754757.2631556.1504556059288.ref@mail.yahoo.com> Message-ID: Hi, I have the following code that throws OutOfMemoryError on 8 GB heap: LinkedList linkedList = new LinkedList<>(); for (int i = 0; i < 1_000_000; i++) { linkedList.add(i); } System.out.println(GraphLayout.parseInstance(linkedList).toFootprint()); The problem is with the GraphWalker which accumulates GraphPathRecord objects whose path field is ever growing but in the case of toFootprint() call this field is not used at all. Suggestion: compute path lazily in path() method using a reference to parent GraphPathRecord object. Best regards, Dmitry Vyazelenko From ashipile at redhat.com Fri Sep 22 09:26:07 2017 From: ashipile at redhat.com (ashipile at redhat.com) Date: Fri, 22 Sep 2017 09:26:07 +0000 Subject: hg: code-tools/jol: 3 new changesets Message-ID: <201709220926.v8M9Q7w8005129@aojmv0008.oracle.com> Changeset: 3c3ce1bbb26b Author: shade Date: 2017-09-22 10:27 +0200 URL: http://hg.openjdk.java.net/code-tools/jol/rev/3c3ce1bbb26b 7902037: Make sure JOL builds and runs with JDK 9 GA ! jol-cli/pom.xml ! jol-core/pom.xml ! jol-samples/pom.xml ! pom.xml Changeset: abd8229a4600 Author: shade Date: 2017-09-22 10:37 +0200 URL: http://hg.openjdk.java.net/code-tools/jol/rev/abd8229a4600 7902036: JOL image builder ignores the tail of the object ! jol-core/src/main/java/org/openjdk/jol/info/GraphLayout.java + jol-core/src/test/java/org/openjdk/jol/info/GraphLayoutImageTests.java Changeset: ff23bb91bb1f Author: shade Date: 2017-09-22 11:23 +0200 URL: http://hg.openjdk.java.net/code-tools/jol/rev/ff23bb91bb1f 7902038: JDK 9 compatibility fixes for Serviceability and Dynamic Attach ! jol-core/src/main/java/org/openjdk/jol/vm/InstrumentationSupport.java ! jol-core/src/main/java/org/openjdk/jol/vm/sa/ServiceabilityAgentSupport.java From shade at redhat.com Fri Sep 22 09:25:29 2017 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 22 Sep 2017 11:25:29 +0200 Subject: java.lang.ArithmeticException: / by zero In-Reply-To: <87CB442D-3705-4F39-B564-1FBBE2E0F289@yahoo.com> References: <2072298330.2632944.1504556563378.ref@mail.yahoo.com> <87CB442D-3705-4F39-B564-1FBBE2E0F289@yahoo.com> Message-ID: <51bb604a-7c14-4f8c-5d13-7b37012f0073@redhat.com> On 09/21/2017 07:30 PM, Dmitry Vyazelenko wrote: > Hi, > > Using JOL 0.8 and 0.9-SNAPSHOT I get the following exception: > Exception in thread "main" java.lang.ArithmeticException: / by zero > at org.openjdk.jol.info.GraphLayout.toImage(GraphLayout.java:354) > at DivisionByZero.main(DivisionByZero.java:8) > > From the following code: > import org.openjdk.jol.info.GraphLayout; > import java.io.IOException; > public class DivisionByZero { > public static void main(String[] args) throws IOException { > int[] array = new int[10]; > GraphLayout.parseInstance(array).toImage("array.jpg"); > } > } Thanks for the bug report. Apparently I had the fix that accidentally resolved this: https://bugs.openjdk.java.net/browse/CODETOOLS-7902036 -Aleksey From shade at redhat.com Fri Sep 22 09:27:08 2017 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 22 Sep 2017 11:27:08 +0200 Subject: Using JOL with JDK 9+181 In-Reply-To: <471795616.2660847.1504557215282@mail.yahoo.com> References: <471795616.2660847.1504557215282.ref@mail.yahoo.com> <471795616.2660847.1504557215282@mail.yahoo.com> Message-ID: On 09/04/2017 10:33 PM, Dmitry Vyazelenko wrote: > # WARNING: Unable to get Instrumentation. Dynamic Attach failed: null. You may add this JAR as -javaagent manually. > WARNING: An illegal reflective access operation has occurred > WARNING: Illegal reflective access by org.openjdk.jol.vm.sa.ServiceabilityAgentSupport (file:/home/dmitry/projects/oss/jol/jol-core/target/classes/) to field sun.management.RuntimeImpl.jvm > WARNING: Please consider reporting this to the maintainers of org.openjdk.jol.vm.sa.ServiceabilityAgentSupport > WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations > WARNING: All illegal access operations will be denied in a future release > ... > Any idea on how to fix those? These are partially fixed by: https://bugs.openjdk.java.net/browse/CODETOOLS-7902038 See: $ java -version java version "9" Java(TM) SE Runtime Environment (build 9+181) Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode) $ java -Djdk.attach.allowAttachSelf -jar jol-cli/target/jol-cli.jar internals java.lang.Object # Running 64-bit HotSpot VM. # Using compressed oop with 3-bit shift. # Using compressed klass with 0x0000000800000000 base address and 0-bit shift. # Objects are 8 bytes aligned. # Field sizes by type: 4, 1, 1, 2, 2, 4, 4, 8, 8 [bytes] # Array element sizes: 4, 1, 1, 2, 2, 4, 4, 8, 8 [bytes] Instantiated the sample instance via default constructor. .... Thanks, -Aleksey From ashipile at redhat.com Fri Sep 22 10:02:55 2017 From: ashipile at redhat.com (ashipile at redhat.com) Date: Fri, 22 Sep 2017 10:02:55 +0000 Subject: hg: code-tools/jol: 7902039: GraphLayout.parseInstance OOMEs on large linked lists Message-ID: <201709221002.v8MA2tCD019628@aojmv0008.oracle.com> Changeset: b243278c8397 Author: shade Date: 2017-09-22 11:59 +0200 URL: http://hg.openjdk.java.net/code-tools/jol/rev/b243278c8397 7902039: GraphLayout.parseInstance OOMEs on large linked lists ! jol-core/src/main/java/org/openjdk/jol/info/GraphPathRecord.java ! jol-core/src/main/java/org/openjdk/jol/info/GraphWalker.java + jol-core/src/test/java/org/openjdk/jol/info/GraphLayoutExhaustionTests.java From shade at redhat.com Fri Sep 22 10:01:16 2017 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 22 Sep 2017 12:01:16 +0200 Subject: OOME from GraphLayout.parseInstance().toFootprint() In-Reply-To: <894754757.2631556.1504556059288@mail.yahoo.com> References: <894754757.2631556.1504556059288.ref@mail.yahoo.com> <894754757.2631556.1504556059288@mail.yahoo.com> Message-ID: On 09/04/2017 10:14 PM, Dmitry Vyazelenko wrote: > Suggestion: compute path lazily in path() method using a reference to parent GraphPathRecord object. Good idea. This should be fixed with: https://bugs.openjdk.java.net/browse/CODETOOLS-7902039 It would be nice if you can quickly check all recent patches work for your correctly -- then we can do the patch release. Thanks, -Aleksey From vyazelenko at yahoo.com Fri Sep 22 17:02:33 2017 From: vyazelenko at yahoo.com (Dmitry Vyazelenko) Date: Fri, 22 Sep 2017 17:02:33 +0000 (UTC) Subject: Using JOL with JDK 9+181 In-Reply-To: References: <471795616.2660847.1504557215282.ref@mail.yahoo.com> <471795616.2660847.1504557215282@mail.yahoo.com> Message-ID: <491461804.402190.1506099753213@mail.yahoo.com> Works as described when -Djdk.attach.allowAttachSelf property is set. Why can't it be set by JOL automatically in the same way as --add-modules/--add-exports is done? Best regards, Dmitry Vyazelenko On Friday, September 22, 2017, 11:27:14 AM GMT+2, Aleksey Shipilev wrote: On 09/04/2017 10:33 PM, Dmitry Vyazelenko wrote: > # WARNING: Unable to get Instrumentation. Dynamic Attach failed: null. You may add this JAR as -javaagent manually. > WARNING: An illegal reflective access operation has occurred > WARNING: Illegal reflective access by org.openjdk.jol.vm.sa.ServiceabilityAgentSupport (file:/home/dmitry/projects/oss/jol/jol-core/target/classes/) to field sun.management.RuntimeImpl.jvm > WARNING: Please consider reporting this to the maintainers of org.openjdk.jol.vm.sa.ServiceabilityAgentSupport > WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations > WARNING: All illegal access operations will be denied in a future release > ... > Any idea on how to fix those? These are partially fixed by: ? https://bugs.openjdk.java.net/browse/CODETOOLS-7902038 See: $ java -version java version "9" Java(TM) SE Runtime Environment (build 9+181) Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode) $ java -Djdk.attach.allowAttachSelf -jar jol-cli/target/jol-cli.jar internals java.lang.Object # Running 64-bit HotSpot VM. # Using compressed oop with 3-bit shift. # Using compressed klass with 0x0000000800000000 base address and 0-bit shift. # Objects are 8 bytes aligned. # Field sizes by type: 4, 1, 1, 2, 2, 4, 4, 8, 8 [bytes] # Array element sizes: 4, 1, 1, 2, 2, 4, 4, 8, 8 [bytes] Instantiated the sample instance via default constructor. .... Thanks, -Aleksey From shade at redhat.com Fri Sep 22 17:23:03 2017 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 22 Sep 2017 19:23:03 +0200 Subject: Using JOL with JDK 9+181 In-Reply-To: <491461804.402190.1506099753213@mail.yahoo.com> References: <471795616.2660847.1504557215282.ref@mail.yahoo.com> <471795616.2660847.1504557215282@mail.yahoo.com> <491461804.402190.1506099753213@mail.yahoo.com> Message-ID: On 09/22/2017 07:02 PM, Dmitry Vyazelenko wrote: > Works as described when -Djdk.attach.allowAttachSelf property is set. Why can't it be set by JOL > automatically in the same way as --add-modules/--add-exports is done? Those are set for *forked* VM. We need to get Instrumentation instance in *current* VM. Too late to specify options :) -Aleksey From vyazelenko at yahoo.com Fri Sep 22 17:22:14 2017 From: vyazelenko at yahoo.com (Dmitry Vyazelenko) Date: Fri, 22 Sep 2017 17:22:14 +0000 (UTC) Subject: Using JOL with JDK 9+181 In-Reply-To: <491461804.402190.1506099753213@mail.yahoo.com> References: <471795616.2660847.1504557215282.ref@mail.yahoo.com> <471795616.2660847.1504557215282@mail.yahoo.com> <491461804.402190.1506099753213@mail.yahoo.com> Message-ID: <600095884.430908.1506100934988@mail.yahoo.com> BTW, I'm still getting these warning while building JOL: ------------------------------------------------------- ?T E S T S ------------------------------------------------------- Running org.openjdk.jol.info.ClassLayoutPrivatesTest # WARNING: Unable to get Instrumentation. Dynamic Attach failed. You may add this JAR as -javaagent manually, or supply -Djdk.attach.allowAttachSelf WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by org.openjdk.jol.util.ObjectUtils (file:/home/dmitry/projects/oss/jol/jol-core/target/classes/) to field java.lang.Class.cachedConstructor WARNING: Please consider reporting this to the maintainers of org.openjdk.jol.util.ObjectUtils WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.728 sec Running org.openjdk.jol.info.ClassLayoutInstanceTest Is it expected? Best regards, Dmitry Vyazelenko On Friday, September 22, 2017, 7:02:33 PM GMT+2, Dmitry Vyazelenko wrote: Works as described when -Djdk.attach.allowAttachSelf property is set. Why can't it be set by JOL automatically in the same way as --add-modules/--add-exports is done? Best regards, Dmitry Vyazelenko On Friday, September 22, 2017, 11:27:14 AM GMT+2, Aleksey Shipilev wrote: On 09/04/2017 10:33 PM, Dmitry Vyazelenko wrote: > # WARNING: Unable to get Instrumentation. Dynamic Attach failed: null. You may add this JAR as -javaagent manually. > WARNING: An illegal reflective access operation has occurred > WARNING: Illegal reflective access by org.openjdk.jol.vm.sa.ServiceabilityAgentSupport (file:/home/dmitry/projects/oss/jol/jol-core/target/classes/) to field sun.management.RuntimeImpl.jvm > WARNING: Please consider reporting this to the maintainers of org.openjdk.jol.vm.sa.ServiceabilityAgentSupport > WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations > WARNING: All illegal access operations will be denied in a future release > ... > Any idea on how to fix those? These are partially fixed by: ? https://bugs.openjdk.java.net/browse/CODETOOLS-7902038 See: $ java -version java version "9" Java(TM) SE Runtime Environment (build 9+181) Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode) $ java -Djdk.attach.allowAttachSelf -jar jol-cli/target/jol-cli.jar internals java.lang.Object # Running 64-bit HotSpot VM. # Using compressed oop with 3-bit shift. # Using compressed klass with 0x0000000800000000 base address and 0-bit shift. # Objects are 8 bytes aligned. # Field sizes by type: 4, 1, 1, 2, 2, 4, 4, 8, 8 [bytes] # Array element sizes: 4, 1, 1, 2, 2, 4, 4, 8, 8 [bytes] Instantiated the sample instance via default constructor. .... Thanks, -Aleksey From vyazelenko at yahoo.com Fri Sep 22 17:29:17 2017 From: vyazelenko at yahoo.com (Dmitry Vyazelenko) Date: Fri, 22 Sep 2017 17:29:17 +0000 (UTC) Subject: OOME from GraphLayout.parseInstance().toFootprint() In-Reply-To: References: <894754757.2631556.1504556059288.ref@mail.yahoo.com> <894754757.2631556.1504556059288@mail.yahoo.com> Message-ID: <1310164271.418017.1506101357243@mail.yahoo.com> All reported problems have been fixed. Great job! Best regards, Dmitry Vyazelenko On Friday, September 22, 2017, 12:01:25 PM GMT+2, Aleksey Shipilev wrote: On 09/04/2017 10:14 PM, Dmitry Vyazelenko wrote: > Suggestion: compute path lazily in path() method using a reference to parent GraphPathRecord object. Good idea. This should be fixed with: https://bugs.openjdk.java.net/browse/CODETOOLS-7902039 It would be nice if you can quickly check all recent patches work for your correctly -- then we can do the patch release. Thanks, -Aleksey From vyazelenko at yahoo.com Fri Sep 22 17:41:56 2017 From: vyazelenko at yahoo.com (Dmitry Vyazelenko) Date: Fri, 22 Sep 2017 17:41:56 +0000 (UTC) Subject: Using JOL with JDK 9+181 In-Reply-To: References: <471795616.2660847.1504557215282.ref@mail.yahoo.com> <471795616.2660847.1504557215282@mail.yahoo.com> <491461804.402190.1506099753213@mail.yahoo.com> Message-ID: <1785784734.441711.1506102116974@mail.yahoo.com> Ok, it's clear now. ;) Regards,Dmitry On Friday, September 22, 2017, 7:23:18 PM GMT+2, Aleksey Shipilev wrote: On 09/22/2017 07:02 PM, Dmitry Vyazelenko wrote: > Works as described when -Djdk.attach.allowAttachSelf property is set. Why can't it be set by JOL > automatically in the same way as --add-modules/--add-exports is done? Those are set for *forked* VM. We need to get Instrumentation instance in *current* VM. Too late to specify options :) -Aleksey From ashipile at redhat.com Fri Sep 22 18:25:43 2017 From: ashipile at redhat.com (ashipile at redhat.com) Date: Fri, 22 Sep 2017 18:25:43 +0000 Subject: hg: code-tools/jol: 4 new changesets Message-ID: <201709221825.v8MIPh6N003640@aojmv0008.oracle.com> Changeset: 9ac332c76185 Author: shade Date: 2017-09-22 17:28 +0200 URL: http://hg.openjdk.java.net/code-tools/jol/rev/9ac332c76185 Make sure jol-samples Javadoc JAR is generated + jol-samples/src/main/java/org/openjdk/jol/Sample.java Changeset: 9a5fff552b23 Author: shade Date: 2017-09-22 17:29 +0200 URL: http://hg.openjdk.java.net/code-tools/jol/rev/9a5fff552b23 JOL v0.9. ! jol-cli/pom.xml ! jol-core/pom.xml ! jol-samples/pom.xml ! pom.xml Changeset: afd0b2e94067 Author: shade Date: 2017-09-22 17:29 +0200 URL: http://hg.openjdk.java.net/code-tools/jol/rev/afd0b2e94067 Added tag 0.9 for changeset 9a5fff552b23 ! .hgtags Changeset: 03064c057dc9 Author: shade Date: 2017-09-22 17:29 +0200 URL: http://hg.openjdk.java.net/code-tools/jol/rev/03064c057dc9 Continue in 0.10-SNAPSHOT. ! jol-cli/pom.xml ! jol-core/pom.xml ! jol-samples/pom.xml ! pom.xml From shade at redhat.com Fri Sep 22 18:23:51 2017 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 22 Sep 2017 20:23:51 +0200 Subject: Using JOL with JDK 9+181 In-Reply-To: <600095884.430908.1506100934988@mail.yahoo.com> References: <471795616.2660847.1504557215282.ref@mail.yahoo.com> <471795616.2660847.1504557215282@mail.yahoo.com> <491461804.402190.1506099753213@mail.yahoo.com> <600095884.430908.1506100934988@mail.yahoo.com> Message-ID: <7eebe11c-c8bd-277d-d421-ee6dc4a40e40@redhat.com> On 09/22/2017 07:22 PM, Dmitry Vyazelenko wrote: > BTW, I'm still getting these warning while building JOL: > > ------------------------------------------------------- > ?T E S T S > ------------------------------------------------------- > Running org.openjdk.jol.info.ClassLayoutPrivatesTest > # WARNING: Unable to get Instrumentation. Dynamic Attach failed. You may add this JAR as -javaagent > manually, or supply -Djdk.attach.allowAttachSelf > WARNING: An illegal reflective access operation has occurred > WARNING: Illegal reflective access by org.openjdk.jol.util.ObjectUtils > (file:/home/dmitry/projects/oss/jol/jol-core/target/classes/) to field java.lang.Class.cachedConstructor > WARNING: Please consider reporting this to the maintainers of org.openjdk.jol.util.ObjectUtils > WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations > WARNING: All illegal access operations will be denied in a future release Yes, that's a legit failure when JOL tries to poll fields with Reflection. It is expected to produce warnings like that. -Aleksey From shade at redhat.com Fri Sep 22 18:53:40 2017 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 22 Sep 2017 20:53:40 +0200 Subject: JOL 0.9 Message-ID: Hi, JOL 0.9 is released and available on Maven Central. This is the patch release, and it brings these changes forward: *) JOL can now be built and executed on JDK 9 GA. It was possible to run it on JDK 9 EA builds, and this release does the final compatibility touchups: https://bugs.openjdk.java.net/browse/CODETOOLS-7901973 https://bugs.openjdk.java.net/browse/CODETOOLS-7902037 https://bugs.openjdk.java.net/browse/CODETOOLS-7902038 *) GraphLayout.toImage had bugs with rendering the tail objects. In the trivial case of single object it would not have rendered anything. Fixed: https://bugs.openjdk.java.net/browse/CODETOOLS-7902036 *) GraphLayout used to store lots of Strings describing the path from the roots, which consumed lots of memory. Analyzing a simple 1M LinkedList OOMEd on >8 GB heaps. Fixed: https://bugs.openjdk.java.net/browse/CODETOOLS-7902039 As usual, runnable JAR is available as additional artifact: http://central.maven.org/maven2/org/openjdk/jol/jol-cli/0.9/jol-cli-0.9-full.jar Thanks, -Aleksey