RFR: JDK-8314272: Improve java.util.prefs.BackingStoreException: Couldn't get file lock.
Matthias Baesken
mbaesken at openjdk.org
Thu Aug 17 07:57:37 UTC 2023
On Wed, 16 Aug 2023 19:02:52 GMT, Roger Riggs <rriggs at openjdk.org> wrote:
>> We run into some BackingStoreException: Couldn't get file lock. e.g. here :
>>
>> [JShell] Exception in thread "main" java.lang.IllegalStateException: java.util.prefs.BackingStoreException: Couldn't get file lock.
>> [JShell] at jdk.jshell/jdk.internal.jshell.tool.JShellToolBuilder$PreferencesStorage.flush(JShellToolBuilder.java:313)
>> [JShell] at jdk.jshell/jdk.internal.jshell.tool.JShellTool$ReplayableHistory.storeHistory(JShellTool.java:692)
>> [JShell] at jdk.jshell/jdk.internal.jshell.tool.JShellTool.start(JShellTool.java:1008)
>> [JShell] at jdk.jshell/jdk.internal.jshell.tool.JShellToolBuilder.start(JShellToolBuilder.java:261)
>> [JShell] at jdk.jshell/jdk.internal.jshell.tool.JShellToolProvider.main(JShellToolProvider.java:120)
>> [JShell] Caused by: java.util.prefs.BackingStoreException: Couldn't get file lock.
>> [JShell] at java.prefs/java.util.prefs.FileSystemPreferences.sync(FileSystemPreferences.java:769)
>> [JShell] at java.prefs/java.util.prefs.FileSystemPreferences.flush(FileSystemPreferences.java:864)
>> [JShell] at jdk.jshell/jdk.internal.jshell.tool.JShellToolBuilder$PreferencesStorage.flush(JShellToolBuilder.java:311)
>> [JShell] ... 4 more
>>
>> The BackingStoreException should be enhanced e.g. by adding the errno/errorCode that is already available in the coding
>
> src/java.prefs/unix/classes/java/util/prefs/FileSystemPreferences.java line 773:
>
>> 771: String sharingMode = "shared";
>> 772: if (!shared) sharingMode = "nonshared";
>> 773: throw(new BackingStoreException("Couldn't get file lock. errno is " + errCode + " mode is " + sharingMode));
>
> A raw errno is pretty uninformative, except for experts. Can the errno be translated to a string as well as supplying the errno?
Hi Roger, sounds like a good idea to translate it to a more informative string.
Do you have an utility function in mind that does this ?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/15308#discussion_r1296822489
More information about the core-libs-dev
mailing list