Skip to content

Freshmark doesn't work on JDK 15 due to missing Nashorn #803

@LunNova

Description

@LunNova

Nashorn was removed in JDK 15, and freshmark depends on it so crashes.

Caused by: java.lang.RuntimeException: Error on line 21: Cannot invoke "javax.script.ScriptEngine.getContext()" because "jsEngine" is null
        at com.diffplug.freshmark.Parser$1ErrorFormatter.lambda$wrap$2(Parser.java:89)
        at com.diffplug.freshmark.ParserIntronExon.bodyAndTags(ParserIntronExon.java:71)
        at com.diffplug.freshmark.Parser.compile(Parser.java:162)
        at com.diffplug.freshmark.CommentScript.compile(CommentScript.java:85)
        ... 141 more
Caused by: java.lang.NullPointerException: Cannot invoke "javax.script.ScriptEngine.getContext()" because "jsEngine" is null
        at com.diffplug.jscriptbox.javascript.Nashorn.lambda$language$0(Nashorn.java:43)
        at com.diffplug.jscriptbox.JScriptBox.build(JScriptBox.java:89)
        at com.diffplug.freshmark.FreshMark.setupScriptEngine(FreshMark.java:65)
        at com.diffplug.freshmark.CommentScript.lambda$compileSection$0(CommentScript.java:71)
        at com.diffplug.common.base.Errors$Rethrowing.lambda$wrap$11(Errors.java:342)
        at com.diffplug.common.base.Errors$Rethrowing.get(Errors.java:334)
        at com.diffplug.freshmark.CommentScript.compileSection(CommentScript.java:70)
        at com.diffplug.freshmark.Parser$1State.tag(Parser.java:144)
        at com.diffplug.freshmark.Parser$1ErrorFormatter.lambda$wrap$2(Parser.java:78)
        ... 144 more

Gradle version: 6.8.2
JDK version: AdoptOpenJDK jdk-15.0.1.9-hotspot
OS version: Windows 10 20H2
Freshmark config:

spotless.freshmark(it -> {
	it.properties(props -> props.putAll(settings.toProperties(project)));
	it.target(files(project, "**/*.md"));
	it.indentWithTabs();
	it.endWithNewline();
});

This can be worked around by adding nashorn-core to the buildscript classpath:

buildscript {
	repositories {
		mavenCentral()
	}
	dependencies {
		classpath("org.openjdk.nashorn:nashorn-core:15.2")
	}
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions