RFR (4th): 8023524: Mechanism to dump generated lambda classes / log lambda code generation
Remi Forax
forax at univ-mlv.fr
Wed Oct 2 14:21:24 UTC 2013
On 10/02/2013 04:12 PM, Peter Levart wrote:
> On 10/02/2013 12:19 PM, Remi Forax wrote:
>> final class ProxyClassesDumper {
>> ...
>> private final Path dumpDir; // null if invalid
>>
>> public static ProxyClassesDumper create(String dir) {
>> dir = dir.trim();
>> Path path = *Paths.get*(dir.isEmpty() ? "." : dir);
>> path = validateDumpDir(path)? path: null;
>> return new ProxyClassesDumper(path);
>> }
>
> Hi Remi, Henry,
>
> I think Henry is trying to re-validate the directory on each dump
> attempt even if it was invalid on 1st dump attempt. Perhaps in order
> to be able to start a VM with dump directory specified and only later
> create or mount that directory.
>
> Having a static field in the InnerClassLambdaMetafactory holding an
> initialized ProxyClassesDumper is a good idea.
>
> One thing to watch though is that Paths.get(String) can throw
> InvalidPathException. This will render InnerClassLambdaMetafactory
> non-functional since its static initialization will throw exception.
> Each lambda capture will than throw Error. I think the exception
> should be caught, logged and null returned from
> ProxyClassesDumper.create() in that case...
yes, nice catch.
>
>
> Regards, Peter
>
cheers,
Rémi
More information about the core-libs-dev
mailing list