Vassal 3.2.7, Windows 8 and the Vassal Preferences file

Every time I load a module, Vassal tells me that it cannot write to my Preferences file.

Anyone had this problem and know how to get around it?

Thus spake vitp4145:

Every time I load a module, Vassal tells me that it cannot write to my
Preferences file.

Anyone had this problem and know how to get around it?

Check the permissions for your Preferences file and the directory
it’s in. Are they writable for your user account?

J.

Yes they are. The file itself and the Vassal folder it is in are definitely read/write permissions for System, Administrator and myself.

Thus spake vitp4145:

Yes they are. The file itself and the Vassal folder it is in are
definitely read/write permissions for System, Administrator and myself.

Post the errrorLog from your last attempt at running VASSAL.


J.

VASSAL.tools.ProblemDialog -
java.io.IOException: Unable to overwrite C:\Users\Doug\AppData\Roaming\VASSAL\Preferences: Data written to C:\Users\Doug\AppData\Roaming\VASSAL\tmp978391421529494193.zip instead.
at VASSAL.tools.io.ZipArchive.writeToDisk(ZipArchive.java:508) ~[Vengine.jar:na]
at VASSAL.tools.io.ZipArchive.flush(ZipArchive.java:382) ~[Vengine.jar:na]
at VASSAL.preferences.PrefsEditor.write(PrefsEditor.java:256) ~[Vengine.jar:na]
at VASSAL.preferences.Prefs.write(Prefs.java:233) ~[Vengine.jar:na]
at VASSAL.preferences.GlobalPrefs.handleValueChange(GlobalPrefs.java:44) ~[Vengine.jar:na]
at VASSAL.preferences.Prefs$1.propertyChange(Prefs.java:70) ~[Vengine.jar:na]
at java.beans.PropertyChangeSupport.fire(Unknown Source) ~[na:1.7.0_25]
at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source) ~[na:1.7.0_25]
at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source) ~[na:1.7.0_25]
at VASSAL.configure.Configurer.setValue(Configurer.java:104) ~[Vengine.jar:na]
at VASSAL.configure.StringArrayConfigurer.setValue(StringArrayConfigurer.java:201) ~[Vengine.jar:na]
at VASSAL.launch.ModuleManagerWindow.updateModuleList(ModuleManagerWindow.java:793) ~[Vengine.jar:na]
at VASSAL.launch.ModuleManagerWindow.addModule(ModuleManagerWindow.java:762) ~[Vengine.jar:na]
at VASSAL.launch.AbstractLaunchAction$NotifyOpenModuleOkListener$1.run(AbstractLaunchAction.java:719) ~[Vengine.jar:na]
at java.awt.event.InvocationEvent.dispatch(Unknown Source) ~[na:1.7.0_25]
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) ~[na:1.7.0_25]
at java.awt.EventQueue.access$200(Unknown Source) ~[na:1.7.0_25]
at java.awt.EventQueue$3.run(Unknown Source) ~[na:1.7.0_25]
at java.awt.EventQueue$3.run(Unknown Source) ~[na:1.7.0_25]
at java.security.AccessController.doPrivileged(Native Method) ~[na:1.7.0_25]
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) ~[na:1.7.0_25]
at java.awt.EventQueue.dispatchEvent(Unknown Source) ~[na:1.7.0_25]
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) ~[na:1.7.0_25]
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) ~[na:1.7.0_25]
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) ~[na:1.7.0_25]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) ~[na:1.7.0_25]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) ~[na:1.7.0_25]
at java.awt.EventDispatchThread.run(Unknown Source) ~[na:1.7.0_25]
Caused by: java.io.IOException: Unable to delete file: C:\Users\Doug\AppData\Roaming\VASSAL\Preferences
at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:1390) ~[commons-io-1.4.jar:1.4]
at VASSAL.tools.io.ZipArchive.writeToDisk(ZipArchive.java:490) ~[Vengine.jar:na]
… 27 common frames omitted

That’s not the complete errorLog.

With which modules does this happen?

This happens with every module. The error log says it can’t write to the preferences file, so it makes a tmp*.zip file instead. When I open the tmp*.zip file, it’s a record of the modules I have opened in Vassal.

When I open Vassal, the previously opened modules are all listed.

Perhaps this is an “igsignificant error”? My previous PC was a Windows 7 one, and there were no problems with the preferences file.

Thus spake vitp4145:

This happens with every module.

Which modules are “every module”?

The error log says it can’t write to the
preferences file, so it makes a tmp*.zip file instead. When I open the
tmp*.zip file, it’s a record of the modules I have opened in Vassal.

Try moving the Preferences file somewhere else, then start and use
VASSAL. Does the probelm occur then?

When I open Vassal, the previously opened modules are all listed.

Perhaps this is an “igsignificant error”? My previous PC was a Windows 7
one, and there were no problems with the preferences file.

Your Preferences isn’t being updated. If that’s ok with you, then you
can ignore the problem. But you won’t be able to permanently change
any preferences this way.


J.

I just downloaded and installed and I’m getting the same problem I’m running Vassal as administrator so it should have full permissions to that folder.

How do I change the location of the preferences folder?

Thus spake TrentL:

I just downloaded and installed and I’m getting the same problem I’m
running Vassal as administrator so it should have full permissions to
that folder.

How do I change the location of the preferences folder?

You can’t without modifying the source code. The location where VASSAL
is writing config files is the standard one for Windows, %APPDATA%. If
that’s not the correct location for Windows 8, I need to see some
documentation demonstrating that.

I have a test build for you to try:

vassalengine.sourceforge.net/bui … indows.exe

Install this. Run it and do what you’ve been doing. Post the errorLog
here.


J.

Thanks for all the time and effort spent on assisting in this problem.

I have found a solution to this today.

When I initially installed Vassal 3.2.7 on Windows 8, it installed to the C:\Program Files(x86) … folder.

I uninstalled Vassal and then installed it again. This time, I chose custom install, and made the installation folder c:\vassal-3.2.7 instead of the Program Folders(x86) in the default install.

Lo and behold, there is no trouble with writing to the Preferences file. Everything works as it should. I do not know why it doesn’t work when installed within the Program Files(x86) folder structure, but outside it all is well.

Many thanks once again.

That might not help explain why you got the error you did initially, though. And with more and more Windows 8 machines out there, the problem could crop up again for someone else. It doesn’t make sense to me that installing VASSAL to C:\Program Files (x86)\ would cause your Preferences (C:\Users\Doug\AppData\Roaming\VASSAL\Preferences) to be non-writable but installing to a new folder in the root of C: works normally.

Exactly.

Installing to the (x86) directory in win7, I and am sure many others have not encountered any issues writing to the preference file. It is more likely a user specific problem w/r/t their UAC and/or settings in windows for files/directories control and possibly involved but less so changes with how winblows8 works as opposed to win7/xp

Hi
I upgraded my VASSAL to 3.2.7 and I have the same problem when I open a new module.
It was happened many times in many modules. (for example log from Serpents of the Seas)
Than I uninstaled and instaled VASSAL in different directories D:\PROGRAMS\VASSAL and I still have the same problem

I had no problem when I was using previous version of VASSAL!

Message error: VASSAL was unable to write the file ‘C:\Users\MyUser\AppData\Roaming\VASSAL\Preferences’.

Error Details:
java.io.IOException: Unable to overwrite C:\Users\MyUser\AppData\Roaming\VASSAL\Preferences: Data written to C:\Users\MyUser\AppData\Roaming\VASSAL\tmp1373364432094180147.zip instead.
at VASSAL.tools.io.ZipArchive.writeToDisk(ZipArchive.java:508)
at VASSAL.tools.io.ZipArchive.flush(ZipArchive.java:382)
at VASSAL.preferences.PrefsEditor.write(PrefsEditor.java:256)
at VASSAL.preferences.Prefs.write(Prefs.java:233)
at VASSAL.preferences.GlobalPrefs.handleValueChange(GlobalPrefs.java:44)
at VASSAL.preferences.Prefs$1.propertyChange(Prefs.java:70)
at java.beans.PropertyChangeSupport.fire(Unknown Source)
at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
at VASSAL.configure.Configurer.setValue(Configurer.java:104)
at VASSAL.configure.StringArrayConfigurer.setValue(StringArrayConfigurer.java:201)
at VASSAL.launch.ModuleManagerWindow.updateModuleList(ModuleManagerWindow.java:793)
at VASSAL.launch.ModuleManagerWindow.addModule(ModuleManagerWindow.java:762)
at VASSAL.launch.AbstractLaunchAction$NotifyOpenModuleOkListener$1.run(AbstractLaunchAction.java:719)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.io.IOException: Unable to delete file: C:\Users\MyUser\AppData\Roaming\VASSAL\Preferences
at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:1390)
at VASSAL.tools.io.ZipArchive.writeToDisk(ZipArchive.java:490)
… 27 more

My configuration:
Model: HP Elitebook 8570p
OS: Windows 7 Professional
CPU: Intel Core i5-3360M CPU @ 2.80GHz
Memory: 8GB
Video: AMD Radeon HD 7500M/7600M Series
VASSAL: 3.2.7
Java: 1.7.0_25
Module: Serpents of the Seas 1.21

Thus spake gspatton:

Hi
I upgraded my VASSAL to 3.2.7 and I have the same problem when I open a
new module.
It was happened many times in many modules. (for example log from
Serpents of the Seas)
Than I uninstaled and instaled VASSAL in different directories
D:\PROGRAMS\VASSAL and I still have the same problem

I had no problem when I was using previous version of VASSAL!

Message error: VASSAL was unable to write the file
‘C:\Users\MyUser\AppData\Roaming\VASSAL\Preferences’.

Reinstalling VASSAL isn’t going to make any differece for this problem,
because the problem is with writing your user preferences file, which
is something that the VASSAL installer doesn’t touch.

  1. Check the permissions for C:\Users\MyUser\AppData\Roaming\VASSAL
    and for C:\Users\MyUser\AppData\Roaming\VASSAL\Preferences. What are
    they?

  2. Try running VASSAL as administrator. Does that work?


J.

  1. I’m using profile with administrators privileges.
    I have set full control to Preferences file.

  2. I was trying, and I still have this error.

What else should I try?

Thus spake gspatton:

  1. I’m using profile with administrators privileges.
    I have set full control to Preferences file.

  2. I was trying, and I still have this error.

What else should I try?

Try renaming C:\Users\MyUser\AppData\Roaming\VASSAL to something
else, and then run VASSAL as a normal user. That should let VASSAL
recreate the folder. Does that work?


J.

Still the same.

Thus spake gspatton:

Still the same.

Install VASSAL-3.2.8-svn8787. Run that to the point where you get the
error and post the complete errorLog.

vassalengine.sourceforge.net/builds/


J.

Done.
And I got the same error:

java.io.IOException: Unable to overwrite C:\Users\MyUser\AppData\Roaming\VASSAL\Preferences: Data written to C:\Users\MyUser\AppData\Roaming\VASSAL\tmp6568354715655364413.zip instead.
at VASSAL.tools.io.ZipArchive.writeToDisk(ZipArchive.java:508)
at VASSAL.tools.io.ZipArchive.flush(ZipArchive.java:382)
at VASSAL.preferences.PrefsEditor.write(PrefsEditor.java:256)
at VASSAL.preferences.Prefs.write(Prefs.java:233)
at VASSAL.preferences.GlobalPrefs.handleValueChange(GlobalPrefs.java:44)
at VASSAL.preferences.Prefs$1.propertyChange(Prefs.java:70)
at java.beans.PropertyChangeSupport.fire(Unknown Source)
at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
at VASSAL.configure.Configurer.setValue(Configurer.java:104)
at VASSAL.configure.StringArrayConfigurer.setValue(StringArrayConfigurer.java:201)
at VASSAL.launch.ModuleManagerWindow.updateModuleList(ModuleManagerWindow.java:793)
at VASSAL.launch.ModuleManagerWindow.addModule(ModuleManagerWindow.java:762)
at VASSAL.launch.AbstractLaunchAction$NotifyOpenModuleOkListener$1.run(AbstractLaunchAction.java:719)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.io.IOException: Unable to delete file: C:\Users\MyUser\AppData\Roaming\VASSAL\Preferences
at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:1390)
at VASSAL.tools.io.ZipArchive.writeToDisk(ZipArchive.java:490)
… 27 more

I post full log ( from C:\Users\MyUser\AppData\Roaming\VASSAL\ )