question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Linkage Enforcer rule breaks on "API incompatibility was encountered"

See original GitHub issue

While trying to run the linkage-checker-enforcer-rules for Apache HBase I found a weird error:

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for Apache HBase Third-Party Libs 3.1.2-SNAPSHOT:
[INFO] 
[INFO] Apache HBase Third-Party Libs ...................... SUCCESS [  0.894 s]
[INFO] Apache HBase Patched and Relocated (Shaded) Protobuf SUCCESS [  7.444 s]
[INFO] Apache HBase Relocated (Shaded) Netty Libs ......... FAILURE [  6.005 s]
[INFO] Apache HBase Relocated (Shaded) GSON Libs .......... SKIPPED
[INFO] Apache HBase Relocated (Shaded) Third-party Miscellaneous Libs SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  14.444 s
[INFO] Finished at: 2020-01-08T15:39:17+01:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M3:enforce (enforce-linkage-checker) on project hbase-shaded-netty: Execution enforce-linkage-checker of goal org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M3:enforce failed: An API incompatibility was encountered while executing org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M3:enforce: java.lang.IllegalAccessError: tried to access method org.eclipse.aether.util.ChecksumUtils.toHexString([B)Ljava/lang/String; from class org.eclipse.aether.connector.basic.ChecksumCalculator$Checksum
[ERROR] -----------------------------------------------------
[ERROR] realm =    plugin>org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M3
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/home/ismael/.m2/repository/org/apache/maven/plugins/maven-enforcer-plugin/3.0.0-M3/maven-enforcer-plugin-3.0.0-M3.jar
[ERROR] urls[1] = file:/home/ismael/.m2/repository/org/codehaus/mojo/extra-enforcer-rules/1.2/extra-enforcer-rules-1.2.jar
[ERROR] urls[2] = file:/home/ismael/.m2/repository/org/apache/maven/shared/maven-dependency-tree/2.2/maven-dependency-tree-2.2.jar
[ERROR] urls[3] = file:/home/ismael/.m2/repository/org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar
[ERROR] urls[4] = file:/home/ismael/.m2/repository/junit/junit/4.11/junit-4.11.jar
[ERROR] urls[5] = file:/home/ismael/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar
[ERROR] urls[6] = file:/home/ismael/.m2/repository/commons-codec/commons-codec/1.12/commons-codec-1.12.jar
[ERROR] urls[7] = file:/home/ismael/.m2/repository/org/apache/maven/shared/maven-common-artifact-filters/3.1.0/maven-common-artifact-filters-3.1.0.jar
[ERROR] urls[8] = file:/home/ismael/.m2/repository/org/apache/maven/shared/maven-shared-utils/3.1.0/maven-shared-utils-3.1.0.jar
[ERROR] urls[9] = file:/home/ismael/.m2/repository/commons-io/commons-io/2.5/commons-io-2.5.jar
[ERROR] urls[10] = file:/home/ismael/.m2/repository/com/ibm/icu/icu4j/56.1/icu4j-56.1.jar
[ERROR] urls[11] = file:/home/ismael/.m2/repository/com/google/cloud/tools/linkage-checker-enforcer-rules/1.1.0/linkage-checker-enforcer-rules-1.1.0.jar
[ERROR] urls[12] = file:/home/ismael/.m2/repository/com/google/cloud/tools/dependencies/1.1.0/dependencies-1.1.0.jar
[ERROR] urls[13] = file:/home/ismael/.m2/repository/org/apache/bcel/bcel/6.4.0/bcel-6.4.0.jar
[ERROR] urls[14] = file:/home/ismael/.m2/repository/org/apache/maven/resolver/maven-resolver-transport-http/1.4.1/maven-resolver-transport-http-1.4.1.jar
[ERROR] urls[15] = file:/home/ismael/.m2/repository/org/apache/httpcomponents/httpcore/4.4.10/httpcore-4.4.10.jar
[ERROR] urls[16] = file:/home/ismael/.m2/repository/org/apache/maven/resolver/maven-resolver-transport-file/1.4.1/maven-resolver-transport-file-1.4.1.jar
[ERROR] urls[17] = file:/home/ismael/.m2/repository/org/apache/maven/resolver/maven-resolver-connector-basic/1.4.1/maven-resolver-connector-basic-1.4.1.jar
[ERROR] urls[18] = file:/home/ismael/.m2/repository/org/apache/httpcomponents/httpclient/4.5.6/httpclient-4.5.6.jar
[ERROR] urls[19] = file:/home/ismael/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar
[ERROR] urls[20] = file:/home/ismael/.m2/repository/commons-cli/commons-cli/1.4/commons-cli-1.4.jar
[ERROR] urls[21] = file:/home/ismael/.m2/repository/com/google/guava/guava/28.0-jre/guava-28.0-jre.jar
[ERROR] urls[22] = file:/home/ismael/.m2/repository/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar
[ERROR] urls[23] = file:/home/ismael/.m2/repository/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
[ERROR] urls[24] = file:/home/ismael/.m2/repository/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar
[ERROR] urls[25] = file:/home/ismael/.m2/repository/org/checkerframework/checker-qual/2.8.1/checker-qual-2.8.1.jar
[ERROR] urls[26] = file:/home/ismael/.m2/repository/com/google/errorprone/error_prone_annotations/2.3.2/error_prone_annotations-2.3.2.jar
[ERROR] urls[27] = file:/home/ismael/.m2/repository/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar
[ERROR] urls[28] = file:/home/ismael/.m2/repository/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17.jar
[ERROR] urls[29] = file:/home/ismael/.m2/repository/org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.jar
[ERROR] urls[30] = file:/home/ismael/.m2/repository/org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar
[ERROR] urls[31] = file:/home/ismael/.m2/repository/org/sonatype/aether/aether-util/1.7/aether-util-1.7.jar
[ERROR] urls[32] = file:/home/ismael/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar
[ERROR] urls[33] = file:/home/ismael/.m2/repository/org/codehaus/plexus/plexus-component-annotations/1.7.1/plexus-component-annotations-1.7.1.jar
[ERROR] urls[34] = file:/home/ismael/.m2/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar
[ERROR] urls[35] = file:/home/ismael/.m2/repository/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar
[ERROR] urls[36] = file:/home/ismael/.m2/repository/org/codehaus/plexus/plexus-utils/3.3.0/plexus-utils-3.3.0.jar
[ERROR] urls[37] = file:/home/ismael/.m2/repository/org/apache/maven/enforcer/enforcer-api/3.0.0-M3/enforcer-api-3.0.0-M3.jar
[ERROR] urls[38] = file:/home/ismael/.m2/repository/org/apache/maven/enforcer/enforcer-rules/3.0.0-M3/enforcer-rules-3.0.0-M3.jar
[ERROR] urls[39] = file:/home/ismael/.m2/repository/org/apache/commons/commons-lang3/3.8.1/commons-lang3-3.8.1.jar
[ERROR] urls[40] = file:/home/ismael/.m2/repository/org/beanshell/bsh/2.0b4/bsh-2.0b4.jar
[ERROR] urls[41] = file:/home/ismael/.m2/repository/org/apache/maven/resolver/maven-resolver-util/1.4.1/maven-resolver-util-1.4.1.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import  from realm ClassRealm[maven.api, parent: null]]
[ERROR] 
[ERROR] -----------------------------------------------------
[ERROR] 
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M3:enforce (enforce-linkage-checker) on project hbase-shaded-netty: Execution enforce-linkage-checker of goal org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M3:enforce failed: An API incompatibility was encountered while executing org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M3:enforce: java.lang.IllegalAccessError: tried to access method org.eclipse.aether.util.ChecksumUtils.toHexString([B)Ljava/lang/String; from class org.eclipse.aether.connector.basic.ChecksumCalculator$Checksum
-----------------------------------------------------
realm =    plugin>org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M3
strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
urls[0] = file:/home/ismael/.m2/repository/org/apache/maven/plugins/maven-enforcer-plugin/3.0.0-M3/maven-enforcer-plugin-3.0.0-M3.jar
urls[1] = file:/home/ismael/.m2/repository/org/codehaus/mojo/extra-enforcer-rules/1.2/extra-enforcer-rules-1.2.jar
urls[2] = file:/home/ismael/.m2/repository/org/apache/maven/shared/maven-dependency-tree/2.2/maven-dependency-tree-2.2.jar
urls[3] = file:/home/ismael/.m2/repository/org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar
urls[4] = file:/home/ismael/.m2/repository/junit/junit/4.11/junit-4.11.jar
urls[5] = file:/home/ismael/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar
urls[6] = file:/home/ismael/.m2/repository/commons-codec/commons-codec/1.12/commons-codec-1.12.jar
urls[7] = file:/home/ismael/.m2/repository/org/apache/maven/shared/maven-common-artifact-filters/3.1.0/maven-common-artifact-filters-3.1.0.jar
urls[8] = file:/home/ismael/.m2/repository/org/apache/maven/shared/maven-shared-utils/3.1.0/maven-shared-utils-3.1.0.jar
urls[9] = file:/home/ismael/.m2/repository/commons-io/commons-io/2.5/commons-io-2.5.jar
urls[10] = file:/home/ismael/.m2/repository/com/ibm/icu/icu4j/56.1/icu4j-56.1.jar
urls[11] = file:/home/ismael/.m2/repository/com/google/cloud/tools/linkage-checker-enforcer-rules/1.1.0/linkage-checker-enforcer-rules-1.1.0.jar
urls[12] = file:/home/ismael/.m2/repository/com/google/cloud/tools/dependencies/1.1.0/dependencies-1.1.0.jar
urls[13] = file:/home/ismael/.m2/repository/org/apache/bcel/bcel/6.4.0/bcel-6.4.0.jar
urls[14] = file:/home/ismael/.m2/repository/org/apache/maven/resolver/maven-resolver-transport-http/1.4.1/maven-resolver-transport-http-1.4.1.jar
urls[15] = file:/home/ismael/.m2/repository/org/apache/httpcomponents/httpcore/4.4.10/httpcore-4.4.10.jar
urls[16] = file:/home/ismael/.m2/repository/org/apache/maven/resolver/maven-resolver-transport-file/1.4.1/maven-resolver-transport-file-1.4.1.jar
urls[17] = file:/home/ismael/.m2/repository/org/apache/maven/resolver/maven-resolver-connector-basic/1.4.1/maven-resolver-connector-basic-1.4.1.jar
urls[18] = file:/home/ismael/.m2/repository/org/apache/httpcomponents/httpclient/4.5.6/httpclient-4.5.6.jar
urls[19] = file:/home/ismael/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar
urls[20] = file:/home/ismael/.m2/repository/commons-cli/commons-cli/1.4/commons-cli-1.4.jar
urls[21] = file:/home/ismael/.m2/repository/com/google/guava/guava/28.0-jre/guava-28.0-jre.jar
urls[22] = file:/home/ismael/.m2/repository/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar
urls[23] = file:/home/ismael/.m2/repository/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
urls[24] = file:/home/ismael/.m2/repository/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar
urls[25] = file:/home/ismael/.m2/repository/org/checkerframework/checker-qual/2.8.1/checker-qual-2.8.1.jar
urls[26] = file:/home/ismael/.m2/repository/com/google/errorprone/error_prone_annotations/2.3.2/error_prone_annotations-2.3.2.jar
urls[27] = file:/home/ismael/.m2/repository/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar
urls[28] = file:/home/ismael/.m2/repository/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17.jar
urls[29] = file:/home/ismael/.m2/repository/org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.jar
urls[30] = file:/home/ismael/.m2/repository/org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar
urls[31] = file:/home/ismael/.m2/repository/org/sonatype/aether/aether-util/1.7/aether-util-1.7.jar
urls[32] = file:/home/ismael/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar
urls[33] = file:/home/ismael/.m2/repository/org/codehaus/plexus/plexus-component-annotations/1.7.1/plexus-component-annotations-1.7.1.jar
urls[34] = file:/home/ismael/.m2/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar
urls[35] = file:/home/ismael/.m2/repository/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar
urls[36] = file:/home/ismael/.m2/repository/org/codehaus/plexus/plexus-utils/3.3.0/plexus-utils-3.3.0.jar
urls[37] = file:/home/ismael/.m2/repository/org/apache/maven/enforcer/enforcer-api/3.0.0-M3/enforcer-api-3.0.0-M3.jar
urls[38] = file:/home/ismael/.m2/repository/org/apache/maven/enforcer/enforcer-rules/3.0.0-M3/enforcer-rules-3.0.0-M3.jar
urls[39] = file:/home/ismael/.m2/repository/org/apache/commons/commons-lang3/3.8.1/commons-lang3-3.8.1.jar
urls[40] = file:/home/ismael/.m2/repository/org/beanshell/bsh/2.0b4/bsh-2.0b4.jar
urls[41] = file:/home/ismael/.m2/repository/org/apache/maven/resolver/maven-resolver-util/1.4.1/maven-resolver-util-1.4.1.jar
Number of foreign imports: 1
import: Entry[import  from realm ClassRealm[maven.api, parent: null]]

-----------------------------------------------------

    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution enforce-linkage-checker of goal org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M3:enforce failed: An API incompatibility was encountered while executing org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M3:enforce: java.lang.IllegalAccessError: tried to access method org.eclipse.aether.util.ChecksumUtils.toHexString([B)Ljava/lang/String; from class org.eclipse.aether.connector.basic.ChecksumCalculator$Checksum
-----------------------------------------------------
realm =    plugin>org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M3
strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
urls[0] = file:/home/ismael/.m2/repository/org/apache/maven/plugins/maven-enforcer-plugin/3.0.0-M3/maven-enforcer-plugin-3.0.0-M3.jar
urls[1] = file:/home/ismael/.m2/repository/org/codehaus/mojo/extra-enforcer-rules/1.2/extra-enforcer-rules-1.2.jar
urls[2] = file:/home/ismael/.m2/repository/org/apache/maven/shared/maven-dependency-tree/2.2/maven-dependency-tree-2.2.jar
urls[3] = file:/home/ismael/.m2/repository/org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar
urls[4] = file:/home/ismael/.m2/repository/junit/junit/4.11/junit-4.11.jar
urls[5] = file:/home/ismael/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar
urls[6] = file:/home/ismael/.m2/repository/commons-codec/commons-codec/1.12/commons-codec-1.12.jar
urls[7] = file:/home/ismael/.m2/repository/org/apache/maven/shared/maven-common-artifact-filters/3.1.0/maven-common-artifact-filters-3.1.0.jar
urls[8] = file:/home/ismael/.m2/repository/org/apache/maven/shared/maven-shared-utils/3.1.0/maven-shared-utils-3.1.0.jar
urls[9] = file:/home/ismael/.m2/repository/commons-io/commons-io/2.5/commons-io-2.5.jar
urls[10] = file:/home/ismael/.m2/repository/com/ibm/icu/icu4j/56.1/icu4j-56.1.jar
urls[11] = file:/home/ismael/.m2/repository/com/google/cloud/tools/linkage-checker-enforcer-rules/1.1.0/linkage-checker-enforcer-rules-1.1.0.jar
urls[12] = file:/home/ismael/.m2/repository/com/google/cloud/tools/dependencies/1.1.0/dependencies-1.1.0.jar
urls[13] = file:/home/ismael/.m2/repository/org/apache/bcel/bcel/6.4.0/bcel-6.4.0.jar
urls[14] = file:/home/ismael/.m2/repository/org/apache/maven/resolver/maven-resolver-transport-http/1.4.1/maven-resolver-transport-http-1.4.1.jar
urls[15] = file:/home/ismael/.m2/repository/org/apache/httpcomponents/httpcore/4.4.10/httpcore-4.4.10.jar
urls[16] = file:/home/ismael/.m2/repository/org/apache/maven/resolver/maven-resolver-transport-file/1.4.1/maven-resolver-transport-file-1.4.1.jar
urls[17] = file:/home/ismael/.m2/repository/org/apache/maven/resolver/maven-resolver-connector-basic/1.4.1/maven-resolver-connector-basic-1.4.1.jar
urls[18] = file:/home/ismael/.m2/repository/org/apache/httpcomponents/httpclient/4.5.6/httpclient-4.5.6.jar
urls[19] = file:/home/ismael/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar
urls[20] = file:/home/ismael/.m2/repository/commons-cli/commons-cli/1.4/commons-cli-1.4.jar
urls[21] = file:/home/ismael/.m2/repository/com/google/guava/guava/28.0-jre/guava-28.0-jre.jar
urls[22] = file:/home/ismael/.m2/repository/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar
urls[23] = file:/home/ismael/.m2/repository/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
urls[24] = file:/home/ismael/.m2/repository/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar
urls[25] = file:/home/ismael/.m2/repository/org/checkerframework/checker-qual/2.8.1/checker-qual-2.8.1.jar
urls[26] = file:/home/ismael/.m2/repository/com/google/errorprone/error_prone_annotations/2.3.2/error_prone_annotations-2.3.2.jar
urls[27] = file:/home/ismael/.m2/repository/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar
urls[28] = file:/home/ismael/.m2/repository/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17.jar
urls[29] = file:/home/ismael/.m2/repository/org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.jar
urls[30] = file:/home/ismael/.m2/repository/org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar
urls[31] = file:/home/ismael/.m2/repository/org/sonatype/aether/aether-util/1.7/aether-util-1.7.jar
urls[32] = file:/home/ismael/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar
urls[33] = file:/home/ismael/.m2/repository/org/codehaus/plexus/plexus-component-annotations/1.7.1/plexus-component-annotations-1.7.1.jar
urls[34] = file:/home/ismael/.m2/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar
urls[35] = file:/home/ismael/.m2/repository/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar
urls[36] = file:/home/ismael/.m2/repository/org/codehaus/plexus/plexus-utils/3.3.0/plexus-utils-3.3.0.jar
urls[37] = file:/home/ismael/.m2/repository/org/apache/maven/enforcer/enforcer-api/3.0.0-M3/enforcer-api-3.0.0-M3.jar
urls[38] = file:/home/ismael/.m2/repository/org/apache/maven/enforcer/enforcer-rules/3.0.0-M3/enforcer-rules-3.0.0-M3.jar
urls[39] = file:/home/ismael/.m2/repository/org/apache/commons/commons-lang3/3.8.1/commons-lang3-3.8.1.jar
urls[40] = file:/home/ismael/.m2/repository/org/beanshell/bsh/2.0b4/bsh-2.0b4.jar
urls[41] = file:/home/ismael/.m2/repository/org/apache/maven/resolver/maven-resolver-util/1.4.1/maven-resolver-util-1.4.1.jar
Number of foreign imports: 1
import: Entry[import  from realm ClassRealm[maven.api, parent: null]]

-----------------------------------------------------

    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:186)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.apache.maven.plugin.PluginContainerException: An API incompatibility was encountered while executing org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M3:enforce: java.lang.IllegalAccessError: tried to access method org.eclipse.aether.util.ChecksumUtils.toHexString([B)Ljava/lang/String; from class org.eclipse.aether.connector.basic.ChecksumCalculator$Checksum
-----------------------------------------------------
realm =    plugin>org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M3
strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
urls[0] = file:/home/ismael/.m2/repository/org/apache/maven/plugins/maven-enforcer-plugin/3.0.0-M3/maven-enforcer-plugin-3.0.0-M3.jar
urls[1] = file:/home/ismael/.m2/repository/org/codehaus/mojo/extra-enforcer-rules/1.2/extra-enforcer-rules-1.2.jar
urls[2] = file:/home/ismael/.m2/repository/org/apache/maven/shared/maven-dependency-tree/2.2/maven-dependency-tree-2.2.jar
urls[3] = file:/home/ismael/.m2/repository/org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar
urls[4] = file:/home/ismael/.m2/repository/junit/junit/4.11/junit-4.11.jar
urls[5] = file:/home/ismael/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar
urls[6] = file:/home/ismael/.m2/repository/commons-codec/commons-codec/1.12/commons-codec-1.12.jar
urls[7] = file:/home/ismael/.m2/repository/org/apache/maven/shared/maven-common-artifact-filters/3.1.0/maven-common-artifact-filters-3.1.0.jar
urls[8] = file:/home/ismael/.m2/repository/org/apache/maven/shared/maven-shared-utils/3.1.0/maven-shared-utils-3.1.0.jar
urls[9] = file:/home/ismael/.m2/repository/commons-io/commons-io/2.5/commons-io-2.5.jar
urls[10] = file:/home/ismael/.m2/repository/com/ibm/icu/icu4j/56.1/icu4j-56.1.jar
urls[11] = file:/home/ismael/.m2/repository/com/google/cloud/tools/linkage-checker-enforcer-rules/1.1.0/linkage-checker-enforcer-rules-1.1.0.jar
urls[12] = file:/home/ismael/.m2/repository/com/google/cloud/tools/dependencies/1.1.0/dependencies-1.1.0.jar
urls[13] = file:/home/ismael/.m2/repository/org/apache/bcel/bcel/6.4.0/bcel-6.4.0.jar
urls[14] = file:/home/ismael/.m2/repository/org/apache/maven/resolver/maven-resolver-transport-http/1.4.1/maven-resolver-transport-http-1.4.1.jar
urls[15] = file:/home/ismael/.m2/repository/org/apache/httpcomponents/httpcore/4.4.10/httpcore-4.4.10.jar
urls[16] = file:/home/ismael/.m2/repository/org/apache/maven/resolver/maven-resolver-transport-file/1.4.1/maven-resolver-transport-file-1.4.1.jar
urls[17] = file:/home/ismael/.m2/repository/org/apache/maven/resolver/maven-resolver-connector-basic/1.4.1/maven-resolver-connector-basic-1.4.1.jar
urls[18] = file:/home/ismael/.m2/repository/org/apache/httpcomponents/httpclient/4.5.6/httpclient-4.5.6.jar
urls[19] = file:/home/ismael/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar
urls[20] = file:/home/ismael/.m2/repository/commons-cli/commons-cli/1.4/commons-cli-1.4.jar
urls[21] = file:/home/ismael/.m2/repository/com/google/guava/guava/28.0-jre/guava-28.0-jre.jar
urls[22] = file:/home/ismael/.m2/repository/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar
urls[23] = file:/home/ismael/.m2/repository/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
urls[24] = file:/home/ismael/.m2/repository/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar
urls[25] = file:/home/ismael/.m2/repository/org/checkerframework/checker-qual/2.8.1/checker-qual-2.8.1.jar
urls[26] = file:/home/ismael/.m2/repository/com/google/errorprone/error_prone_annotations/2.3.2/error_prone_annotations-2.3.2.jar
urls[27] = file:/home/ismael/.m2/repository/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar
urls[28] = file:/home/ismael/.m2/repository/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17.jar
urls[29] = file:/home/ismael/.m2/repository/org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.jar
urls[30] = file:/home/ismael/.m2/repository/org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar
urls[31] = file:/home/ismael/.m2/repository/org/sonatype/aether/aether-util/1.7/aether-util-1.7.jar
urls[32] = file:/home/ismael/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar
urls[33] = file:/home/ismael/.m2/repository/org/codehaus/plexus/plexus-component-annotations/1.7.1/plexus-component-annotations-1.7.1.jar
urls[34] = file:/home/ismael/.m2/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar
urls[35] = file:/home/ismael/.m2/repository/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar
urls[36] = file:/home/ismael/.m2/repository/org/codehaus/plexus/plexus-utils/3.3.0/plexus-utils-3.3.0.jar
urls[37] = file:/home/ismael/.m2/repository/org/apache/maven/enforcer/enforcer-api/3.0.0-M3/enforcer-api-3.0.0-M3.jar
urls[38] = file:/home/ismael/.m2/repository/org/apache/maven/enforcer/enforcer-rules/3.0.0-M3/enforcer-rules-3.0.0-M3.jar
urls[39] = file:/home/ismael/.m2/repository/org/apache/commons/commons-lang3/3.8.1/commons-lang3-3.8.1.jar
urls[40] = file:/home/ismael/.m2/repository/org/beanshell/bsh/2.0b4/bsh-2.0b4.jar
urls[41] = file:/home/ismael/.m2/repository/org/apache/maven/resolver/maven-resolver-util/1.4.1/maven-resolver-util-1.4.1.jar
Number of foreign imports: 1
import: Entry[import  from realm ClassRealm[maven.api, parent: null]]

-----------------------------------------------------

    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:184)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: java.lang.IllegalAccessError: tried to access method org.eclipse.aether.util.ChecksumUtils.toHexString([B)Ljava/lang/String; from class org.eclipse.aether.connector.basic.ChecksumCalculator$Checksum
    at org.eclipse.aether.connector.basic.ChecksumCalculator$Checksum.get (ChecksumCalculator.java:100)
    at org.eclipse.aether.connector.basic.ChecksumCalculator.get (ChecksumCalculator.java:213)
    at org.eclipse.aether.connector.basic.TransferTransportListener.getChecksums (TransferTransportListener.java:134)
    at org.eclipse.aether.connector.basic.BasicRepositoryConnector$GetTaskRunner.runTask (BasicRepositoryConnector.java:460)
    at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run (BasicRepositoryConnector.java:364)
    at org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run (RunnableErrorForwarder.java:67)
    at org.eclipse.aether.connector.basic.BasicRepositoryConnector$DirectExecutor.execute (BasicRepositoryConnector.java:644)
    at org.eclipse.aether.connector.basic.BasicRepositoryConnector.get (BasicRepositoryConnector.java:262)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads (DefaultArtifactResolver.java:499)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve (DefaultArtifactResolver.java:401)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts (DefaultArtifactResolver.java:229)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact (DefaultArtifactResolver.java:207)
    at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom (DefaultArtifactDescriptorReader.java:240)
    at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor (DefaultArtifactDescriptorReader.java:171)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.resolveCachedArtifactDescriptor (DefaultDependencyCollector.java:541)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.getArtifactDescriptorResult (DefaultDependencyCollector.java:524)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:412)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:365)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.process (DefaultDependencyCollector.java:352)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.doRecurse (DefaultDependencyCollector.java:509)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:461)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:365)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.process (DefaultDependencyCollector.java:352)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.doRecurse (DefaultDependencyCollector.java:509)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:461)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:365)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.process (DefaultDependencyCollector.java:352)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.doRecurse (DefaultDependencyCollector.java:509)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:461)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:365)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.process (DefaultDependencyCollector.java:352)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.collectDependencies (DefaultDependencyCollector.java:254)
    at org.eclipse.aether.internal.impl.DefaultRepositorySystem.collectDependencies (DefaultRepositorySystem.java:284)
    at org.apache.maven.project.DefaultProjectDependenciesResolver.resolve (DefaultProjectDependenciesResolver.java:169)
    at com.google.cloud.tools.dependencies.enforcer.LinkageCheckerRule.findProjectClasspath (LinkageCheckerRule.java:261)
    at com.google.cloud.tools.dependencies.enforcer.LinkageCheckerRule.execute (LinkageCheckerRule.java:169)
    at org.apache.maven.plugins.enforcer.EnforceMojo.execute (EnforceMojo.java:205)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
[ERROR] 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginContainerException
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <args> -rf :hbase-shaded-netty

I am using Maven 3.6.1 and the recommended versions of the enforcer-rules and linkage rule. Current config: https://github.com/iemejia/hbase-thirdparty/blob/4bb72d454ef148544ab5798d770f587198607dfa/pom.xml#L237

You can reproduce by cloning this repo’s https://github.com/iemejia/hbase-thirdparty and running mvn clean verify

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Comments:5 (4 by maintainers)

github_iconTop GitHub Comments

1reaction
iemejiacommented, Jan 8, 2020

Silly me, I forgot to check that the other dependency could be leaking the wrong class. Thanks a lot for the solution @suztomo. Closing the issue now since this is not an issue of this project. And btw. Thanks also for moving this up in MSHARED, awesome!

1reaction
suztomocommented, Jan 8, 2020
[INFO] org.codehaus.mojo:extra-enforcer-rules:jar:1.3-SNAPSHOT
[INFO] +- org.apache.maven.shared:maven-dependency-tree:jar:2.1:compile
[INFO] |  \- org.eclipse.aether:aether-util:jar:0.9.0.M2:compile

org.apache.maven.shared:maven-dependency-tree:3.0.1 (latest) still uses aether-util:0.9.0.M2 . I will file a PR on the repository.

Read more comments on GitHub >

github_iconTop Results From Across the Web

build failure for tinkerpop 3.4.0-rc2: API incompatibility?
I'm unable to build Tinkerpop 3.4.0-rc2 with mvn clean install. The error appears to be. An API incompatibility was encountered while executing org.apache.maven ......
Read more >
[jira] [Closed] (MENFORCER-362) requireJavaVersion rule ...
Resolution: Invalid > requireJavaVersion rule breaks with Java 15 ... failed: An API > incompatibility was encountered while executing ...
Read more >
"An API incompatibility was encountered while executing org ...
You are using Exchange Maven Facade v3 and getting the error from the subject. This article explains the possible cause and its solution....
Read more >
Squash Java Linkage Bugs Before They Bite | Google Cloud
This incompatibility between libraries is called a linkage error because one ... The Linkage Checker Enforcer Rule is a new rule the Maven ......
Read more >
API Change that breaks at Runtime - smartics
Last week I watched a video showing a talk by Kevin Bourrillion introducing Guava, a set of open source core libraries used internally...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found