RFR (S) 8185296: java_lang_Class::array_klass should be array_klass_acquire
Erik Österlund
erik.osterlund at oracle.com
Tue Jul 25 18:16:14 UTC 2017
Mmm yes - safe printing is the best kind of printing.
Looks good. Thank you for fixing this.
/Erik
> On 25 Jul 2017, at 19:51, coleen.phillimore at oracle.com wrote:
>
> For consistency with https://bugs.openjdk.java.net/browse/JDK-8185296 should have made array_klass use load_acquire.
>
> open webrev at http://cr.openjdk.java.net/~coleenp/8185296.01/webrev
> bug link https://bugs.openjdk.java.net/browse/JDK-8185296
>
> Tested with inserted (now removed) print for the component mirror. Eg:
>
> printing mirror for component mirror:
> java.lang.Class
> {0x00000000f3a25be8} - klass: 'java/lang/Class'
> - ---- fields (total size 15 words):
> - private volatile transient strict 'cachedConstructor' 'Ljava/lang/reflect/Constructor;' @12 NULL (0 0)
> - private volatile transient strict 'newInstanceCallerCache' 'Ljava/lang/Class;' @16 NULL (0 f3a26948)
> - private transient 'name' 'Ljava/lang/String;' @20 "jdk.tools.jlink.internal.ImageLocationWriter"{0x00000000f3a26948} (f3a26948 eab3f768)
> - private transient 'module' 'Ljava/lang/Module;' @24 a 'java/lang/Module'{0x00000000eab3f768} (eab3f768 eaaa0000)
> - private final 'classLoader' 'Ljava/lang/ClassLoader;' @28 a 'jdk/internal/loader/ClassLoaders$AppClassLoader'{0x00000000eaaa0000} (eaaa0000 eab4d438)
> - private transient 'packageName' 'Ljava/lang/String;' @32 "jdk.tools.jlink.internal"{0x00000000eab4d438} (eab4d438 0)
> - private final strict 'componentType' 'Ljava/lang/Class;' @36 NULL (0 0)
> - private volatile transient strict 'reflectionData' 'Ljava/lang/ref/SoftReference;' @40 NULL (0 0)
> - private volatile transient 'genericInfo' 'Lsun/reflect/generics/repository/ClassRepository;' @44 NULL (0 0)
> - private volatile transient strict 'enumConstants' '[Ljava/lang/Object;' @48 NULL (0 0)
> - private volatile transient strict 'enumConstantDirectory' 'Ljava/util/Map;' @52 NULL (0 0)
> - private volatile transient 'annotationData' 'Ljava/lang/Class$AnnotationData;' @56 NULL (0 0)
> - private volatile transient 'annotationType' 'Lsun/reflect/annotation/AnnotationType;' @60 NULL (0 0)
> - transient 'classValueMap' 'Ljava/lang/ClassValue$ClassValueMap;' @64 NULL (0 eab49d08)
> - private volatile transient 'classRedefinedCount' 'I' @96 0
> - signature: Ljdk/tools/jlink/internal/ImageLocationWriter;
> - fake entry for mirror: 'jdk/tools/jlink/internal/ImageLocationWriter'
> - fake entry for array: 'jdk/tools/jlink/internal/ImageLocationWriter'[] <=== HERE
> - fake entry for oop_size: 15
> - fake entry for static_oop_field_count: 0
> - static final synthetic '$assertionsDisabled' 'Z' @112 true
>
>
> Thanks,
> Coleen
>
>
More information about the hotspot-dev
mailing list