RFR (S) 8185296: java_lang_Class::array_klass should be array_klass_acquire

coleen.phillimore at oracle.com coleen.phillimore at oracle.com
Tue Jul 25 18:23:13 UTC 2017



On 7/25/17 2:16 PM, Erik Österlund wrote:
> Mmm yes - safe printing is the best kind of printing.
>
> Looks good. Thank you for fixing this.

Thanks Erik!
Coleen

>
> /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