[ https://issues.apache.org/jira/browse/BCEL-323?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Tomo Suzuki updated BCEL-323: ----------------------------- Description: h1. Problem With OpenJDK 13 EA, BCELifer does not give "default" modifier for an [interface's default method|https://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html]. [https://travis-ci.org/apache/commons-bcel/jobs/556441835] {code:java} [INFO] [INFO] Results: [INFO] [ERROR] Failures: [ERROR] BCELifierTestCase.testJavapCompare:90->testClassOnPath:80 expected:<...a8Example { public [default ]void hello(); Code:...> but was:<...a8Example { public []void hello(); Code:...> [INFO] [ERROR] Tests run: 130, Failures: 1, Errors: 0, Skipped: 1{code} I'm checking why it fails. Memo for myself: {code:java} export JAVA_HOME=${HOME}/local/jdk-13 export PATH=${JAVA_HOME}/bin:$PATH{code} h1. Difference causing Test Failure In OpenJDK 13, the default parameter for the interface disappears after BCELifier creates the class file. !screenshot-1.png! {code:java} $ java -version openjdk version "13-ea" 2019-09-17 OpenJDK Runtime Environment (build 13-ea+28) OpenJDK 64-Bit Server VM (build 13-ea+28, mixed mode, sharing){code} h2. What does BCELifierTestCase do? The test compares two output of javap command: * javap "target/test-classes/Java8Example.class" (which is copied from ./src/test/resources/Java8Example.class in git) * javap another Java8Example.class which is generated by BCELifer. ** Actually the class file is not directly created by BCELifer. *** BCELifer writes Java8ExampleCreator.java *** The test runs "javac" to compile Java8ExampleCreator. *** The test runs "java" to run Java8ExampleCreator, which in turn generates Java8Example.class was: h1. Problem [https://travis-ci.org/apache/commons-bcel/jobs/556441835] {code:java} [INFO] [INFO] Results: [INFO] [ERROR] Failures: [ERROR] BCELifierTestCase.testJavapCompare:90->testClassOnPath:80 expected:<...a8Example { public [default ]void hello(); Code:...> but was:<...a8Example { public []void hello(); Code:...> [INFO] [ERROR] Tests run: 130, Failures: 1, Errors: 0, Skipped: 1{code} I'm checking why it fails. Memo for myself: {code} export JAVA_HOME=${HOME}/local/jdk-13 export PATH=${JAVA_HOME}/bin:$PATH{code} h1. Difference causing Test Failure In OpenJDK 13, the default parameter for the interface disappears after BCELifier creates the class file. !screenshot-1.png! {code:java} $ java -version openjdk version "13-ea" 2019-09-17 OpenJDK Runtime Environment (build 13-ea+28) OpenJDK 64-Bit Server VM (build 13-ea+28, mixed mode, sharing){code} h2. What does BCELifierTestCase do? The test compares two output of javap command: * javap "target/test-classes/Java8Example.class" (which is copied from ./src/test/resources/Java8Example.class in git) * javap another Java8Example.class which is generated by BCELifer. ** Actually the class file is not directly created by BCELifer. *** BCELifer writes Java8ExampleCreator.java *** The test runs "javac" to compile Java8ExampleCreator. *** The test runs "java" to run Java8ExampleCreator, which in turn generates Java8Example.class > JDK 13 build failing in master: BCELifierTestCase.testJavapCompare > ------------------------------------------------------------------ > > Key: BCEL-323 > URL: https://issues.apache.org/jira/browse/BCEL-323 > Project: Commons BCEL > Issue Type: Improvement > Reporter: Tomo Suzuki > Priority: Minor > Attachments: screenshot-1.png > > > h1. Problem > With OpenJDK 13 EA, BCELifer does not give "default" modifier for an > [interface's default > method|https://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html]. > [https://travis-ci.org/apache/commons-bcel/jobs/556441835] > {code:java} > [INFO] > [INFO] Results: > [INFO] > [ERROR] Failures: > [ERROR] BCELifierTestCase.testJavapCompare:90->testClassOnPath:80 > expected:<...a8Example { > public [default ]void hello(); > Code:...> but was:<...a8Example { > public []void hello(); > Code:...> > [INFO] > [ERROR] Tests run: 130, Failures: 1, Errors: 0, Skipped: 1{code} > > I'm checking why it fails. > Memo for myself: > {code:java} > export JAVA_HOME=${HOME}/local/jdk-13 > export PATH=${JAVA_HOME}/bin:$PATH{code} > h1. Difference causing Test Failure > In OpenJDK 13, the default parameter for the interface disappears after > BCELifier creates the class file. > !screenshot-1.png! > > {code:java} > $ java -version > openjdk version "13-ea" 2019-09-17 > OpenJDK Runtime Environment (build 13-ea+28) > OpenJDK 64-Bit Server VM (build 13-ea+28, mixed mode, sharing){code} > h2. What does BCELifierTestCase do? > The test compares two output of javap command: > * javap "target/test-classes/Java8Example.class" (which is copied from > ./src/test/resources/Java8Example.class in git) > * javap another Java8Example.class which is generated by BCELifer. > ** Actually the class file is not directly created by BCELifer. > *** BCELifer writes Java8ExampleCreator.java > *** The test runs "javac" to compile Java8ExampleCreator. > *** The test runs "java" to run Java8ExampleCreator, which in turn generates > Java8Example.class -- This message was sent by Atlassian JIRA (v7.6.3#76005)