-
Bug
-
Resolution: Done
-
Major
-
None
-
NEW
-
NEW
The code below runs perfectly with OpenJDK 8 (and even 6 and 7).
To reproduce, use JDK 9 ( https://jdk9.java.net/download/ ) and in optaplanner-core, run XStreamXmlSolverFactoryTest [1] (or mostly any other test that builds a DRL file) to get this error:
15:56:40.229 [main] ERROR o.d.c.k.b.impl.AbstractKieModule - Unable to build KieBaseModel:defaultKieBase Rule Compilation error : [Rule name='Conflict'] org/optaplanner/core/api/solver/Rule_Conflict903142795.java (1:0) : The type java.lang.Object cannot be resolved. It is indirectly referenced from required .class files org/optaplanner/core/api/solver/Rule_Conflict903142795.java (1:0) : The type java.io.Serializable cannot be resolved. It is indirectly referenced from required .class files org/optaplanner/core/api/solver/Rule_Conflict903142795.java (3:337) : Implicit super constructor Object() is undefined for default constructor. Must define an explicit constructor org/optaplanner/core/api/solver/Rule_Conflict903142795.java (6:569) : java.lang.Exception cannot be resolved to a type java.lang.IllegalStateException: There are errors in a score DRL: Error Messages: Message [id=1, level=ERROR, path=org/optaplanner/core/api/solver/testdataScoreRules.drl, line=31, column=0 text=Rule Compilation error The type java.lang.Object cannot be resolved. It is indirectly referenced from required .class files The type java.io.Serializable cannot be resolved. It is indirectly referenced from required .class files Implicit super constructor Object() is undefined for default constructor. Must define an explicit constructor java.lang.Exception cannot be resolved to a type]
That tests builds this DRL:
package org.optaplanner.core.api.solver; dialect "java" import org.optaplanner.core.api.score.buildin.simple.SimpleScoreHolder; import org.optaplanner.core.impl.testdata.domain.TestdataValue; import org.optaplanner.core.impl.testdata.domain.TestdataEntity; global SimpleScoreHolder scoreHolder; // ############################################################################ // Constraints // ############################################################################ rule "Conflict" when TestdataEntity(value != null, $leftValue : value) TestdataEntity(value == $leftValue) then scoreHolder.addConstraintMatch(kcontext, -1); end
Not sure where the Object constructor reference comes from... This might be a JDK 9 upstream issue.
Note: don't build drools with OpenJDK9 as that will fail sooner
- causes
-
PLANNER-575 Support OpenJDK 9 (including Jigsaw) to build OptaPlanner engine from source
- Resolved
- is blocked by
-
DROOLS-1171 Java native compiler throws ClassCastException (so when using -Ddrools.dialect.java.compiler=NATIVE)
- Closed
- is related to
-
DROOLS-355 Add an import on com.sun.tools.xjc in drools-core's OSGI manifest
- Resolved
-
DROOLS-1213 Make it build & work on JDK9
- Pull Request Sent