UnifiedInvocationHandler#invoke:57 - java.lang.reflect.UndeclaredThrowableException
Map
cold_war_1965_rev02 / Cold War: 1965 rev02
Log Message
Exception on remote
TripleA Version
Java Version
21.0.7
Operating System
Windows 11
Heap Size
1954M
Stack Trace
Exception: java.lang.RuntimeException Exception on remote
java.lang.Exception
at games.strategy.engine.message.UnifiedInvocationHandler.invoke(UnifiedInvocationHandler.java:57)
at jdk.proxy2/jdk.proxy2.$Proxy16.fightBattle(Unknown Source)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at games.strategy.engine.player.PlayerBridge$GameOverInvocationHandler.invoke(PlayerBridge.java:154)
at jdk.proxy2/jdk.proxy2.$Proxy16.fightBattle(Unknown Source)
at games.strategy.triplea.ai.AbstractAi.battle(AbstractAi.java:613)
at games.strategy.triplea.ai.AbstractAi.start(AbstractAi.java:520)
at games.strategy.engine.framework.ServerGame.waitForPlayerToFinishStep(ServerGame.java:614)
at games.strategy.engine.framework.ServerGame.runStep(ServerGame.java:463)
at games.strategy.engine.framework.ServerGame.runNextStep(ServerGame.java:350)
at games.strategy.engine.framework.ServerGame.startGame(ServerGame.java:317)
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:1583)
Exception: java.lang.reflect.UndeclaredThrowableException
java.lang.Exception
at jdk.proxy2/jdk.proxy2.$Proxy31.selectCasualties(Unknown Source)
at games.strategy.triplea.delegate.battle.casualty.CasualtySelector.selectCasualties(CasualtySelector.java:144)
at games.strategy.triplea.delegate.battle.steps.fire.NavalBombardment$BombardmentCasualtySelector.apply(NavalBombardment.java:154)
at games.strategy.triplea.delegate.battle.steps.fire.NavalBombardment$BombardmentCasualtySelector.apply(NavalBombardment.java:148)
at games.strategy.triplea.delegate.battle.steps.fire.SelectCasualties.execute(SelectCasualties.java:71)
at games.strategy.triplea.delegate.ExecutionStack.execute(ExecutionStack.java:34)
at games.strategy.triplea.delegate.battle.MustFightBattle.fight(MustFightBattle.java:690)
at games.strategy.triplea.delegate.battle.BattleDelegate.fightBattle(BattleDelegate.java:243)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at games.strategy.engine.delegate.DelegateExecutionManager$1.invoke(DelegateExecutionManager.java:120)
at jdk.proxy2/jdk.proxy2.$Proxy16.fightBattle(Unknown Source)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at games.strategy.engine.message.unifiedmessenger.EndPoint.invokeSingle(EndPoint.java:137)
at games.strategy.engine.message.unifiedmessenger.EndPoint.lambda$invokeMultiple$0(EndPoint.java:121)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:1024)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at games.strategy.engine.message.unifiedmessenger.EndPoint.invokeMultiple(EndPoint.java:122)
at games.strategy.engine.message.unifiedmessenger.EndPoint.invokeLocal(EndPoint.java:112)
at games.strategy.engine.message.unifiedmessenger.UnifiedMessenger.invokeAndWait(UnifiedMessenger.java:97)
at games.strategy.engine.message.UnifiedInvocationHandler.invoke(UnifiedInvocationHandler.java:55)
at jdk.proxy2/jdk.proxy2.$Proxy16.fightBattle(Unknown Source)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at games.strategy.engine.player.PlayerBridge$GameOverInvocationHandler.invoke(PlayerBridge.java:154)
at jdk.proxy2/jdk.proxy2.$Proxy16.fightBattle(Unknown Source)
at games.strategy.triplea.ai.AbstractAi.battle(AbstractAi.java:613)
at games.strategy.triplea.ai.AbstractAi.start(AbstractAi.java:520)
at games.strategy.engine.framework.ServerGame.waitForPlayerToFinishStep(ServerGame.java:614)
at games.strategy.engine.framework.ServerGame.runStep(ServerGame.java:463)
at games.strategy.engine.framework.ServerGame.runNextStep(ServerGame.java:350)
at games.strategy.engine.framework.ServerGame.startGame(ServerGame.java:317)
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:1583)
Exception: java.lang.reflect.InvocationTargetException
java.lang.Exception
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:118)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at games.strategy.engine.delegate.DelegateExecutionManager.lambda$newOutboundImplementation$1(DelegateExecutionManager.java:79)
at jdk.proxy2/jdk.proxy2.$Proxy31.selectCasualties(Unknown Source)
at games.strategy.triplea.delegate.battle.casualty.CasualtySelector.selectCasualties(CasualtySelector.java:144)
at games.strategy.triplea.delegate.battle.steps.fire.NavalBombardment$BombardmentCasualtySelector.apply(NavalBombardment.java:154)
at games.strategy.triplea.delegate.battle.steps.fire.NavalBombardment$BombardmentCasualtySelector.apply(NavalBombardment.java:148)
at games.strategy.triplea.delegate.battle.steps.fire.SelectCasualties.execute(SelectCasualties.java:71)
at games.strategy.triplea.delegate.ExecutionStack.execute(ExecutionStack.java:34)
at games.strategy.triplea.delegate.battle.MustFightBattle.fight(MustFightBattle.java:690)
at games.strategy.triplea.delegate.battle.BattleDelegate.fightBattle(BattleDelegate.java:243)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at games.strategy.engine.delegate.DelegateExecutionManager$1.invoke(DelegateExecutionManager.java:120)
at jdk.proxy2/jdk.proxy2.$Proxy16.fightBattle(Unknown Source)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at games.strategy.engine.message.unifiedmessenger.EndPoint.invokeSingle(EndPoint.java:137)
at games.strategy.engine.message.unifiedmessenger.EndPoint.lambda$invokeMultiple$0(EndPoint.java:121)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:1024)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at games.strategy.engine.message.unifiedmessenger.EndPoint.invokeMultiple(EndPoint.java:122)
at games.strategy.engine.message.unifiedmessenger.EndPoint.invokeLocal(EndPoint.java:112)
at games.strategy.engine.message.unifiedmessenger.UnifiedMessenger.invokeAndWait(UnifiedMessenger.java:97)
at games.strategy.engine.message.UnifiedInvocationHandler.invoke(UnifiedInvocationHandler.java:55)
at jdk.proxy2/jdk.proxy2.$Proxy16.fightBattle(Unknown Source)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at games.strategy.engine.player.PlayerBridge$GameOverInvocationHandler.invoke(PlayerBridge.java:154)
at jdk.proxy2/jdk.proxy2.$Proxy16.fightBattle(Unknown Source)
at games.strategy.triplea.ai.AbstractAi.battle(AbstractAi.java:613)
at games.strategy.triplea.ai.AbstractAi.start(AbstractAi.java:520)
at games.strategy.engine.framework.ServerGame.waitForPlayerToFinishStep(ServerGame.java:614)
at games.strategy.engine.framework.ServerGame.runStep(ServerGame.java:463)
at games.strategy.engine.framework.ServerGame.runNextStep(ServerGame.java:350)
at games.strategy.engine.framework.ServerGame.startGame(ServerGame.java:317)
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:1583)
Exception: java.lang.RuntimeException Exception on remote
java.lang.Exception
at games.strategy.engine.message.UnifiedInvocationHandler.invoke(UnifiedInvocationHandler.java:57)
at jdk.proxy2/jdk.proxy2.$Proxy31.selectCasualties(Unknown Source)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at games.strategy.engine.delegate.DelegateExecutionManager.lambda$newOutboundImplementation$1(DelegateExecutionManager.java:79)
at jdk.proxy2/jdk.proxy2.$Proxy31.selectCasualties(Unknown Source)
at games.strategy.triplea.delegate.battle.casualty.CasualtySelector.selectCasualties(CasualtySelector.java:144)
at games.strategy.triplea.delegate.battle.steps.fire.NavalBombardment$BombardmentCasualtySelector.apply(NavalBombardment.java:154)
at games.strategy.triplea.delegate.battle.steps.fire.NavalBombardment$BombardmentCasualtySelector.apply(NavalBombardment.java:148)
at games.strategy.triplea.delegate.battle.steps.fire.SelectCasualties.execute(SelectCasualties.java:71)
at games.strategy.triplea.delegate.ExecutionStack.execute(ExecutionStack.java:34)
at games.strategy.triplea.delegate.battle.MustFightBattle.fight(MustFightBattle.java:690)
at games.strategy.triplea.delegate.battle.BattleDelegate.fightBattle(BattleDelegate.java:243)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at games.strategy.engine.delegate.DelegateExecutionManager$1.invoke(DelegateExecutionManager.java:120)
at jdk.proxy2/jdk.proxy2.$Proxy16.fightBattle(Unknown Source)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at games.strategy.engine.message.unifiedmessenger.EndPoint.invokeSingle(EndPoint.java:137)
at games.strategy.engine.message.unifiedmessenger.EndPoint.lambda$invokeMultiple$0(EndPoint.java:121)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:1024)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at games.strategy.engine.message.unifiedmessenger.EndPoint.invokeMultiple(EndPoint.java:122)
at games.strategy.engine.message.unifiedmessenger.EndPoint.invokeLocal(EndPoint.java:112)
at games.strategy.engine.message.unifiedmessenger.UnifiedMessenger.invokeAndWait(UnifiedMessenger.java:97)
at games.strategy.engine.message.UnifiedInvocationHandler.invoke(UnifiedInvocationHandler.java:55)
at jdk.proxy2/jdk.proxy2.$Proxy16.fightBattle(Unknown Source)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at games.strategy.engine.player.PlayerBridge$GameOverInvocationHandler.invoke(PlayerBridge.java:154)
at jdk.proxy2/jdk.proxy2.$Proxy16.fightBattle(Unknown Source)
at games.strategy.triplea.ai.AbstractAi.battle(AbstractAi.java:613)
at games.strategy.triplea.ai.AbstractAi.start(AbstractAi.java:520)
at games.strategy.engine.framework.ServerGame.waitForPlayerToFinishStep(ServerGame.java:614)
at games.strategy.engine.framework.ServerGame.runStep(ServerGame.java:463)
at games.strategy.engine.framework.ServerGame.runNextStep(ServerGame.java:350)
at games.strategy.engine.framework.ServerGame.startGame(ServerGame.java:317)
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:1583)
Exception: java.lang.IllegalStateException Capital not found for: PlayerId named: Neutral-USA
java.lang.Exception
at games.strategy.triplea.attachments.TerritoryAttachment.getFirstOwnedCapitalOrFirstUnownedCapital(TerritoryAttachment.java:133)
at games.strategy.triplea.ai.pro.ProData.hiddenInitialize(ProData.java:81)
at games.strategy.triplea.ai.pro.ProData.initialize(ProData.java:50)
at games.strategy.triplea.ai.pro.AbstractProAi.initializeData(AbstractProAi.java:103)
at games.strategy.triplea.ai.pro.AbstractProAi.selectCasualties(AbstractProAi.java:388)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at games.strategy.engine.message.unifiedmessenger.EndPoint.invokeSingle(EndPoint.java:137)
at games.strategy.engine.message.unifiedmessenger.EndPoint.lambda$invokeMultiple$0(EndPoint.java:121)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:1024)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at games.strategy.engine.message.unifiedmessenger.EndPoint.invokeMultiple(EndPoint.java:122)
at games.strategy.engine.message.unifiedmessenger.EndPoint.invokeLocal(EndPoint.java:112)
at games.strategy.engine.message.unifiedmessenger.UnifiedMessenger.invokeAndWait(UnifiedMessenger.java:97)
at games.strategy.engine.message.UnifiedInvocationHandler.invoke(UnifiedInvocationHandler.java:55)
at jdk.proxy2/jdk.proxy2.$Proxy31.selectCasualties(Unknown Source)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at games.strategy.engine.delegate.DelegateExecutionManager.lambda$newOutboundImplementation$1(DelegateExecutionManager.java:79)
at jdk.proxy2/jdk.proxy2.$Proxy31.selectCasualties(Unknown Source)
at games.strategy.triplea.delegate.battle.casualty.CasualtySelector.selectCasualties(CasualtySelector.java:144)
at games.strategy.triplea.delegate.battle.steps.fire.NavalBombardment$BombardmentCasualtySelector.apply(NavalBombardment.java:154)
at games.strategy.triplea.delegate.battle.steps.fire.NavalBombardment$BombardmentCasualtySelector.apply(NavalBombardment.java:148)
at games.strategy.triplea.delegate.battle.steps.fire.SelectCasualties.execute(SelectCasualties.java:71)
at games.strategy.triplea.delegate.ExecutionStack.execute(ExecutionStack.java:34)
at games.strategy.triplea.delegate.battle.MustFightBattle.fight(MustFightBattle.java:690)
at games.strategy.triplea.delegate.battle.BattleDelegate.fightBattle(BattleDelegate.java:243)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at games.strategy.engine.delegate.DelegateExecutionManager$1.invoke(DelegateExecutionManager.java:120)
at jdk.proxy2/jdk.proxy2.$Proxy16.fightBattle(Unknown Source)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at games.strategy.engine.message.unifiedmessenger.EndPoint.invokeSingle(EndPoint.java:137)
at games.strategy.engine.message.unifiedmessenger.EndPoint.lambda$invokeMultiple$0(EndPoint.java:121)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:1024)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at games.strategy.engine.message.unifiedmessenger.EndPoint.invokeMultiple(EndPoint.java:122)
at games.strategy.engine.message.unifiedmessenger.EndPoint.invokeLocal(EndPoint.java:112)
at games.strategy.engine.message.unifiedmessenger.UnifiedMessenger.invokeAndWait(UnifiedMessenger.java:97)
at games.strategy.engine.message.UnifiedInvocationHandler.invoke(UnifiedInvocationHandler.java:55)
at jdk.proxy2/jdk.proxy2.$Proxy16.fightBattle(Unknown Source)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at games.strategy.engine.player.PlayerBridge$GameOverInvocationHandler.invoke(PlayerBridge.java:154)
at jdk.proxy2/jdk.proxy2.$Proxy16.fightBattle(Unknown Source)
at games.strategy.triplea.ai.AbstractAi.battle(AbstractAi.java:613)
at games.strategy.triplea.ai.AbstractAi.start(AbstractAi.java:520)
at games.strategy.engine.framework.ServerGame.waitForPlayerToFinishStep(ServerGame.java:614)
at games.strategy.engine.framework.ServerGame.runStep(ServerGame.java:463)
at games.strategy.engine.framework.ServerGame.runNextStep(ServerGame.java:350)
at games.strategy.engine.framework.ServerGame.startGame(ServerGame.java:317)
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:1583)
Closing as duplicate (indicated by same title) of #12852.
Different exception and only same generic name.
Closing as duplicate (indicated by same title) of #12852.
@Author: The error is clearly stating "Capital not found for: PlayerId named: Neutral-USA". Furthermore, I checked against the games XML of "Cold War 1965" (ColdWar-1965.xml) as I could not find any revision 2. In this file the player list list the player "Neutral-USA" (3rd last line) as an optional player.
<playerList>
<!-- In turn order -->
<player name="AI-China" optional="false"/>
<player name="AI-SinoPact" optional="false"/>
<player name="USSR" optional="false"/>
<player name="USA" optional="false"/>
<player name="NATO" optional="false"/>
<player name="WarsawPact" optional="false"/>
<player name="SEATO" optional="false"/>
<player name="ArabLeague" optional="false"/>
<player name="Neutral-USA" optional="true"/>
<player name="Neutral-USSR" optional="true"/>
<player name="Neutral-China" optional="true"/>
This would have hit the code lines of TerritoryAttachment.java that would have avoided this IllegalStateException from the last line.
// Added check for optional players- no error thrown for them
if (player.getOptional()) {
return Optional.empty();
}
throw new IllegalStateException("Capital not found for: " + player);
Hence, I assume the new revised version of the map "cold_war_1965_rev02 / Cold War: 1965 rev02" refers to a map/game under construction missing this optiona-flag being set or the player having a capital.
Please let us know if this helps.