[jboss-jira] [JBoss JIRA] (DROOLS-2305) Drools compiler does not recognize Java 9
Jon Kranes (JIRA)
issues at jboss.org
Wed Feb 7 11:28:00 EST 2018
[ https://issues.jboss.org/browse/DROOLS-2305?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13530134#comment-13530134 ]
Jon Kranes commented on DROOLS-2305:
------------------------------------
Another side effect of the same core issue is that the Drools Eclipse Plugin rules editor will throw the exception "value '9' is not a valid language level" when opening a .drl file. I was unable to find any workaround to this issue (other than configuring the project to use a lower compiler version). Looking at the source code the Eclipse plugin gets the java version directly from the project compliance level setting and does not seem to allow the use of any properties to override that value.
> Drools compiler does not recognize Java 9
> -----------------------------------------
>
> Key: DROOLS-2305
> URL: https://issues.jboss.org/browse/DROOLS-2305
> Project: Drools
> Issue Type: Bug
> Components: core engine
> Affects Versions: 7.5.0.Final
> Environment:
> Reporter: Jon Kranes
> Assignee: Mario Fusco
>
> The Drools compiler class org.drools.compiler.rule.builder.dialect.java.JavaDialectConfiguration
> does not include Java 9 as a valid language level. Instead, when run using Java 9, the assumed java version is set to the default value of "1.7".
> As a consequence, when compiling a rules file requiring Java 8 specific language features, the compilation will fail. For example, if a rule RHS contains the statement:
> {code:java}
> Arrays.asList("a","b","c").forEach(System.out::println);
> {code}
> The rule compilation fails with the error:
> {code:java}
> [ERROR] Unable to build KieBaseModel:default
> Rule Compilation error : [Rule name='test']
> defaultpkg/Rule_test959974052.java (7:387) : Method references are allowed only at source level 1.8 or above
> {code}
> The problem can be worked around by adding a configuration file META-INF/kie.properties.conf containing the line:
> {code:java}
> drools.dialect.java.compiler.lnglevel = 1.8
> {code}
> The Drools compiler code will use this value instead of the System "java.version" value, avoiding the problem.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
More information about the jboss-jira
mailing list