RFR (M): 7200949: JSR 292: rubybench/bench/time/bench_base64.rb fails with jruby.jar not on boot class path (original) (raw)
Christian Thalinger christian.thalinger at oracle.com
Thu Sep 27 16:34:50 PDT 2012
- Previous message: Request for reviews (S): 7198084: NPG: addcaps03 looks like it exceeds it's code buffer
- Next message: RFR (M): 7200949: JSR 292: rubybench/bench/time/bench_base64.rb fails with jruby.jar not on boot class path
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
http://cr.openjdk.java.net/~twisti/7200949
7200949: JSR 292: rubybench/bench/time/bench_base64.rb fails with jruby.jar not on boot class path Reviewed-by:
The problem is in the declared signature returned by ciBytecodeStream::get_method which was added with 7192406.
We create a ciSignature object with the constant pool holder as accessing class. ciEnv::get_klass_by_name_impl doesn't delegate to its parent class loaders and we can't call SystemDictionary::resolve_or_null because we are in the compiler thread. Thus all lookups happen in the class loader of the accessing class.
This leads to supposedly unloaded classes like org/jruby/RubyString or even java/lang/Object.
The fix is to store the MethodType in the constant pool cache and using that type information instead of the declared method signature to create a ciSignature.
src/cpu/x86/vm/templateTable_x86_32.cpp src/cpu/x86/vm/templateTable_x86_64.cpp src/share/vm/ci/ciClassList.hpp src/share/vm/ci/ciObject.hpp src/share/vm/ci/ciObjectFactory.cpp src/share/vm/ci/ciSignature.cpp src/share/vm/ci/ciSignature.hpp src/share/vm/ci/ciStreams.cpp src/share/vm/ci/ciStreams.hpp src/share/vm/classfile/systemDictionary.cpp src/share/vm/classfile/systemDictionary.hpp src/share/vm/interpreter/interpreterRuntime.cpp src/share/vm/interpreter/linkResolver.cpp src/share/vm/interpreter/linkResolver.hpp src/share/vm/interpreter/rewriter.cpp src/share/vm/interpreter/rewriter.hpp src/share/vm/oops/constantPool.cpp src/share/vm/oops/constantPool.hpp src/share/vm/oops/cpCache.cpp src/share/vm/oops/cpCache.hpp
- Previous message: Request for reviews (S): 7198084: NPG: addcaps03 looks like it exceeds it's code buffer
- Next message: RFR (M): 7200949: JSR 292: rubybench/bench/time/bench_base64.rb fails with jruby.jar not on boot class path
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the hotspot-compiler-dev mailing list