On Tue, 18 Jul 2023 16:48:55 GMT, Jean-Philippe Bempel <jpbem...@openjdk.org> wrote:
>> Fix a small leak in constant pool merging during retransformation of a >> class. If this class has a catch block with `Throwable`, the class >> `Throwable` is pre-resolved in the constant pool, while all the other >> classes are in a unresolved state. So the constant pool merging process was >> considering the entry with pre-resolved class as different compared to the >> destination and create a new entry. We now try to consider it as equal >> specially for Methodref/Fieldref. > > Jean-Philippe Bempel has refreshed the contents of this pull request, and > previous commits have been removed. The incremental views will show > differences compared to the previous content of the PR. The pull request > contains one new commit since the last revision: > > Revert resolved class to unresolved for comparison > > remove is_unresolved_class_mismatch I have a suggestion for your test and copyright fix. test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/RedefineLeakThrowable.java line 2: > 1: /* > 2: * Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights > reserved. Please remove the 2016 copyright on the new test. test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/RedefineLeakThrowable.java line 58: > 56: } > 57: } > 58: } If you look in that directory, there's an even simpler way to redefine classes without the Transformer and agent code. It looks like this: RedefineClassHelper.redefineClass(RedefineRunningMethods_B.class, evenNewerB); ------------- Changes requested by coleenp (Reviewer). PR Review: https://git.openjdk.org/jdk/pull/14780#pullrequestreview-1552009914 PR Review Comment: https://git.openjdk.org/jdk/pull/14780#discussion_r1277479719 PR Review Comment: https://git.openjdk.org/jdk/pull/14780#discussion_r1277482646