66 Commits

Author SHA1 Message Date
Coleen Phillimore
feb09bc118 8067713: Move clean_weak_method_links for redefinition out of class unloading
Do this work during class redefinition, only verify clean during class unloading in debug mode.

Reviewed-by: sspitsyn, roland, kbarrett
2014-12-18 16:15:21 -05:00
Andreas Eriksson
ea48bceb5e 8057043: Type annotations not retained during class redefine / retransform
Reviewed-by: coleenp, sspitsyn, jfranck
2014-10-22 13:59:56 +02:00
Coleen Phillimore
3c70d99eda 8055008: Clean up code that saves the previous versions of redefined classes
Use scratch_class to find EMCP methods for breakpoints if the old methods are still running.

Reviewed-by: dcubed, sspitsyn
2014-09-03 19:13:18 -04:00
Serguei Spitsyn
7f2b064e43 8042796: jvmtiRedefineClasses.cpp: guarantee(false) failed: OLD and/or OBSOLETE method(s) found
Relax the guaranty for deleted methods

Reviewed-by: dcubed, coleenp
2014-05-16 15:05:44 -07:00
David Chase
305ec3bd3f 8037816: Fix for 8036122 breaks build with Xcode5/clang
Repaired or selectively disabled offending formats; future-proofed with additional checking

Reviewed-by: kvn, jrose, stefank
2014-05-09 16:50:54 -04:00
Roland Westrelin
bff5f5c875 8030662: "assert(counter_changed) failed: failed dependencies, but counter didn't change" still fails
Erroneously removed call to SystemDictionary::notice_modification() from jvmti with fix for 8029383

Reviewed-by: iveresov, twisti, kvn
2014-01-14 12:44:12 +01:00
Roland Westrelin
bbb97e5b39 8029383: assert(counter_changed) failed: failed dependencies, but counter didn't change
No call to SystemDictionary::notice_modification() when class is defined through Unsafe.defineAnonymousClass() can caused missed dependency change.

Reviewed-by: kvn, twisti
2013-12-13 09:25:44 +01:00
Karen Kinnear
088ded71f9 8009130: Lambda: Fix access controls, loader constraints
New default methods list with inherited superinterface methods

Reviewed-by: minqi, sspitsyn, coleenp
2013-10-07 12:20:28 -04:00
Coleen Phillimore
b08778e139 8025238: nsk/jvmti/scenarios/bcinstr/BI04/bi04t002 crashed with SIGSEGV
Redefined class in stack trace may not be found by method_idnum so handle null.

Reviewed-by: sla, dcubed, sspitsyn
2013-10-03 18:53:27 -04:00
Daniel D. Daugherty
156b06d897 Merge 2013-09-20 12:58:35 -07:00
Coleen Phillimore
ec5e07f810 8022887: Assertion hit while using class and redefining it with RedefineClasses simultaneously
Need to refetch each method from InstanceKlass after all safepoints.  Removed leaky PreviousVersionInfo code.

Reviewed-by: dcubed, sspitsyn
2013-09-20 09:30:02 -04:00
Niclas Adlertz
afef481831 Merge 2013-09-19 18:01:39 +02:00
David Chase
222c735458 8014013: CallInfo structure no longer accurately reports the result of a LinkResolver operation
Enhance method resolution and resulting data structures, plus some refactoring.

Reviewed-by: twisti, acorn, jrose
2013-09-13 22:38:02 -04:00
Serguei Spitsyn
2823ae6943 8024346: ~CautiouslyPreserveExceptionMark - assert(!_thread->has_pending_exception()) failed: unexpected exception generated
Pending exceptions must be handled properly after a call to the JVMTI merge_cp_and_rewrite

Reviewed-by: coleenp, dholmes
2013-09-13 12:48:50 -07:00
Serguei Spitsyn
47e8234251 8024345: 'assert(_value != NULL) failed: resolving NULL _value' from VM_RedefineClasses::set_new_constant_pool
The OOME's in the JVMTI merge_cp_and_rewrite and set_new_constant_pool must be handled correctly

Reviewed-by: coleenp, dholmes
2013-09-13 12:47:44 -07:00
Serguei Spitsyn
5c11ecebfb 8017230: Internal Error (jvmtiRedefineClasses.cpp:1662): guarantee(false) failed: insert_space_at() failed
Handle pending exceptions instead of firing a guarantee()

Reviewed-by: coleenp, dholmes
2013-09-13 12:46:40 -07:00
Jiangli Zhou
5c6c0a8d1d 8023547: com/sun/jdi/RedefineMulti.sh fails with IllegalArgumentException after JDK-8021948
Need to check if the constant pool mapping returns 0.

Reviewed-by: coleenp, sspitsyn
2013-08-22 19:27:42 -04:00
Jiangli Zhou
553b498f51 8021948: Change InstanceKlass::_source_file_name and _generic_signature from Symbol* to constant pool indexes
Change InstanceKlass::_source_file_name and _generic_signature to u2 fields.

Reviewed-by: coleenp, iklam
2013-08-19 14:59:54 -04:00
Coleen Phillimore
a25f924de6 8009728: nsk/jvmti/AttachOnDemand/attach030 crashes on Win32
ActiveMethodOopsCache was used to keep track of old versions of some methods that are cached in Universe but is buggy with permgen removal and not needed anymore

Reviewed-by: sspitsyn, dcubed, mseledtsov
2013-08-12 17:24:54 -04:00
Jiangli Zhou
3dfcb4125e 8020309: Eliminate InstanceKlass::_cached_class_file_len
Use JvmtiCachedClassFileData.

Reviewed-by: iklam, sspitsyn, dcubed
2013-07-17 18:06:29 -04:00
Serguei Spitsyn
6d485348e1 8014052: JSR292: assert(end_offset == next_offset) failed: matched ending
A call to the finalize_operands_merge() must be unconditional

Reviewed-by: kvn, twisti
2013-06-03 14:28:37 -07:00
Coleen Phillimore
7a409b13e0 8005056: NPG: Crash after redefining java.lang.Object
Need to walk array class vtables replacing old methods too if j.l.o redefined

Reviewed-by: sspitsyn, dcubed, ctornqvi
2013-05-13 15:37:08 -04:00
Coleen Phillimore
8320660846 8013063: nsk/jvmti/RetransformClasses/retransform001 failed debug version on os::free
Clear out class_file_bytes so they aren't deallocated twice

Reviewed-by: dcubed, sspitsyn
2013-05-07 09:46:15 -04:00
Serguei Spitsyn
333cf9a756 8007037: JSR 292: the VM_RedefineClasses::append_entry() should do cross-checks with indy operands
References from operands to CP entries and back must be correct after CP merge

Reviewed-by: coleenp, twisti
2013-04-25 03:58:53 -07:00
Serguei Spitsyn
87f3086e13 8008511: JSR 292: MemberName vmtarget refs to methods must be updated at class redefinition
Lazily create and maintain the MemberNameTable to be able to update MemberName's

Reviewed-by: coleenp, jrose, dholmes
2013-04-20 04:07:08 -07:00
Eric McCorkle
b56b3bc9aa 8007153: Ensure that MethodParameters API works properly with RedefineClasses
Adds code to HotSpot to properly update MethodParameter attributes' constant pool indexes when redefineClasses is called

Reviewed-by: coleenp, sspitsyn
2013-02-19 11:36:52 -05:00
Coleen Phillimore
faea95b8d3 8007320: NPG: move method annotations
Allocate method annotations and attach to ConstMethod if present

Reviewed-by: dcubed, jiangli, sspitsyn, iklam
2013-02-11 14:06:22 -05:00
Daniel D. Daugherty
8ef946f380 7182152: Instrumentation hot swap test incorrect monitor count
Add/refine new tracing support using -XX:TraceRedefineClasses=16384.

Reviewed-by: coleenp, acorn, sspitsyn
2013-02-06 14:31:37 -08:00
Serguei Spitsyn
932c29e08e 8006731: JSR 292: the VM_RedefineClasses::rewrite_cp_refs_in_method() must support invokedynamic
The invokedynamic bytecode ref to a CP entry needs to be checked and fixed as well.

Reviewed-by: coleenp, twisti
2013-01-31 20:11:14 -08:00
Serguei Spitsyn
823c749bd1 8006542: JSR 292: the VM_RedefineClasses::append_entry() must support invokedynamic entry kinds
Need a support for invokedynamic entry kinds when new and old constant pools are merged.

Reviewed-by: coleenp, twisti
2013-01-31 20:07:18 -08:00
Yumin Qi
fe8363948e Merge 2013-01-25 13:47:52 -08:00
Zhengyu Gu
fc0efc91c8 8000692: Remove old KERNEL code
Removed depreciated kernel VM source code from hotspot VM

Reviewed-by: dholmes, acorn
2013-01-25 10:04:08 -05:00
Serguei Spitsyn
020fe75e67 8005128: JSR 292: the mlvm redefineClassInBootstrap test crashes in ConstantPool::compare_entry_to
When constant pool is copied in merge_constant_pools the invokedynamic operands must be copied before.

Reviewed-by: coleenp, twisti
2013-01-24 22:13:32 -08:00
Coleen Phillimore
99039568f9 8006040: NPG: on_stack processing wastes space in ConstantPool
Added on_stack bit to flags.  Also MetadataMarkOnStack is used for more than JVMTI so had to be moved.

Reviewed-by: dholmes, stefank
2013-01-23 10:34:29 -05:00
Coleen Phillimore
e508ba9b0b 7174978: NPG: Fix bactrace builder for class redefinition
Remove Method* from backtrace but save version so redefine classes doesn't give inaccurate line numbers.  Removed old Merlin API with duplicate code.

Reviewed-by: dholmes, sspitsyn
2013-01-17 13:40:31 -05:00
Coleen Phillimore
64499d9494 8005494: SIGSEGV in Rewriter::relocate_and_link() when testing Weblogic with CompressedOops and KlassPtrs
Relocate functions with jsr's when rewriting so not repeated after reading shared archive

Reviewed-by: twisti, jrose
2013-01-02 20:28:09 -05:00
Joel Borggren-Franck
6ed6cb5375 8004823: Add VM support for type annotation reflection
Reviewed-by: dholmes, coleenp
2012-12-20 10:22:19 +01:00
Harold Seigel
4aad9b74e7 8001471: Klass::cast() does nothing
Remove function Klass::cast() and calls to it.

Reviewed-by: dholmes, coleenp
2012-11-12 16:15:05 -05:00
Coleen Phillimore
28047d6a0f 8000213: NPG: Should have renamed arrayKlass and typeArrayKlass
Capitalize these metadata types (and objArrayKlass)

Reviewed-by: stefank, twisti, kvn
2012-09-29 06:40:00 -04:00
Jon Masamitsu
5c58d27aac 6964458: Reimplement class meta-data storage to use native memory
Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes

Co-authored-by: Stefan Karlsson <stefan.karlsson@oracle.com>
Co-authored-by: Mikael Gerdin <mikael.gerdin@oracle.com>
Co-authored-by: Tom Rodriguez <tom.rodriguez@oracle.com>
Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland
2012-09-01 13:25:18 -04:00
Jiangli Zhou
7b82f72ba9 Merge 2012-07-13 20:14:27 -04:00
Frederic Parain
13c689d9c3 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
Reviewed-by: sspitsyn, dholmes, coleenp, kamg
2012-07-09 01:28:37 -07:00
Zhengyu Gu
a39b17624a 6995781: Native Memory Tracking (Phase 1)
7151532: DCmd for hotspot native memory tracking

Implementation of native memory tracking phase 1, which tracks VM native memory usage, and related DCmd

Reviewed-by: acorn, coleenp, fparain
2012-06-28 17:03:16 -04:00
Jiangli Zhou
56df3bd48d 7178145: Change constMethodOop::_exception_table to optionally inlined u2 table
Change constMethodOop::_exception_table to optionally inlined u2 table.

Reviewed-by: bdelsart, coleenp, kamg
2012-06-26 19:08:44 -04:00
Jiangli Zhou
b9e6895d3a 7109878: The instanceKlass EnclosingMethhod attribute fields can be folded into the _inner_class field
Fold instanceKlass::_enclosing_method_class_index and instanceKlass::_enclosing_method_method_index into the instanceKlass::_inner_classes array.

Reviewed-by: never, coleenp
2012-03-13 13:50:48 -04:00
Daniel D. Daugherty
c210a09fdf 7122253: Instrumentation.retransformClasses() leaks class bytes
Change ClassFileParser::parseClassFile() to use the instanceKlass:_cached_class_file_bytes field to avoid leaking the cache.

Reviewed-by: coleenp, acorn, poonam
2011-12-22 12:50:42 -08:00
Tom Rodriguez
e39ba1a5fe 7086585: make Java field injection more flexible
Reviewed-by: jrose, twisti, kvn, coleenp
2011-09-10 17:29:02 -07:00
Coleen Phillimore
57769e3600 7033141: assert(has_cp_cache(i)) failed: oob
Unrewrite bytecodes for OOM error allocating the constant pool cache.

Reviewed-by: dcubed, acorn, never
2011-05-21 15:39:54 -07:00
Tom Rodriguez
31ac558f3d 7029509: nightly failures after static fields in Class
Reviewed-by: kvn
2011-03-21 14:06:50 -07:00
Coleen Phillimore
a411df237d 6512830: Error: assert(tag_at(which).is_unresolved_klass(), "Corrupted constant pool")
Redefine classes copies the constant pool while the constant pool may be resolving strings or classes

Reviewed-by: dcubed, dsamersoff, acorn
2011-03-03 19:52:23 -05:00