Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-55233

email-ext: PowerMock is not compatible with Java 11

    XMLWordPrintable

    Details

    • Similar Issues:
    • Released As:
      2.64

      Description

      Current version of PowerMock used for testing is not compatible with Java 11.  So tests are failing with 

      Caused by: java.lang.IllegalAccessError: class jdk.internal.reflect.ConstructorAccessorImpl loaded by org.powermock.core.classloader.MockClassLoader @7cd1ec54 cannot access jdk/internal/reflect superclass jdk.internal.reflect.MagicAccessorImpl 

      Updating Parent POM to 3.30 to benefit from new versions of the libraries should be sufficient.

        Attachments

          Issue Links

            Activity

            Hide
            oleg_nenashev Oleg Nenashev added a comment -

            For the record, it's better to pick up 3.31 with the "hpi:run" fix

            Show
            oleg_nenashev Oleg Nenashev added a comment - For the record, it's better to pick up 3.31 with the "hpi:run" fix
            Hide
            alecharp Adrien Lecharpentier added a comment - - edited

            Updating to 3.30 is not enough. powermock-reflect depends on objenesis:3.0.1 but the parent-pom set the version to 2.0.6 and the version 3.0.1 is blacklisted. It requires more in-depth search.

            Here is the log of the build with Parent POM 3.30 or 3.31:

            [WARNING] Rule 4: org.apache.maven.plugins.enforcer.RequireUpperBoundDeps failed with message:
            Failed while enforcing RequireUpperBoundDeps. The error(s) are [
            Require upper bound dependencies error for org.objenesis:objenesis:2.6 paths to dependency are:
            +-org.jenkins-ci.plugins:email-ext:2.64-SNAPSHOT
              +-org.mockito:mockito-core:2.23.4
                +-org.objenesis:objenesis:2.6
            and
            +-org.jenkins-ci.plugins:email-ext:2.64-SNAPSHOT
              +-org.powermock:powermock-module-junit4:2.0.0-RC.4
                +-org.powermock:powermock-module-junit4-common:2.0.0-RC.4
                  +-org.powermock:powermock-reflect:2.0.0-RC.4
                    +-org.objenesis:objenesis:2.6 (managed) <-- org.objenesis:objenesis:3.0.1
            ]
            
            Show
            alecharp Adrien Lecharpentier added a comment - - edited Updating to 3.30 is not enough. powermock-reflect depends on objenesis:3.0.1 but the parent-pom set the version to 2.0.6 and the version 3.0.1 is blacklisted. It requires more in-depth search. Here is the log of the build with Parent POM 3.30 or 3.31 : [WARNING] Rule 4: org.apache.maven.plugins.enforcer.RequireUpperBoundDeps failed with message: Failed while enforcing RequireUpperBoundDeps. The error(s) are [ Require upper bound dependencies error for org.objenesis:objenesis:2.6 paths to dependency are: +-org.jenkins-ci.plugins:email-ext:2.64-SNAPSHOT +-org.mockito:mockito-core:2.23.4 +-org.objenesis:objenesis:2.6 and +-org.jenkins-ci.plugins:email-ext:2.64-SNAPSHOT +-org.powermock:powermock-module-junit4:2.0.0-RC.4 +-org.powermock:powermock-module-junit4-common:2.0.0-RC.4 +-org.powermock:powermock-reflect:2.0.0-RC.4 +-org.objenesis:objenesis:2.6 (managed) <-- org.objenesis:objenesis:3.0.1 ]
            Hide
            oleg_nenashev Oleg Nenashev added a comment -

            Adrien Lecharpentier OK, so we need to upgrade the Plugin POM. I didn't catch this issue, but I believe it depends on the dependency declaration order.

            Show
            oleg_nenashev Oleg Nenashev added a comment - Adrien Lecharpentier OK, so we need to upgrade the Plugin POM. I didn't catch this issue, but I believe it depends on the dependency declaration order.
            Hide
            alecharp Adrien Lecharpentier added a comment -

            Oleg Nenashev that would be odd but I can try that. 

            Show
            alecharp Adrien Lecharpentier added a comment - Oleg Nenashev that would be odd but I can try that. 
            Hide
            oleg_nenashev Oleg Nenashev added a comment -

            Anyway, the dependency issue is fixed in 3.32

            Show
            oleg_nenashev Oleg Nenashev added a comment - Anyway, the dependency issue is fixed in 3.32
            Hide
            alecharp Adrien Lecharpentier added a comment -

            I created a PR to update POM parent, which resolve the current issue.

            Show
            alecharp Adrien Lecharpentier added a comment - I created a PR to update POM parent, which resolve the current issue.
            Hide
            alecharp Adrien Lecharpentier added a comment -

            I fixed the problem. Mockito matcher anyMap is not matching null since version 2.1.0, according to the javadoc.
            Replacing the matcher on the addRecipient in MockUtilities by any solves the problem.

            Show
            alecharp Adrien Lecharpentier added a comment - I fixed the problem. Mockito matcher anyMap is not matching null since version 2.1.0 , according to the javadoc. Replacing the matcher on the addRecipient in MockUtilities by any solves the problem.

              People

              • Assignee:
                alecharp Adrien Lecharpentier
                Reporter:
                alecharp Adrien Lecharpentier
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: