RFR: 8338543: ClassBuilder withMethod builders should cache the method type symbol

Chen Liang liach at openjdk.org
Mon Aug 19 15:32:51 UTC 2024


On Mon, 19 Aug 2024 15:08:05 GMT, Chen Liang <liach at openjdk.org> wrote:

> In #20611 and other investigations, we noted that `MethodTypeDesc.ofDescriptor` is unnecessarily called due to missing caching in ClassBuilder. This patch adds that missing caching functionality.

I tested by adding a `System.out.println` to `MethodTypeDesc.ofDescriptor` and it printed nothing locally when running this little program including string concat and lambda with `java Ape` (Note that `java Ape.java` will print gibberish once`, didn't diagnose that one yet):

public interface Ape {
    static void main(String... args) {
        Runnable a = () -> {
            System.out.println("asd[" + args[0] + "foo" + args[1]);
        };
        a.run();
    }
}

Before a cache miss call looked like this: https://github.com/openjdk/jdk/pull/20611#discussion_r1721082199

-------------

PR Comment: https://git.openjdk.org/jdk/pull/20627#issuecomment-2296856100


More information about the core-libs-dev mailing list