From comp1986 at gmail.com Wed Sep 7 10:57:00 2016 From: comp1986 at gmail.com (Sergey Zaytsev) Date: Wed, 7 Sep 2016 13:57:00 +0300 Subject: NPE trying to get class/instance layout Message-ID: Hi! I got NPE while trying to get class or instance layout with the following stack trace? Event executing the very simple _first_ official sample ( from JOL page ) What might be the case and what am I doing wrong ? Exception in thread "main" java.lang.NullPointerException at java.util.Objects.requireNonNull(Objects.java:203) at java.lang.Class.getAnnotation(Class.java:3413) at org.openjdk.jol.vm.ContendedSupport.isContended(ContendedSupport.java:59) at org.openjdk.jol.info.ClassData.parse(ClassData.java:100) at org.openjdk.jol.info.ClassData.parseClass(ClassData.java:62) at org.openjdk.jol.info.ClassLayout.parseClass(ClassLayout.java:67) at org.openjdk.jol.info.ClassLayout.parseClass(ClassLayout.java:51) at org.serge.memfootprint.Layout.main(Layout.java:30) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) Best regards, Serge From ashipile at redhat.com Wed Sep 7 12:01:06 2016 From: ashipile at redhat.com (ashipile at redhat.com) Date: Wed, 07 Sep 2016 12:01:06 +0000 Subject: hg: code-tools/jol: 7901783: NPE when Contended classes are missing from the JDK Message-ID: <201609071201.u87C16V6021751@aojmv0008.oracle.com> Changeset: 07087260ce41 Author: shade Date: 2016-09-07 15:00 +0300 URL: http://hg.openjdk.java.net/code-tools/jol/rev/07087260ce41 7901783: NPE when Contended classes are missing from the JDK ! jol-core/src/main/java/org/openjdk/jol/vm/ContendedSupport.java From ashipile at redhat.com Wed Sep 7 12:01:41 2016 From: ashipile at redhat.com (Aleksey Shipilev) Date: Wed, 7 Sep 2016 15:01:41 +0300 Subject: NPE trying to get class/instance layout In-Reply-To: References: Message-ID: Hi, This is because ContendedSupport blows the annotation checks. Fixed: https://bugs.openjdk.java.net/browse/CODETOOLS-7901783 -Aleksey On 09/07/2016 01:57 PM, Sergey Zaytsev wrote: > Hi! > > I got NPE while trying to get class or instance layout with the following stack trace? Event executing the very simple _first_ official sample ( from JOL page ) > > What might be the case and what am I doing wrong ? > > Exception in thread "main" java.lang.NullPointerException > at java.util.Objects.requireNonNull(Objects.java:203) > at java.lang.Class.getAnnotation(Class.java:3413) > at org.openjdk.jol.vm.ContendedSupport.isContended(ContendedSupport.java:59) > at org.openjdk.jol.info.ClassData.parse(ClassData.java:100) > at org.openjdk.jol.info.ClassData.parseClass(ClassData.java:62) > at org.openjdk.jol.info.ClassLayout.parseClass(ClassLayout.java:67) > at org.openjdk.jol.info.ClassLayout.parseClass(ClassLayout.java:51) > at org.serge.memfootprint.Layout.main(Layout.java:30) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) > > > > Best regards, > Serge > From ashipile at redhat.com Mon Sep 19 08:49:17 2016 From: ashipile at redhat.com (ashipile at redhat.com) Date: Mon, 19 Sep 2016 08:49:17 +0000 Subject: hg: code-tools/jol: 7901795: Classpathed operations fail to introspect classes Message-ID: <201609190849.u8J8nHVt012969@aojmv0008.oracle.com> Changeset: 64ffd85e6595 Author: shade Date: 2016-09-19 10:48 +0200 URL: http://hg.openjdk.java.net/code-tools/jol/rev/64ffd85e6595 7901795: Classpathed operations fail to introspect classes ! jol-cli/src/main/java/org/openjdk/jol/operations/ClasspathedOperation.java ! jol-core/src/main/java/org/openjdk/jol/info/ClassLayout.java + jol-core/src/main/java/org/openjdk/jol/util/ClassUtils.java ! jol-core/src/main/java/org/openjdk/jol/vm/ContendedSupport.java ! jol-core/src/main/java/org/openjdk/jol/vm/sa/AttachMain.java ! jol-core/src/main/java/org/openjdk/jol/vm/sa/SenseAccessMain.java ! jol-core/src/main/java/org/openjdk/jol/vm/sa/ServiceabilityAgentSupport.java ! jol-core/src/main/java/org/openjdk/jol/vm/sa/UniverseTask.java From ashipile at redhat.com Mon Sep 19 13:51:32 2016 From: ashipile at redhat.com (ashipile at redhat.com) Date: Mon, 19 Sep 2016 13:51:32 +0000 Subject: hg: code-tools/jol: 7901796: Use Java SA without sa-jdi.jar in JDK 9b131+ Message-ID: <201609191351.u8JDpWYe013930@aojmv0008.oracle.com> Changeset: 20077ca8f06b Author: shade Date: 2016-09-19 15:50 +0200 URL: http://hg.openjdk.java.net/code-tools/jol/rev/20077ca8f06b 7901796: Use Java SA without sa-jdi.jar in JDK 9b131+ ! jol-core/src/main/java/org/openjdk/jol/vm/sa/ServiceabilityAgentSupport.java From ashipile at redhat.com Tue Sep 20 15:36:00 2016 From: ashipile at redhat.com (ashipile at redhat.com) Date: Tue, 20 Sep 2016 15:36:00 +0000 Subject: hg: code-tools/jol: 7901800: @Contended group read fails with JDK 9 Message-ID: <201609201536.u8KFa17a026394@aojmv0008.oracle.com> Changeset: 55b5be46fa11 Author: shade Date: 2016-09-20 17:35 +0200 URL: http://hg.openjdk.java.net/code-tools/jol/rev/55b5be46fa11 7901800: @Contended group read fails with JDK 9 ! jol-core/src/main/java/org/openjdk/jol/vm/ContendedSupport.java From shade at redhat.com Wed Sep 21 09:17:11 2016 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 21 Sep 2016 11:17:11 +0200 Subject: JOL v0.6 Message-ID: <63e93168-8b98-cb11-9088-1098e27d8a1c@redhat.com> Hi, JOL 0.6 is released and available at Maven Central (thanks to Evgeny Mandrikov, as usual). Notable changes: *) HotSpotLayouter now closely resembles the actual Hotspot field layouter. Among other things, it now handles FieldAllocationStyle, @Contended, and other things real JDK supports. This allows to model the instance sizes more accurately. This was made possible with the contribution from Timur Gibadullin: https://bugs.openjdk.java.net/browse/CODETOOLS-7901019 *) New CLI tools: "heapdumpstats", which provides the heap dump statistics without needed to load the heap dump into memory in full; "shapes", which prints the class shapes (e.g. field types and orders) from the JAR/heapdumps. http://hg.openjdk.java.net/code-tools/jol/rev/5f7a8eb55932 http://hg.openjdk.java.net/code-tools/jol/rev/30c3fbadf049 As usual, CLI tools are easily available in uberjar: http://central.maven.org/maven2/org/openjdk/jol/jol-cli/0.6/jol-cli-0.6-full.jar *) "internals" and other CLI commands with supplied classpath was failing to introspect the classes down the road: https://bugs.openjdk.java.net/browse/CODETOOLS-7901795 *) HS Serviceability Agent support now works with the latest JDK 9 EA, which removed sa-jdi.jar: https://bugs.openjdk.java.net/browse/CODETOOLS-7901796 *) @Contended support is revamped to work (almost) fine with recent JDK 9 EA changes: https://bugs.openjdk.java.net/browse/CODETOOLS-7901783 https://bugs.openjdk.java.net/browse/CODETOOLS-7901800 Enjoy! -Aleksey From ashipile at redhat.com Wed Sep 21 09:23:06 2016 From: ashipile at redhat.com (ashipile at redhat.com) Date: Wed, 21 Sep 2016 09:23:06 +0000 Subject: hg: code-tools/jol: 3 new changesets Message-ID: <201609210923.u8L9N6ja005419@aojmv0008.oracle.com> Changeset: ba2ef38afd2c Author: shade Date: 2016-09-20 19:50 +0200 URL: http://hg.openjdk.java.net/code-tools/jol/rev/ba2ef38afd2c JOL v0.6. ! jol-cli/pom.xml ! jol-core/pom.xml ! jol-samples/pom.xml ! pom.xml Changeset: 618e788c77aa Author: shade Date: 2016-09-20 19:50 +0200 URL: http://hg.openjdk.java.net/code-tools/jol/rev/618e788c77aa Added tag 0.6 for changeset ba2ef38afd2c ! .hgtags Changeset: 1842ca11de87 Author: shade Date: 2016-09-20 19:51 +0200 URL: http://hg.openjdk.java.net/code-tools/jol/rev/1842ca11de87 Continue in 0.7-SNAPSHOT. ! jol-cli/pom.xml ! jol-core/pom.xml ! jol-samples/pom.xml ! pom.xml From ashipile at redhat.com Wed Sep 21 09:24:23 2016 From: ashipile at redhat.com (ashipile at redhat.com) Date: Wed, 21 Sep 2016 09:24:23 +0000 Subject: hg: code-tools/jol: Make HotspotLayouterRealTest and LayouterInvariantsTest much faster. Message-ID: <201609210924.u8L9ONff005786@aojmv0008.oracle.com> Changeset: 2c4bae3b369d Author: shade Date: 2016-09-21 11:24 +0200 URL: http://hg.openjdk.java.net/code-tools/jol/rev/2c4bae3b369d Make HotspotLayouterRealTest and LayouterInvariantsTest much faster. ! jol-core/src/test/java/org/openjdk/jol/layouters/HotspotLayouterRealTest.java ! jol-core/src/test/java/org/openjdk/jol/layouters/LayouterInvariantsTest.java From ashipile at redhat.com Wed Sep 21 11:07:11 2016 From: ashipile at redhat.com (ashipile at redhat.com) Date: Wed, 21 Sep 2016 11:07:11 +0000 Subject: hg: code-tools/jol: 7901803: JOL should try instantiating the sample instances with non-default constructors Message-ID: <201609211107.u8LB7BJm026443@aojmv0008.oracle.com> Changeset: b5653b56d154 Author: shade Date: 2016-09-21 13:06 +0200 URL: http://hg.openjdk.java.net/code-tools/jol/rev/b5653b56d154 7901803: JOL should try instantiating the sample instances with non-default constructors ! jol-cli/src/main/java/org/openjdk/jol/operations/ClasspathedOperation.java ! jol-cli/src/main/java/org/openjdk/jol/operations/ObjectInternals.java ! jol-core/src/main/java/org/openjdk/jol/info/ClassLayout.java ! jol-core/src/main/java/org/openjdk/jol/layouters/CurrentLayouter.java