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

javac --release=8 "cannot find symbol" for NashornException.getEcmaError()

XMLWordPrintable

    • 9
    • b20
    • x86_64
    • generic

        A DESCRIPTION OF THE PROBLEM :
        On Java 8, Java classes referring to NashornException.getEcmaError() compile just fine.

        On Java 9 and Java 10, using javac --release=8, compilation fails.

        REGRESSION : Last worked in version 8u161

        STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
        $ cat Test.java
        import jdk.nashorn.api.scripting.NashornException;

        public class Test {
            public static void main(String[] args) throws Exception {
               NashornException ne = new NashornException(null, null) { };
               ne.getEcmaError();
            }
        }

        $ JAVA_HOME=`/usr/libexec/java_home -v 1.8` java -version
        java version "1.8.0_161"
        Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
        Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

        $ JAVA_HOME=`/usr/libexec/java_home -v 1.8` javac Test.java

        $ java -version
        java version "10.0.1" 2018-04-17
        Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10)
        Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode)

        $ javac --release=8 Test.java
        Test.java:6: error: cannot find symbol
               ne.getEcmaError();
                 ^
          symbol: method getEcmaError()
          location: variable ne of type NashornException
        1 error


        EXPECTED VERSUS ACTUAL BEHAVIOR :
        EXPECTED -
        Expected compilation behavior of javac --release=8 on Java 9 and 10 to match compilation behavior on Java 8.
        ACTUAL -
        Instead, compilation fails on Java 9 and 10 with javac --release=8.

        ---------- BEGIN SOURCE ----------
        import jdk.nashorn.api.scripting.NashornException;

        public class Test {
            public static void main(String[] args) throws Exception {
               NashornException ne = new NashornException(null, null) { };
               ne.getEcmaError();
            }
        }

        ---------- END SOURCE ----------

        CUSTOMER SUBMITTED WORKAROUND :
        Compile using JDK8.

        FREQUENCY : always


              jlahoda Jan Lahoda
              webbuggrp Webbug Group
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: