Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8188098

NPE in SimpleTreeVisitorES6 visitor when parsing a tagged template literal

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P3 P3
    • 10
    • 9, 10
    • core-libs
    • 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)

            sundar Sundararajan Athijegannathan
            sundar Sundararajan Athijegannathan
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: