# Editing piece name and copies on Load Multiple Pieces tool crashes

**URL:** https://forum.vassalengine.org/t/editing-piece-name-and-copies-on-load-multiple-pieces-tool-crashes/90202
**Category:** Technical Support & Bugs
**Created:** [June 12, 2026, 12:05am UTC](https://forum.vassalengine.org/t/editing-piece-name-and-copies-on-load-multiple-pieces-tool-crashes/90202 "2026-06-12T00:05:21Z")
**Posts on this page:** 12
**Page:** 1

<div class="post-metadata">

### Author: ![Alexander331bc](https://forum.vassalengine.org/letter_avatar_proxy/v4/letter/a/ac91a4/32.png) [@Alexander331bc](https://forum.vassalengine.org/u/Alexander331bc)
#### Post date: [June 12, 2026, 12:05am UTC](https://forum.vassalengine.org/t/editing-piece-name-and-copies-on-load-multiple-pieces-tool-crashes/90202/1 "2026-06-12T00:05:21Z")

</div>

When I double click on a piece name or copies entry in the Load Multiple Pieces tool, the software crashes. Furthermore, the error window won’t let me send a report. I was able to capture an error log, however. It’s in a txt file.

-Joel Toppen

---

<div class="post-metadata">

### Author: ![Alexander331bc](https://forum.vassalengine.org/letter_avatar_proxy/v4/letter/a/ac91a4/32.png) [@Alexander331bc](https://forum.vassalengine.org/u/Alexander331bc)
#### Post date: [June 12, 2026, 3:24am UTC](https://forum.vassalengine.org/t/editing-piece-name-and-copies-on-load-multiple-pieces-tool-crashes/90202/2 "2026-06-12T03:24:24Z")

</div>

Here’s the error log:

2026-06-11 17:29:08,752 [3241-main] INFO VASSAL.launch.StartUp - Starting  
2026-06-11 17:29:08,758 [3241-main] INFO VASSAL.launch.StartUp - OS Mac OS X 26.3 aarch64  
2026-06-11 17:29:08,758 [3241-main] INFO VASSAL.launch.StartUp - Java version 26.0.1  
2026-06-11 17:29:08,758 [3241-main] INFO VASSAL.launch.StartUp - Java home /Applications/VASSAL.app/Contents/MacOS/jre  
2026-06-11 17:29:08,758 [3241-main] INFO VASSAL.launch.StartUp - VASSAL version 3.7.23  
2026-06-11 17:29:09,037 [3241-AWT-EventQueue-0] INFO VASSAL.launch.ModuleManager - Manager  
2026-06-11 17:29:18,944 [3241-SwingWorker-pool-1-thread-1] INFO VASSAL.launch.AbstractLaunchAction - Loading module file /Users/joel\_m\_toppen/Library/CloudStorage/OneDrive-Personal/VASSAL/Space Empires Project/Space Empires 4x (JT) v0.0.5.vmod  
2026-06-11 17:29:19,444 [3241-SwingWorker-pool-1-thread-1] INFO VASSAL.launch.TilingHandler - No images to tile.  
2026-06-11 17:29:19,445 [3241-SwingWorker-pool-1-thread-1] INFO VASSAL.launch.AbstractLaunchAction - Loading module Space Empires 4x  
2026-06-11 17:29:19,445 [3241-SwingWorker-pool-1-thread-1] INFO VASSAL.launch.AbstractLaunchAction - JVM maximum heap size: 2048 MB  
2026-06-11 17:29:19,448 [3241-SwingWorker-pool-1-thread-1] INFO VASSAL.tools.io.ProcessLauncher - launching /Applications/VASSAL.app/Contents/MacOS/jre/bin/java -Xms2048M -Xmx2048M -Duser.home=/Users/joel\_m\_toppen -Duser.dir=/Applications/VASSAL.app -cp Contents/Resources/Java/Vengine.jar -Xdock:name=Space Empires 4x -Xdock:icon=/Applications/VASSAL.app/Contents/Resources/VASSAL.icns VASSAL.launch.Editor --edit – /Users/joel\_m\_toppen/Library/CloudStorage/OneDrive-Personal/VASSAL/Space Empires Project/Space Empires 4x (JT) v0.0.5.vmod  
2026-06-11 17:29:19,676 [3250-main] INFO VASSAL.launch.StartUp - Starting  
2026-06-11 17:29:19,681 [3250-main] INFO VASSAL.launch.StartUp - OS Mac OS X 26.3 aarch64  
2026-06-11 17:29:19,681 [3250-main] INFO VASSAL.launch.StartUp - Java version 26.0.1  
2026-06-11 17:29:19,681 [3250-main] INFO VASSAL.launch.StartUp - Java home /Applications/VASSAL.app/Contents/MacOS/jre  
2026-06-11 17:29:19,681 [3250-main] INFO VASSAL.launch.StartUp - VASSAL version 3.7.23  
2026-06-11 17:29:19,681 [3250-main] INFO VASSAL.launch.Launcher - Editor  
2026-06-11 17:29:21,361 [3250-AWT-EventQueue-0] INFO VASSAL.build.GameModule - Space Empires 4x version 0.0.5  
2026-06-11 17:30:33,962 [3250-AWT-EventQueue-0] WARN VASSAL.i18n.BundleHelper - No Translation: Duplicate  
2026-06-11 17:32:58,764 [3250-AWT-EventQueue-0] WARN VASSAL.i18n.BundleHelper - No Translation: Duplicate  
2026-06-11 17:55:21,968 [3250-AWT-EventQueue-0] WARN VASSAL.i18n.BundleHelper - No Translation: Duplicate  
2026-06-11 17:55:46,885 [3250-AWT-EventQueue-0] WARN VASSAL.i18n.BundleHelper - No Translation: Duplicate  
2026-06-11 18:00:14,826 [3250-AWT-EventQueue-0] ERROR VASSAL.tools.ErrorDialog -  
java.lang.NoClassDefFoundError: java/applet/Applet  
at org.jdesktop.swingx.JXTable$CellEditorRemover.permanentFocusOwnerChange(JXTable.java:4144)  
at org.jdesktop.swingx.JXTable$CellEditorRemover.propertyChange(JXTable.java:4118)  
at java.desktop/java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:343)  
at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:336)  
at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:268)  
at java.desktop/java.awt.KeyboardFocusManager.firePropertyChange(KeyboardFocusManager.java:1356)  
at java.desktop/java.awt.KeyboardFocusManager.setGlobalPermanentFocusOwner(KeyboardFocusManager.java:698)  
at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:655)  
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4833)  
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2318)  
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4784)  
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:716)  
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:693)  
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.pumpEventsForFilter(EventDispatchThread.java:117)  
at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:187)  
at java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:229)  
at java.desktop/java.awt.Dialog.show(Dialog.java:1044)  
at java.desktop/java.awt.Component.show(Component.java:1688)  
at java.desktop/java.awt.Component.setVisible(Component.java:1635)  
at java.desktop/java.awt.Window.setVisible(Window.java:982)  
at java.desktop/java.awt.Dialog.setVisible(Dialog.java:982)  
at VASSAL.counters.MassPieceLoader.load(MassPieceLoader.java:119)  
at VASSAL.configure.ConfigureTree$9.actionPerformed(ConfigureTree.java:1073)  
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)  
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2314)  
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:407)  
at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)  
at java.desktop/javax.swing.AbstractButton.doClick(AbstractButton.java:374)  
at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:982)  
at java.desktop/com.apple.laf.AquaMenuItemUI.doClick(AquaMenuItemUI.java:163)  
at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI$Handler.menuDragMouseReleased(BasicMenuItemUI.java:1094)  
at java.desktop/javax.swing.JMenuItem.fireMenuDragMouseReleased(JMenuItem.java:587)  
at java.desktop/javax.swing.JMenuItem.processMenuDragMouseEvent(JMenuItem.java:484)  
at java.desktop/javax.swing.JMenuItem.processMouseEvent(JMenuItem.java:429)  
at java.desktop/javax.swing.MenuSelectionManager.processMouseEvent(MenuSelectionManager.java:347)  
at java.desktop/javax.swing.plaf.basic.BasicPopupMenuUI$MouseGrabber.eventDispatched(BasicPopupMenuUI.java:886)  
at java.desktop/java.awt.Toolkit$SelectiveAWTEventListener.eventDispatched(Toolkit.java:2013)  
at java.desktop/java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:1905)  
at java.desktop/java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:1904)  
at java.desktop/java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:1904)  
at java.desktop/java.awt.Toolkit.notifyAWTEventListeners(Toolkit.java:1861)  
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4858)  
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2318)  
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2667)  
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4784)  
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:716)  
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:693)  
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)  
Caused by: java.lang.ClassNotFoundException: java.applet.Applet  
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:580)  
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:502)  
… 55 common frames omitted  
2026-06-11 18:00:41,350 [3250-AWT-EventQueue-0] ERROR VASSAL.tools.BugDialog -  
java.util.concurrent.ExecutionException: java.io.IOException: Bug report failed: 200: {“url”:“[https://api.github.com/repos/vassalengine/vassal/issues/14813](https://api.github.com/repos/vassalengine/vassal/issues/14813)”}  
at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:124)  
at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:207)  
at java.desktop/javax.swing.SwingWorker.get(SwingWorker.java:622)  
at VASSAL.tools.BugDialog$SendRequest.done(BugDialog.java:613)  
at java.desktop/javax.swing.SwingWorker$4.run(SwingWorker.java:747)  
at java.desktop/javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.run(SwingWorker.java:837)  
at java.desktop/sun.swing.AccumulativeRunnable.run(AccumulativeRunnable.java:112)  
at java.desktop/javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.actionPerformed(SwingWorker.java:847)  
at java.desktop/javax.swing.Timer.fireActionPerformed(Timer.java:289)  
at java.desktop/javax.swing.Timer$DoPostEvent.run(Timer.java:221)  
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:323)  
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:714)  
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:693)  
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.pumpEventsForFilter(EventDispatchThread.java:117)  
at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:187)  
at java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:229)  
at java.desktop/java.awt.Dialog.show(Dialog.java:1044)  
at java.desktop/java.awt.Component.show(Component.java:1688)  
at java.desktop/java.awt.Component.setVisible(Component.java:1635)  
at java.desktop/java.awt.Window.setVisible(Window.java:982)  
at java.desktop/java.awt.Dialog.setVisible(Dialog.java:982)  
at VASSAL.tools.BugDialog.setVisible(BugDialog.java:482)  
at VASSAL.tools.ErrorDialog.lambda$bug$4(ErrorDialog.java:106)  
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:323)  
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:714)  
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:693)  
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.pumpEventsForFilter(EventDispatchThread.java:117)  
at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:187)  
at java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:229)  
at java.desktop/java.awt.Dialog.show(Dialog.java:1044)  
at java.desktop/java.awt.Component.show(Component.java:1688)  
at java.desktop/java.awt.Component.setVisible(Component.java:1635)  
at java.desktop/java.awt.Window.setVisible(Window.java:982)  
at java.desktop/java.awt.Dialog.setVisible(Dialog.java:982)  
at VASSAL.counters.MassPieceLoader.load(MassPieceLoader.java:119)  
at VASSAL.configure.ConfigureTree$9.actionPerformed(ConfigureTree.java:1073)  
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)  
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2314)  
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:407)  
at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)  
at java.desktop/javax.swing.AbstractButton.doClick(AbstractButton.java:374)  
at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:982)  
at java.desktop/com.apple.laf.AquaMenuItemUI.doClick(AquaMenuItemUI.java:163)  
at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI$Handler.menuDragMouseReleased(BasicMenuItemUI.java:1094)  
at java.desktop/javax.swing.JMenuItem.fireMenuDragMouseReleased(JMenuItem.java:587)  
at java.desktop/javax.swing.JMenuItem.processMenuDragMouseEvent(JMenuItem.java:484)  
at java.desktop/javax.swing.JMenuItem.processMouseEvent(JMenuItem.java:429)  
at java.desktop/javax.swing.MenuSelectionManager.processMouseEvent(MenuSelectionManager.java:347)  
at java.desktop/javax.swing.plaf.basic.BasicPopupMenuUI$MouseGrabber.eventDispatched(BasicPopupMenuUI.java:886)  
at java.desktop/java.awt.Toolkit$SelectiveAWTEventListener.eventDispatched(Toolkit.java:2013)  
at java.desktop/java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:1905)  
at java.desktop/java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:1904)  
at java.desktop/java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:1904)  
at java.desktop/java.awt.Toolkit.notifyAWTEventListeners(Toolkit.java:1861)  
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4858)  
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2318)  
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2667)  
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4784)  
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:716)  
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:693)  
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)  
Caused by: java.io.IOException: Bug report failed: 200: {“url”:“[https://api.github.com/repos/vassalengine/vassal/issues/14813](https://api.github.com/repos/vassalengine/vassal/issues/14813)”}  
at VASSAL.tools.BugUtils.sendBugReport(BugUtils.java:56)  
at VASSAL.tools.BugDialog$SendRequest.doInBackground(BugDialog.java:599)  
at VASSAL.tools.BugDialog$SendRequest.doInBackground(BugDialog.java:585)  
at java.desktop/javax.swing.SwingWorker$1.call(SwingWorker.java:303)  
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:330)  
at java.desktop/javax.swing.SwingWorker.run(SwingWorker.java:340)  
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)  
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)  
at java.base/java.lang.Thread.run(Thread.java:1516)

---

<div class="post-metadata">

### Author: ![rlament](https://forum.vassalengine.org/letter_avatar_proxy/v4/letter/r/ed655f/32.png) [@rlament](https://forum.vassalengine.org/u/rlament)
#### Post date: [June 12, 2026, 5:43am UTC](https://forum.vassalengine.org/t/editing-piece-name-and-copies-on-load-multiple-pieces-tool-crashes/90202/3 "2026-06-12T05:43:10Z")

</div>

Despite the error, the automatic bug reporting did succeed. The result code is not being interpreted correctly. The error window did send the report.

It seems that the java.applet package has been removed from JDK 26. See [So Long and Thanks for All the Applets - Inside.java](https://inside.java/2025/12/03/applet-removal/)

The quick fix is to replace the jre folder with Java 25 or older. Vassal version 3.7.21 ships with Java 25.

---

<div class="post-metadata">

### Author: ![uckelman](https://forum.vassalengine.org/user_avatar/forum.vassalengine.org/uckelman/32/10020_2.png) [@uckelman](https://forum.vassalengine.org/u/uckelman)
#### Post date: [June 12, 2026, 10:02am UTC](https://forum.vassalengine.org/t/editing-piece-name-and-copies-on-load-multiple-pieces-tool-crashes/90202/4 "2026-06-12T10:02:19Z")

</div>

There’s a [PR](https://github.com/vassalengine/vassal/pull/14814) for fixing the automatic bug reporting, which will appear in 3.7.24.

The explanation for the problem is that GitHub used to return only the HTTP response code 201 on successful issue creation, which is what we checked for to determine success, but recently started returning 200 sometimes. GitHub’s [REST API docs](https://docs.github.com/en/rest/issues/issues?apiVersion=2026-03-10#create-an-issue) continue to say that 201 is the expected code on success and doesn’t list 200 as a possibility.

---

<div class="post-metadata">

### Author: ![uckelman](https://forum.vassalengine.org/user_avatar/forum.vassalengine.org/uckelman/32/10020_2.png) [@uckelman](https://forum.vassalengine.org/u/uckelman)
#### Post date: [June 12, 2026, 10:23am UTC](https://forum.vassalengine.org/t/editing-piece-name-and-copies-on-load-multiple-pieces-tool-crashes/90202/5 "2026-06-12T10:23:52Z")

</div>

The original problem is that one of our dependencies, SwingX, appears to load the `java.applet.Applet` class, which no longer exists as of Java 26, and unfortunately [SwingX hasn’t been updated since 2013](https://en.wikipedia.org/wiki/SwingLabs) and the project was ended and the code deleted (!) in 2017 when [java.net](http://java.net) was retired.

The wikipedia article notes there are some repos on GitHub which are copies of the final state of the code, and [this one](https://github.com/wumpz/swingx) looks like a fork which has been modernized slightly, so possibly we can switch to that.

---

<div class="post-metadata">

### Author: ![uckelman](https://forum.vassalengine.org/user_avatar/forum.vassalengine.org/uckelman/32/10020_2.png) [@uckelman](https://forum.vassalengine.org/u/uckelman)
#### Post date: [June 12, 2026, 11:47am UTC](https://forum.vassalengine.org/t/editing-piece-name-and-copies-on-load-multiple-pieces-tool-crashes/90202/6 "2026-06-12T11:47:32Z")

</div>

[This PR](https://github.com/vassalengine/vassal/pull/14815) switches us to use the swingx fork which is compiled to be compatible with Java 26… but it doesn’t build—maven fails to pull the JAR. I don’t understand why.

---

<div class="post-metadata">

### Author: ![cholmcc](https://forum.vassalengine.org/user_avatar/forum.vassalengine.org/cholmcc/32/8319_2.png) [@cholmcc](https://forum.vassalengine.org/u/cholmcc)
#### Post date: [June 12, 2026, 1:53pm UTC](https://forum.vassalengine.org/t/editing-piece-name-and-copies-on-load-multiple-pieces-tool-crashes/90202/7 "2026-06-12T13:53:29Z")

</div>

> [@Alexander331bc](#):
>
> I was able to capture an error log, however. It’s in a txt file.

The [`errorLog`](https://forum.vassalengine.org/t/where-is-my-error-log/79314) file _is_ a plain text file. It may not end in `.txt`, but the contens is never the less plain text. Note that one cannot attach plain text files to a post - for security reasons. Instead, [you should](https://forum.vassalengine.org/t/how-to-report-problems/84989) paste the _relevant_ parts of the `errorLog` file between ````` so that it comes out more readable in the message.

> [@Alexander331bc](#):
>
> ```auto
> 2026-06-11 17:29:08,752 [3241-main] INFO VASSAL.launch.StartUp - Starting
> 2026-06-11 17:29:08,758 [3241-main] INFO VASSAL.launch.StartUp - OS Mac OS X 26.3 aarch64
> 2026-06-11 17:29:08,758 [3241-main] INFO VASSAL.launch.StartUp - Java version 26.0.1
> 2026-06-11 17:29:08,758 [3241-main] INFO VASSAL.launch.StartUp - Java home /Applications/VASSAL.app/Contents/MacOS/jre
> 2026-06-11 17:29:08,758 [3241-main] INFO VASSAL.launch.StartUp - VASSAL version 3.7.23
> 2026-06-11 17:29:09,037 [3241-AWT-EventQueue-0] INFO VASSAL.launch.ModuleManager - Manager
> 2026-06-11 17:29:18,944 [3241-SwingWorker-pool-1-thread-1] INFO VASSAL.launch.AbstractLaunchAction - Loading module file /Users/joel_m_toppen/Library/CloudStorage/OneDrive-Personal/VASSAL/Space Empires Project/Space Empires 4x (JT) v0.0.5.vmod
> 2026-06-11 17:29:19,444 [3241-SwingWorker-pool-1-thread-1] INFO VASSAL.launch.TilingHandler - No images to tile.
> 2026-06-11 17:29:19,445 [3241-SwingWorker-pool-1-thread-1] INFO VASSAL.launch.AbstractLaunchAction - Loading module Space Empires 4x
> 2026-06-11 17:29:19,445 [3241-SwingWorker-pool-1-thread-1] INFO VASSAL.launch.AbstractLaunchAction - JVM maximum heap size: 2048 MB
> 2026-06-11 17:29:19,448 [3241-SwingWorker-pool-1-thread-1] INFO VASSAL.tools.io.ProcessLauncher - launching /Applications/VASSAL.app/Contents/MacOS/jre/bin/java -Xms2048M -Xmx2048M -Duser.home=/Users/joel_m_toppen -Duser.dir=/Applications/VASSAL.app -cp Contents/Resources/Java/Vengine.jar -Xdock:name=Space Empires 4x -Xdock:icon=/Applications/VASSAL.app/Contents/Resources/VASSAL.icns VASSAL.launch.Editor --edit – /Users/joel_m_toppen/Library/CloudStorage/OneDrive-Personal/VASSAL/Space Empires Project/Space Empires 4x (JT) v0.0.5.vmod
> 2026-06-11 17:29:19,676 [3250-main] INFO VASSAL.launch.StartUp - Starting
> 2026-06-11 17:29:19,681 [3250-main] INFO VASSAL.launch.StartUp - OS Mac OS X 26.3 aarch64
> 2026-06-11 17:29:19,681 [3250-main] INFO VASSAL.launch.StartUp - Java version 26.0.1
> 2026-06-11 17:29:19,681 [3250-main] INFO VASSAL.launch.StartUp - Java home /Applications/VASSAL.app/Contents/MacOS/jre
> 2026-06-11 17:29:19,681 [3250-main] INFO VASSAL.launch.StartUp - VASSAL version 3.7.23
> 2026-06-11 17:29:19,681 [3250-main] INFO VASSAL.launch.Launcher - Editor
> 2026-06-11 17:29:21,361 [3250-AWT-EventQueue-0] INFO VASSAL.build.GameModule - Space Empires 4x version 0.0.5
> 2026-06-11 17:30:33,962 [3250-AWT-EventQueue-0] WARN VASSAL.i18n.BundleHelper - No Translation: Duplicate
> 2026-06-11 17:32:58,764 [3250-AWT-EventQueue-0] WARN VASSAL.i18n.BundleHelper - No Translation: Duplicate
> 2026-06-11 17:55:21,968 [3250-AWT-EventQueue-0] WARN VASSAL.i18n.BundleHelper - No Translation: Duplicate
> 2026-06-11 17:55:46,885 [3250-AWT-EventQueue-0] WARN VASSAL.i18n.BundleHelper - No Translation: Duplicate
> 2026-06-11 18:00:14,826 [3250-AWT-EventQueue-0] ERROR VASSAL.tools.ErrorDialog -
> java.lang.NoClassDefFoundError: java/applet/Applet
> at org.jdesktop.swingx.JXTable$CellEditorRemover.permanentFocusOwnerChange(JXTable.java:4144)
> at org.jdesktop.swingx.JXTable$CellEditorRemover.propertyChange(JXTable.java:4118)
> at java.desktop/java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:343)
> at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:336)
> at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:268)
> at java.desktop/java.awt.KeyboardFocusManager.firePropertyChange(KeyboardFocusManager.java:1356)
> at java.desktop/java.awt.KeyboardFocusManager.setGlobalPermanentFocusOwner(KeyboardFocusManager.java:698)
> at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:655)
> at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4833)
> at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2318)
> at java.desktop/java.awt.Component.dispatchEvent(Component.java:4784)
> at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:716)
> at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:693)
> 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.pumpEventsForFilter(EventDispatchThread.java:117)
> at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:187)
> at java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:229)
> at java.desktop/java.awt.Dialog.show(Dialog.java:1044)
> at java.desktop/java.awt.Component.show(Component.java:1688)
> at java.desktop/java.awt.Component.setVisible(Component.java:1635)
> at java.desktop/java.awt.Window.setVisible(Window.java:982)
> at java.desktop/java.awt.Dialog.setVisible(Dialog.java:982)
> at VASSAL.counters.MassPieceLoader.load(MassPieceLoader.java:119)
> at VASSAL.configure.ConfigureTree$9.actionPerformed(ConfigureTree.java:1073)
> at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
> at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2314)
> at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:407)
> at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
> at java.desktop/javax.swing.AbstractButton.doClick(AbstractButton.java:374)
> at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:982)
> at java.desktop/com.apple.laf.AquaMenuItemUI.doClick(AquaMenuItemUI.java:163)
> at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI$Handler.menuDragMouseReleased(BasicMenuItemUI.java:1094)
> at java.desktop/javax.swing.JMenuItem.fireMenuDragMouseReleased(JMenuItem.java:587)
> at java.desktop/javax.swing.JMenuItem.processMenuDragMouseEvent(JMenuItem.java:484)
> at java.desktop/javax.swing.JMenuItem.processMouseEvent(JMenuItem.java:429)
> at java.desktop/javax.swing.MenuSelectionManager.processMouseEvent(MenuSelectionManager.java:347)
> at java.desktop/javax.swing.plaf.basic.BasicPopupMenuUI$MouseGrabber.eventDispatched(BasicPopupMenuUI.java:886)
> at java.desktop/java.awt.Toolkit$SelectiveAWTEventListener.eventDispatched(Toolkit.java:2013)
> at java.desktop/java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:1905)
> at java.desktop/java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:1904)
> at java.desktop/java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:1904)
> at java.desktop/java.awt.Toolkit.notifyAWTEventListeners(Toolkit.java:1861)
> at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4858)
> at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2318)
> at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2667)
> at java.desktop/java.awt.Component.dispatchEvent(Component.java:4784)
> at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:716)
> at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:693)
> 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)
> Caused by: java.lang.ClassNotFoundException: java.applet.Applet
> at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:580)
> at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:502)
> … 55 common frames omitted
> 2026-06-11 18:00:41,350 [3250-AWT-EventQueue-0] ERROR VASSAL.tools.BugDialog -
> java.util.concurrent.ExecutionException: java.io.IOException: Bug report failed: 200: {“url”:“https://api.github.com/repos/vassalengine/vassal/issues/14813”}
> at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:124)
> at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:207)
> at java.desktop/javax.swing.SwingWorker.get(SwingWorker.java:622)
> at VASSAL.tools.BugDialog$SendRequest.done(BugDialog.java:613)
> at java.desktop/javax.swing.SwingWorker$4.run(SwingWorker.java:747)
> at java.desktop/javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.run(SwingWorker.java:837)
> at java.desktop/sun.swing.AccumulativeRunnable.run(AccumulativeRunnable.java:112)
> at java.desktop/javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.actionPerformed(SwingWorker.java:847)
> at java.desktop/javax.swing.Timer.fireActionPerformed(Timer.java:289)
> at java.desktop/javax.swing.Timer$DoPostEvent.run(Timer.java:221)
> at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:323)
> at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:714)
> at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:693)
> 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.pumpEventsForFilter(EventDispatchThread.java:117)
> at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:187)
> at java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:229)
> at java.desktop/java.awt.Dialog.show(Dialog.java:1044)
> at java.desktop/java.awt.Component.show(Component.java:1688)
> at java.desktop/java.awt.Component.setVisible(Component.java:1635)
> at java.desktop/java.awt.Window.setVisible(Window.java:982)
> at java.desktop/java.awt.Dialog.setVisible(Dialog.java:982)
> at VASSAL.tools.BugDialog.setVisible(BugDialog.java:482)
> at VASSAL.tools.ErrorDialog.lambda$bug$4(ErrorDialog.java:106)
> at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:323)
> at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:714)
> at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:693)
> 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.pumpEventsForFilter(EventDispatchThread.java:117)
> at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:187)
> at java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:229)
> at java.desktop/java.awt.Dialog.show(Dialog.java:1044)
> at java.desktop/java.awt.Component.show(Component.java:1688)
> at java.desktop/java.awt.Component.setVisible(Component.java:1635)
> at java.desktop/java.awt.Window.setVisible(Window.java:982)
> at java.desktop/java.awt.Dialog.setVisible(Dialog.java:982)
> at VASSAL.counters.MassPieceLoader.load(MassPieceLoader.java:119)
> at VASSAL.configure.ConfigureTree$9.actionPerformed(ConfigureTree.java:1073)
> at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
> at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2314)
> at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:407)
> at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
> at java.desktop/javax.swing.AbstractButton.doClick(AbstractButton.java:374)
> at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:982)
> at java.desktop/com.apple.laf.AquaMenuItemUI.doClick(AquaMenuItemUI.java:163)
> at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI$Handler.menuDragMouseReleased(BasicMenuItemUI.java:1094)
> at java.desktop/javax.swing.JMenuItem.fireMenuDragMouseReleased(JMenuItem.java:587)
> at java.desktop/javax.swing.JMenuItem.processMenuDragMouseEvent(JMenuItem.java:484)
> at java.desktop/javax.swing.JMenuItem.processMouseEvent(JMenuItem.java:429)
> at java.desktop/javax.swing.MenuSelectionManager.processMouseEvent(MenuSelectionManager.java:347)
> at java.desktop/javax.swing.plaf.basic.BasicPopupMenuUI$MouseGrabber.eventDispatched(BasicPopupMenuUI.java:886)
> at java.desktop/java.awt.Toolkit$SelectiveAWTEventListener.eventDispatched(Toolkit.java:2013)
> at java.desktop/java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:1905)
> at java.desktop/java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:1904)
> at java.desktop/java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:1904)
> at java.desktop/java.awt.Toolkit.notifyAWTEventListeners(Toolkit.java:1861)
> at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4858)
> at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2318)
> at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2667)
> at java.desktop/java.awt.Component.dispatchEvent(Component.java:4784)
> at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:716)
> at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:693)
> 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)
> Caused by: java.io.IOException: Bug report failed: 200: {“url”:“https://api.github.com/repos/vassalengine/vassal/issues/14813”}
> at VASSAL.tools.BugUtils.sendBugReport(BugUtils.java:56)
> at VASSAL.tools.BugDialog$SendRequest.doInBackground(BugDialog.java:599)
> at VASSAL.tools.BugDialog$SendRequest.doInBackground(BugDialog.java:585)
> at java.desktop/javax.swing.SwingWorker$1.call(SwingWorker.java:303)
> at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:330)
> at java.desktop/javax.swing.SwingWorker.run(SwingWorker.java:340)
> at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
> at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
> at java.base/java.lang.Thread.run(Thread.java:1516)
> 
> ```

The above fails because `java.applet.Applet` isn’t found. As far as I can tell, there’s no where in the Vassal code that that class is is referenced.

As @uckleman points out, the problem arises in `org.jdesktop.swingx.JXTable`, which uses `java.applet.Applet`, which has disappeared as @rlament points out.

Since `org.desktop.swingx` is unlikely to be updated, and Vassal uses that library in crucial places, perhaps the easiest thing is to provide a `java.applet.Applet` dummy class in Vassal

```auto
package java.applet;
import java.awt.Panel;

class Applet extends Panel {
}

```

for JDK’s \>= 26.

Most of the time, `org.jdesktop.swingx` simply tests if a passed `java.awt.Component` is a `java.applet.Applet` object, but does not use the `Applet` specific API.

Interestingly enough, the `java.applet.Applet` is referenced by `org.jdesktop.swingx.JXTreeTable`, via base class `org.jdesktop.swingx.JTable`, which is used in the module manager, but that does not trigger the exception with OpenJDK 27 and `swingx` 1.6.2 on Debian GNU/Linux. I haven’t tried to trigger a bug report though.

Yours,  
_Christian_

---

<div class="post-metadata">

### Author: ![uckelman](https://forum.vassalengine.org/user_avatar/forum.vassalengine.org/uckelman/32/10020_2.png) [@uckelman](https://forum.vassalengine.org/u/uckelman)
#### Post date: [June 12, 2026, 2:37pm UTC](https://forum.vassalengine.org/t/editing-piece-name-and-copies-on-load-multiple-pieces-tool-crashes/90202/8 "2026-06-12T14:37:00Z")

</div>

I’m not sure the class loader will allow loading a class in the `java.*` hierarchy which is not part of the JDK.

---

<div class="post-metadata">

### Author: ![cholmcc](https://forum.vassalengine.org/user_avatar/forum.vassalengine.org/cholmcc/32/8319_2.png) [@cholmcc](https://forum.vassalengine.org/u/cholmcc)
#### Post date: [June 12, 2026, 6:42pm UTC](https://forum.vassalengine.org/t/editing-piece-name-and-copies-on-load-multiple-pieces-tool-crashes/90202/9 "2026-06-12T18:42:12Z")

</div>

Just tried the following

```auto
$ java --version 
openjdk 27-ea 2026-09-15
OpenJDK Runtime Environment (build 27-ea+24-2-Debian)
OpenJDK 64-Bit Server VM (build 27-ea+24-2-Debian, mixed mode, sharing)
$ mkdir -p java/applet
$ echo "package java.applet; public class Applet {}" > java/applet/Applet.java
$ echo "import java.applet.Applet; public class Foo { public static void main(String[] args) { System.out.println(\"Hello, World\"); } }" > Foo.java
$ javac Foo.java java/applet/Applet.java 
$ java Foo
Hello, World

```

So that at least seems to work. Perhaps the monkey patch with a dummy `java.applet.Applet` will work.

Yours,  
_Christian_

---

<div class="post-metadata">

### Author: ![uckelman](https://forum.vassalengine.org/user_avatar/forum.vassalengine.org/uckelman/32/10020_2.png) [@uckelman](https://forum.vassalengine.org/u/uckelman)
#### Post date: [June 12, 2026, 10:46pm UTC](https://forum.vassalengine.org/t/editing-piece-name-and-copies-on-load-multiple-pieces-tool-crashes/90202/10 "2026-06-12T22:46:33Z")

</div>

The swingx fork I was trying to use is in a GitHub package repository, which apparently requires authentication to pull from it. Instead, I’ve copied 2.0.1 of swingx into our own Maven repo, and that seems to work.

@Alexander331bc Please try one of the `VASSAL-3.7.24-SNAPSHOT-1459dd5-swingx-update` [test builds](https://vassalengine.org/builds?search=VASSAL-3.7.24-SNAPSHOT-1459dd5-swingx-update) and attempt to trigger the same error you had originally, and let us know what happens.

(BTW, I’ve also fixed the builds search query, so it works for filtering builds now.)

---

<div class="post-metadata">

### Author: ![uckelman](https://forum.vassalengine.org/user_avatar/forum.vassalengine.org/uckelman/32/10020_2.png) [@uckelman](https://forum.vassalengine.org/u/uckelman)
#### Post date: [June 18, 2026, 8:08pm UTC](https://forum.vassalengine.org/t/editing-piece-name-and-copies-on-load-multiple-pieces-tool-crashes/90202/11 "2026-06-18T20:08:02Z")

</div>

I asked the maintainer of the swingx fork if he’d put it on Maven Central:

> <https://github.com/wumpz/swingx/issues/25#issuecomment-4739637108>
>
> Is there any chance you could publish the JARs to Maven Central? GitHub appears …to require authentication for pulling from Packages, which makes your builds hard to use.

He said he’s looking into it.

---

<div class="post-metadata">

### Author: ![uckelman](https://forum.vassalengine.org/user_avatar/forum.vassalengine.org/uckelman/32/10020_2.png) [@uckelman](https://forum.vassalengine.org/u/uckelman)
#### Post date: [June 22, 2026, 11:10pm UTC](https://forum.vassalengine.org/t/editing-piece-name-and-copies-on-load-multiple-pieces-tool-crashes/90202/12 "2026-06-22T23:10:11Z")

</div>

The maintainer of the swingx fork published it to Maven Central, and we’ve merged a PR to use that. This doesn’t fix the original problem you saw, but it will make bug reporting work properly again when 3.7.24 is released.

Expect 3.7.24 in a few days.
