vasl on Mac keeps "disappearing"

jrv

Forum Guru
Joined
May 25, 2005
Messages
21,998
Reaction score
6,206
Location
Teutoburger Wald
Country
llIceland
The error is:
Code:
2019-10-28 14:31:24,430 [0-AWT-EventQueue-0] ERROR VASSAL.build.module.metadata.MetaDataFactory -
java.io.FileNotFoundException: /Users/zgrose/Downloads/vasl-6.4.4.vmod (Operation not permitted)
    at java.base/java.io.RandomAccessFile.open0(Native Method)
    at java.base/java.io.RandomAccessFile.open(Unknown Source)
    at java.base/java.io.RandomAccessFile.<init>(Unknown Source)
    at java.base/java.io.RandomAccessFile.<init>(Unknown Source)
    at java.base/java.util.zip.ZipFile$Source.<init>(Unknown Source)
    at java.base/java.util.zip.ZipFile$Source.get(Unknown Source)
    at java.base/java.util.zip.ZipFile$CleanableResource.<init>(Unknown Source)
    at java.base/java.util.zip.ZipFile.<init>(Unknown Source)
    at java.base/java.util.zip.ZipFile.<init>(Unknown Source)
    at java.base/java.util.zip.ZipFile.<init>(Unknown Source)
    at VASSAL.build.module.metadata.MetaDataFactory.buildMetaData(MetaDataFactory.java:62)
    at VASSAL.launch.ModuleManagerWindow$ModuleInfo.loadMetaData(ModuleManagerWindow.java:1231)
    at VASSAL.launch.ModuleManagerWindow$ModuleInfo.<init>(ModuleManagerWindow.java:1259)
    at VASSAL.launch.ModuleManagerWindow.buildTree(ModuleManagerWindow.java:481)
    at VASSAL.launch.ModuleManagerWindow.<init>(ModuleManagerWindow.java:376)
    at VASSAL.launch.ModuleManagerWindow.<clinit>(ModuleManagerWindow.java:178)
    at VASSAL.launch.ModuleManager.launch(ModuleManager.java:455)
    at VASSAL.launch.ModuleManager$2.run(ModuleManager.java:342)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
    at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
    at java.base/java.security.AccessController.doPrivileged(Unknown Source)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
2019-10-28 14:31:24,435 [0-AWT-EventQueue-0] INFO  VASSAL.launch.ModuleManagerWindow - Module /Users/zgrose/Downloads/vasl-6.4.4.vmod not found - Removed.
I'll dig a bit more to see if I can find what's triggering the new security options.
I didn't even think to look in the log file. Thanks.

Do you really run your .vmods out of ~/Downloads, or was that a test?

JR
 

zgrose

Elder Member
Joined
Jun 13, 2004
Messages
4,235
Reaction score
948
Location
Kingwood, TX
First name
Zoltan
Country
llUnited States
I didn't even think to look in the log file. Thanks.

Do you really run your .vmods out of ~/Downloads, or was that a test?

JR
I'm not using my Mac day-to-day at the moment. It was just a test.


So did a little digging and places like (but perhaps not a complete list) Removable Volumes, Network Volumes, Downloads, Documents and the Desktop now (and presumably their child folders) have extra controls. I believe I read that DropBox, iCloud and OneDrive folders may be considered Network Volumes.

The behavior seems slightly different between VASSAL 3.2.17 (with Java8) and the 3.3 beta (with Java13) versions but it looks like I was able to get VASSAL 3.2.17 to behave somewhat predictably by simply moving the modules into ~/VASSAL (aka create a folder called VASSAL in your User folder and move all your modules into there).

I have a sneaking suspicion that this will work for VASSAL 3.3 too since the root cause is the same system feature but I haven't been able to reliably get VASSAL 3.3 to fail by disabling entries in the Security preference.
 

uckelman

Senior Member
Joined
Sep 12, 2011
Messages
714
Reaction score
439
Location
Durham
Country
llUnited Kingdom
What's happening there is that the Module Manager is trying to read metadata from the module, but it doesn't have permission to read the file.
 

jrv

Forum Guru
Joined
May 25, 2005
Messages
21,998
Reaction score
6,206
Location
Teutoburger Wald
Country
llIceland
What's happening there is that the Module Manager is trying to read metadata from the module, but it doesn't have permission to read the file.
I take it that because of this, vassal assumes that on any error vassal treats the file as if it no longer exists and removes the entry from the recent files list? It repeats this on all modules and so empties the recent files list. So the problem is not with the V_Globals file, as I assumed, but rather with the access to the modules files themselves. The owner has his modules in ~/Documents/A_some_name_here (where "A" put the directory first and "some_name_here" was actually something else but I don't remember exactly what). Is there somewhere else that he could put the directory which would not be "protected"?

JR
 
Last edited:

zgrose

Elder Member
Joined
Jun 13, 2004
Messages
4,235
Reaction score
948
Location
Kingwood, TX
First name
Zoltan
Country
llUnited States
Moving the modules into ~/VASSAL seems to be the easiest non-code workaround so far.
 

jrv

Forum Guru
Joined
May 25, 2005
Messages
21,998
Reaction score
6,206
Location
Teutoburger Wald
Country
llIceland
Moving the modules into ~/VASSAL seems to be the easiest non-code workaround so far.
My problem here is that the Mac owner is not happy when having to work with the machine in unfamiliar ways. My (very brief) experience with "finder" was that unlike windows explorer or thunar or nautilus, it was easy to get to ~/Documents (I think there was a shortcut on the left side window panel) but "hard" to get to ~ itself. There seemed to be no direct link in the panel and no "go up one level" button in finder. I had to use a keyboard shortcut, which I believe was "command up-arrow." Is there an easy way to get a user to the ~ directory in finder besides going to documents and using the keyboard shortcut? Again I have no access to a mac myself, so I would appreciate as detailed instructions as possible.

JR
 

zgrose

Elder Member
Joined
Jun 13, 2004
Messages
4,235
Reaction score
948
Location
Kingwood, TX
First name
Zoltan
Country
llUnited States
In any (many?) Finder windows, you can navigate back up the folder chain by right-clicking (or Control-clicking if one button mouse) on the folder name.

10687


You can also just use the Go menu (and/or its keyboard shortcut) to get the Home folder (Home is ~).

10688

If he wants to get somewhere a lot, he can drag/drop into the Favorites section anywhere (modified favorites example below):

10689
 

uckelman

Senior Member
Joined
Sep 12, 2011
Messages
714
Reaction score
439
Location
Durham
Country
llUnited Kingdom
I take it that because of this, vassal assumes that on any error vassal treats the file as if it no longer exists and removes the entry from the recent files list? It repeats this on all modules and so empties the recent files list. So the problem is not with the V_Globals file, as I assumed, but rather with the access to the modules files themselves.
This is correct---the Module Manager doesn't display modules which it can't read.

The owner has his modules in ~/Documents/A_some_name_here (where "A" put the directory first and "some_name_here" was actually something else but I don't remember exactly what). Is there somewhere else that he could put the directory which would not be "protected"?
Here you're getting into Mac-specific details where I don't have much experience. There has to be an expected place for users to store files, presumably in the user's home directory.
 
Last edited:
Top