I am trying to use Drools Workbench version 6.4.0 Final to recreate CloudBalancing example in KIE server. I am able to create container and solver in KIE via REST API, however when I try to start to solving and I got the following error:
03:15:50,831 INFO [org.kie.server.services.impl.KieServerImpl] (EJB default - 2) Container optacloud_1_0_0 (for release id opta:optacloud:1.0.0) successfully started
03:17:44,170 INFO [org.kie.server.services.optaplanner.SolverServiceBase] (default task-13) Solver 'solver1' successfully created in container 'optacloud_1_0_0'
03:19:19,654 ERROR [org.kie.server.services.optaplanner.SolverServiceBase] (pool-9-thread-1) Exception executing solver 'solver1' from container 'optacloud_1_0_0'. Thread will terminate.: java.lang.NullPointerException
at java.util.concurrent.ConcurrentHashMap.hash(ConcurrentHashMap.java:333) [rt.jar:1.7.0_80]
at java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:1125) [rt.jar:1.7.0_80]
at org.drools.compiler.kie.builder.impl.KieContainerImpl.newKieSession(KieContainerImpl.java:613) [drools-compiler-6.4.0.Final.jar:6.4.0.Final]
at org.drools.compiler.kie.builder.impl.KieContainerImpl.newKieSession(KieContainerImpl.java:575) [drools-compiler-6.4.0.Final.jar:6.4.0.Final]
at org.optaplanner.core.impl.score.director.drools.DroolsScoreDirectorFactory.newKieSession(DroolsScoreDirectorFactory.java:113) [optaplanner-core-6.4.0.Final.jar:6.4.0.Final]
at org.optaplanner.core.impl.score.director.drools.DroolsScoreDirector.resetKieSession(DroolsScoreDirector.java:68) [optaplanner-core-6.4.0.Final.jar:6.4.0.Final]
at org.optaplanner.core.impl.score.director.drools.DroolsScoreDirector.setWorkingSolution(DroolsScoreDirector.java:61) [optaplanner-core-6.4.0.Final.jar:6.4.0.Final]
at org.optaplanner.core.impl.solver.scope.DefaultSolverScope.setWorkingSolutionFromBestSolution(DefaultSolverScope.java:198) [optaplanner-core-6.4.0.Final.jar:6.4.0.Final]
at org.optaplanner.core.impl.solver.DefaultSolver.solvingStarted(DefaultSolver.java:196) [optaplanner-core-6.4.0.Final.jar:6.4.0.Final]
at org.optaplanner.core.impl.solver.DefaultSolver.solve(DefaultSolver.java:175) [optaplanner-core-6.4.0.Final.jar:6.4.0.Final]
at org.kie.server.services.optaplanner.SolverServiceBase$1.run(SolverServiceBase.java:329) [kie-server-services-optaplanner-6.4.0.Final.jar:6.4.0.Final]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_80]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_80]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_80]
Is it because I am missing the 'scoreDrl' in SolverConfig.xml ? How can I configure SolverConfig.xml via workbench UI ? It seems I cannot edit the SolverConfig.xml via the interface.
Thanks for Geoffrey's investigation, he found out the root cause of the issue is related to DROOLS-1276. The workaround of the issue is not to use a default ksession.
To create a kession in Drools workbench is as follow:
Project Authoring -> Open Project Editor -> Knowledge Bases and Sessions
Then update the Knowledge Session in the Solver configuration of the project. The issue will be resolved.