robocode-dev/tank-royale

GUI application 0.19.1 won't launch

Closed this issue · 2 comments

Attempting to launch robocode-tankroyale-gui-0.19.1 with Java 11.0.18+10 fails.
On MacOS 12.6.3

%> java -version
openjdk version "11.0.18" 2023-01-17
OpenJDK Runtime Environment Temurin-11.0.18+10 (build 11.0.18+10)
OpenJDK 64-Bit Server VM Temurin-11.0.18+10 (build 11.0.18+10, mixed mode)

%> java -jar robocode-tankroyale-gui-0.19.1.jar
Exception in thread "main" Exception in thread "AWT-EventQueue-0" java.lang.VerifyError: Bad type on operand stack
Exception Details:
Location:
b/a/w.a(Lb/a/f/g;La/i/f;Z)Lb/a/b; @164: invokestatic
Reason:
Type 'java/util/List' (current frame, stack[1]) is not assignable to 'java/util/ArrayList'
Current Frame:
bci: @164
flags: { }
locals: { 'b/a/f/g', 'java/util/List', integer, 'a/i/b', integer }
stack: { 'a/i/b', 'java/util/List', integer }
Bytecode:
0000000: 2bb8 0047 4e2b b900 5d01 0036 042b b900
0000010: 5c01 00c0 0021 593a 053a 06bb 0024 5919
0000020: 0510 0ab8 0030 b700 59c0 0026 3a05 1906
0000030: b900 5e01 003a 0619 06b9 0061 0100 9900
0000040: 4a19 06b9 0062 0100 3a07 1905 1907 c000
0000050: 0a3a 073a 0819 07b6 0036 59c7 0021 57bb
0000060: 0023 5912 02b7 0056 2bb6 0057 b600 584b
0000070: bb00 2059 2ab6 0055 b700 54bf 1908 5fb9
0000080: 005f 0200 57a7 ffb2 1905 c000 2c59 4cb9
0000090: 0064 0100 9900 0c2d 1504 b800 4ca7 0039
00000a0: 2d2b 1504 b800 4b3a 051c 9900 1719 05b8
00000b0: 0037 9900 0701 a700 0519 05c0 0010 a700
00000c0: 1819 0559 3a06 b800 38c7 0008 1906 a700
00000d0: 0501 b0c0 0010 593a 05c6 0009 1905 593a
00000e0: 06b0 2bb9 0064 0100 9900 0e2a 2d01 0501
00000f0: b800 4aa7 0039 2a2b 1c36 073a 0559 4d19
0000100: 0515 07b8 0051 59c7 0006 5701 b03a 062d
0000110: 2b19 063a 073a 0559 4d19 0519 07b8 004d
0000120: 59c7 000b 572a 2d19 06b6 0049 593a 0559
0000130: c600 0c59 3a05 1504 b800 4eb0 5701 b0
Stackmap Table:
full_frame(@55,{Object[#28],Object[#9],Integer,Object[#8],Integer,Object[#38],Object[#41]},{})
full_frame(@124,{Object[#28],Object[#9],Integer,Object[#8],Integer,Object[#38],Object[#41],Top,Object[#38]},{Object[#9]})
full_frame(@136,{Object[#28],Top,Integer,Object[#8],Integer,Object[#38]},{})
full_frame(@160,{Object[#28],Object[#44],Integer,Object[#8],Integer},{})
append_frame(@185,Object[#34])
full_frame(@187,{Object[#28],Object[#44],Integer,Object[#8],Integer},{Object[#34]})
append_frame(@193,Object[#34])
full_frame(@209,{},{})
full_frame(@211,{Object[#28],Object[#44],Integer,Object[#8],Integer},{Object[#34]})
same_locals_1_stack_item_frame(@214,Object[#16])
same_frame(@226)
same_frame(@246)
full_frame(@269,{Object[#28],Object[#44],Top,Object[#8],Integer},{Object[#44]})
full_frame(@300,{Top,Top,Top,Top,Integer},{Object[#16]})
full_frame(@316,{},{Object[#16]})

at b.a.v.a(Unknown Source)
at dev.robocode.tankroyale.gui.model.MessagesKt.<clinit>(Unknown Source)
at dev.robocode.tankroyale.gui.model.MessageConstants$Companion$json$1.invoke(Unknown Source)
at dev.robocode.tankroyale.gui.model.MessageConstants$Companion$json$1.invoke(Unknown Source)
at b.a.e.w.a(Unknown Source)
at dev.robocode.tankroyale.gui.model.MessageConstants.<clinit>(Unknown Source)
at dev.robocode.tankroyale.gui.client.Client.<clinit>(Unknown Source)
at dev.robocode.tankroyale.gui.ui.arena.ArenaPanel.<clinit>(Unknown Source)
at dev.robocode.tankroyale.gui.ui.arena.BattlePanel.<clinit>(Unknown Source)
at dev.robocode.tankroyale.gui.ui.MainFrame.<clinit>(Unknown Source)
at dev.robocode.tankroyale.gui.GuiAppKt.main(Unknown Source)
at dev.robocode.tankroyale.gui.GuiAppKt.main(Unknown Source)

java.lang.NoClassDefFoundError: Could not initialize class dev.robocode.tankroyale.gui.ui.MainFrame
at dev.robocode.tankroyale.gui.util.BusyCursor.deactivate(Unknown Source)
at dev.robocode.tankroyale.gui.util.GuiTask.enqueue$lambda$0(Unknown Source)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
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(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
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)
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: Could not initialize class dev.robocode.tankroyale.gui.ui.MainFrame
at dev.robocode.tankroyale.gui.util.BusyCursor.activate(Unknown Source)
at dev.robocode.tankroyale.gui.util.GuiTask.enqueue(Unknown Source)
at dev.robocode.tankroyale.gui.ui.extensions.JComponentExt.setDefaultButton(Unknown Source)
at dev.robocode.tankroyale.gui.ui.control.ControlPanel$6.invoke(Unknown Source)
at dev.robocode.tankroyale.gui.ui.control.ControlPanel$6.invoke(Unknown Source)
at dev.robocode.tankroyale.gui.util.GuiTask.enqueue$lambda$0(Unknown Source)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
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(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
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)

@nathaniel

This looks to be the same issue as #62, which has already been fixed.

Did you download the jar file robocode-tankroyale-gui-0.19.1.jar from the release or get it from the Maven Central?

I cannot fix the broken one in Maven Central (other than making a new release/version). But I did upload a new version of robocode-tankroyale-gui-0.19.1.jar two days ago.

Note that I tested the (new) archive on Windows 11 and Ubuntu 22 (Linux), where it works.

Ah! thank you. I downloaded from the GitHub release, but did so last week.
I confirm that the new 0.19.1.jar now launches for me!

Thanks,
Nathaniel