-
Bug
-
Resolution: Fixed
-
P3
-
9, 10
-
None
-
b25
-
generic
-
generic
File: ES6ParserNPE.java
import jdk.nashorn.api.tree.*;
public class ES6ParserNPE {
public static void main(String[] args) {
Parser p = Parser.create("--language=es6");
p.parse("test", "foo`hello world`", System.out::println).
accept(new SimpleTreeVisitorES6(), null);
}
}
$ javac ES6ParserNPE.java
$ java ES6ParserNPE
Exception in thread "main" java.lang.NullPointerException
at jdk.scripting.nashorn/jdk.nashorn.api.tree.SimpleTreeVisitorES5_1.lambda$visitFunctionCall$2(SimpleTreeVisitorES5_1.java:258)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1378)
at jdk.scripting.nashorn/jdk.nashorn.api.tree.SimpleTreeVisitorES5_1.visitFunctionCall(SimpleTreeVisitorES5_1.java:257)
at jdk.scripting.nashorn/jdk.nashorn.api.tree.FunctionCallTreeImpl.accept(FunctionCallTreeImpl.java:59)
at jdk.scripting.nashorn/jdk.nashorn.api.tree.SimpleTreeVisitorES5_1.visitExpressionStatement(SimpleTreeVisitorES5_1.java:205)
at jdk.scripting.nashorn/jdk.nashorn.api.tree.ExpressionStatementTreeImpl.accept(ExpressionStatementTreeImpl.java:50)
at jdk.scripting.nashorn/jdk.nashorn.api.tree.SimpleTreeVisitorES5_1.lambda$visitCompilationUnit$9(SimpleTreeVisitorES5_1.java:435)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1378)
at jdk.scripting.nashorn/jdk.nashorn.api.tree.SimpleTreeVisitorES5_1.visitCompilationUnit(SimpleTreeVisitorES5_1.java:434)
at jdk.scripting.nashorn/jdk.nashorn.api.tree.SimpleTreeVisitorES6.visitCompilationUnit(SimpleTreeVisitorES6.java:58)
at jdk.scripting.nashorn/jdk.nashorn.api.tree.CompilationUnitTreeImpl.accept(CompilationUnitTreeImpl.java:81)
at ES6ParserNPE.main(ES6ParserNPE.java:7)
When assertions are turned on, we get an AssertionError from Nashorn parser code:
$ java -ea -esa ES6ParserNPE
Exception in thread "main" java.lang.AssertionError: should not reach here: RuntimeNode
at jdk.scripting.nashorn/jdk.nashorn.api.tree.IRTranslator.enterRuntimeNode(IRTranslator.java:331)
at jdk.scripting.nashorn/jdk.nashorn.internal.ir.RuntimeNode.accept(RuntimeNode.java:438)
at jdk.scripting.nashorn/jdk.nashorn.api.tree.IRTranslator.translateExprs(IRTranslator.java:571)
at jdk.scripting.nashorn/jdk.nashorn.api.tree.IRTranslator.enterCallNode(IRTranslator.java:150)
at jdk.scripting.nashorn/jdk.nashorn.internal.ir.CallNode.accept(CallNode.java:177)
at jdk.scripting.nashorn/jdk.nashorn.internal.ir.LexicalContextNode$Acceptor.accept(LexicalContextNode.java:57)
at jdk.scripting.nashorn/jdk.nashorn.internal.ir.LexicalContextExpression.accept(LexicalContextExpression.java:47)
at jdk.scripting.nashorn/jdk.nashorn.internal.ir.CallNode.accept(CallNode.java:41)
at jdk.scripting.nashorn/jdk.nashorn.api.tree.IRTranslator.translateExpr(IRTranslator.java:584)
at jdk.scripting.nashorn/jdk.nashorn.api.tree.IRTranslator.enterExpressionStatement(IRTranslator.java:200)
at jdk.scripting.nashorn/jdk.nashorn.internal.ir.ExpressionStatement.accept(ExpressionStatement.java:81)
at jdk.scripting.nashorn/jdk.nashorn.api.tree.IRTranslator.translateStats(IRTranslator.java:539)
at jdk.scripting.nashorn/jdk.nashorn.api.tree.IRTranslator.translate(IRTranslator.java:99)
at jdk.scripting.nashorn/jdk.nashorn.api.tree.ParserImpl.translate(ParserImpl.java:224)
at jdk.scripting.nashorn/jdk.nashorn.api.tree.ParserImpl.parse(ParserImpl.java:126)
at ES6ParserNPE.main(ES6ParserNPE.java:6)
import jdk.nashorn.api.tree.*;
public class ES6ParserNPE {
public static void main(String[] args) {
Parser p = Parser.create("--language=es6");
p.parse("test", "foo`hello world`", System.out::println).
accept(new SimpleTreeVisitorES6(), null);
}
}
$ javac ES6ParserNPE.java
$ java ES6ParserNPE
Exception in thread "main" java.lang.NullPointerException
at jdk.scripting.nashorn/jdk.nashorn.api.tree.SimpleTreeVisitorES5_1.lambda$visitFunctionCall$2(SimpleTreeVisitorES5_1.java:258)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1378)
at jdk.scripting.nashorn/jdk.nashorn.api.tree.SimpleTreeVisitorES5_1.visitFunctionCall(SimpleTreeVisitorES5_1.java:257)
at jdk.scripting.nashorn/jdk.nashorn.api.tree.FunctionCallTreeImpl.accept(FunctionCallTreeImpl.java:59)
at jdk.scripting.nashorn/jdk.nashorn.api.tree.SimpleTreeVisitorES5_1.visitExpressionStatement(SimpleTreeVisitorES5_1.java:205)
at jdk.scripting.nashorn/jdk.nashorn.api.tree.ExpressionStatementTreeImpl.accept(ExpressionStatementTreeImpl.java:50)
at jdk.scripting.nashorn/jdk.nashorn.api.tree.SimpleTreeVisitorES5_1.lambda$visitCompilationUnit$9(SimpleTreeVisitorES5_1.java:435)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1378)
at jdk.scripting.nashorn/jdk.nashorn.api.tree.SimpleTreeVisitorES5_1.visitCompilationUnit(SimpleTreeVisitorES5_1.java:434)
at jdk.scripting.nashorn/jdk.nashorn.api.tree.SimpleTreeVisitorES6.visitCompilationUnit(SimpleTreeVisitorES6.java:58)
at jdk.scripting.nashorn/jdk.nashorn.api.tree.CompilationUnitTreeImpl.accept(CompilationUnitTreeImpl.java:81)
at ES6ParserNPE.main(ES6ParserNPE.java:7)
When assertions are turned on, we get an AssertionError from Nashorn parser code:
$ java -ea -esa ES6ParserNPE
Exception in thread "main" java.lang.AssertionError: should not reach here: RuntimeNode
at jdk.scripting.nashorn/jdk.nashorn.api.tree.IRTranslator.enterRuntimeNode(IRTranslator.java:331)
at jdk.scripting.nashorn/jdk.nashorn.internal.ir.RuntimeNode.accept(RuntimeNode.java:438)
at jdk.scripting.nashorn/jdk.nashorn.api.tree.IRTranslator.translateExprs(IRTranslator.java:571)
at jdk.scripting.nashorn/jdk.nashorn.api.tree.IRTranslator.enterCallNode(IRTranslator.java:150)
at jdk.scripting.nashorn/jdk.nashorn.internal.ir.CallNode.accept(CallNode.java:177)
at jdk.scripting.nashorn/jdk.nashorn.internal.ir.LexicalContextNode$Acceptor.accept(LexicalContextNode.java:57)
at jdk.scripting.nashorn/jdk.nashorn.internal.ir.LexicalContextExpression.accept(LexicalContextExpression.java:47)
at jdk.scripting.nashorn/jdk.nashorn.internal.ir.CallNode.accept(CallNode.java:41)
at jdk.scripting.nashorn/jdk.nashorn.api.tree.IRTranslator.translateExpr(IRTranslator.java:584)
at jdk.scripting.nashorn/jdk.nashorn.api.tree.IRTranslator.enterExpressionStatement(IRTranslator.java:200)
at jdk.scripting.nashorn/jdk.nashorn.internal.ir.ExpressionStatement.accept(ExpressionStatement.java:81)
at jdk.scripting.nashorn/jdk.nashorn.api.tree.IRTranslator.translateStats(IRTranslator.java:539)
at jdk.scripting.nashorn/jdk.nashorn.api.tree.IRTranslator.translate(IRTranslator.java:99)
at jdk.scripting.nashorn/jdk.nashorn.api.tree.ParserImpl.translate(ParserImpl.java:224)
at jdk.scripting.nashorn/jdk.nashorn.api.tree.ParserImpl.parse(ParserImpl.java:126)
at ES6ParserNPE.main(ES6ParserNPE.java:6)