You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@edgent.apache.org by Dale LaBossiere <dm...@gmail.com> on 2017/10/23 21:40:04 UTC

maven: animal sniffer use not working?

Hi Chris,

When I first enabled the J7 tests for Connectors: File (having thought I got all of the “since 1.8” usages in the tests), the animal sniffer didn’t detect a lurking use of “since 1.8" Files.newBufferedReader() in the test code.  Is there some misconfiguration somewhere?

e.g., the following is from Jenkins build #105.  You can see that the build/retro lambda for the connector code and test code succeeds and animal-sniffer is run, but it doesn’t detect the problem in the test code and the test then fails.

[INFO] ------------------------------------------------------------------------
[INFO] Building Apache Edgent (Java 7): Connectors: File 1.2.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:3.0.0:clean (default-clean) @ edgent-connectors-file ---
[INFO] Deleting /home/jenkins/jenkins-slave/workspace/edgent-dev/platforms/java7/connectors/file/target
[INFO] 
[INFO] --- maven-toolchains-plugin:1.1:toolchain (default) @ edgent-connectors-file ---
[INFO] Required toolchain: jdk [ vendor='oracle' version='1.7' ]
[INFO] Found matching toolchain for type jdk: JDK[/home/jenkins/tools/java/latest1.7/]
[INFO] 
[INFO] --- maven-enforcer-plugin:1.4.1:enforce (enforce-property) @ edgent-connectors-file ---
[INFO] 
[INFO] --- jacoco-maven-plugin:0.7.9:prepare-agent (pre-unit-test) @ edgent-connectors-file ---
[INFO] surefireArgLine set to -javaagent:/home/jenkins/.m2/repository/org/jacoco/org.jacoco.agent/0.7.9/org.jacoco.agent-0.7.9-runtime.jar=destfile=/home/jenkins/jenkins-slave/workspace/edgent-dev/platforms/java7/connectors/file/target/jacoco.exec
[INFO] 
[INFO] --- maven-remote-resources-plugin:1.5:process (process-resource-bundles) @ edgent-connectors-file ---
[INFO] 
[INFO] --- maven-resources-plugin:2.7:resources (default-resources) @ edgent-connectors-file ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/jenkins-slave/workspace/edgent-dev/platforms/java7/connectors/file/src/main/resources
[INFO] Copying 4 resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.6.1:compile (default-compile) @ edgent-connectors-file ---
[INFO] Toolchain in maven-compiler-plugin: JDK[/home/jenkins/tools/java/latest1.7/]
[INFO] No sources to compile
[INFO] 
[INFO] --- maven-dependency-plugin:3.0.1:unpack (copy) @ edgent-connectors-file ---
[INFO] Configured Artifact: org.apache.edgent:edgent-connectors-file:1.2.0-SNAPSHOT:jar
[INFO] Configured Artifact: org.apache.edgent:edgent-connectors-file:tests:1.2.0-SNAPSHOT:jar
[INFO] Unpacking /home/jenkins/jenkins-slave/workspace/edgent-dev/connectors/file/target/edgent-connectors-file-1.2.0-SNAPSHOT.jar to /home/jenkins/jenkins-slave/workspace/edgent-dev/platforms/java7/connectors/file/target/classes with includes "" and excludes "META-INF/**"
[INFO] Unpacking /home/jenkins/jenkins-slave/workspace/edgent-dev/connectors/file/target/edgent-connectors-file-1.2.0-SNAPSHOT-tests.jar to /home/jenkins/jenkins-slave/workspace/edgent-dev/platforms/java7/connectors/file/target/test-classes with includes "" and excludes "META-INF/**"
[INFO] 
[INFO] --- retrolambda-maven-plugin:2.5.1:process-main (default) @ edgent-connectors-file ---
[INFO] Retrieving Retrolambda 2.5.1
[INFO] Configured Artifact: net.orfjackal.retrolambda:retrolambda:2.5.1:jar
[INFO] Copying retrolambda-2.5.1.jar to /home/jenkins/jenkins-slave/workspace/edgent-dev/platforms/java7/connectors/file/target/retrolambda/retrolambda.jar
[INFO] Processing classes with Retrolambda
[INFO] Toolchain in retrolambda-maven-plugin: JDK[/home/jenkins/tools/java/latest1.7/]
[WARNING] Toolchains are ignored, 'java8home' parameter is set to /home/jenkins/tools/java/latest1.8
[INFO] Executing tasks

main:
     [exec] Retrolambda 2.5.1
     [exec] 00:00  INFO: Bytecode version: 51 (Java 7)
     [exec] 00:00  INFO: Default methods:  false
     [exec] 00:00  INFO: Input directory:  /home/jenkins/jenkins-slave/workspace/edgent-dev/platforms/java7/connectors/file/target/classes
     [exec] 00:00  INFO: Output directory: /home/jenkins/jenkins-slave/workspace/edgent-dev/platforms/java7/connectors/file/target/classes
. . .
     [exec] 00:00  INFO: Included files:   all
     [exec] 00:00  INFO: Agent enabled:    true
     [exec] 00:00  INFO: Saving lambda class: org/apache/edgent/connectors/file/FileStreams$$Lambda$1
. . .
[INFO] Executed tasks
[INFO] 
[INFO] --- maven-resources-plugin:2.7:testResources (default-testResources) @ edgent-connectors-file ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jenkins/jenkins-slave/workspace/edgent-dev/platforms/java7/connectors/file/src/test/resources
[INFO] Copying 4 resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.6.1:testCompile (default-testCompile) @ edgent-connectors-file ---
[INFO] Toolchain in maven-compiler-plugin: JDK[/home/jenkins/tools/java/latest1.7/]
[INFO] No sources to compile
[INFO] 
[INFO] --- retrolambda-maven-plugin:2.5.1:process-test (default) @ edgent-connectors-file ---
[INFO] Retrieving Retrolambda 2.5.1
[INFO] Configured Artifact: net.orfjackal.retrolambda:retrolambda:2.5.1:jar
[INFO] Copying retrolambda-2.5.1.jar to /home/jenkins/jenkins-slave/workspace/edgent-dev/platforms/java7/connectors/file/target/retrolambda/retrolambda.jar
[INFO] Processing classes with Retrolambda
[INFO] Toolchain in retrolambda-maven-plugin: JDK[/home/jenkins/tools/java/latest1.7/]
[WARNING] Toolchains are ignored, 'java8home' parameter is set to /home/jenkins/tools/java/latest1.8
[INFO] Executing tasks

main:
     [exec] Retrolambda 2.5.1
     [exec] 00:00  INFO: Bytecode version: 51 (Java 7)
     [exec] 00:00  INFO: Default methods:  false
     [exec] 00:00  INFO: Input directory:  /home/jenkins/jenkins-slave/workspace/edgent-dev/platforms/java7/connectors/file/target/test-classes
     [exec] 00:00  INFO: Output directory: /home/jenkins/jenkins-slave/workspace/edgent-dev/platforms/java7/connectors/file/target/test-classes
. . .
     [exec] 00:00  INFO: Included files:   all
     [exec] 00:00  INFO: Agent enabled:    true
     [exec] 00:00  INFO: Saving lambda class: org/apache/edgent/test/connectors/file/FileStreamsTextFileWriterTest$$Lambda$1
. . .
[INFO] Executed tasks
[INFO] 
[INFO] --- animal-sniffer-maven-plugin:1.15:check (check-jdk-signatures) @ edgent-connectors-file ---
[INFO] Checking unresolved references to org.codehaus.mojo.signature:java17:1.0
[INFO] 
[INFO] --- maven-surefire-plugin:2.20:test (default-test) @ edgent-connectors-file ---
[INFO] Toolchain in maven-surefire-plugin: JDK[/home/jenkins/tools/java/latest1.7/]
[INFO] 
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running org.apache.edgent.test.connectors.file.FileStreamsGlobalTest
. . .
########## testAllTimeBased
actFiles: [/tmp/test15917667886213607554txt_20171023_162848, /tmp/test15917667886213607554txt_20171023_162848_1, /tmp/test15917667886213607554txt_20171023_162848_2, /tmp/test15917667886213607554txt_20171023_162848_3]
expResults: [[1-一二三四五六七八九], [2-一二三四五六七八九], [3-一二三四五六七八九], [4-一二三四五六七八九]]
checking file /tmp/test15917667886213607554txt_20171023_162848
[ERROR] Tests run: 22, Failures: 0, Errors: 15, Skipped: 0, Time elapsed: 67.129 s <<< FAILURE! - in org.apache.edgent.test.connectors.file.FileStreamsTextFileWriterGlobalTest
[ERROR] testManyFilesSlow(org.apache.edgent.test.connectors.file.FileStreamsTextFileWriterGlobalTest)  Time elapsed: 10.337 s  <<< ERROR!
java.lang.NoSuchMethodError: java.nio.file.Files.newBufferedReader(Ljava/nio/file/Path;)Ljava/io/BufferedReader;

[ERROR] testCycleSizeBased(org.apache.edgent.test.connectors.file.FileStreamsTextFileWriterGlobalTest)  Time elapsed: 2.295 s  <<< ERROR!
java.lang.NoSuchMethodError: java.nio.file.Files.newBufferedReader(Ljava/nio/file/Path;)Ljava/io/BufferedReader;

...

Re: maven: animal sniffer use not working?

Posted by Christofer Dutz <ch...@c-ware.de>.
Hi Dale,

I’m just finishing some fixes that will repair things.
The problem is that the animal sniffer checks the compile stuff, not the test …
And not runtime stuff.

Chris

Am 23.10.17, 23:40 schrieb "Dale LaBossiere" <dm...@gmail.com>:

    Hi Chris,
    
    When I first enabled the J7 tests for Connectors: File (having thought I got all of the “since 1.8” usages in the tests), the animal sniffer didn’t detect a lurking use of “since 1.8" Files.newBufferedReader() in the test code.  Is there some misconfiguration somewhere?
    
    e.g., the following is from Jenkins build #105.  You can see that the build/retro lambda for the connector code and test code succeeds and animal-sniffer is run, but it doesn’t detect the problem in the test code and the test then fails.
    
    [INFO] ------------------------------------------------------------------------
    [INFO] Building Apache Edgent (Java 7): Connectors: File 1.2.0-SNAPSHOT
    [INFO] ------------------------------------------------------------------------
    [INFO] 
    [INFO] --- maven-clean-plugin:3.0.0:clean (default-clean) @ edgent-connectors-file ---
    [INFO] Deleting /home/jenkins/jenkins-slave/workspace/edgent-dev/platforms/java7/connectors/file/target
    [INFO] 
    [INFO] --- maven-toolchains-plugin:1.1:toolchain (default) @ edgent-connectors-file ---
    [INFO] Required toolchain: jdk [ vendor='oracle' version='1.7' ]
    [INFO] Found matching toolchain for type jdk: JDK[/home/jenkins/tools/java/latest1.7/]
    [INFO] 
    [INFO] --- maven-enforcer-plugin:1.4.1:enforce (enforce-property) @ edgent-connectors-file ---
    [INFO] 
    [INFO] --- jacoco-maven-plugin:0.7.9:prepare-agent (pre-unit-test) @ edgent-connectors-file ---
    [INFO] surefireArgLine set to -javaagent:/home/jenkins/.m2/repository/org/jacoco/org.jacoco.agent/0.7.9/org.jacoco.agent-0.7.9-runtime.jar=destfile=/home/jenkins/jenkins-slave/workspace/edgent-dev/platforms/java7/connectors/file/target/jacoco.exec
    [INFO] 
    [INFO] --- maven-remote-resources-plugin:1.5:process (process-resource-bundles) @ edgent-connectors-file ---
    [INFO] 
    [INFO] --- maven-resources-plugin:2.7:resources (default-resources) @ edgent-connectors-file ---
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [INFO] skip non existing resourceDirectory /home/jenkins/jenkins-slave/workspace/edgent-dev/platforms/java7/connectors/file/src/main/resources
    [INFO] Copying 4 resources
    [INFO] 
    [INFO] --- maven-compiler-plugin:3.6.1:compile (default-compile) @ edgent-connectors-file ---
    [INFO] Toolchain in maven-compiler-plugin: JDK[/home/jenkins/tools/java/latest1.7/]
    [INFO] No sources to compile
    [INFO] 
    [INFO] --- maven-dependency-plugin:3.0.1:unpack (copy) @ edgent-connectors-file ---
    [INFO] Configured Artifact: org.apache.edgent:edgent-connectors-file:1.2.0-SNAPSHOT:jar
    [INFO] Configured Artifact: org.apache.edgent:edgent-connectors-file:tests:1.2.0-SNAPSHOT:jar
    [INFO] Unpacking /home/jenkins/jenkins-slave/workspace/edgent-dev/connectors/file/target/edgent-connectors-file-1.2.0-SNAPSHOT.jar to /home/jenkins/jenkins-slave/workspace/edgent-dev/platforms/java7/connectors/file/target/classes with includes "" and excludes "META-INF/**"
    [INFO] Unpacking /home/jenkins/jenkins-slave/workspace/edgent-dev/connectors/file/target/edgent-connectors-file-1.2.0-SNAPSHOT-tests.jar to /home/jenkins/jenkins-slave/workspace/edgent-dev/platforms/java7/connectors/file/target/test-classes with includes "" and excludes "META-INF/**"
    [INFO] 
    [INFO] --- retrolambda-maven-plugin:2.5.1:process-main (default) @ edgent-connectors-file ---
    [INFO] Retrieving Retrolambda 2.5.1
    [INFO] Configured Artifact: net.orfjackal.retrolambda:retrolambda:2.5.1:jar
    [INFO] Copying retrolambda-2.5.1.jar to /home/jenkins/jenkins-slave/workspace/edgent-dev/platforms/java7/connectors/file/target/retrolambda/retrolambda.jar
    [INFO] Processing classes with Retrolambda
    [INFO] Toolchain in retrolambda-maven-plugin: JDK[/home/jenkins/tools/java/latest1.7/]
    [WARNING] Toolchains are ignored, 'java8home' parameter is set to /home/jenkins/tools/java/latest1.8
    [INFO] Executing tasks
    
    main:
         [exec] Retrolambda 2.5.1
         [exec] 00:00  INFO: Bytecode version: 51 (Java 7)
         [exec] 00:00  INFO: Default methods:  false
         [exec] 00:00  INFO: Input directory:  /home/jenkins/jenkins-slave/workspace/edgent-dev/platforms/java7/connectors/file/target/classes
         [exec] 00:00  INFO: Output directory: /home/jenkins/jenkins-slave/workspace/edgent-dev/platforms/java7/connectors/file/target/classes
    . . .
         [exec] 00:00  INFO: Included files:   all
         [exec] 00:00  INFO: Agent enabled:    true
         [exec] 00:00  INFO: Saving lambda class: org/apache/edgent/connectors/file/FileStreams$$Lambda$1
    . . .
    [INFO] Executed tasks
    [INFO] 
    [INFO] --- maven-resources-plugin:2.7:testResources (default-testResources) @ edgent-connectors-file ---
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [INFO] skip non existing resourceDirectory /home/jenkins/jenkins-slave/workspace/edgent-dev/platforms/java7/connectors/file/src/test/resources
    [INFO] Copying 4 resources
    [INFO] 
    [INFO] --- maven-compiler-plugin:3.6.1:testCompile (default-testCompile) @ edgent-connectors-file ---
    [INFO] Toolchain in maven-compiler-plugin: JDK[/home/jenkins/tools/java/latest1.7/]
    [INFO] No sources to compile
    [INFO] 
    [INFO] --- retrolambda-maven-plugin:2.5.1:process-test (default) @ edgent-connectors-file ---
    [INFO] Retrieving Retrolambda 2.5.1
    [INFO] Configured Artifact: net.orfjackal.retrolambda:retrolambda:2.5.1:jar
    [INFO] Copying retrolambda-2.5.1.jar to /home/jenkins/jenkins-slave/workspace/edgent-dev/platforms/java7/connectors/file/target/retrolambda/retrolambda.jar
    [INFO] Processing classes with Retrolambda
    [INFO] Toolchain in retrolambda-maven-plugin: JDK[/home/jenkins/tools/java/latest1.7/]
    [WARNING] Toolchains are ignored, 'java8home' parameter is set to /home/jenkins/tools/java/latest1.8
    [INFO] Executing tasks
    
    main:
         [exec] Retrolambda 2.5.1
         [exec] 00:00  INFO: Bytecode version: 51 (Java 7)
         [exec] 00:00  INFO: Default methods:  false
         [exec] 00:00  INFO: Input directory:  /home/jenkins/jenkins-slave/workspace/edgent-dev/platforms/java7/connectors/file/target/test-classes
         [exec] 00:00  INFO: Output directory: /home/jenkins/jenkins-slave/workspace/edgent-dev/platforms/java7/connectors/file/target/test-classes
    . . .
         [exec] 00:00  INFO: Included files:   all
         [exec] 00:00  INFO: Agent enabled:    true
         [exec] 00:00  INFO: Saving lambda class: org/apache/edgent/test/connectors/file/FileStreamsTextFileWriterTest$$Lambda$1
    . . .
    [INFO] Executed tasks
    [INFO] 
    [INFO] --- animal-sniffer-maven-plugin:1.15:check (check-jdk-signatures) @ edgent-connectors-file ---
    [INFO] Checking unresolved references to org.codehaus.mojo.signature:java17:1.0
    [INFO] 
    [INFO] --- maven-surefire-plugin:2.20:test (default-test) @ edgent-connectors-file ---
    [INFO] Toolchain in maven-surefire-plugin: JDK[/home/jenkins/tools/java/latest1.7/]
    [INFO] 
    [INFO] -------------------------------------------------------
    [INFO]  T E S T S
    [INFO] -------------------------------------------------------
    [INFO] Running org.apache.edgent.test.connectors.file.FileStreamsGlobalTest
    . . .
    ########## testAllTimeBased
    actFiles: [/tmp/test15917667886213607554txt_20171023_162848, /tmp/test15917667886213607554txt_20171023_162848_1, /tmp/test15917667886213607554txt_20171023_162848_2, /tmp/test15917667886213607554txt_20171023_162848_3]
    expResults: [[1-一二三四五六七八九], [2-一二三四五六七八九], [3-一二三四五六七八九], [4-一二三四五六七八九]]
    checking file /tmp/test15917667886213607554txt_20171023_162848
    [ERROR] Tests run: 22, Failures: 0, Errors: 15, Skipped: 0, Time elapsed: 67.129 s <<< FAILURE! - in org.apache.edgent.test.connectors.file.FileStreamsTextFileWriterGlobalTest
    [ERROR] testManyFilesSlow(org.apache.edgent.test.connectors.file.FileStreamsTextFileWriterGlobalTest)  Time elapsed: 10.337 s  <<< ERROR!
    java.lang.NoSuchMethodError: java.nio.file.Files.newBufferedReader(Ljava/nio/file/Path;)Ljava/io/BufferedReader;
    
    [ERROR] testCycleSizeBased(org.apache.edgent.test.connectors.file.FileStreamsTextFileWriterGlobalTest)  Time elapsed: 2.295 s  <<< ERROR!
    java.lang.NoSuchMethodError: java.nio.file.Files.newBufferedReader(Ljava/nio/file/Path;)Ljava/io/BufferedReader;
    
    ...