RFR (4th): 8023524: Mechanism to dump generated lambda classes / log lambda code generation
Peter Levart
peter.levart at gmail.com
Wed Oct 2 14:12:59 UTC 2013
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...
Regards, Peter
More information about the core-libs-dev
mailing list