diff src/share/vm/oops/method.cpp @ 6935:ec204374e626

Merge
author kamg
date Fri, 02 Nov 2012 16:09:50 -0700
parents 4735d2c84362 a3ecd773a7b9
children 18fb7da42534
line wrap: on
line diff
--- a/src/share/vm/oops/method.cpp	Thu Oct 11 12:25:42 2012 -0400
+++ b/src/share/vm/oops/method.cpp	Fri Nov 02 16:09:50 2012 -0700
@@ -1159,8 +1159,12 @@
 vmSymbols::SID Method::klass_id_for_intrinsics(Klass* holder) {
   // if loader is not the default loader (i.e., != NULL), we can't know the intrinsics
   // because we are not loading from core libraries
-  if (InstanceKlass::cast(holder)->class_loader() != NULL)
+  // exception: the AES intrinsics come from lib/ext/sunjce_provider.jar
+  // which does not use the class default class loader so we check for its loader here
+  if ((InstanceKlass::cast(holder)->class_loader() != NULL) &&
+       InstanceKlass::cast(holder)->class_loader()->klass()->name() != vmSymbols::sun_misc_Launcher_ExtClassLoader()) {
     return vmSymbols::NO_SID;   // regardless of name, no intrinsics here
+  }
 
   // see if the klass name is well-known:
   Symbol* klass_name = InstanceKlass::cast(holder)->name();