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 17:51:29 UTC 2017


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