Config files are not user-specific

Bug #1393363 reported by Danil Sokolov
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Workcraft
Fix Committed
High
Danil Sokolov

Bug Description

If Workcraft is installed system-wide, then there is a problem with its config files. If Workcraft has write access to its config directory, then different users may overwrite each other's configs. If the directory is read-only, then the following exception is issued on exit:

java.io.FileNotFoundException: ./config/uilayout.xml (Permission denied)
        at java.io.FileOutputStream.open(Native Method)
        at java.io.FileOutputStream.<init>(Unknown Source)
        at java.io.FileOutputStream.<init>(Unknown Source)
        at org.workcraft.gui.MainWindow.saveDockingLayout(MainWindow.java:649)
        at org.workcraft.gui.MainWindow.shutdown(MainWindow.java:712)
        at org.workcraft.Framework.shutdownGUI(Framework.java:456)
        at org.workcraft.Console.main(Console.java:160)

Now in console mode.
Shutting down...

java.io.FileNotFoundException: config/config.xml (Permission denied)
        at java.io.FileOutputStream.open(Native Method)
        at java.io.FileOutputStream.<init>(Unknown Source)
        at java.io.FileOutputStream.<init>(Unknown Source)
        at org.workcraft.Config.save(Config.java:284)
        at org.workcraft.Framework.saveConfig(Framework.java:240)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:161)
        at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:247)
        at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:66)
        at org.mozilla.javascript.gen.c1._c15(<string>:61)
        at org.mozilla.javascript.gen.c1.call(<string>)
        at org.mozilla.javascript.optimizer.OptRuntime.callName0(OptRuntime.java:108)
        at org.mozilla.javascript.gen.c4._c0(<string>:3)
        at org.mozilla.javascript.gen.c4.call(<string>)
        at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:398)
        at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3065)
        at org.mozilla.javascript.gen.c4.call(<string>)
        at org.mozilla.javascript.gen.c4.exec(<string>)
        at org.mozilla.javascript.Context.evaluateString(Context.java:1104)
        at org.workcraft.Framework$ExecuteScriptAction.run(Framework.java:110)
        at org.mozilla.javascript.Context.call(Context.java:515)
        at org.mozilla.javascript.ContextFactory.call(ContextFactory.java:507)
        at org.workcraft.Framework.doContextAction(Framework.java:383)
        at org.workcraft.Framework.execJavaScript(Framework.java:377)
        at org.workcraft.Framework.execJavaScript(Framework.java:369)
        at org.workcraft.Console.main(Console.java:173)

The best solution is to keep all the configs in the user home directories, e.g. under $HOME/.config/workcraft/ path.

Related branches

Changed in workcraft:
milestone: 3.0.3 → 3.0.4
Changed in workcraft:
milestone: 3.0.4 → none
Changed in workcraft:
milestone: none → 3.0.7
Changed in workcraft:
milestone: 3.0.7 → 3.0.8
Changed in workcraft:
status: Confirmed → Fix Committed
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.