From 2bc79b06700e78344bb1d760fd9c96b33b0dc67a Mon Sep 17 00:00:00 2001 From: Prashant Date: Wed, 7 Apr 2021 16:13:52 -0700 Subject: [PATCH 1/2] ISSUE-2640: BP-43 Gradle migration integrating with spotbug gradle plugin --- .../codahale-metrics-provider/build.gradle | 1 + build.gradle | 8 + .../resources/bookkeeper/findbugsExclude.xml | 160 ++++++++++++++++++ gradle.properties | 1 + settings.gradle | 1 + 5 files changed, 171 insertions(+) diff --git a/bookkeeper-stats-providers/codahale-metrics-provider/build.gradle b/bookkeeper-stats-providers/codahale-metrics-provider/build.gradle index b60c3c5ea49..2ac1dbbf17f 100644 --- a/bookkeeper-stats-providers/codahale-metrics-provider/build.gradle +++ b/bookkeeper-stats-providers/codahale-metrics-provider/build.gradle @@ -41,6 +41,7 @@ dependencies { annotationProcessor depLibs.lombok testAnnotationProcessor depLibs.lombok + testImplementation depLibs.junit } jar { diff --git a/build.gradle b/build.gradle index 1b32c483294..5e45cc6900c 100644 --- a/build.gradle +++ b/build.gradle @@ -28,6 +28,7 @@ plugins { id "com.github.vlsi.stage-vote-release" version "1.73" id 'checkstyle' id 'org.nosphere.apache.rat' + id 'com.github.spotbugs' } subprojects { @@ -68,6 +69,7 @@ allprojects { apply plugin: 'signing' apply plugin: 'org.nosphere.apache.rat' apply plugin: "checkstyle" + apply plugin: 'com.github.spotbugs' checkstyle { toolVersion "${checkStyleVersion}" configFile file("$rootDir/buildtools/src/main/resources/bookkeeper/checkstyle.xml") @@ -79,6 +81,12 @@ allprojects { source ='src/test/java' } } + + spotbugs { + toolVersion = '3.1.8' + excludeFilter = file("$rootDir/buildtools/src/main/resources/bookkeeper/findbugsExclude.xml") + reportLevel = 'high' + } task testJar(type: Jar, dependsOn: testClasses) { classifier = 'tests' diff --git a/buildtools/src/main/resources/bookkeeper/findbugsExclude.xml b/buildtools/src/main/resources/bookkeeper/findbugsExclude.xml index 83a39f46ca9..da6867c132d 100644 --- a/buildtools/src/main/resources/bookkeeper/findbugsExclude.xml +++ b/buildtools/src/main/resources/bookkeeper/findbugsExclude.xml @@ -157,4 +157,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gradle.properties b/gradle.properties index 6caefd9b1be..f3e91a7e3f2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -24,3 +24,4 @@ apcheRatPluginVersion=0.7.0 shadowPluginVersion=6.1.0 licenseGradlePluginVersion=0.15.0 checkStyleVersion=6.19 +spotbugsPlugin=4.7.0 diff --git a/settings.gradle b/settings.gradle index fa452349798..f6abee52eda 100644 --- a/settings.gradle +++ b/settings.gradle @@ -22,6 +22,7 @@ pluginManagement { id "org.nosphere.apache.rat" version "${apcheRatPluginVersion}" id "com.github.johnrengelman.shadow" version "${shadowPluginVersion}" id "com.github.hierynomus.license" version "${licenseGradlePluginVersion}" + id "com.github.spotbugs" version "${spotbugsPlugin}" } } From 588373241a6d550638296e51e42e79b0c5b7377e Mon Sep 17 00:00:00 2001 From: Prashant Date: Wed, 7 Apr 2021 16:16:44 -0700 Subject: [PATCH 2/2] Fix for gradle spotbug plugin found violation --- .../apache/bookkeeper/statelib/impl/mvcc/MVCCStoreImpl.java | 5 +++-- .../stream/storage/impl/metadata/stream/MetaRangeImpl.java | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/stream/statelib/src/main/java/org/apache/bookkeeper/statelib/impl/mvcc/MVCCStoreImpl.java b/stream/statelib/src/main/java/org/apache/bookkeeper/statelib/impl/mvcc/MVCCStoreImpl.java index 5c9a83d0f5c..74d862861a9 100644 --- a/stream/statelib/src/main/java/org/apache/bookkeeper/statelib/impl/mvcc/MVCCStoreImpl.java +++ b/stream/statelib/src/main/java/org/apache/bookkeeper/statelib/impl/mvcc/MVCCStoreImpl.java @@ -965,7 +965,7 @@ synchronized RangeResult processRange(RangeOp rangeOp) { // raw key byte[] rawKey = (null != key) ? keyCoder.encode(key) : NULL_START_KEY; - + byte[] rawEndKey = NULL_END_KEY; if (null == endKey) { // point lookup MVCCRecord record = getKeyRecord(key, rawKey); @@ -988,8 +988,9 @@ synchronized RangeResult processRange(RangeOp rangeOp) { record.recycle(); } } + } else { + rawEndKey = keyCoder.encode(endKey); } - byte[] rawEndKey = (null != endKey) ? keyCoder.encode(endKey) : NULL_END_KEY; Pair realRange = getRealRange(rawKey, rawEndKey); rawKey = realRange.getLeft(); rawEndKey = realRange.getRight(); diff --git a/stream/storage/impl/src/main/java/org/apache/bookkeeper/stream/storage/impl/metadata/stream/MetaRangeImpl.java b/stream/storage/impl/src/main/java/org/apache/bookkeeper/stream/storage/impl/metadata/stream/MetaRangeImpl.java index af7f2d7699e..6792802ad64 100644 --- a/stream/storage/impl/src/main/java/org/apache/bookkeeper/stream/storage/impl/metadata/stream/MetaRangeImpl.java +++ b/stream/storage/impl/src/main/java/org/apache/bookkeeper/stream/storage/impl/metadata/stream/MetaRangeImpl.java @@ -384,7 +384,7 @@ private void loadMetadata(List> kvs) { } } - private void loadStreamMetadata(long streamId, byte[] streamMetadataBytes) { + private synchronized void loadStreamMetadata(long streamId, byte[] streamMetadataBytes) { this.streamId = streamId; StreamMetadata metadata; try {