triplea-game/triplea

2.5.22294: ConcurrentBattleCalculator#calculate:246 - java.lang.IllegalStateException

Closed this issue · 2 comments

Map

total_world_war

Log Message

java.lang.IllegalStateException: Round 10,000 reached in a battle. Something must be wrong. Please report this to TripleA.
Attacking unit types: germanFighter,germanInfantry,germanCombatEngineer,germanStrategicBomber,germanArtillery,germanAlpineInfantry,germanNavalFighter,germanParatrooper, Defending unit types: swedishCombatEngineer,swedishEntrenchment,swedishArtillery,swedishTank,swedishInfantry

TripleA Version

2.5.22294

Java Version

11.0.6

Operating System

Windows 10

Memory

Heap utilization statistics [MB]
Used Memory: 691
Free memory: 1288
Total memory: 1979
Max memory: 1979

Stack Trace

Exception: java.lang.IllegalStateExceptionjava.lang.IllegalStateException: Round 10,000 reached in a battle. Something must be wrong. Please report this to TripleA.
 Attacking unit types: germanFighter,germanInfantry,germanCombatEngineer,germanStrategicBomber,germanArtillery,germanAlpineInfantry,germanNavalFighter,germanParatrooper, Defending unit types: swedishCombatEngineer,swedishEntrenchment,swedishArtillery,swedishTank,swedishInfantry
java.lang.Exception
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at java.base/java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:600)
	at java.base/java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:678)
	at java.base/java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:737)
	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:246)
	at games.strategy.triplea.ai.pro.util.ProOddsCalculator.callBattleCalc(ProOddsCalculator.java:224)
	at games.strategy.triplea.ai.pro.util.ProOddsCalculator.callBattleCalc(ProOddsCalculator.java:200)
	at games.strategy.triplea.ai.pro.util.ProOddsCalculator.calculateBattleResults(ProOddsCalculator.java:133)
	at games.strategy.triplea.ai.pro.util.ProOddsCalculator.calculateBattleResults(ProOddsCalculator.java:116)
	at games.strategy.triplea.ai.pro.ProNonCombatMoveAi.determineIfMoveTerritoriesCanBeHeld(ProNonCombatMoveAi.java:423)
	at games.strategy.triplea.ai.pro.ProNonCombatMoveAi.doNonCombatMove(ProNonCombatMoveAi.java:98)
	at games.strategy.triplea.ai.pro.AbstractProAi.move(AbstractProAi.java:135)
	at games.strategy.triplea.ai.AbstractAi.start(AbstractAi.java:514)
	at games.strategy.engine.framework.ServerGame.waitForPlayerToFinishStep(ServerGame.java:537)
	at games.strategy.engine.framework.ServerGame.runStep(ServerGame.java:407)
	at games.strategy.engine.framework.ServerGame.startGame(ServerGame.java:289)
	at games.strategy.engine.framework.startup.launcher.LocalLauncher.launchInternal(LocalLauncher.java:82)
	at games.strategy.engine.framework.startup.launcher.LocalLauncher.lambda$launch$0(LocalLauncher.java:56)
	at java.base/java.lang.Thread.run(Thread.java:834)


Exception: java.lang.IllegalStateExceptionRound 10,000 reached in a battle. Something must be wrong. Please report this to TripleA.
 Attacking unit types: germanFighter,germanInfantry,germanCombatEngineer,germanStrategicBomber,germanArtillery,germanAlpineInfantry,germanNavalFighter,germanParatrooper, Defending unit types: swedishCombatEngineer,swedishEntrenchment,swedishArtillery,swedishTank,swedishInfantry
java.lang.Exception
	at games.strategy.triplea.delegate.battle.MustFightBattle$29.execute(MustFightBattle.java:1722)
	at games.strategy.triplea.delegate.ExecutionStack.execute(ExecutionStack.java:34)
	at games.strategy.triplea.delegate.battle.MustFightBattle.fight(MustFightBattle.java:841)
	at games.strategy.triplea.odds.calculator.BattleCalculator.calculate(BattleCalculator.java:128)
	at games.strategy.triplea.odds.calculator.ConcurrentBattleCalculator.lambda$calculate$4(ConcurrentBattleCalculator.java:234)
	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.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)


I think this is fixed in the prerelease but am uncertain

You are correct, this has been fixed here
565f203