RFR: JDK-8314272: Improve java.util.prefs.BackingStoreException: Couldn't get file lock. [v2]

Alan Bateman alanb at openjdk.org
Fri Sep 1 12:54:41 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

src/java.prefs/unix/classes/java/util/prefs/FileSystemPreferences.java line 722:

> 720:             case 1:  return "EPERM";
> 721:         }
> 722:         return "";

I assume the use of System.getProperty is problematic when running with a SM.

In any case, I don't think this is the right way to do it, instead you want a native method to call strerror to translate the error.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/15308#discussion_r1312988133


More information about the core-libs-dev mailing list