68 Commits

Author SHA1 Message Date
Jiangli Zhou
223e1c6e42 8220095: Assertion failure when symlink (with different name) is used for lib/modules file
Removed confusing function ClassLoader::is_modules_image(char*)

Reviewed-by: lfoltan, ccheung
2019-03-23 21:51:07 -07:00
Coleen Phillimore
351280bbb8 8078725: method adjustments can be done just once for all classes involved into redefinition
Walk all classes at the end of redefinition and adjust method entries and clean MethodData

Reviewed-by: sspitsyn
2019-02-22 13:56:08 -05:00
Ioi Lam
d06f3e7e28 8218751: Do not store original classfiles inside the CDS archive
Remove the OD shared region and decode classfiles on the fly

Reviewed-by: jiangli, ccheung, sspitsyn, redestad
2019-02-21 17:07:35 -08:00
David Holmes
e2054e3c5d 8217765: Internal Error (javaCalls.cpp:61) guarantee(thread->can_call_java()) failed
Reviewed-by: rehn, redestad, coleenp
2019-02-20 19:41:43 -05:00
Claes Redestad
dbdfbb518f 8219229: Make ConstantPool::tag_at and release_tag_at_put inlineable
Reviewed-by: dholmes, coleenp
2019-02-20 09:53:28 +01:00
Coleen Phillimore
2e4ac80e0c 8212988: add recent class unloading events to the hs_err log
Also moved class unloading logging in expected place.

Reviewed-by: never, stuefe
2019-02-13 06:48:34 -05:00
Claes Redestad
62378f6977 8217318: Unneeded handleization in InstanceKlass::restore_unshareable_info
No need for a methodHandle here since methods not yet added to SystemDictionary can't be redefined.

Reviewed-by: coleenp
2019-01-18 16:21:07 +01:00
David Holmes
d1c7bfeb4b 8213397: Stack dump should show more clearly when a thread is blocked on a class initialization monitor
Reviewed-by: rehn, coleenp
2019-01-15 16:40:31 -05:00
Jesper Wilhelmsson
528bc73ca4 Merge 2019-01-14 23:05:26 +01:00
Erik Österlund
f08eeac278 8215889: assert(!_unloading) failed: This oop is not available to unloading class loader data with ZGC
Reviewed-by: coleenp, neliasso
2019-01-10 18:10:15 +01:00
Coleen Phillimore
cab9667f41 8215575: C2 crash: assert(get_instanceKlass()->is_loaded()) failed: must be at least loaded
Set InstanceKlass::loaded before adding classes to the subklass list, which can be read concurrently by the compiler.

Reviewed-by: dholmes, eosterlund
2019-01-09 07:52:45 -05:00
Jesper Wilhelmsson
67a5fc2529 Merge 2019-01-09 22:59:49 +01:00
Claes Redestad
13fcbf9d8f 8216189: Remove Klass::compute_is_subtype_of
Reviewed-by: hseigel, jiangli
2019-01-05 20:08:24 +01:00
Erik Österlund
50ffeaa507 8213209: [REDO] Allow Klass::_subklass and _next_sibling to have unloaded classes
Reviewed-by: coleenp, dlong
2018-11-30 15:29:19 +01:00
Erik Österlund
3a5bccf5c6 8213565: Crash in DependencyContext::remove_dependent_nmethod
Reviewed-by: rehn, kvn
2018-11-30 11:40:48 +01:00
David Holmes
cb861252d7 8214208: Nestmate package validation logging/exception should include classloader information
Reviewed-by: hseigel, coleenp, mchung
2018-11-27 21:20:16 -05:00
Erik Österlund
8b1844626a 8212682: Avoid holding Compile_lock when blocking for GC in ObjArrayKlass::allocate_objArray_klass()
Reviewed-by: coleenp, dlong
2018-11-20 10:08:18 +01:00
Ioi Lam
147fc3ed13 8213346: Re-implement shared dictionary using CompactHashtable
Reviewed-by: jiangli
2018-11-07 19:40:27 -08:00
Coleen Phillimore
d302072f50 8213211: [BACKOUT] Allow Klass::_subklass and _next_sibling to have unloaded classes
Reviewed-by: jiangli, jwilhelm
2018-10-31 14:38:14 -04:00
Coleen Phillimore
6a045adbed 8212958: Allow Klass::_subklass and _next_sibling to have unloaded classes
Don't return unloaded klasses. Make sure access is protected by Compile_lock.

Reviewed-by: eosterlund, dlong
2018-10-29 10:21:34 -04:00
David Holmes
c145bd0bd0 8199567: [Nestmates] Cleanup instanceKlass.cpp
Reviewed-by: lfoltan, coleenp
2018-10-23 17:01:48 -04:00
Harold Seigel
945623c998 8079784: Unexpected IllegalAccessError when trying access InnerClasses attribute
Prevent classes in the InnerClasses attribute from being loaded unless they are actually being accessed.

Reviewed-by: dholmes, lfoltan
2018-10-11 10:11:18 -04:00
Doug Simon
548eb6860a 8208686: [AOT] JVMTI ResourceExhausted event repeated for same allocation
Reviewed-by: never, kvn, sspitsyn
2018-10-05 20:03:14 +02:00
Jiangli Zhou
061c4d7a81 8210926: vmTestbase/nsk/jvmti/scenarios/allocation/AP11/ap11t001/TestDescription.java failed with JVMTI_ERROR_INVALID_CLASS in CDS mode
Reset InstanceKlass _init_state to 'allocated' before writing out shared classes at dump time.

Reviewed-by: dholmes, coleenp
2018-10-01 00:52:37 -04:00
Coleen Phillimore
06a1ea846a 8210856: Move InstanceKlass DependencyContext cleaning to SystemDictionary::do_unloading()
Already walk classes in ClassLoaderData::unload so generalize to also clean nmethod dependencies.

Reviewed-by: eosterlund, dlong, vlivanov
2018-09-26 14:01:48 -04:00
Harold Seigel
18bbeb53e6 8210470: Remove unused Verifier::verify() Verifier::Mode argument
Remove the unused argument.

Reviewed-by: coleenp, jiangli
2018-09-11 09:53:41 -04:00
Harold Seigel
eb51968f00 8202578: Revisit location for class unload events
Use notify_unload_class() to post JFR class unload events instead of doing a separate traversal of the class loader data graph

Reviewed-by: lfoltan, coleenp, mgronlun, egahlin
2018-08-28 10:10:11 -04:00
Ioi Lam
bc62b3a40e 8209647: constantPoolHandle::constantPoolHandle(ConstantPool*) when precompiled header is disabled
Added fieldDescriptor.inline.hpp

Reviewed-by: coleenp, shade
2018-08-20 13:58:23 -07:00
Lois Foltan
75ed173e15 8209301: JVM rename is_anonymous, host_klass to unsafe specific terminology ahead of Unsafe.defineAnonymousClass deprecation
Clean up VM anonymous class terminology.

Reviewed-by: coleenp, dholmes, mchung
2018-08-20 08:25:57 -04:00
Coleen Phillimore
d1aea148fe 8207924: serviceability/sa/TestUniverse.java#id0 intermittently fails with assert(get_instanceKlass()->is_loaded()) failed: must be at least loaded
InstanceKlass::implementors() needs the Compile_lock

Reviewed-by: thartmann, eosterlund
2018-08-11 12:49:33 -04:00
Coleen Phillimore
a7b66f6f5e 8208677: Move inner metaspace cleaning out of class unloading
Move to safepoint cleanup actions to do if needed.

Reviewed-by: eosterlund, hseigel
2018-08-08 15:24:21 -04:00
Thomas Schatzl
9c0720b156 8208671: Runtime, JFR, Serviceability changes to allow enabling -Wreorder
Reviewed-by: dholmes, hseigel
2018-08-08 15:31:07 +02:00
Ioi Lam
1b2e7cbaef 8208999: Some use of Klass* should be replaced by InstanceKlass*
Klass::java_super() => InstanceKlass*; InstanceKlass::{local,transitive}_interfaces() => Array<InstanceKlass*>*

Reviewed-by: coleenp, hseigel
2018-08-07 15:45:07 -07:00
Harold Seigel
38db1d1620 8202171: Some oopDesc functions compare this with NULL
Add Method* parameter and made verify* methods static to avoid 'this' comparison with NULL, Added NULL checks before calling print_on() methods.

Reviewed-by: kbarrett, coleenp
2018-07-31 14:24:10 -04:00
Harold Seigel
7d04a31fc8 8208399: Metadata methods print_(value_)on_maybe_null() compare 'this' to NULL
Add Method* parameter and make method static to avoid 'this' comparison with NULL

Reviewed-by: lfoltan, gziemski, coleenp
2018-07-31 09:55:09 -04:00
Lois Foltan
e8fcd927c3 8178712: ResourceMark may be missing inside initialize_[vi]table
Clean up use of ResourceMark within initialize_[vi]table.

Reviewed-by: ccheung, iklam, jiangli
2018-07-16 09:06:33 -04:00
Erik Österlund
e4dbe9909f 8205683: Refactor heap allocation to separate concerns
Reviewed-by: pliden, kbarrett
2018-06-28 14:22:28 +02:00
Stefan Karlsson
5012044e63 8205607: Use oop_iterate instead of oop_iterate_no_header
Reviewed-by: pliden, kbarrett
2018-06-26 13:54:19 +02:00
Lois Foltan
7ca4027957 8169559: Add class loader names to relevant VM messages
Added new method class_in_module_of_loader to provide a standard format for class information within error messages.

Reviewed-by: goetz, hseigel, mchung
2018-06-25 11:33:11 -04:00
Stefan Karlsson
11813888b8 8204540: Automatic oop closure devirtualization
Reviewed-by: kbarrett, eosterlund
2018-05-26 06:59:49 +02:00
Tom Rodriguez
0173db08e9 8198909: [Graal] compiler/codecache/stress/UnexpectedDeoptimizationTest.java crashed with SIGSEGV
Reviewed-by: eosterlund, iveresov
2018-06-24 21:46:11 -07:00
David Holmes
95bf19563b 8010319: Implementation of JEP 181: Nest-Based Access Control
Co-authored-by: Alex Buckley <alex.buckley@oracle.com>
Co-authored-by: Maurizio Mimadamore <maurizio.mimadamore@oracle.com>
Co-authored-by: Mandy Chung <mandy.chung@oracle.com>
Co-authored-by: Tobias Hartmann <tobias.hartmann@oracle.com>
Co-authored-by: Vlaidmir Ivanov <vladimir.x.ivanov@oracle.com>
Co-authored-by: Karen Kinnear <karen.kinnear@oracle.com>
Co-authored-by: Vladimir Kozlov <vladimir.kozlov@oracle.com>
Co-authored-by: John Rose <john.r.rose@oracle.com>
Co-authored-by: Daniel Smith <daniel.smith@oracle.com>
Co-authored-by: Serguei Spitsyn <serguei.spitsyn@oracle.com>
Co-authored-by: Kumar Srinivasan <kumardotsrinivasan@gmail.com>
Co-authored-by: Boris Ulasevich <boris.ulasevich@bell-sw.com>
Reviewed-by: alanb, psandoz, mchung, coleenp, acorn, mcimadamore, forax, jlahoda, sspitsyn, abuckley
2018-06-23 01:32:41 -04:00
Lois Foltan
425e1a8bb8 8202605: Standardize on ClassLoaderData::loader_name() throughout the VM to obtain a class loader's name
Introduced ClassLoaderData::name() and ClassLoaderData::name_and_id() for use when obtaining a class loader's name.

Reviewed-by: coleenp, goetz, mchung, stuefe
2018-06-19 07:54:11 -04:00
Goetz Lindenmaier
731d9b1499 8204268: Improve some IncompatibleClassChangeError messages
Reviewed-by: stuefe, hseigel
2018-06-15 12:31:28 +02:00
Coleen Phillimore
892a2af03f 8204301: Make OrderAccess functions available to hpp rather than inline.hpp files
Move orderAccess.inline.hpp into orderAccess.hpp and remove os.hpp inclusion and conditional os::is_MP() for fence on x86 platforms

Reviewed-by: dholmes, hseigel
2018-06-06 10:45:40 -04:00
Goetz Lindenmaier
ff2c3d4dbe 8203881: Print erroneous size in NegativeArraySizeException
Reviewed-by: dholmes, stuefe
2018-05-30 11:39:26 +02:00
Calvin Cheung
aedb6040c6 8200466: Revisit the setting of _transitive_interfaces in InstanceKlass
Delay the setting of _transitive_interfaces until after initialize_supers() in fill_instance_klass().

Reviewed-by: iklam, coleenp
2018-05-02 09:26:10 -07:00
Coleen Phillimore
ddfd4c33c6 8201556: Disallow reading oops in ClassLoaderData if unloading
Move class_loader oop to an OopHandle, and assert that holder is alive when getting class_loader.

Reviewed-by: kbarrett, adinn
2018-04-18 18:43:04 -04:00
Coleen Phillimore
c215aa5889 8201537: Remove is_alive closure from Klass::is_loader_alive()
Remove is_alive closure from callers of Klass::is_loader_alive so that cleaning metadata doesn't require GC closure.

Reviewed-by: adinn, stefank
2018-04-18 13:37:39 -04:00
Coleen Phillimore
d187884156 8198313: Wrap holder object for ClassLoaderData in a WeakHandle
Use WeakHandle for ClassLoaderData::_holder so that is_alive closure is not needed

Reviewed-by: rehn, kbarrett
2018-04-10 10:06:42 -04:00