On Wed, 29 Mar 2023 02:10:10 GMT, Mandy Chung <mch...@openjdk.org> wrote:

>> This implements a shared utility to dump generated classes defined as 
>> normal/hidden classes via `Lookup` API.   This replaces the implementation 
>> in `LambdaMetaFactory` and method handle implementation that dumps the 
>> hidden class bytes on disk for debugging.   
>> 
>> For classes defined via `Lookup::defineClass`, `Lookup::defineHiddenClass` 
>> and `Lookup::defineHiddenClassWithClassData`, by default they will be dumped 
>> to the path specified in `-Djava.lang.invoke.Lookup.dumpClasses=<dumpDir>` 
>> 
>> The hidden classes generated for lambdas, `LambdaForms` and method handle 
>> implementation use non-default dumper so that they can be controlled via a 
>> separate system property and path as in the current implementation.
>> 
>> To dump lambda proxy classes, set this system property:
>>    -Djdk.internal.lambda.dumpProxyClasses=<dumpDir>
>> 
>> To dump LambdaForms and method handle implementation, set this system 
>> property:
>>    -Djava.lang.invoke.MethodHandle.DUMP_CLASS_FILES=true
>>    
>> P.S. `ProxyClassesDumper` is renamed to `ClassFileDumper` but for some 
>> reason, it's not shown as rename.
>
> Mandy Chung has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Convert to use HexFormat

src/java.base/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java line 
173:

> 171:     /** instance counters for dumped classes */
> 172:     private static final HashMap<String,Integer> 
> DUMP_CLASS_FILES_COUNTERS =
> 173:             dumper().isEnabled() ?  new HashMap<>(): null;

Suggestion:

            dumper().isEnabled() ? new HashMap<>(): null;

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

PR Review Comment: https://git.openjdk.org/jdk/pull/13182#discussion_r1151540169

Reply via email to