Crash when editing "old" module in 3.5.4

I was attempting to update an old 3.2.17 (?) module, and in so doing, create a 3.5.4 module. I added two charts to the Chart Window Menu, I adjusted an incorrect hex numbering on Map A, I added a 2d6 dice button, changed the order of the buttons a bit, and then changed the version number as I saved.

2021-04-04 08:54:41,841 [18212-main] INFO VASSAL.launch.StartUp - Starting
2021-04-04 08:54:41,854 [18212-main] INFO VASSAL.launch.StartUp - OS Windows 10 10.0
2021-04-04 08:54:41,854 [18212-main] INFO VASSAL.launch.StartUp - Java version 15.0.2
2021-04-04 08:54:41,854 [18212-main] INFO VASSAL.launch.StartUp - VASSAL version 3.5.4
2021-04-04 08:54:41,947 [18212-AWT-EventQueue-0] INFO VASSAL.launch.ModuleManager - Manager
2021-04-04 08:55:00,558 [18212-SwingWorker-pool-3-thread-1] INFO VASSAL.launch.AbstractLaunchAction - Loading module file C:\Wargaming\GBACW\TSS\Terrible Swift Sword v1.3.vmod
2021-04-04 08:55:01,035 [18212-SwingWorker-pool-3-thread-1] INFO VASSAL.tools.io.ProcessLauncher - launching C:\Program Files\VASSAL-3.5.4\jre\bin\java -classpath lib\Vengine.jar -Xmx252M -Duser.home=C:\Users\allen -DVASSAL.port=56631 VASSAL.tools.image.tilecache.ZipFileImageTiler C:\Wargaming\GBACW\TSS\Terrible Swift Sword v1.3.vmod C:\Users\allen\AppData\Roaming\VASSAL\tiles\6fc52ea272a94b4d5c76d6ea458e308cc8b7c52b 256 256
2021-04-04 08:55:01,794 [20808-main] INFO VASSAL.tools.image.tilecache.ZipFileImageTiler - Starting
2021-04-04 08:55:01,869 [20808-main] INFO VASSAL.tools.image.tilecache.FileArchiveImageTiler - Tiling images/CSA Display.jpg
2021-04-04 08:55:02,190 [20808-main] INFO VASSAL.tools.image.tilecache.FileArchiveImageTiler - Tiling images/Chart_10-26 Range Effects on Fire Strength.jpg
2021-04-04 08:55:02,281 [20808-main] INFO VASSAL.tools.image.tilecache.FileArchiveImageTiler - Tiling images/Chart_10-9 Fire CRT.jpg
2021-04-04 08:55:02,371 [20808-main] INFO VASSAL.tools.image.tilecache.FileArchiveImageTiler - Tiling images/Chart_13-9 Melee CRT.jpg
2021-04-04 08:55:02,466 [20808-main] INFO VASSAL.tools.image.tilecache.FileArchiveImageTiler - Tiling images/Chart_6-3 Unit Formation Effects on Fire Combat.jpg
2021-04-04 08:55:02,502 [20808-main] INFO VASSAL.tools.image.tilecache.FileArchiveImageTiler - Tiling images/Chart_9 Terrain Effects on Movement.jpg
2021-04-04 08:55:02,562 [20808-main] INFO VASSAL.tools.image.tilecache.FileArchiveImageTiler - Tiling images/Splash.jpg
2021-04-04 08:55:02,615 [20808-main] INFO VASSAL.tools.image.tilecache.FileArchiveImageTiler - Tiling images/TSS Map_NE.jpg
2021-04-04 08:55:06,127 [20808-main] INFO VASSAL.tools.image.tilecache.FileArchiveImageTiler - Tiling images/TSS Map_NW.jpg
2021-04-04 08:55:09,822 [20808-main] INFO VASSAL.tools.image.tilecache.FileArchiveImageTiler - Tiling images/TSS Map_SE.jpg
2021-04-04 08:55:11,844 [20808-main] INFO VASSAL.tools.image.tilecache.FileArchiveImageTiler - Tiling images/TSS Map_SW.jpg
2021-04-04 08:55:13,856 [20808-main] INFO VASSAL.tools.image.tilecache.FileArchiveImageTiler - Tiling images/USA Display.jpg
2021-04-04 08:55:14,029 [20808-main] INFO VASSAL.tools.image.tilecache.ZipFileImageTiler - Exiting
2021-04-04 08:55:14,070 [18212-SwingWorker-pool-3-thread-1] INFO VASSAL.launch.AbstractLaunchAction - Loading module Terrible Swift Sword (SPI)
2021-04-04 08:55:14,073 [18212-SwingWorker-pool-3-thread-1] INFO VASSAL.tools.io.ProcessLauncher - launching C:\Program Files\VASSAL-3.5.4\jre\bin\java -Xms512M -Xmx512M -Duser.home=C:\Users\allen -Duser.dir=C:\Program Files\VASSAL-3.5.4 -cp lib\Vengine.jar VASSAL.launch.Editor --edit – C:\Wargaming\GBACW\TSS\Terrible Swift Sword v1.3.vmod
2021-04-04 08:55:14,661 [13104-main] INFO VASSAL.launch.StartUp - Starting
2021-04-04 08:55:14,673 [13104-main] INFO VASSAL.launch.StartUp - OS Windows 10 10.0
2021-04-04 08:55:14,674 [13104-main] INFO VASSAL.launch.StartUp - Java version 15.0.2
2021-04-04 08:55:14,674 [13104-main] INFO VASSAL.launch.StartUp - VASSAL version 3.5.4
2021-04-04 08:55:14,674 [13104-main] INFO VASSAL.launch.Launcher - Editor
2021-04-04 08:55:20,443 [13104-AWT-EventQueue-0] INFO VASSAL.build.GameModule - Terrible Swift Sword (SPI) version 1.3
2021-04-04 09:47:13,887 [13104-AWT-EventQueue-0] WARN VASSAL.i18n.BundleHelper - No Translation: Wizard.Next_mnemonic
2021-04-04 09:47:13,887 [13104-AWT-EventQueue-0] WARN VASSAL.i18n.BundleHelper - No Translation: Wizard.Prev_mnemonic
2021-04-04 09:47:13,887 [13104-AWT-EventQueue-0] WARN VASSAL.i18n.BundleHelper - No Translation: Wizard.Finish_mnemonic
2021-04-04 09:47:13,887 [13104-AWT-EventQueue-0] WARN VASSAL.i18n.BundleHelper - No Translation: Wizard.Cancel_mnemonic
2021-04-04 09:47:13,887 [13104-AWT-EventQueue-0] WARN VASSAL.i18n.BundleHelper - No Translation: Wizard.Help_mnemonic
2021-04-04 09:47:28,532 [13104-AWT-EventQueue-0] INFO VASSAL.script.ExpressionInterpreter - Attempting to load /VASSAL/script/init_expression.bsh URI generated=jar:file:/C:/Program%20Files/VASSAL-3.5.4/lib/Vengine.jar!/VASSAL/script/init_expression.bsh
2021-04-04 09:48:30,197 [13104-AWT-EventQueue-0] INFO VASSAL.tools.io.ProcessLauncher - launching C:\Program Files\VASSAL-3.5.4\jre\bin\java -classpath lib\Vengine.jar -Duser.dir=C:\Program Files\VASSAL-3.5.4 VASSAL.launch.ModuleManager --update-module C:\Wargaming\GBACW\TSS\Terrible Swift Sword v1.3.vmod
2021-04-04 09:49:03,342 [13104-AWT-EventQueue-0] INFO VASSAL.tools.io.ProcessLauncher - launching C:\Program Files\VASSAL-3.5.4\jre\bin\java -classpath lib\Vengine.jar -Duser.dir=C:\Program Files\VASSAL-3.5.4 VASSAL.launch.ModuleManager --update-module C:\Wargaming\GBACW\TSS\Terrible Swift Sword v1.3.vmod
2021-04-04 10:12:04,003 [13104-AWT-EventQueue-0] INFO VASSAL.tools.io.ProcessLauncher - launching C:\Program Files\VASSAL-3.5.4\jre\bin\java -classpath lib\Vengine.jar -Duser.dir=C:\Program Files\VASSAL-3.5.4 VASSAL.launch.ModuleManager --update-module C:\Wargaming\GBACW\TSS\Terrible Swift Sword v1.5.vmod
2021-04-04 10:12:41,199 [13104-AWT-EventQueue-0] ERROR VASSAL.tools.ErrorDialog -
java.lang.IllegalArgumentException: fromIndex(3) > toIndex(2)
at java.base/java.util.AbstractList.subListRangeCheck(AbstractList.java:509)
at java.base/java.util.ArrayList.subList(ArrayList.java:1108)
at VASSAL.build.module.PlayerRoster.resetListeners(PlayerRoster.java:233)
at VASSAL.build.GameModule.resetSourcesAndListeners(GameModule.java:1108)
at VASSAL.build.module.GameState.setup(GameState.java:386)
at VASSAL.build.module.GameState.closeGame(GameState.java:603)
at VASSAL.build.module.GameState$7.actionPerformed(GameState.java:211)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
at java.desktop/javax.swing.AbstractButton.doClick(AbstractButton.java:369)
at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1012)
at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1056)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6614)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
at java.desktop/java.awt.Component.processEvent(Component.java:6379)
at java.desktop/java.awt.Container.processEvent(Container.java:2263)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4990)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4822)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4919)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4548)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4489)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2769)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4822)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

This is Bug 14291, already fixed in current 3.5.5 test builds.

vassalengine.org/builds/