triplea-game / triplea

TripleA is a turn based strategy game and board game engine, similar to Axis & Allies or Risk.
https://triplea-game.org/
GNU General Public License v3.0
1.3k stars 387 forks source link

2.6.14681: BattleDelegate#doScrambling:739 - java.lang.reflect.InvocationTargetException #12570

Closed tripleabuilderbot closed 2 months ago

tripleabuilderbot commented 2 months ago

Map

modern_warfare / Modern Warfare

TripleA Version

2.6.14681

Java Version

11.0.19

Operating System

Windows 11

Heap Size

2048M

Stack Trace

Exception: java.lang.reflect.UndeclaredThrowableException 
java.lang.Exception
    at com.sun.proxy.$Proxy29.scrambleUnitsQuery(Unknown Source)
    at games.strategy.triplea.delegate.battle.BattleDelegate.doScrambling(BattleDelegate.java:739)
    at games.strategy.triplea.delegate.battle.BattleDelegate.start(BattleDelegate.java:94)
    at games.strategy.engine.framework.ServerGame.startStep(ServerGame.java:575)
    at games.strategy.engine.framework.ServerGame.runStep(ServerGame.java:443)
    at games.strategy.engine.framework.ServerGame.setUpGameForRunningSteps(ServerGame.java:331)
    at games.strategy.engine.framework.ServerGame.startGame(ServerGame.java:310)
    at games.strategy.engine.framework.startup.launcher.LocalLauncher.launchInternal(LocalLauncher.java:92)
    at games.strategy.engine.framework.startup.launcher.LocalLauncher.lambda$launch$0(LocalLauncher.java:60)
    at java.base/java.lang.Thread.run(Thread.java:829)

Exception: java.lang.reflect.InvocationTargetException 
java.lang.Exception
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at games.strategy.engine.delegate.DelegateExecutionManager.lambda$newOutboundImplementation$1(DelegateExecutionManager.java:79)
    at com.sun.proxy.$Proxy29.scrambleUnitsQuery(Unknown Source)
    at games.strategy.triplea.delegate.battle.BattleDelegate.doScrambling(BattleDelegate.java:739)
    at games.strategy.triplea.delegate.battle.BattleDelegate.start(BattleDelegate.java:94)
    at games.strategy.engine.framework.ServerGame.startStep(ServerGame.java:575)
    at games.strategy.engine.framework.ServerGame.runStep(ServerGame.java:443)
    at games.strategy.engine.framework.ServerGame.setUpGameForRunningSteps(ServerGame.java:331)
    at games.strategy.engine.framework.ServerGame.startGame(ServerGame.java:310)
    at games.strategy.engine.framework.startup.launcher.LocalLauncher.launchInternal(LocalLauncher.java:92)
    at games.strategy.engine.framework.startup.launcher.LocalLauncher.lambda$launch$0(LocalLauncher.java:60)
    at java.base/java.lang.Thread.run(Thread.java:829)

Exception: java.lang.RuntimeException Exception on remote
java.lang.Exception
    at games.strategy.engine.message.UnifiedInvocationHandler.invoke(UnifiedInvocationHandler.java:57)
    at com.sun.proxy.$Proxy29.scrambleUnitsQuery(Unknown Source)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at games.strategy.engine.delegate.DelegateExecutionManager.lambda$newOutboundImplementation$1(DelegateExecutionManager.java:79)
    at com.sun.proxy.$Proxy29.scrambleUnitsQuery(Unknown Source)
    at games.strategy.triplea.delegate.battle.BattleDelegate.doScrambling(BattleDelegate.java:739)
    at games.strategy.triplea.delegate.battle.BattleDelegate.start(BattleDelegate.java:94)
    at games.strategy.engine.framework.ServerGame.startStep(ServerGame.java:575)
    at games.strategy.engine.framework.ServerGame.runStep(ServerGame.java:443)
    at games.strategy.engine.framework.ServerGame.setUpGameForRunningSteps(ServerGame.java:331)
    at games.strategy.engine.framework.ServerGame.startGame(ServerGame.java:310)
    at games.strategy.engine.framework.startup.launcher.LocalLauncher.launchInternal(LocalLauncher.java:92)
    at games.strategy.engine.framework.startup.launcher.LocalLauncher.lambda$launch$0(LocalLauncher.java:60)
    at java.base/java.lang.Thread.run(Thread.java:829)

Exception: java.lang.IllegalStateException Duplicate key 3e443542-1133-4f04-9617-a2ccf779f68e (attempted merging values EuropeanUnion and EuropeanUnion)
java.lang.Exception
    at java.base/java.util.stream.Collectors.duplicateKeyException(Collectors.java:133)
    at java.base/java.util.stream.Collectors.lambda$uniqKeysMapAccumulator$1(Collectors.java:180)
    at java.base/java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
    at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
    at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
    at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
    at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
    at games.strategy.engine.data.changefactory.AddUnits.buildUnitOwnerMap(AddUnits.java:48)
    at games.strategy.engine.data.changefactory.RemoveUnits.<init>(RemoveUnits.java:33)
    at games.strategy.engine.data.changefactory.RemoveUnits.<init>(RemoveUnits.java:29)
    at games.strategy.engine.data.changefactory.ChangeFactory.removeUnits(ChangeFactory.java:80)
    at games.strategy.engine.history.change.units.RemoveUnitsHistoryChange.perform(RemoveUnitsHistoryChange.java:110)
    at games.strategy.triplea.delegate.battle.MustFightBattle.removeUnits(MustFightBattle.java:580)
    at games.strategy.triplea.delegate.battle.MustFightBattle.clearWaitingToDieAndDamagedChangesInto(MustFightBattle.java:509)
    at games.strategy.triplea.delegate.battle.steps.change.ClearGeneralCasualties.execute(ClearGeneralCasualties.java:33)
    at games.strategy.triplea.delegate.ExecutionStack.execute(ExecutionStack.java:34)
    at games.strategy.triplea.delegate.battle.MustFightBattle.fight(MustFightBattle.java:688)
    at games.strategy.triplea.odds.calculator.BattleCalculator.calculate(BattleCalculator.java:115)
    at games.strategy.triplea.odds.calculator.ConcurrentBattleCalculator.lambda$calculate$4(ConcurrentBattleCalculator.java:188)
    at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
    at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
    at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
    at java.base/java.util.stream.ReduceOps$ReduceTask.doLeaf(ReduceOps.java:952)
    at java.base/java.util.stream.ReduceOps$ReduceTask.doLeaf(ReduceOps.java:926)
    at java.base/java.util.stream.AbstractTask.compute(AbstractTask.java:327)
    at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:746)
    at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
    at java.base/java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:408)
    at java.base/java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:736)
    at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateParallel(ReduceOps.java:919)
    at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
    at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
    at games.strategy.triplea.odds.calculator.ConcurrentBattleCalculator.calculate(ConcurrentBattleCalculator.java:200)
    at games.strategy.triplea.ai.pro.util.ProOddsCalculator.callBattleCalc(ProOddsCalculator.java:249)
    at games.strategy.triplea.ai.pro.util.ProOddsCalculator.callBattleCalc(ProOddsCalculator.java:225)
    at games.strategy.triplea.ai.pro.util.ProOddsCalculator.calculateBattleResults(ProOddsCalculator.java:158)
    at games.strategy.triplea.ai.pro.util.ProOddsCalculator.calculateBattleResults(ProOddsCalculator.java:142)
    at games.strategy.triplea.ai.pro.ProScrambleAi.scrambleUnitsQuery(ProScrambleAi.java:85)
    at games.strategy.triplea.ai.pro.AbstractProAi.scrambleUnitsQuery(AbstractProAi.java:491)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at games.strategy.engine.message.unifiedmessenger.EndPoint.invokeSingle(EndPoint.java:136)
    at games.strategy.engine.message.unifiedmessenger.EndPoint.lambda$invokeMultiple$0(EndPoint.java:120)
    at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
    at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
    at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
    at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
    at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
    at games.strategy.engine.message.unifiedmessenger.EndPoint.invokeMultiple(EndPoint.java:121)
    at games.strategy.engine.message.unifiedmessenger.EndPoint.invokeLocal(EndPoint.java:111)
    at games.strategy.engine.message.unifiedmessenger.UnifiedMessenger.invokeAndWait(UnifiedMessenger.java:97)
    at games.strategy.engine.message.UnifiedInvocationHandler.invoke(UnifiedInvocationHandler.java:55)
    at com.sun.proxy.$Proxy29.scrambleUnitsQuery(Unknown Source)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at games.strategy.engine.delegate.DelegateExecutionManager.lambda$newOutboundImplementation$1(DelegateExecutionManager.java:79)
    at com.sun.proxy.$Proxy29.scrambleUnitsQuery(Unknown Source)
    at games.strategy.triplea.delegate.battle.BattleDelegate.doScrambling(BattleDelegate.java:739)
    at games.strategy.triplea.delegate.battle.BattleDelegate.start(BattleDelegate.java:94)
    at games.strategy.engine.framework.ServerGame.startStep(ServerGame.java:575)
    at games.strategy.engine.framework.ServerGame.runStep(ServerGame.java:443)
    at games.strategy.engine.framework.ServerGame.setUpGameForRunningSteps(ServerGame.java:331)
    at games.strategy.engine.framework.ServerGame.startGame(ServerGame.java:310)
    at games.strategy.engine.framework.startup.launcher.LocalLauncher.launchInternal(LocalLauncher.java:92)
    at games.strategy.engine.framework.startup.launcher.LocalLauncher.lambda$launch$0(LocalLauncher.java:60)
    at java.base/java.lang.Thread.run(Thread.java:829)
asvitkine commented 2 months ago

Closing as a dupe of https://github.com/triplea-game/triplea/issues/11597.