8006758: LinkResolver assertion (caused by @Contended changes)
authorkmo
Thu, 24 Jan 2013 02:03:38 -0800
changeset 15244 83447fffce1e
parent 15243 2464976e7cf3
child 15245 382a822442e3
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
hotspot/src/share/vm/classfile/classFileParser.cpp
--- a/hotspot/src/share/vm/classfile/classFileParser.cpp	Wed Jan 23 15:11:03 2013 -0800
+++ b/hotspot/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