WeightedSumComparator fails when using RouletteWheelSelector
10:50:47.515 [main] ERROR d.e.c.m.Evoal - Main class threw an exception.
java.util.concurrent.CompletionException: java.lang.ClassCastException: class de.evoal.core.main.comparator.WeightedSumOptimisationValue cannot be cast to class java.lang.Number (de.evoal.core.main.comparator.WeightedSumOptimisationValue is in module de.evoal.core.main@0.9.0-SNAPSHOT of loader 'app'; java.lang.Number is in module java.base of loader 'bootstrap')
at
java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315)
at
java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320)
at
java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1770)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at
java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.ClassCastException: class de.evoal.core.main.comparator.WeightedSumOptimisationValue cannot be cast to class java.lang.Number (de.evoal.core.main.comparator.WeightedSumOptimisationValue is in module
de.evoal.core.main@0.9.0-SNAPSHOT of loader 'app'; java.lang.Number is in module java.base of loader 'bootstrap')
at
io.jenetics.base/io.jenetics.RouletteWheelSelector.fitnessOf(RouletteWheelSelector.java:85)
at
io.jenetics.base/io.jenetics.RouletteWheelSelector.probabilities(RouletteWheelSelector.java:67)
at
io.jenetics.base/io.jenetics.ProbabilitySelector.probabilities(ProbabilitySelector.java:153)
at
io.jenetics.base/io.jenetics.ProbabilitySelector.select(ProbabilitySelector.java:119)
at
io.jenetics.base/io.jenetics.engine.Engine.selectOffspring(Engine.java:302)
at
io.jenetics.base/io.jenetics.engine.Engine.lambda$evolve$1(Engine.java:198)
at
io.jenetics.base/io.jenetics.engine.Timing.timing(Timing.java:58)
at
io.jenetics.base/io.jenetics.engine.Engine.lambda$evolve$2(Engine.java:197)
at
java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
... 3 common frames omitted
Reported by @ste_jan