From 57c39591b27469b2948ff0c7b334da815ff0c5a9 Mon Sep 17 00:00:00 2001 From: Sean Busbey Date: Tue, 2 Aug 2016 01:17:59 -0500 Subject: [PATCH] HBASE-16321 ensure no findbugs-jsr305 --- hbase-client/pom.xml | 8 +- .../org/apache/hadoop/hbase/MetaTableAccessor.java | 10 +-- .../hbase/client/ConnectionImplementation.java | 2 +- .../hadoop/hbase/protobuf/ResponseConverter.java | 2 +- .../org/apache/hadoop/hbase/codec/BaseDecoder.java | 5 +- hbase-rsgroup/pom.xml | 12 +-- hbase-server/pom.xml | 4 +- .../hadoop/hbase/coprocessor/ObserverContext.java | 3 +- .../apache/hadoop/hbase/master/LoadBalancer.java | 2 +- .../hadoop/hbase/master/TableStateManager.java | 6 +- .../hadoop/hbase/util/FSTableDescriptors.java | 2 +- .../apache/hadoop/hbase/HBaseTestingUtility.java | 3 +- .../hadoop/hbase/client/TestMetaWithReplicas.java | 5 +- .../TestMultiTableSnapshotInputFormat.java | 2 +- hbase-spark/pom.xml | 39 ++++++++++ pom.xml | 87 +++++++++++++++------- src/main/asciidoc/_chapters/developer.adoc | 4 +- 17 files changed, 133 insertions(+), 63 deletions(-) diff --git a/hbase-client/pom.xml b/hbase-client/pom.xml index e74e0d5..3e8a6d7 100644 --- a/hbase-client/pom.xml +++ b/hbase-client/pom.xml @@ -246,8 +246,8 @@ - com.google.code.findbugs - jsr305 + com.github.stephenc.findbugs + findbugs-annotations true @@ -259,10 +259,6 @@ hadoop-common - com.github.stephenc.findbugs - findbugs-annotations - - net.java.dev.jets3t jets3t diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java index 3d40c70..a5dbc94 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java @@ -17,8 +17,6 @@ */ package org.apache.hadoop.hbase; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; import java.io.Closeable; import java.io.IOException; import java.io.InterruptedIOException; @@ -34,6 +32,8 @@ import java.util.TreeMap; import java.util.regex.Matcher; import java.util.regex.Pattern; +import edu.umd.cs.findbugs.annotations.NonNull; +import edu.umd.cs.findbugs.annotations.Nullable; import com.google.common.annotations.VisibleForTesting; import com.google.protobuf.ServiceException; import org.apache.commons.logging.Log; @@ -795,10 +795,10 @@ public class MetaTableAccessor { * @return Get closest metatable region row to passed row * @throws java.io.IOException */ - @Nonnull + @NonNull public static HRegionInfo getClosestRegionInfo(Connection connection, - @Nonnull final TableName tableName, - @Nonnull final byte[] row) + @NonNull final TableName tableName, + @NonNull final byte[] row) throws IOException { byte[] searchRow = HRegionInfo.createRegionName(tableName, row, HConstants.NINES, false); Scan scan = getMetaScan(connection, 1); diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionImplementation.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionImplementation.java index bb5c996..8dcda13 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionImplementation.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionImplementation.java @@ -43,7 +43,7 @@ import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; -import javax.annotation.Nullable; +import edu.umd.cs.findbugs.annotations.Nullable; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ResponseConverter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ResponseConverter.java index 421907d..76b4ccf 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ResponseConverter.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ResponseConverter.java @@ -17,13 +17,13 @@ */ package org.apache.hadoop.hbase.protobuf; -import javax.annotation.Nullable; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import edu.umd.cs.findbugs.annotations.Nullable; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.hbase.Cell; diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/codec/BaseDecoder.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/codec/BaseDecoder.java index 86f8678..485b88a 100644 --- a/hbase-common/src/main/java/org/apache/hadoop/hbase/codec/BaseDecoder.java +++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/codec/BaseDecoder.java @@ -22,8 +22,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.PushbackInputStream; -import javax.annotation.Nonnull; - +import edu.umd.cs.findbugs.annotations.NonNull; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.hbase.Cell; @@ -99,7 +98,7 @@ public abstract class BaseDecoder implements Codec.Decoder { * thrown if EOF is reached prematurely. Does not return null. * @throws IOException */ - @Nonnull + @NonNull protected abstract Cell parseCell() throws IOException; @Override diff --git a/hbase-rsgroup/pom.xml b/hbase-rsgroup/pom.xml index aff49b7..d216263 100644 --- a/hbase-rsgroup/pom.xml +++ b/hbase-rsgroup/pom.xml @@ -259,8 +259,8 @@ - com.google.code.findbugs - jsr305 + com.github.stephenc.findbugs + findbugs-annotations true @@ -272,10 +272,6 @@ hadoop-common - com.github.stephenc.findbugs - findbugs-annotations - - net.java.dev.jets3t jets3t @@ -311,6 +307,10 @@ tomcat jasper-runtime + + com.google.code.findbugs + jsr305 + diff --git a/hbase-server/pom.xml b/hbase-server/pom.xml index a7954ec..c2488c0 100644 --- a/hbase-server/pom.xml +++ b/hbase-server/pom.xml @@ -430,8 +430,8 @@ - com.google.code.findbugs - jsr305 + com.github.stephenc.findbugs + findbugs-annotations true diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/ObserverContext.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/ObserverContext.java index d522ce9..52f2b95 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/ObserverContext.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/ObserverContext.java @@ -19,6 +19,7 @@ package org.apache.hadoop.hbase.coprocessor; +import edu.umd.cs.findbugs.annotations.Nullable; import org.apache.hadoop.hbase.classification.InterfaceAudience; import org.apache.hadoop.hbase.classification.InterfaceStability; import org.apache.hadoop.hbase.CoprocessorEnvironment; @@ -26,8 +27,6 @@ import org.apache.hadoop.hbase.HBaseInterfaceAudience; import org.apache.hadoop.hbase.ipc.RpcServer; import org.apache.hadoop.hbase.security.User; -import javax.annotation.Nullable; - /** * Carries the execution state for a given invocation of an Observer coprocessor * ({@link RegionObserver}, {@link MasterObserver}, or {@link WALObserver}) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/LoadBalancer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/LoadBalancer.java index 5d6be9e..d7111c3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/LoadBalancer.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/LoadBalancer.java @@ -18,10 +18,10 @@ */ package org.apache.hadoop.hbase.master; -import javax.annotation.Nullable; import java.util.List; import java.util.Map; +import edu.umd.cs.findbugs.annotations.Nullable; import org.apache.hadoop.hbase.classification.InterfaceAudience; import org.apache.hadoop.hbase.conf.ConfigurationObserver; import org.apache.hadoop.conf.Configurable; diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/TableStateManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/TableStateManager.java index cc257d0..1499788 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/TableStateManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/TableStateManager.java @@ -17,8 +17,6 @@ */ package org.apache.hadoop.hbase.master; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; import java.io.IOException; import java.util.HashMap; import java.util.Map; @@ -27,6 +25,8 @@ import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock; import com.google.common.collect.Sets; +import edu.umd.cs.findbugs.annotations.NonNull; +import edu.umd.cs.findbugs.annotations.Nullable; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.hbase.HTableDescriptor; @@ -167,7 +167,7 @@ public class TableStateManager { return rv; } - @Nonnull + @NonNull public TableState.State getTableState(TableName tableName) throws IOException { TableState currentState = readMetaState(tableName); if (currentState == null) { diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/FSTableDescriptors.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/FSTableDescriptors.java index d0aeb6c..1c59a44 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/FSTableDescriptors.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/FSTableDescriptors.java @@ -17,7 +17,6 @@ */ package org.apache.hadoop.hbase.util; -import javax.annotation.Nullable; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Comparator; @@ -30,6 +29,7 @@ import java.util.regex.Pattern; import com.google.common.annotations.VisibleForTesting; import com.google.common.primitives.Ints; +import edu.umd.cs.findbugs.annotations.Nullable; import org.apache.commons.lang.NotImplementedException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java index a6dc59f..04afb01 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java @@ -47,8 +47,7 @@ import java.util.UUID; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; -import javax.annotation.Nullable; - +import edu.umd.cs.findbugs.annotations.Nullable; import org.apache.commons.lang.RandomStringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMetaWithReplicas.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMetaWithReplicas.java index 8e87ceb..73e5abb 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMetaWithReplicas.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMetaWithReplicas.java @@ -29,8 +29,7 @@ import java.util.Collection; import java.util.List; import java.util.concurrent.ExecutorService; -import javax.annotation.Nullable; - +import edu.umd.cs.findbugs.annotations.Nullable; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; @@ -459,4 +458,4 @@ public class TestMetaWithReplicas { hbck = doFsck(TEST_UTIL.getConfiguration(), false); assertErrors(hbck, new ERROR_CODE[]{}); } -} \ No newline at end of file +} diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestMultiTableSnapshotInputFormat.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestMultiTableSnapshotInputFormat.java index 6285ca1..19e7a18 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestMultiTableSnapshotInputFormat.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestMultiTableSnapshotInputFormat.java @@ -21,6 +21,7 @@ package org.apache.hadoop.hbase.mapreduce; import com.google.common.base.Function; import com.google.common.collect.ImmutableList; import com.google.common.collect.Multimaps; +import edu.umd.cs.findbugs.annotations.Nullable; import org.apache.hadoop.fs.Path; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.Scan; @@ -35,7 +36,6 @@ import org.junit.Before; import org.junit.BeforeClass; import org.junit.experimental.categories.Category; -import javax.annotation.Nullable; import java.io.IOException; import java.util.Collection; import java.util.List; diff --git a/hbase-spark/pom.xml b/hbase-spark/pom.xml index 89ed186..842ff21 100644 --- a/hbase-spark/pom.xml +++ b/hbase-spark/pom.xml @@ -62,6 +62,10 @@ ${scala.version} provided + org.apache.spark spark-core_${scala.binary.version} @@ -78,9 +82,20 @@ org.scala-lang scalap + + com.google.code.findbugs + jsr305 + + com.google.code.findbugs + jsr305 + 1.3.9 + provided + true + + org.apache.spark spark-sql_${scala.binary.version} ${spark.version} @@ -181,6 +196,10 @@ io.netty netty + + com.google.code.findbugs + jsr305 + @@ -215,6 +234,10 @@ io.netty netty + + com.google.code.findbugs + jsr305 + @@ -646,6 +669,22 @@ + + + org.apache.maven.plugins + maven-enforcer-plugin + + + banned-jsr305 + + enforce + + + false + + + + diff --git a/pom.xml b/pom.xml index ea7743f..3cd4e53 100644 --- a/pom.xml +++ b/pom.xml @@ -932,36 +932,52 @@ - - - - - [${maven.min.version},) - Maven is out of date. + + + min-maven-and-java + + enforce + + + + + + [${maven.min.version},) + Maven is out of date. HBase requires at least version ${maven.min.version} of Maven to properly build from source. You appear to be using an older version. You can use either "mvn -version" or "mvn enforcer:display-info" to verify what version is active. See the reference guide on building for more information: http://hbase.apache.org/book.html#build - - - - - [${java.min.version},) - Java is out of date. + + + + + [${java.min.version},) + Java is out of date. HBase requirs at least version ${java.min.version} of the JDK to properly build from source. You appear to be using an older version. You can use either "mvn -version" or "mvn enforcer:display-info" to verify what version is active. See the reference guide on building for more information: http://hbase.apache.org/book.html#build - - - - - + + + + + - enforce + banned-jsr305 enforce + + + + + com.google.code.findbugs:jsr305 + + We don't allow the JSR305 jar from the Findbugs project, see HBASE-16321. + + + @@ -1258,7 +1274,6 @@ 4.4.4 3.1.2 12.0.1 - 1.3.9 1.9.13 5.5.23 2.2.2 @@ -1509,6 +1524,12 @@ + com.github.stephenc.findbugs + findbugs-annotations + ${findbugs-annotations} + + + org.codehaus.jettison jettison ${jettison.version} @@ -1534,11 +1555,12 @@ com.google.guava guava ${guava.version} - - - com.google.code.findbugs - jsr305 - ${jsr305.version} + + + com.google.code.findbugs + jsr305 + + commons-collections @@ -1854,7 +1876,6 @@ com.github.stephenc.findbugs findbugs-annotations - ${findbugs-annotations} compile @@ -2210,6 +2231,10 @@ io.netty netty + + com.google.code.findbugs + jsr305 + @@ -2240,6 +2265,10 @@ io.netty netty + + com.google.code.findbugs + jsr305 + @@ -2376,6 +2405,10 @@ io.netty netty + + com.google.code.findbugs + jsr305 + @@ -2411,6 +2444,10 @@ io.netty netty + + com.google.code.findbugs + jsr305 + diff --git a/src/main/asciidoc/_chapters/developer.adoc b/src/main/asciidoc/_chapters/developer.adoc index 56aa557..0a29864 100644 --- a/src/main/asciidoc/_chapters/developer.adoc +++ b/src/main/asciidoc/_chapters/developer.adoc @@ -1591,7 +1591,9 @@ value="HE_EQUALS_USE_HASHCODE", justification="I know what I'm doing") ---- -It is important to use the Apache-licensed version of the annotations. +It is important to use the Apache-licensed version of the annotations. That generally means using +annotations in the `edu.umd.cs.findbugs.annotations` package so that we can rely on the cleanroom +reimplementation rather than annotations in the `javax.annotations` package. [[common.patch.feedback.javadoc.defaults]] ===== Javadoc - Useless Defaults -- 2.7.2