[BUG] 2025.beta3 - impossible to start a jam
reflexdd opened this issue · 6 comments
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
- create a new game between to teams
- go to operator screen and open the prepared game
- press start jam button
- clocks are not running
Expected behavior
Clocks and eveything should run
Screenshots
https://github.com/user-attachments/assets/69849b10-3b3c-4861-bc77-5b9f90fb5e8d
Version:
The version of the scoreboard you were running [e.g. 2023.5]
If this issue occurred on a computer, please complete the following information:
- OS and version: [Mac 14.6]
- Browser [firefox 128.0.3]
Additional context
these are the errors form the console
Exception in thread "Timer-0" java.lang.NoSuchMethodError: java.lang.Math.floorDiv(JI)J
at com.carolinarollergirls.scoreboard.core.game.ClockImpl.isDisplayChange(ClockImpl.java:219)
at com.carolinarollergirls.scoreboard.core.game.ClockImpl.timerTick(ClockImpl.java:303)
at com.carolinarollergirls.scoreboard.core.game.ClockImpl$UpdateClockTimerTask$1.run(ClockImpl.java:409)
at com.carolinarollergirls.scoreboard.event.ScoreBoardEventProviderImpl.runInBatch(ScoreBoardEventProviderImpl.java:120)
at com.carolinarollergirls.scoreboard.core.game.ClockImpl$UpdateClockTimerTask.tick(ClockImpl.java:406)
at com.carolinarollergirls.scoreboard.core.game.ClockImpl$UpdateClockTimerTask.updateTime(ClockImpl.java:422)
at com.carolinarollergirls.scoreboard.utils.ScoreBoardClock.updateClients(ScoreBoardClock.java:80)
at com.carolinarollergirls.scoreboard.utils.ScoreBoardClock.updateTime(ScoreBoardClock.java:75)
at com.carolinarollergirls.scoreboard.utils.ScoreBoardClock.run(ScoreBoardClock.java:85)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
2024-08-12 08:58:15.948:WARN:oejwce.JettyAnnotatedEventDriver:qtp306206744-30: Unable to report throwable to websocket (no @OnWebSocketError handler declared): com.carolinarollergirls.scoreboard.jetty.WS$ScoreBoardWebSocket
java.lang.RuntimeException: Cannot call method public synchronized void com.carolinarollergirls.scoreboard.jetty.WS$ScoreBoardWebSocket#onMessage(org.eclipse.jetty.websocket.api.Session, java.lang.String) with args: [org.eclipse.jetty.websocket.common.WebSocketSession, java.lang.String]
at org.eclipse.jetty.websocket.common.events.annotated.CallableMethod.unwrapRuntimeException(CallableMethod.java:93)
at org.eclipse.jetty.websocket.common.events.annotated.CallableMethod.call(CallableMethod.java:75)
at org.eclipse.jetty.websocket.common.events.annotated.OptionalSessionCallableMethod.call(OptionalSessionCallableMethod.java:68)
at org.eclipse.jetty.websocket.common.events.JettyAnnotatedEventDriver.onTextMessage(JettyAnnotatedEventDriver.java:301)
at org.eclipse.jetty.websocket.common.message.SimpleTextMessage.messageComplete(SimpleTextMessage.java:69)
at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.appendMessage(AbstractEventDriver.java:67)
at org.eclipse.jetty.websocket.common.events.JettyAnnotatedEventDriver.onTextFrame(JettyAnnotatedEventDriver.java:287)
at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.incomingFrame(AbstractEventDriver.java:152)
at org.eclipse.jetty.websocket.common.WebSocketSession.incomingFrame(WebSocketSession.java:326)
at org.eclipse.jetty.websocket.common.extensions.AbstractExtension.nextIncomingFrame(AbstractExtension.java:148)
at org.eclipse.jetty.websocket.common.extensions.compress.PerMessageDeflateExtension.nextIncomingFrame(PerMessageDeflateExtension.java:111)
at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension.forwardIncoming(CompressExtension.java:169)
at org.eclipse.jetty.websocket.common.extensions.compress.PerMessageDeflateExtension.incomingFrame(PerMessageDeflateExtension.java:90)
at org.eclipse.jetty.websocket.common.extensions.ExtensionStack.incomingFrame(ExtensionStack.java:202)
at org.eclipse.jetty.websocket.common.Parser.notifyFrame(Parser.java:225)
at org.eclipse.jetty.websocket.common.Parser.parseSingleFrame(Parser.java:259)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:459)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:440)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
at java.lang.Thread.run(Thread.java:750)
Caused by:
java.lang.NoSuchMethodError: java.lang.Math.floorDiv(JI)J
at com.carolinarollergirls.scoreboard.core.game.ClockImpl.isDisplayChange(ClockImpl.java:219)
at com.carolinarollergirls.scoreboard.core.game.ClockImpl.timerTick(ClockImpl.java:303)
at com.carolinarollergirls.scoreboard.core.game.ClockImpl$UpdateClockTimerTask$1.run(ClockImpl.java:409)
at com.carolinarollergirls.scoreboard.event.ScoreBoardEventProviderImpl.runInBatch(ScoreBoardEventProviderImpl.java:120)
at com.carolinarollergirls.scoreboard.core.game.ClockImpl$UpdateClockTimerTask.tick(ClockImpl.java:406)
at com.carolinarollergirls.scoreboard.core.game.ClockImpl$UpdateClockTimerTask.updateTime(ClockImpl.java:422)
at com.carolinarollergirls.scoreboard.utils.ScoreBoardClock.updateClients(ScoreBoardClock.java:80)
at com.carolinarollergirls.scoreboard.utils.ScoreBoardClock.updateTime(ScoreBoardClock.java:75)
at com.carolinarollergirls.scoreboard.utils.ScoreBoardClock.stop(ScoreBoardClock.java:56)
at com.carolinarollergirls.scoreboard.core.game.GameImpl.clockUndo(GameImpl.java:927)
at com.carolinarollergirls.scoreboard.core.game.GameImpl.quickClockControl(GameImpl.java:952)
at com.carolinarollergirls.scoreboard.core.game.GameImpl.stopJamTO(GameImpl.java:639)
at com.carolinarollergirls.scoreboard.core.game.GameImpl.execute(GameImpl.java:470)
at com.carolinarollergirls.scoreboard.json.ScoreBoardJSONSetter.set(ScoreBoardJSONSetter.java:291)
at com.carolinarollergirls.scoreboard.json.ScoreBoardJSONSetter.set(ScoreBoardJSONSetter.java:311)
at com.carolinarollergirls.scoreboard.json.ScoreBoardJSONSetter.set(ScoreBoardJSONSetter.java:259)
at com.carolinarollergirls.scoreboard.jetty.WS$ScoreBoardWebSocket$1.run(WS.java:161)
at com.carolinarollergirls.scoreboard.event.ScoreBoardEventProviderImpl.runInBatch(ScoreBoardEventProviderImpl.java:120)
at com.carolinarollergirls.scoreboard.jetty.WS$ScoreBoardWebSocket.onMessage(WS.java:158)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.jetty.websocket.common.events.annotated.CallableMethod.call(CallableMethod.java:70)
at org.eclipse.jetty.websocket.common.events.annotated.OptionalSessionCallableMethod.call(OptionalSessionCallableMethod.java:68)
at org.eclipse.jetty.websocket.common.events.JettyAnnotatedEventDriver.onTextMessage(JettyAnnotatedEventDriver.java:301)
at org.eclipse.jetty.websocket.common.message.SimpleTextMessage.messageComplete(SimpleTextMessage.java:69)
at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.appendMessage(AbstractEventDriver.java:67)
at org.eclipse.jetty.websocket.common.events.JettyAnnotatedEventDriver.onTextFrame(JettyAnnotatedEventDriver.java:287)
at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.incomingFrame(AbstractEventDriver.java:152)
at org.eclipse.jetty.websocket.common.WebSocketSession.incomingFrame(WebSocketSession.java:326)
at org.eclipse.jetty.websocket.common.extensions.AbstractExtension.nextIncomingFrame(AbstractExtension.java:148)
at org.eclipse.jetty.websocket.common.extensions.compress.PerMessageDeflateExtension.nextIncomingFrame(PerMessageDeflateExtension.java:111)
at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension.forwardIncoming(CompressExtension.java:169)
at org.eclipse.jetty.websocket.common.extensions.compress.PerMessageDeflateExtension.incomingFrame(PerMessageDeflateExtension.java:90)
at org.eclipse.jetty.websocket.common.extensions.ExtensionStack.incomingFrame(ExtensionStack.java:202)
at org.eclipse.jetty.websocket.common.Parser.notifyFrame(Parser.java:225)
at org.eclipse.jetty.websocket.common.Parser.parseSingleFrame(Parser.java:259)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:459)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:440)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
at java.lang.Thread.run(Thread.java:750)
According to the exception your JRE is missing java.lang.Math.floorDiv
, which is part of the Java 8 API CRG requires. Which JRE are you using?
Info Java says Version 8 Update 421 (build 1.8.0_421-b09
If I replace the crg-scoreboard.jar with the one of the beta2 the clocks are working.
The calls to this function were only added with the latest PR, so this only appearing in beta3 is unsurprising.
This looks like a bug in the Oracle Java SDK. But I guess we can add a workaround by copying the OpenJDK implementation from https://github.com/openjdk/jdk/blob/jdk8-b120/jdk/src/share/classes/java/lang/Math.java und using that.
having also the JDK Development Kit 22.0.2 installed it works
I reproduced the issue on my Windows laptop:
Windows 10 Pro
Build 19045.4651
Oracle Java 8 Update 421
(Build 1.8.0_421-b09)
Please note that installing JDK 22.0.2 did not work to solve the issue in Windows 10.
The Scoreboard just works fine in Debian 12
OpenJDK Runtime Environment (build 17.0.12+7-Debian-2deb12u1)