< prev index next >

src/hotspot/share/runtime/reflection.cpp

Print this page

        

@@ -964,16 +964,17 @@
   java_lang_reflect_Field::set_slot(rh(), fd->index());
   java_lang_reflect_Field::set_name(rh(), name());
   java_lang_reflect_Field::set_type(rh(), type());
   // Note the ACC_ANNOTATION bit, which is a per-class access flag, is never set here.
   int modifiers = fd->access_flags().as_int() & JVM_RECOGNIZED_FIELD_MODIFIERS;
+  if (fd->is_flattenable()) {
+    modifiers |= JVM_ACC_FLATTENABLE;
+  }
   if (fd->is_flattened()) {
-    java_lang_reflect_Field::set_modifiers(rh(), modifiers | JVM_ACC_FIELD_FLATTENED);
-  } else {
-    java_lang_reflect_Field::set_modifiers(rh(), modifiers);
+    modifiers |= JVM_ACC_FIELD_FLATTENED;
   }
-
+  java_lang_reflect_Field::set_modifiers(rh(), modifiers);
   java_lang_reflect_Field::set_override(rh(), false);
   if (java_lang_reflect_Field::has_signature_field() &&
       fd->has_generic_signature()) {
     Symbol*  gs = fd->generic_signature();
     Handle sig = java_lang_String::create_from_symbol(gs, CHECK_NULL);
< prev index next >