changeset 4046:22ead76da3f4

8006758: LinkResolver assertion (caused by @Contended changes) Summary: treat anonymous classes as privileged code to restore the special handling for @Compiled during class file parsing Reviewed-by: jrose, coleenp, kvn, dholmes
author kmo
date Thu, 24 Jan 2013 02:03:38 -0800
parents 522c328b8b77
children 274a29bf5682
files src/share/vm/classfile/classFileParser.cpp
diffstat 1 files changed, 3 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/classfile/classFileParser.cpp	Wed Jan 23 15:11:03 2013 -0800
+++ b/src/share/vm/classfile/classFileParser.cpp	Thu Jan 24 02:03:38 2013 -0800
@@ -1802,11 +1802,9 @@
 ClassFileParser::AnnotationCollector::annotation_index(ClassLoaderData* loader_data,
                                                                 Symbol* name) {
   vmSymbols::SID sid = vmSymbols::find_sid(name);
-  bool privileged = false;
-  if (loader_data->is_the_null_class_loader_data()) {
-    // Privileged code can use all annotations.  Other code silently drops some.
-    privileged = true;
-  }
+  // Privileged code can use all annotations.  Other code silently drops some.
+  bool privileged = loader_data->is_the_null_class_loader_data() ||
+                    loader_data->is_anonymous();
   switch (sid) {
   case vmSymbols::VM_SYMBOL_ENUM_NAME(java_lang_invoke_ForceInline_signature):
     if (_location != _in_method)  break;  // only allow for methods