Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions hbase-build-configuration/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,8 @@
<arg>-XDcompilePolicy=simple</arg>
<!-- All -Xep need to be on single line see: https://github.com/google/error-prone/pull/1115 -->
<arg>-Xplugin:ErrorProne -XepDisableWarningsInGeneratedCode -XepExcludedPaths:.*/target/.* -Xep:FallThrough:OFF -Xep:MutablePublicArray:OFF -Xep:ClassNewInstance:ERROR -Xep:MissingDefault:ERROR -Xep:BanJNDI:WARN</arg>
<!-- Required by error prone >= 2.36.0. See https://github.com/google/error-prone/commit/e71db1f369a9367f6f2db34c4fbd006b6d6238fd !-->
<arg>--should-stop=ifError=FLOW</arg>
</compilerArgs>
<annotationProcessorPaths>
<path>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,8 @@ allowed_expr+="|^PropertyList-1.0.dtd$"
# Shaded jetty resources
allowed_expr+="|^about.html$"
allowed_expr+="|^jetty-dir.css$"

# Coming from Guava, see https://github.com/google/guava/commit/2cc8c5eddb587db3ac12dacdd5563e79a4681ec4
allowed_expr+="|^org/jspecify/$|^org/jspecify/annotations/$|^org/jspecify/annotations/.*\.class$"

if [ -n "${allow_hadoop}" ]; then
# * classes in packages that start with org.apache.hadoop, which by
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,8 @@ allowed_expr+="|^PropertyList-1.0.dtd$"
# Shaded jetty resources
allowed_expr+="|^about.html$"
allowed_expr+="|^jetty-dir.css$"

# Coming from Guava, see https://github.com/google/guava/commit/2cc8c5eddb587db3ac12dacdd5563e79a4681ec4
allowed_expr+="|^org/jspecify/$|^org/jspecify/annotations/$|^org/jspecify/annotations/.*\.class$"

if [ -n "${allow_hadoop}" ]; then
# * classes in packages that start with org.apache.hadoop, which by
Expand Down
2 changes: 1 addition & 1 deletion hbase-shaded/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.5.1</version>
<version>3.6.0</version>
<executions>
<execution>
<id>aggregate-into-a-jar-with-relocated-third-parties</id>
Expand Down
14 changes: 8 additions & 6 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -566,7 +566,7 @@
in the dependencyManagement section as it could still lead to different versions of netty
modules and cause trouble if we only rely on transitive dependencies.
-->
<netty4.version>4.1.119.Final</netty4.version>
<netty4.version>4.1.121.Final</netty4.version>
<!-- end HBASE-15925 default hadoop compatibility values -->
<audience-annotations.version>0.13.0</audience-annotations.version>
<!--
Expand All @@ -589,8 +589,8 @@
Note that the version of jackson-[annotations,core,databind] must be kept in sync with the
version of jackson-jaxrs-json-provider shipped in hbase-thirdparty.
-->
<jackson.version>2.17.2</jackson.version>
<jackson.databind.version>2.17.2</jackson.databind.version>
<jackson.version>2.19.0</jackson.version>
<jackson.databind.version>2.19.0</jackson.databind.version>
<jaxb-api.version>2.3.1</jaxb-api.version>
<servlet.api.version>3.1.0</servlet.api.version>
<wx.rs.api.version>2.1.1</wx.rs.api.version>
Expand All @@ -612,7 +612,7 @@
Version of protobuf that hbase uses internally (we shade our pb) Must match what is out
in hbase-thirdparty include.
-->
<internal.protobuf.version>4.28.2</internal.protobuf.version>
<internal.protobuf.version>4.30.2</internal.protobuf.version>
<protobuf.plugin.version>0.6.1</protobuf.plugin.version>
<thrift.path>thrift</thrift.path>
<thrift.version>0.14.1</thrift.version>
Expand All @@ -639,7 +639,9 @@
-->
<checkstyle.version>8.29</checkstyle.version>
<exec.maven.version>3.1.0</exec.maven.version>
<error-prone.version>2.28.0</error-prone.version>
<!-- Error Prone 2.31.0 is the latest version which supports running on JDK 11, see
https://github.com/google/error-prone/releases/tag/v2.31.0 for details -->
<error-prone.version>2.31.0</error-prone.version>
Copy link
Contributor Author

@NihalJain NihalJain May 20, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Refer https://errorprone.info/docs/installation

We cannot go any beyond 2.31.0 on branch-2, as otherwise compile fails with error:

[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] An unknown compilation problem occurred
[INFO] 1 error
[INFO] -------------------------------------------------------------
compiler message file broken: key=compiler.misc.msg.bug arguments=11.0.23, {1}, {2}, {3}, {4}, {5}, {6}, {7}
java.lang.UnsupportedClassVersionError: com/google/errorprone/ErrorProneJavacPlugin has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0
	at java.base/java.lang.ClassLoader.defineClass1(Native Method)
	at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1022)
	at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
	at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:555)
	at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:458)
	at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:452)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:451)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:594)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:527)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:398)
	at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.nextProviderClass(ServiceLoader.java:1210)
	at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(ServiceLoader.java:1221)
	at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(ServiceLoader.java:1265)
	at java.base/java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1300)
	at java.base/java.util.ServiceLoader$3.hasNext(ServiceLoader.java:1385)
	at jdk.compiler/com.sun.tools.javac.api.BasicJavacTask.initPlugins(BasicJavacTask.java:210)
	at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.prepareCompiler(JavacTaskImpl.java:199)
	at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0(JavacTaskImpl.java:101)
	at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.handleExceptions(JavacTaskImpl.java:147)
	at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:100)
	at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:94)
	at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:126)
	at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile(JavacCompiler.java:174)
	at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:1134)
	at org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:187)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:126)
	at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2(MojoExecutor.java:328)
	at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute(MojoExecutor.java:316)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:174)
	at org.apache.maven.lifecycle.internal.MojoExecutor.access$000(MojoExecutor.java:75)
	at org.apache.maven.lifecycle.internal.MojoExecutor$1.run(MojoExecutor.java:162)
	at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute(DefaultMojosExecutionStrategy.java:39)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:159)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:105)
	at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call(MultiThreadedBuilder.java:193)
	at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call(MultiThreadedBuilder.java:180)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)

Ref: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7002/1/artifact/yetus-general-check/output/patch-compile-root.txt

Also, we have some additional changes setup for plugin in master lets it run though. See #6001

CC: @stoty @ndimiduk @Apache9

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, we have some additional changes setup for plugin in master lets it run though. See #6001

We run errorProne with JDK17 in master hence it passes through, therefore copying plugin changes in branch-2 is no good!

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At least for pre commit build, we use JDK11 for the general check, so there is no problem to go beyond error prone 2.31. And for normal builds, we do not enable error prone plugin so there is also no problem to build with JDK8. We can document this out.

Copy link
Contributor Author

@NihalJain NihalJain Jun 2, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2.31.0 is the last supported JDK 11 compliant version, we had set this to 2.38.0 earlier, build were failing with the above mentioned error, hence moved to the latest supported one. For master we are on 2.38.0 as it works fine there on JDK17.

<jamon.plugin.version>2.4.2</jamon.plugin.version>
<lifecycle.mapping.version>1.0.0</lifecycle.mapping.version>
<maven.antrun.version>1.8</maven.antrun.version>
Expand Down Expand Up @@ -673,7 +675,7 @@
databind] must be kept in sync with the version of jackson-jaxrs-json-provider shipped in
hbase-thirdparty.
-->
<hbase-thirdparty.version>4.1.10</hbase-thirdparty.version>
<hbase-thirdparty.version>4.1.11</hbase-thirdparty.version>
<!-- Coverage properties -->
<jacoco.version>0.8.8</jacoco.version>
<jacocoArgLine/>
Expand Down