C&C Ancients module crashes in VASSAL-3.3.3-SNAPSHOT-bd38867

Hi folks. Tried running C&C Ancients v4.1 module under VASSAL-3.3.3-SNAPSHOT-bd388670-macosx (please advise if random tests of Snapshots is not helpful at this stage). I replayed a vlog in a PBEM game, successfully (including die rolls) and then opened my continuation. Played card, moved and marked units successfully but then experienced a crash when I hit a die roll button.

Log follows below. The die roll button is not using Symbolic Die, rather it calls to a routine that rolls the normal die and uses layers to convert the result to symbols. vlog is available if that would be useful.

2020-08-11 12:59:35,708 [0-main] INFO VASSAL.launch.StartUp - Starting
2020-08-11 12:59:35,713 [0-main] INFO VASSAL.launch.StartUp - OS Mac OS X 10.15.5
2020-08-11 12:59:35,714 [0-main] INFO VASSAL.launch.StartUp - Java version 14.0.2
2020-08-11 12:59:35,714 [0-main] INFO VASSAL.launch.StartUp - VASSAL version 3.3.3-SNAPSHOT-bd388670
2020-08-11 12:59:36,300 [0-AWT-EventQueue-0] INFO VASSAL.launch.ModuleManager - Manager
2020-08-11 12:59:59,798 [0-SwingWorker-pool-1-thread-1] INFO VASSAL.launch.AbstractLaunchAction - Loading module file /Users/Mark/Documents/Vassal Modules/CCAncientsV41.vmod
2020-08-11 12:59:59,988 [0-SwingWorker-pool-1-thread-1] INFO VASSAL.launch.TilingHandler - No images to tile.
2020-08-11 12:59:59,990 [0-SwingWorker-pool-1-thread-1] INFO VASSAL.launch.AbstractLaunchAction - Loading module Commands & Colors Ancients
2020-08-11 12:59:59,996 [0-SwingWorker-pool-1-thread-1] INFO VASSAL.tools.io.ProcessLauncher - launching /Applications/VASSAL.app/Contents/MacOS/jre/bin/java -Xms256M -Xmx512M -DVASSAL.id=1 -DVASSAL.port=60537 -Duser.home=/Users/Mark -Duser.dir=/Applications/VASSAL.app -cp Contents/Resources/Java/Vengine.jar -Xdock:name=Commands & Colors Ancients -Xdock:icon=/Applications/VASSAL.app/Contents/Resources/VASSAL.icns VASSAL.launch.Player --load – /Users/Mark/Documents/Vassal Modules/CCAncientsV41.vmod
2020-08-11 13:00:03,927 [1-main] INFO VASSAL.launch.StartUp - Starting
2020-08-11 13:00:03,938 [1-main] INFO VASSAL.launch.StartUp - OS Mac OS X 10.15.5
2020-08-11 13:00:03,938 [1-main] INFO VASSAL.launch.StartUp - Java version 14.0.2
2020-08-11 13:00:03,938 [1-main] INFO VASSAL.launch.StartUp - VASSAL version 3.3.3-SNAPSHOT-bd388670
2020-08-11 13:00:03,939 [1-main] INFO VASSAL.launch.Launcher - Player
2020-08-11 13:00:05,650 [1-IconFactory-preload] INFO VASSAL.tools.icon.IconFactory - VASSAL images folder found at jar:file:/Applications/VASSAL.app/Contents/Resources/Java/Vengine.jar!/images/
2020-08-11 13:00:05,652 [1-IconFactory-preload] INFO VASSAL.tools.icon.IconFactory - Icon family VASSAL created for VASSAL.svg
2020-08-11 13:00:05,653 [1-IconFactory-preload] INFO VASSAL.tools.icon.IconFactory - Icon family VASSAL-jabber created for VASSAL-jabber.png
2020-08-11 13:00:05,653 [1-IconFactory-preload] INFO VASSAL.tools.icon.IconFactory - Icon family network-idle created for network-idle.svg
2020-08-11 13:00:05,653 [1-IconFactory-preload] INFO VASSAL.tools.icon.IconFactory - Icon family yes created for yes.svg
2020-08-11 13:00:05,653 [1-IconFactory-preload] INFO VASSAL.tools.icon.IconFactory - Icon family go-down created for go-down.svg
2020-08-11 13:00:05,653 [1-IconFactory-preload] INFO VASSAL.tools.icon.IconFactory - Icon family bug created for bug.svg
2020-08-11 13:00:05,653 [1-IconFactory-preload] INFO VASSAL.tools.icon.IconFactory - Icon family no created for no.svg
2020-08-11 13:00:05,653 [1-IconFactory-preload] INFO VASSAL.tools.icon.IconFactory - Icon family calculator created for calculator.svg
2020-08-11 13:00:05,653 [1-IconFactory-preload] INFO VASSAL.tools.icon.IconFactory - Icon family jabber created for jabber.png
2020-08-11 13:00:05,653 [1-IconFactory-preload] INFO VASSAL.tools.icon.IconFactory - Icon family go-up created for go-up.svg
2020-08-11 13:00:05,653 [1-IconFactory-preload] INFO VASSAL.tools.icon.IconFactory - Icon family network-server created for network-server.svg
2020-08-11 13:00:07,549 [1-AWT-EventQueue-0] WARN VASSAL.launch.BasicModule - Commands & Colors Ancients version 4.1
2020-08-11 13:00:07,591 [1-AWT-EventQueue-0] ERROR VASSAL.i18n.BundleHelper - No Translation: Wizard.Next_mnemonic
2020-08-11 13:00:07,592 [1-AWT-EventQueue-0] ERROR VASSAL.i18n.BundleHelper - No Translation: Wizard.Prev_mnemonic
2020-08-11 13:00:07,592 [1-AWT-EventQueue-0] ERROR VASSAL.i18n.BundleHelper - No Translation: Wizard.Finish_mnemonic
2020-08-11 13:00:07,592 [1-AWT-EventQueue-0] ERROR VASSAL.i18n.BundleHelper - No Translation: Wizard.Cancel_mnemonic
2020-08-11 13:00:39,396 [1-AWT-EventQueue-0] INFO VASSAL.build.module.GameState - Loading save game /Users/Mark/Dropbox/PBEM CCA Eastern - Mark & Mark/115 Ipsus/115 Ipsus GameA 026.vlog, created with module version 4.1
2020-08-11 13:04:02,003 [1-AWT-EventQueue-0] INFO VASSAL.script.ExpressionInterpreter - Attempting to load /VASSAL/script/init_expression.bsh URI generated=jar:file:/Applications/VASSAL.app/Contents/Resources/Java/Vengine.jar!/VASSAL/script/init_expression.bsh
2020-08-11 13:06:09,335 [1-AWT-EventQueue-0] ERROR VASSAL.tools.ErrorDialog -
java.lang.NullPointerException: null
at VASSAL.tools.swing.SwingUtils$MacInputClassifier.genericToSystem(SwingUtils.java:241)
at VASSAL.tools.swing.SwingUtils.genericToSystem(SwingUtils.java:331)
at VASSAL.tools.KeyStrokeListener.keyPressed(KeyStrokeListener.java:72)
at VASSAL.build.GameModule.fireKeyStroke(GameModule.java:417)
at VASSAL.build.GameModule.fireKeyStroke(GameModule.java:424)
at VASSAL.counters.GlobalHotKey.myKeyEvent(GlobalHotKey.java:79)
at VASSAL.counters.Decorator.keyEvent(Decorator.java:314)
at VASSAL.counters.Decorator.keyEvent(Decorator.java:315)
at VASSAL.counters.Decorator.keyEvent(Decorator.java:315)
at VASSAL.counters.Decorator.keyEvent(Decorator.java:315)
at VASSAL.counters.Decorator.keyEvent(Decorator.java:315)
at VASSAL.counters.Decorator.keyEvent(Decorator.java:315)
at VASSAL.counters.Decorator.keyEvent(Decorator.java:315)
at VASSAL.counters.Decorator.keyEvent(Decorator.java:315)
at VASSAL.counters.ReportState.keyEvent(ReportState.java:122)
at VASSAL.counters.ReportState.keyEvent(ReportState.java:122)
at VASSAL.counters.ReportState.keyEvent(ReportState.java:122)
at VASSAL.counters.ReportState.keyEvent(ReportState.java:122)
at VASSAL.counters.ReportState.keyEvent(ReportState.java:122)
at VASSAL.counters.ReportState.keyEvent(ReportState.java:122)
at VASSAL.counters.ReportState.keyEvent(ReportState.java:122)
at VASSAL.counters.Decorator.keyEvent(Decorator.java:315)
at VASSAL.counters.Decorator.keyEvent(Decorator.java:315)
at VASSAL.counters.TriggerAction.doLoopOnce(TriggerAction.java:326)
at VASSAL.counters.TriggerAction.myKeyEvent(TriggerAction.java:204)
at VASSAL.counters.TriggerAction.keyEvent(TriggerAction.java:168)
at VASSAL.counters.TriggerAction.keyEvent(TriggerAction.java:167)
at VASSAL.counters.TriggerAction.keyEvent(TriggerAction.java:167)
at VASSAL.counters.TriggerAction.keyEvent(TriggerAction.java:167)
at VASSAL.counters.TriggerAction.keyEvent(TriggerAction.java:167)
at VASSAL.counters.TriggerAction.keyEvent(TriggerAction.java:167)
at VASSAL.counters.TriggerAction.keyEvent(TriggerAction.java:167)
at VASSAL.counters.Decorator.keyEvent(Decorator.java:315)
at VASSAL.counters.Decorator.keyEvent(Decorator.java:315)
at VASSAL.counters.Decorator.keyEvent(Decorator.java:315)
at VASSAL.counters.Decorator.keyEvent(Decorator.java:315)
at VASSAL.counters.Decorator.keyEvent(Decorator.java:315)
at VASSAL.counters.Decorator.keyEvent(Decorator.java:315)
at VASSAL.counters.Decorator.keyEvent(Decorator.java:315)
at VASSAL.counters.Decorator.keyEvent(Decorator.java:315)
at VASSAL.counters.ReportState.keyEvent(ReportState.java:122)
at VASSAL.counters.ReportState.keyEvent(ReportState.java:122)
at VASSAL.counters.ReportState.keyEvent(ReportState.java:122)
at VASSAL.counters.ReportState.keyEvent(ReportState.java:122)
at VASSAL.counters.ReportState.keyEvent(ReportState.java:122)
at VASSAL.counters.ReportState.keyEvent(ReportState.java:122)
at VASSAL.counters.ReportState.keyEvent(ReportState.java:122)
at VASSAL.counters.Decorator.keyEvent(Decorator.java:315)
at VASSAL.counters.Decorator.keyEvent(Decorator.java:315)
at VASSAL.counters.GlobalCommand$Visitor.apply(GlobalCommand.java:183)
at VASSAL.counters.GlobalCommand$Visitor.visitDefault(GlobalCommand.java:175)
at VASSAL.counters.PieceVisitorDispatcher.accept(PieceVisitorDispatcher.java:46)
at VASSAL.counters.DeckVisitorDispatcher.accept(DeckVisitorDispatcher.java:37)
at VASSAL.counters.GlobalCommand.apply(GlobalCommand.java:114)
at VASSAL.build.module.GlobalKeyCommand.apply(GlobalKeyCommand.java:36)
at VASSAL.build.module.map.MassKeyCommand$1.actionPerformed(MassKeyCommand.java:114)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.desktop/java.awt.Component.processMouseEvent(Unknown Source)
at java.desktop/javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.desktop/java.awt.Component.processEvent(Unknown Source)
at java.desktop/java.awt.Container.processEvent(Unknown Source)
at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Component.dispatchEvent(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.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
at java.desktop/java.awt.EventQueue$5.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)

Should be fixed by PR #161: github.com/vassalengine/vassal/pull/161

Random tests of Snapshots is always a good thing.

Whew, as I scrolled down I was thinking “holy crap, not ANOTHER one!”

Joel indicated he’d be getting back to merging things soon, he had some IRL going on “as one does”.

… should be fixed in PR #161 BUT was not merged yet. Expect it to be in the next snapshot/beta.

Thanks for the info.

Fixed in recent builds (e.g. VASSAL-3.3.4-SNAPSHOT-3082d1ffb )