RFR: JDK-8314272: Improve java.util.prefs.BackingStoreException: Couldn't get file lock. [v2]
Martin Doerr
mdoerr at openjdk.org
Fri Sep 1 12:49:43 UTC 2023
On Fri, 1 Sep 2023 12:36:28 GMT, Matthias Baesken <mbaesken 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
>
> Matthias Baesken has updated the pull request incrementally with one additional commit since the last revision:
>
> add for some errnos also the string
Nice improvement! Please see my minor comments.
src/java.prefs/unix/classes/java/util/prefs/FileSystemPreferences.java line 723:
> 721: }
> 722: return "";
> 723: }
Would be a nice use case of switch expressions. But, I'm ok with it.
src/java.prefs/unix/classes/java/util/prefs/FileSystemPreferences.java line 731:
> 729: if (errCode != 0) {
> 730: String errStr = getErrorString(errCode);
> 731: if (! errStr.equals("")) errStr = " (" + errStr + ")";
Coding style: whitespace after '!'
src/java.prefs/unix/classes/java/util/prefs/FileSystemPreferences.java line 732:
> 730: String errStr = getErrorString(errCode);
> 731: if (! errStr.equals("")) errStr = " (" + errStr + ")";
> 732: throw(new BackingStoreException("Couldn't get file lock. errno is " + errCode + errStr));
Strange coding style (also in the original code). I'd use "throw new ...".
src/java.prefs/unix/classes/java/util/prefs/FileSystemPreferences.java line 798:
> 796: if (!shared) sharingMode = "nonshared";
> 797: String errStr = getErrorString(errCode);
> 798: if (! errStr.equals("")) errStr = " (" + errStr + ")";
as above
src/java.prefs/unix/classes/java/util/prefs/FileSystemPreferences.java line 799:
> 797: String errStr = getErrorString(errCode);
> 798: if (! errStr.equals("")) errStr = " (" + errStr + ")";
> 799: throw(new BackingStoreException("Couldn't get file lock. errno is " + errCode + errStr + " mode is " + sharingMode));
as above
-------------
Marked as reviewed by mdoerr (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/15308#pullrequestreview-1606876656
PR Review Comment: https://git.openjdk.org/jdk/pull/15308#discussion_r1312979770
PR Review Comment: https://git.openjdk.org/jdk/pull/15308#discussion_r1312980202
PR Review Comment: https://git.openjdk.org/jdk/pull/15308#discussion_r1312982035
PR Review Comment: https://git.openjdk.org/jdk/pull/15308#discussion_r1312982899
PR Review Comment: https://git.openjdk.org/jdk/pull/15308#discussion_r1312983075
More information about the core-libs-dev
mailing list