On Oct 2, 2013, at 7:21 AM, Remi Forax <fo...@univ-mlv.fr> wrote:

> 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.

I had it in there earlier, but need that in exception message. Since it is 
called only by InnerClassMetaFactory, which I think won't cause that exception 
so I just let it be.

That's not a good idea if consider dumper to be a reusable component.

Cheers,
Henry

Reply via email to