RFR: 8153955: java.util.logging.FileHandler can not create file synchronously over 101 access

Daniel Fuchs daniel.fuchs at oracle.com
Thu Jun 9 06:31:25 UTC 2016


Hi Ramanand,

Thanks for the updated. I still have some remarks:

FileHandler.java:

   98  *        specifies the maximum number of concurrent locks hold by
   99  *        FileHandler (defaults 100). </li>

Is the verb form correct: hold => held ?

logging.properties:

   42 # when the unique field %u is incremented as per the javadoc.

"... as per the javadoc" => "... as per FileHandler API documentation"

FileHandlerMaxLocksTest.java:

- FileHandlerMaxLocksTest::createLoggerDir():

   75         String tmpDir = System.getProperty("java.io.tmpdir");
   76         if (tmpDir == null) {
   77             tmpDir = System.getProperty("user.home");
   78         }
   79         File tmpOrHomeDir = new File(tmpDir);
   80         File loggerDir = new File(tmpOrHomeDir, LOGGER_DIR);

The preferred place for a test to create file is the scratch
directory that jtreg creates for the test. The scratch directory
location is available from the "user.dir" system property.

I suggest changing the code above to:

    String userDir =   System.getProperty("user.dir", ".");
    File loggerDir = new File(userDir, LOGGER_DIR);

- FileHandlerMaxLocksTest::main

I am not sure what you try to achieve by using WeakReference there.
I would suggest to store all created FileHandler instances into a list,
which would allow you to close them properly in the finally clause
just before deleting LOGGER_DIR.

Different operating systems might handle lock files differently.
I am afraid that some operating system might not let you delete
a directory that contains a file which is still locked by the
system.

best regards,

-- daniel

On 09/06/16 06:40, Ramanand Patil wrote:
> Hi,
>
> Please review the updated Webrev at: http://cr.openjdk.java.net/~rpatil/8153955/webrev.01/
>
> FileHander.java and logging.properties files are updated as per Daniel's suggestion.
>
>
> Regards,
> Ramanand.
>
>
> -----Original Message-----
> From: Daniel Fuchs
> Sent: Wednesday, June 08, 2016 6:57 PM
> To: Ramanand Patil; core-libs-dev at openjdk.java.net
> Subject: Re: RFR: 8153955: java.util.logging.FileHandler can not create file synchronously over 101 access
>
> Hi Ramanand,
>
> Thanks for looking into this.
>
> 1. FileHander.java:
>
>    94  * <li>   <handler-name>.append
>    95  *        specifies whether the FileHandler should append onto
>    96  *        any existing files (defaults to false). </li>
>    97  * <li>   java.util.FileHandler.maxLocks
>    98  *        specifies the maximum number of concurrent locks hold by
>    99  *        FileHandler (defaults 100). </li>
>
> line 97: a) this is java.util.logging.FileHandler, not java.util.FileHandler.
>           b) for consistency with the specification of other FileHandler
>              properties I suggest to change this line to:
>
>    97  * <li>   <handler-name>.maxLock
>
> 2. logging.properties:
>
>    31 # Default number of locks FileHandler can obtain synchronously.
>    32 # This specifies maximum number of concurrent locks by FileHandler
>    33 # when the unique field %u is incremented as per the javadoc.
>    34 java.util.logging.FileHandler.maxLocks = 100
>
> Please move lines 31-34 between lines 44 and 45: that's where they belong.
>
> best regards,
>
> -- daniel
>
>
>
>
> On 08/06/16 12:06, Ramanand Patil wrote:
>> Hi all,
>>
>> Please review the following bug fix:
>>
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8153955
>>
>> Webrev: http://cr.openjdk.java.net/~rpatil/8153955/webrev.00/
>>
>> Fix: A new configurable java property- "java.util.logging.FileHandler.maxLocks" is added to the FileHandler which can be set in the custom logger config file. The default value of the this property will be mentioned in the default config file.(logging.properties).
>>
>>
>>
>>
>>
>> Regards,
>>
>> Ramanand.
>>
>



More information about the core-libs-dev mailing list