robocode-dev / tank-royale

Git repository for Robocode Tank Royale
Apache License 2.0
122 stars 23 forks source link

GUI application 0.19.1 won't launch #65

Closed nathaniel closed 1 year ago

nathaniel commented 1 year ago

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)

flemming-n-larsen commented 1 year ago

@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.

nathaniel commented 1 year ago

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