I have a Java app that I packaged using snapcraft. It works for most part except when my app trying to update user registry using Java Preferences I get this error:
java.lang.RuntimeException: java.lang.SecurityException: Could not lock User prefs. Lock file access denied.
at runiter.calculator.MainApplication.lambda$windowActivated$10(MainApplication.java:250)
at java.base/java.lang.ThreadGroup.uncaughtException(Unknown Source)
at java.base/java.lang.ThreadGroup.uncaughtException(Unknown Source)
at java.base/java.lang.Thread.dispatchUncaughtException(Unknown Source)
Caused by: java.lang.SecurityException: Could not lock User prefs. Lock file access denied.
at java.prefs/java.util.prefs.FileSystemPreferences.checkLockFile0ErrorCode(Unknown Source)
at java.prefs/java.util.prefs.FileSystemPreferences.lockFile(Unknown Source)
at java.prefs/java.util.prefs.FileSystemPreferences.sync(Unknown Source)
at java.prefs/java.util.prefs.FileSystemPreferences.flush(Unknown Source)
at java.prefs/java.util.prefs.FileSystemPreferences.syncWorld(Unknown Source)
at java.prefs/java.util.prefs.FileSystemPreferences$3.run(Unknown Source)
at java.base/java.util.TimerThread.mainLoop(Unknown Source)
at java.base/java.util.TimerThread.run(Unknown Source)
The file that Java is trying to lock is this:
/home/saeid/.java/.userPrefs/.user.lock.saeid
I tried adding this plugs to my snapcraft.yaml but it didn’t help:
plugs:
java-preferences:
interface: personal-files
write:
- $HOME/.java/.userPrefs/.user.lock.saeid
Any help is appreciated.