You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by ke...@apache.org on 2016/11/23 06:52:22 UTC

[26/50] incubator-beam git commit: Remove dependency on findbugs annotations artifact

Remove dependency on findbugs annotations artifact

The findbugs annotations artifact has an incompatible license and cannot
be included within Beam. We were previously referencing it for the
@SuppressFBWarning annotation for inline FindBugs suppression.

This change moves inline suppressions out to the existing
findbugs-filter.xml file. While not ideal as it removes the suppressions
from the offending context, it allows us to drop our dependency on the
incompatible artifact.

We are also referencing the @Nullable attribute from findbugs. This is
now source from findbugs jsr305, which does have a compatible license.


Project: http://git-wip-us.apache.org/repos/asf/incubator-beam/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-beam/commit/d39471b5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-beam/tree/d39471b5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-beam/diff/d39471b5

Branch: refs/heads/gearpump-runner
Commit: d39471b51e8d7a56aab2324adc4dbc2d70d9ab40
Parents: cb5d216
Author: Scott Wegner <sw...@google.com>
Authored: Mon Nov 21 13:07:46 2016 -0800
Committer: Davor Bonaci <da...@google.com>
Committed: Mon Nov 21 14:29:35 2016 -0800

----------------------------------------------------------------------
 pom.xml                                         |  34 +---
 runners/apex/pom.xml                            |   2 +-
 runners/core-java/pom.xml                       |   2 +-
 .../beam/runners/core/PaneInfoTracker.java      |   3 -
 .../beam/runners/core/SystemReduceFn.java       |   3 -
 .../apache/beam/runners/core/WatermarkHold.java |   3 -
 .../AfterDelayFromFirstElementStateMachine.java |   5 -
 .../core/triggers/AfterPaneStateMachine.java    |   3 -
 .../core/triggers/TriggerStateMachines.java     |  15 --
 runners/direct-java/pom.xml                     |   2 +-
 runners/google-cloud-dataflow-java/pom.xml      |   2 +-
 .../src/main/resources/beam/findbugs-filter.xml | 172 ++++++++++++++++++-
 sdks/java/core/pom.xml                          |   2 +-
 .../org/apache/beam/sdk/coders/AvroCoder.java   |   5 -
 .../apache/beam/sdk/coders/InstantCoder.java    |   4 -
 .../org/apache/beam/sdk/testing/PAssert.java    |   3 -
 .../beam/sdk/testing/SerializableMatchers.java  |   3 -
 ...AttemptAndTimeBoundedExponentialBackOff.java |   3 -
 .../sdk/util/ExposedByteArrayInputStream.java   |   2 -
 .../sdk/util/ExposedByteArrayOutputStream.java  |   3 -
 .../java/org/apache/beam/sdk/util/ZipFiles.java |   9 -
 .../beam/sdk/util/state/StateMerging.java       |   3 -
 sdks/java/io/google-cloud-platform/pom.xml      |  14 +-
 sdks/java/io/hdfs/pom.xml                       |   2 +-
 sdks/java/io/jdbc/pom.xml                       |   2 +-
 sdks/java/io/jms/pom.xml                        |   2 +-
 sdks/java/io/kafka/pom.xml                      |   2 +-
 sdks/java/io/kinesis/pom.xml                    |   2 +-
 sdks/java/io/mongodb/pom.xml                    |   2 +-
 29 files changed, 178 insertions(+), 131 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/d39471b5/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index bd9448a..e0ef47c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -390,12 +390,6 @@
         <groupId>io.grpc</groupId>
         <artifactId>grpc-core</artifactId>
         <version>${grpc.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>com.google.code.findbugs</groupId>
-            <artifactId>jsr305</artifactId>
-          </exclusion>
-        </exclusions>
       </dependency>
 
       <dependency>
@@ -473,10 +467,6 @@
             <groupId>com.google.guava</groupId>
             <artifactId>guava-jdk5</artifactId>
           </exclusion>
-          <exclusion>
-            <groupId>com.google.code.findbugs</groupId>
-            <artifactId>jsr305</artifactId>
-          </exclusion>
         </exclusions>
       </dependency>
 
@@ -501,10 +491,6 @@
             <groupId>com.google.guava</groupId>
             <artifactId>guava-jdk5</artifactId>
           </exclusion>
-          <exclusion>
-            <groupId>com.google.code.findbugs</groupId>
-            <artifactId>jsr305</artifactId>
-          </exclusion>
         </exclusions>
       </dependency>
 
@@ -664,7 +650,7 @@
 
       <dependency>
         <groupId>com.google.code.findbugs</groupId>
-        <artifactId>annotations</artifactId>
+        <artifactId>jsr305</artifactId>
         <version>${findbugs.version}</version>
       </dependency>
 
@@ -672,24 +658,12 @@
         <groupId>com.google.cloud.bigdataoss</groupId>
         <artifactId>gcsio</artifactId>
         <version>${google-cloud-bigdataoss.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>com.google.code.findbugs</groupId>
-            <artifactId>jsr305</artifactId>
-          </exclusion>
-        </exclusions>
       </dependency>
 
       <dependency>
         <groupId>com.google.cloud.bigdataoss</groupId>
         <artifactId>util</artifactId>
         <version>${google-cloud-bigdataoss.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>com.google.code.findbugs</groupId>
-            <artifactId>jsr305</artifactId>
-          </exclusion>
-        </exclusions>
       </dependency>
 
       <dependency>
@@ -829,12 +803,6 @@
         <artifactId>guava-testlib</artifactId>
         <version>${guava.version}</version>
         <scope>test</scope>
-        <exclusions>
-          <exclusion>
-            <groupId>com.google.code.findbugs</groupId>
-            <artifactId>jsr305</artifactId>
-          </exclusion>
-        </exclusions>
       </dependency>
 
       <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/d39471b5/runners/apex/pom.xml
----------------------------------------------------------------------
diff --git a/runners/apex/pom.xml b/runners/apex/pom.xml
index 1ca61b9..5478b24 100644
--- a/runners/apex/pom.xml
+++ b/runners/apex/pom.xml
@@ -101,7 +101,7 @@
     <dependency>
 		<!-- javax.annotation.Nullable -->
        <groupId>com.google.code.findbugs</groupId>
-       <artifactId>annotations</artifactId>
+       <artifactId>jsr305</artifactId>
     </dependency>
 
     <!-- Test scoped -->

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/d39471b5/runners/core-java/pom.xml
----------------------------------------------------------------------
diff --git a/runners/core-java/pom.xml b/runners/core-java/pom.xml
index 40ebf58..0e2b4b0 100644
--- a/runners/core-java/pom.xml
+++ b/runners/core-java/pom.xml
@@ -132,7 +132,7 @@
 
     <dependency>
       <groupId>com.google.code.findbugs</groupId>
-      <artifactId>annotations</artifactId>
+      <artifactId>jsr305</artifactId>
     </dependency>
 
     <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/d39471b5/runners/core-java/src/main/java/org/apache/beam/runners/core/PaneInfoTracker.java
----------------------------------------------------------------------
diff --git a/runners/core-java/src/main/java/org/apache/beam/runners/core/PaneInfoTracker.java b/runners/core-java/src/main/java/org/apache/beam/runners/core/PaneInfoTracker.java
index 114f5e6..8140243 100644
--- a/runners/core-java/src/main/java/org/apache/beam/runners/core/PaneInfoTracker.java
+++ b/runners/core-java/src/main/java/org/apache/beam/runners/core/PaneInfoTracker.java
@@ -20,7 +20,6 @@ package org.apache.beam.runners.core;
 import static com.google.common.base.Preconditions.checkState;
 
 import com.google.common.annotations.VisibleForTesting;
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import org.apache.beam.sdk.transforms.windowing.AfterWatermark;
 import org.apache.beam.sdk.transforms.windowing.PaneInfo;
 import org.apache.beam.sdk.transforms.windowing.PaneInfo.PaneInfoCoder;
@@ -71,8 +70,6 @@ public class PaneInfoTracker {
 
     return new ReadableState<PaneInfo>() {
       @Override
-      @SuppressFBWarnings(value = "RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT",
-          justification = "prefetch side effect")
       public ReadableState<PaneInfo> readLater() {
         previousPaneFuture.readLater();
         return this;

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/d39471b5/runners/core-java/src/main/java/org/apache/beam/runners/core/SystemReduceFn.java
----------------------------------------------------------------------
diff --git a/runners/core-java/src/main/java/org/apache/beam/runners/core/SystemReduceFn.java b/runners/core-java/src/main/java/org/apache/beam/runners/core/SystemReduceFn.java
index 3948d9e..6c12bad 100644
--- a/runners/core-java/src/main/java/org/apache/beam/runners/core/SystemReduceFn.java
+++ b/runners/core-java/src/main/java/org/apache/beam/runners/core/SystemReduceFn.java
@@ -18,7 +18,6 @@
 package org.apache.beam.runners.core;
 
 
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import org.apache.beam.sdk.coders.Coder;
 import org.apache.beam.sdk.transforms.Combine.CombineFn;
 import org.apache.beam.sdk.transforms.Combine.KeyedCombineFn;
@@ -116,8 +115,6 @@ public abstract class SystemReduceFn<K, InputT, AccumT, OutputT, W extends Bound
   }
 
   @Override
-  @SuppressFBWarnings(value = "RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT",
-    justification = "prefetch side effect")
   public void prefetchOnTrigger(StateAccessor<K> state) {
     state.access(bufferTag).readLater();
   }

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/d39471b5/runners/core-java/src/main/java/org/apache/beam/runners/core/WatermarkHold.java
----------------------------------------------------------------------
diff --git a/runners/core-java/src/main/java/org/apache/beam/runners/core/WatermarkHold.java b/runners/core-java/src/main/java/org/apache/beam/runners/core/WatermarkHold.java
index 7d0b608..3c04571 100644
--- a/runners/core-java/src/main/java/org/apache/beam/runners/core/WatermarkHold.java
+++ b/runners/core-java/src/main/java/org/apache/beam/runners/core/WatermarkHold.java
@@ -20,7 +20,6 @@ package org.apache.beam.runners.core;
 import static com.google.common.base.Preconditions.checkState;
 
 import com.google.common.annotations.VisibleForTesting;
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.io.Serializable;
 import javax.annotation.Nullable;
 import org.apache.beam.sdk.transforms.windowing.BoundedWindow;
@@ -465,8 +464,6 @@ class WatermarkHold<W extends BoundedWindow> implements Serializable {
     final WatermarkHoldState<BoundedWindow> extraHoldState = context.state().access(EXTRA_HOLD_TAG);
     return new ReadableState<OldAndNewHolds>() {
       @Override
-      @SuppressFBWarnings(value = "RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT",
-        justification = "")
       public ReadableState<OldAndNewHolds> readLater() {
         elementHoldState.readLater();
         extraHoldState.readLater();

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/d39471b5/runners/core-java/src/main/java/org/apache/beam/runners/core/triggers/AfterDelayFromFirstElementStateMachine.java
----------------------------------------------------------------------
diff --git a/runners/core-java/src/main/java/org/apache/beam/runners/core/triggers/AfterDelayFromFirstElementStateMachine.java b/runners/core-java/src/main/java/org/apache/beam/runners/core/triggers/AfterDelayFromFirstElementStateMachine.java
index d9d2c42..c8922df 100644
--- a/runners/core-java/src/main/java/org/apache/beam/runners/core/triggers/AfterDelayFromFirstElementStateMachine.java
+++ b/runners/core-java/src/main/java/org/apache/beam/runners/core/triggers/AfterDelayFromFirstElementStateMachine.java
@@ -18,7 +18,6 @@
 package org.apache.beam.runners.core.triggers;
 
 import com.google.common.collect.ImmutableList;
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.util.List;
 import java.util.Locale;
 import java.util.Objects;
@@ -162,8 +161,6 @@ public abstract class AfterDelayFromFirstElementStateMachine extends OnceTrigger
   }
 
   @Override
-  @SuppressFBWarnings(value = "RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT", justification =
-      "prefetch side effect")
   public void prefetchOnElement(StateAccessor<?> state) {
     state.access(DELAYED_UNTIL_TAG).readLater();
   }
@@ -220,8 +217,6 @@ public abstract class AfterDelayFromFirstElementStateMachine extends OnceTrigger
   }
 
   @Override
-  @SuppressFBWarnings(value = "RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT", justification =
-      "prefetch side effect")
   public void prefetchShouldFire(StateAccessor<?> state) {
     state.access(DELAYED_UNTIL_TAG).readLater();
   }

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/d39471b5/runners/core-java/src/main/java/org/apache/beam/runners/core/triggers/AfterPaneStateMachine.java
----------------------------------------------------------------------
diff --git a/runners/core-java/src/main/java/org/apache/beam/runners/core/triggers/AfterPaneStateMachine.java b/runners/core-java/src/main/java/org/apache/beam/runners/core/triggers/AfterPaneStateMachine.java
index 288643d..38b95f9 100644
--- a/runners/core-java/src/main/java/org/apache/beam/runners/core/triggers/AfterPaneStateMachine.java
+++ b/runners/core-java/src/main/java/org/apache/beam/runners/core/triggers/AfterPaneStateMachine.java
@@ -17,7 +17,6 @@
  */
 package org.apache.beam.runners.core.triggers;
 
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.util.Objects;
 import org.apache.beam.runners.core.triggers.TriggerStateMachine.OnceTriggerStateMachine;
 import org.apache.beam.sdk.annotations.Experimental;
@@ -88,8 +87,6 @@ private static final StateTag<Object, AccumulatorCombiningState<Long, long[], Lo
   }
 
   @Override
-  @SuppressFBWarnings(value = "RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT", justification =
-      "prefetch side effect")
   public void prefetchShouldFire(StateAccessor<?> state) {
     state.access(ELEMENTS_IN_PANE_TAG).readLater();
   }

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/d39471b5/runners/core-java/src/main/java/org/apache/beam/runners/core/triggers/TriggerStateMachines.java
----------------------------------------------------------------------
diff --git a/runners/core-java/src/main/java/org/apache/beam/runners/core/triggers/TriggerStateMachines.java b/runners/core-java/src/main/java/org/apache/beam/runners/core/triggers/TriggerStateMachines.java
index 1973f92..1be7981 100644
--- a/runners/core-java/src/main/java/org/apache/beam/runners/core/triggers/TriggerStateMachines.java
+++ b/runners/core-java/src/main/java/org/apache/beam/runners/core/triggers/TriggerStateMachines.java
@@ -19,7 +19,6 @@ package org.apache.beam.runners.core.triggers;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.collect.Lists;
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.util.List;
@@ -97,32 +96,26 @@ public class TriggerStateMachines {
       }
     }
 
-    @SuppressFBWarnings("UPM_UNCALLED_PRIVATE_METHOD")
     private TriggerStateMachine evaluateSpecific(DefaultTrigger v) {
       return DefaultTriggerStateMachine.of();
     }
 
-    @SuppressFBWarnings("UPM_UNCALLED_PRIVATE_METHOD")
     private TriggerStateMachine evaluateSpecific(ReshuffleTrigger v) {
       return new ReshuffleTriggerStateMachine();
     }
 
-    @SuppressFBWarnings("UPM_UNCALLED_PRIVATE_METHOD")
     private OnceTriggerStateMachine evaluateSpecific(AfterWatermark.FromEndOfWindow v) {
       return AfterWatermarkStateMachine.pastEndOfWindow();
     }
 
-    @SuppressFBWarnings("UPM_UNCALLED_PRIVATE_METHOD")
     private OnceTriggerStateMachine evaluateSpecific(NeverTrigger v) {
       return NeverStateMachine.ever();
     }
 
-    @SuppressFBWarnings("UPM_UNCALLED_PRIVATE_METHOD")
     private OnceTriggerStateMachine evaluateSpecific(AfterSynchronizedProcessingTime v) {
       return new AfterSynchronizedProcessingTimeStateMachine();
     }
 
-    @SuppressFBWarnings("UPM_UNCALLED_PRIVATE_METHOD")
     private OnceTriggerStateMachine evaluateSpecific(AfterFirst v) {
       List<OnceTriggerStateMachine> subStateMachines =
           Lists.newArrayListWithCapacity(v.subTriggers().size());
@@ -132,7 +125,6 @@ public class TriggerStateMachines {
       return AfterFirstStateMachine.of(subStateMachines);
     }
 
-    @SuppressFBWarnings("UPM_UNCALLED_PRIVATE_METHOD")
     private OnceTriggerStateMachine evaluateSpecific(AfterAll v) {
       List<OnceTriggerStateMachine> subStateMachines =
           Lists.newArrayListWithCapacity(v.subTriggers().size());
@@ -142,12 +134,10 @@ public class TriggerStateMachines {
       return AfterAllStateMachine.of(subStateMachines);
     }
 
-    @SuppressFBWarnings("UPM_UNCALLED_PRIVATE_METHOD")
     private OnceTriggerStateMachine evaluateSpecific(AfterPane v) {
       return AfterPaneStateMachine.elementCountAtLeast(v.getElementCount());
     }
 
-    @SuppressFBWarnings("UPM_UNCALLED_PRIVATE_METHOD")
     private TriggerStateMachine evaluateSpecific(AfterWatermark.AfterWatermarkEarlyAndLate v) {
       AfterWatermarkStateMachine.AfterWatermarkEarlyAndLate machine =
           AfterWatermarkStateMachine.pastEndOfWindow()
@@ -159,7 +149,6 @@ public class TriggerStateMachines {
       return machine;
     }
 
-    @SuppressFBWarnings("UPM_UNCALLED_PRIVATE_METHOD")
     private TriggerStateMachine evaluateSpecific(AfterEach v) {
       List<TriggerStateMachine> subStateMachines =
           Lists.newArrayListWithCapacity(v.subTriggers().size());
@@ -171,24 +160,20 @@ public class TriggerStateMachines {
       return AfterEachStateMachine.inOrder(subStateMachines);
     }
 
-    @SuppressFBWarnings("UPM_UNCALLED_PRIVATE_METHOD")
     private TriggerStateMachine evaluateSpecific(Repeatedly v) {
       return RepeatedlyStateMachine.forever(stateMachineForTrigger(v.getRepeatedTrigger()));
     }
 
-    @SuppressFBWarnings("UPM_UNCALLED_PRIVATE_METHOD")
     private TriggerStateMachine evaluateSpecific(OrFinallyTrigger v) {
       return new OrFinallyStateMachine(
           stateMachineForTrigger(v.getMainTrigger()),
           stateMachineForOnceTrigger(v.getUntilTrigger()));
     }
 
-    @SuppressFBWarnings("UPM_UNCALLED_PRIVATE_METHOD")
     private OnceTriggerStateMachine evaluateSpecific(AfterProcessingTime v) {
       return evaluateSpecific((AfterDelayFromFirstElement) v);
     }
 
-    @SuppressFBWarnings("UPM_UNCALLED_PRIVATE_METHOD")
     private OnceTriggerStateMachine evaluateSpecific(final AfterDelayFromFirstElement v) {
       return new AfterDelayFromFirstElementStateMachineAdapter(v);
     }

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/d39471b5/runners/direct-java/pom.xml
----------------------------------------------------------------------
diff --git a/runners/direct-java/pom.xml b/runners/direct-java/pom.xml
index 8983b1c..79f3de6 100644
--- a/runners/direct-java/pom.xml
+++ b/runners/direct-java/pom.xml
@@ -180,7 +180,7 @@
 
     <dependency>
       <groupId>com.google.code.findbugs</groupId>
-      <artifactId>annotations</artifactId>
+      <artifactId>jsr305</artifactId>
     </dependency>
 
     <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/d39471b5/runners/google-cloud-dataflow-java/pom.xml
----------------------------------------------------------------------
diff --git a/runners/google-cloud-dataflow-java/pom.xml b/runners/google-cloud-dataflow-java/pom.xml
index 6ed41d0..da3a4d6 100644
--- a/runners/google-cloud-dataflow-java/pom.xml
+++ b/runners/google-cloud-dataflow-java/pom.xml
@@ -242,7 +242,7 @@
 
     <dependency>
       <groupId>com.google.code.findbugs</groupId>
-      <artifactId>annotations</artifactId>
+      <artifactId>jsr305</artifactId>
     </dependency>
 
     <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/d39471b5/sdks/java/build-tools/src/main/resources/beam/findbugs-filter.xml
----------------------------------------------------------------------
diff --git a/sdks/java/build-tools/src/main/resources/beam/findbugs-filter.xml b/sdks/java/build-tools/src/main/resources/beam/findbugs-filter.xml
index c9223a7..adfe2dd 100644
--- a/sdks/java/build-tools/src/main/resources/beam/findbugs-filter.xml
+++ b/sdks/java/build-tools/src/main/resources/beam/findbugs-filter.xml
@@ -27,16 +27,174 @@
   <Bug pattern="UMAC_UNCALLABLE_METHOD_OF_ANONYMOUS_CLASS"/>
 
   <!--
-          Baseline issues below. No new issues should be added to this list. Instead, suppress
-          the issue inline using @SuppressFBWarnings and a documented reason, or (preferably) fix
-          the issue.
+          Suppressed findbugs issues. All new issues should include a comment why they're
+          suppressed.
+
+          Suppressions should go in this file rather than inline using @SuppressFBWarnings to avoid
+          unapproved artifact license.
         -->
   <Match>
-    <Class name="org.apache.beam.sdk.coders.JAXBCoder"/>
-    <Method name="getContext"/>
-    <Bug pattern="DC_DOUBLECHECK"/>
-    <!--[BEAM-398] Possible double check of field-->
+    <Class name="org.apache.beam.sdk.coders.AvroCoder$SerializableSchemaSupplier"/>
+    <Field name="schema"/>
+    <Bug pattern="SE_BAD_FIELD"/>
+    <!--
+    writeReplace makes this object serializable. This is a limitation of FindBugs as discussed here:
+     http://stackoverflow.com/questions/26156523/is-writeobject-not-neccesary-using-the-serialization-proxy-pattern
+    -->
+  </Match>
+
+  <Match>
+    <Class name="org.apache.beam.sdk.coders.InstantCoder$LexicographicLongConverter"/>
+    <Bug pattern="HE_INHERITS_EQUALS_USE_HASHCODE"/>
+    <!-- Converter overrides .equals() to add documentation but does not change behavior -->
+  </Match>
+
+  <Match>
+    <Class name="org.apache.beam.sdk.testing.PAssert$PCollectionViewAssert"/>
+    <Method name="equals" />
+    <Bug pattern="EQ_UNUSUAL"/>
+    <!-- Unsupported operation -->
+  </Match>
+
+  <Match>
+    <Class name="org.apache.beam.sdk.testing.PAssert$PCollectionContentsAssert"/>
+    <Method name="equals" />
+    <Bug pattern="EQ_UNUSUAL"/>
+    <!-- Unsupported operation -->
+  </Match>
+
+  <Match>
+    <Class name="org.apache.beam.sdk.testing.SerializableMatchers$SerializableArrayViaCoder"/>
+    <Field name="value" />
+    <Bug pattern="SE_TRANSIENT_FIELD_NOT_RESTORED"/>
+    <!-- Cached value is lazily restored on read. -->
+  </Match>
+
+  <Match>
+    <Class name="org.apache.beam.sdk.util.AttemptAndTimeBoundedExponentialBackOff"/>
+    <Method name="reset" />
+    <Bug pattern="UR_UNINIT_READ_CALLED_FROM_SUPER_CONSTRUCTOR"/>
+    <!-- Explicitly handled in implementation. -->
+  </Match>
+
+  <Match>
+    <Class name="org.apache.beam.sdk.util.ExposedByteArrayInputStream"/>
+    <Method name="readAll" />
+    <Bug pattern="EI_EXPOSE_REP"/>
+    <!-- Returns internal buffer by design. -->
+  </Match>
+
+  <Match>
+    <Class name="org.apache.beam.sdk.util.ExposedByteArrayOutputStream"/>
+    <Method name="toByteArray" />
+    <Bug pattern="EI_EXPOSE_REP"/>
+    <!-- Returns internal buffer by design. -->
+  </Match>
+
+  <Match>
+    <Class name="org.apache.beam.sdk.util.ExposedByteArrayOutputStream"/>
+    <Method name="toByteArray" />
+    <Bug pattern="EI_EXPOSE_REP"/>
+    <!-- Returns internal buffer by design. -->
+  </Match>
+
+  <Match>
+    <Class name="org.apache.beam.sdk.util.ExposedByteArrayOutputStream"/>
+    <Method name="writeAndOwn" />
+    <Bug pattern="EI_EXPOSE_REP"/>
+    <!-- Takes ownership of input buffer -->
+  </Match>
+
+  <Match>
+    <Class name="org.apache.beam.sdk.util.ZipFiles"/>
+    <Method name="zipDirectory" />
+    <Bug pattern="NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE"/>
+    <!--
+      File.listFiles() will return null if the File instance is not a directory. Null dereference is
+      not a possibility here since we validate sourceDirectory is directory via
+      sourceDirectory.isDirectory()
+    -->
   </Match>
+
+  <Match>
+    <Class name="org.apache.beam.sdk.util.ZipFiles"/>
+    <Method name="zipDirectoryInternal" />
+    <Bug pattern="NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE"/>
+    <!--
+      File.listFiles() will return null if the File instance is not a directory. Null dereference is
+      not a possibility here since we validate sourceDirectory is directory via
+      sourceDirectory.isDirectory()
+    -->
+  </Match>
+
+  <Match>
+    <Class name="org.apache.beam.sdk.util.state.StateMerging"/>
+    <Method name="prefetchRead" />
+    <Bug pattern="RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT"/>
+    <!-- prefetch call readLater -->
+  </Match>
+
+  <Match>
+    <Class name="org.apache.beam.runner.core.PaneInfoTracker"/>
+    <Method name="getNextPaneInfo" />
+    <Bug pattern="RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT"/>
+    <!-- prefetch side effect -->
+  </Match>
+
+  <Match>
+    <Class name="org.apache.beam.runner.core.SystemReduceFn"/>
+    <Method name="prefetchOnTrigger" />
+    <Bug pattern="RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT"/>
+    <!-- prefetch side effect -->
+  </Match>
+
+  <Match>
+    <Class name="org.apache.beam.runner.core.WatermarkHold"/>
+    <Method name="extractAndRelease" />
+    <Bug pattern="RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT"/>
+    <!-- prefetch call readLater -->
+  </Match>
+
+  <Match>
+    <Class name="org.apache.beam.runners.core.triggers.AfterDelayFromFirstElementStateMachine"/>
+    <Method name="prefetchOnElement" />
+    <Bug pattern="RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT"/>
+    <!-- prefetch side effect -->
+  </Match>
+
+  <Match>
+    <Class name="org.apache.beam.runners.core.triggers.AfterDelayFromFirstElementStateMachine"/>
+    <Method name="prefetchShouldFire" />
+    <Bug pattern="RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT"/>
+    <!-- prefetch side effect -->
+  </Match>
+
+  <Match>
+    <Class name="org.apache.beam.runners.core.triggers.AfterPaneStateMachine"/>
+    <Method name="prefetchShouldFire" />
+    <Bug pattern="RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT"/>
+    <!-- prefetch side effect -->
+  </Match>
+
+  <Match>
+    <Class name="org.apache.beam.runners.core.triggers.TriggerStateMachines$StateMachineConverter"/>
+    <Method name="evaluateSpecific" />
+    <Bug pattern="UPM_UNCALLED_PRIVATE_METHOD"/>
+    <!-- Called via reflection -->
+  </Match>
+
+
+  <!--
+    Baseline issues. No new issues should be added below this line and all existing issues should
+    have an associated JIRA
+  -->
+
+  <Match>
+  <Class name="org.apache.beam.sdk.coders.JAXBCoder"/>
+  <Method name="getContext"/>
+  <Bug pattern="DC_DOUBLECHECK"/>
+  <!--[BEAM-398] Possible double check of field-->
+</Match>
   <Match>
     <Class name="org.apache.beam.sdk.io.range.OffsetRangeTracker"/>
     <Field name="done"/>

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/d39471b5/sdks/java/core/pom.xml
----------------------------------------------------------------------
diff --git a/sdks/java/core/pom.xml b/sdks/java/core/pom.xml
index c7b46d8..f842be7 100644
--- a/sdks/java/core/pom.xml
+++ b/sdks/java/core/pom.xml
@@ -341,7 +341,7 @@
 
     <dependency>
       <groupId>com.google.code.findbugs</groupId>
-      <artifactId>annotations</artifactId>
+      <artifactId>jsr305</artifactId>
     </dependency>
 
     <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/d39471b5/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/AvroCoder.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/AvroCoder.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/AvroCoder.java
index b62c5af..41afdc6 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/AvroCoder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/AvroCoder.java
@@ -22,7 +22,6 @@ import static org.apache.beam.sdk.util.Structs.addString;
 import com.fasterxml.jackson.annotation.JsonCreator;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.google.common.base.Supplier;
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.ObjectStreamException;
@@ -214,10 +213,6 @@ public class AvroCoder<T> extends StandardCoder<T> {
    * Java's serialization and hence is able to encode the {@link Schema} object directly.
    */
   private static class SerializableSchemaSupplier implements Serializable, Supplier<Schema> {
-    @SuppressFBWarnings(justification = "writeReplace makes this object serializable. This is a "
-        + "limitation of FindBugs as discussed here: http://stackoverflow.com/questions/"
-        + "26156523/is-writeobject-not-neccesary-using-the-serialization-proxy-pattern",
-        value = "SE_BAD_FIELD")
     private final Schema schema;
     private SerializableSchemaSupplier(Schema schema) {
       this.schema = schema;

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/d39471b5/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/InstantCoder.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/InstantCoder.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/InstantCoder.java
index c0409fb..36446aa 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/InstantCoder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/InstantCoder.java
@@ -19,7 +19,6 @@ package org.apache.beam.sdk.coders;
 
 import com.fasterxml.jackson.annotation.JsonCreator;
 import com.google.common.base.Converter;
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
@@ -56,9 +55,6 @@ public class InstantCoder extends AtomicCoder<Instant> {
    * <p>This deliberately utilizes the well-defined overflow for {@code Long} values.
    * See http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.18.2
    */
-  @SuppressFBWarnings(value = "HE_INHERITS_EQUALS_USE_HASHCODE",
-      justification = "Converter overrides .equals() to add documentation "
-          + "but does not change behavior")
   private static class LexicographicLongConverter extends Converter<Instant, Long> {
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/d39471b5/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/PAssert.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/PAssert.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/PAssert.java
index 609dcfaf..b3a14aa 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/PAssert.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/PAssert.java
@@ -24,7 +24,6 @@ import static org.junit.Assert.assertThat;
 
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.io.IOException;
 import java.io.Serializable;
 import java.util.Arrays;
@@ -499,7 +498,6 @@ public class PAssert {
      */
     @Deprecated
     @Override
-    @SuppressFBWarnings(value = "EQ_UNUSUAL", justification = "Unsupported operation")
     public boolean equals(Object o) {
       throw new UnsupportedOperationException(
           "If you meant to test object equality, use .containsInAnyOrder instead.");
@@ -713,7 +711,6 @@ public class PAssert {
      */
     @Deprecated
     @Override
-    @SuppressFBWarnings(value = "EQ_UNUSUAL", justification = "Unsupported operation")
     public boolean equals(Object o) {
       throw new UnsupportedOperationException(
           String.format(

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/d39471b5/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/SerializableMatchers.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/SerializableMatchers.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/SerializableMatchers.java
index 1021b2f..af8f49d 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/SerializableMatchers.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/SerializableMatchers.java
@@ -18,7 +18,6 @@
 package org.apache.beam.sdk.testing;
 
 import com.google.common.base.MoreObjects;
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.io.Serializable;
 import java.util.Arrays;
 import java.util.Collection;
@@ -1147,8 +1146,6 @@ class SerializableMatchers implements Serializable {
   private static class SerializableArrayViaCoder<T> implements SerializableSupplier<T[]> {
     /** Cached value that is not serialized. */
     @Nullable
-    @SuppressFBWarnings(value = "SE_TRANSIENT_FIELD_NOT_RESTORED",
-        justification = "Cached value is lazily restored on read.")
     private transient T[] value;
 
     /** The bytes of {@link #value} when encoded via {@link #coder}. */

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/d39471b5/sdks/java/core/src/main/java/org/apache/beam/sdk/util/AttemptAndTimeBoundedExponentialBackOff.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/util/AttemptAndTimeBoundedExponentialBackOff.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/util/AttemptAndTimeBoundedExponentialBackOff.java
index ff9b10d..f52e10b 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/util/AttemptAndTimeBoundedExponentialBackOff.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/util/AttemptAndTimeBoundedExponentialBackOff.java
@@ -21,7 +21,6 @@ import static com.google.common.base.Preconditions.checkArgument;
 
 import com.google.api.client.util.BackOff;
 import com.google.api.client.util.NanoClock;
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.util.concurrent.TimeUnit;
 
 /**
@@ -130,8 +129,6 @@ public class AttemptAndTimeBoundedExponentialBackOff extends AttemptBoundedExpon
   }
 
   @Override
-  @SuppressFBWarnings(value = "UR_UNINIT_READ_CALLED_FROM_SUPER_CONSTRUCTOR",
-      justification = "Explicitly handled in implementation.")
   public void reset() {
     // reset() is called in the constructor of the parent class before resetPolicy and nanoClock are
     // set.  In this case, we call the parent class's reset() method and return.

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/d39471b5/sdks/java/core/src/main/java/org/apache/beam/sdk/util/ExposedByteArrayInputStream.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/util/ExposedByteArrayInputStream.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/util/ExposedByteArrayInputStream.java
index 662ea38..42f1013 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/util/ExposedByteArrayInputStream.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/util/ExposedByteArrayInputStream.java
@@ -17,7 +17,6 @@
  */
 package org.apache.beam.sdk.util;
 
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 
@@ -33,7 +32,6 @@ public class ExposedByteArrayInputStream extends ByteArrayInputStream{
   /**
    * Read all remaining bytes.
    */
-  @SuppressFBWarnings(value = "EI_EXPOSE_REP", justification = "Returns internal buffer by design")
   public byte[] readAll() throws IOException {
     if (pos == 0 && count == buf.length) {
       pos = count;

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/d39471b5/sdks/java/core/src/main/java/org/apache/beam/sdk/util/ExposedByteArrayOutputStream.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/util/ExposedByteArrayOutputStream.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/util/ExposedByteArrayOutputStream.java
index e4a8062..aaa3ef3 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/util/ExposedByteArrayOutputStream.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/util/ExposedByteArrayOutputStream.java
@@ -17,7 +17,6 @@
  */
 package org.apache.beam.sdk.util;
 
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 
@@ -63,7 +62,6 @@ public class ExposedByteArrayOutputStream extends ByteArrayOutputStream {
    *
    * <p><i>Note: After passing any byte array to this method, it must not be modified again.</i>
    */
-  @SuppressFBWarnings(value = "EI_EXPOSE_REP", justification = "Takes ownership of input buffer")
   public void writeAndOwn(byte[] b) throws IOException {
     if (b.length == 0) {
       return;
@@ -93,7 +91,6 @@ public class ExposedByteArrayOutputStream extends ByteArrayOutputStream {
   }
 
   @Override
-  @SuppressFBWarnings(value = "EI_EXPOSE_REP", justification = "Returns internal buffer by design")
   public byte[] toByteArray() {
     // Note: count == buf.length is not a correct criteria to "return buf;", because the internal
     // buf may be reused after reset().

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/d39471b5/sdks/java/core/src/main/java/org/apache/beam/sdk/util/ZipFiles.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/util/ZipFiles.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/util/ZipFiles.java
index c17de37..a930a78 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/util/ZipFiles.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/util/ZipFiles.java
@@ -26,7 +26,6 @@ import com.google.common.io.ByteSource;
 import com.google.common.io.CharSource;
 import com.google.common.io.Closer;
 import com.google.common.io.Files;
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.io.BufferedOutputStream;
 import java.io.File;
 import java.io.FileOutputStream;
@@ -226,10 +225,6 @@ public final class ZipFiles {
    * @throws IOException the zipping failed, e.g. because the input was not
    *     readable.
    */
-  @SuppressFBWarnings(value = "NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE",
-      justification = "File.listFiles() will return null if the File instance is not a directory. "
-          + "Null dereference is not a possibility here since we validate sourceDirectory is "
-          + "directory via sourceDirectory.isDirectory()")
   public static void zipDirectory(
       File sourceDirectory,
       OutputStream outputStream) throws IOException {
@@ -262,10 +257,6 @@ public final class ZipFiles {
    * @throws IOException the zipping failed, e.g. because the output was not
    *     writeable.
    */
-  @SuppressFBWarnings(value = "NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE",
-      justification = "File.listFiles() will return null if the File instance is not a directory. "
-          + "Null dereference is not a possibility here since we validate inputFile is directory "
-          + "via inputFile.isDirectory()")
   private static void zipDirectoryInternal(
       File inputFile,
       String directoryName,

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/d39471b5/sdks/java/core/src/main/java/org/apache/beam/sdk/util/state/StateMerging.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/util/state/StateMerging.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/util/state/StateMerging.java
index 12baff9..457b213 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/util/state/StateMerging.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/util/state/StateMerging.java
@@ -19,7 +19,6 @@ package org.apache.beam.sdk.util.state;
 
 import static com.google.common.base.Preconditions.checkState;
 
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
@@ -191,8 +190,6 @@ public class StateMerging {
     }
   }
 
-  @SuppressFBWarnings(value = "RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT",
-      justification = "prefetch call readLater")
   private static void prefetchRead(ReadableState<?> source) {
     source.readLater();
   }

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/d39471b5/sdks/java/io/google-cloud-platform/pom.xml
----------------------------------------------------------------------
diff --git a/sdks/java/io/google-cloud-platform/pom.xml b/sdks/java/io/google-cloud-platform/pom.xml
index 31350a9..4be00a9 100644
--- a/sdks/java/io/google-cloud-platform/pom.xml
+++ b/sdks/java/io/google-cloud-platform/pom.xml
@@ -133,24 +133,12 @@
       <groupId>com.google.cloud.bigtable</groupId>
       <artifactId>bigtable-protos</artifactId>
       <version>${bigtable.version}</version>
-      <exclusions>
-        <exclusion>
-          <groupId>com.google.code.findbugs</groupId>
-          <artifactId>jsr305</artifactId>
-        </exclusion>
-      </exclusions>
     </dependency>
 
     <dependency>
       <groupId>com.google.cloud.bigtable</groupId>
       <artifactId>bigtable-client-core</artifactId>
       <version>${bigtable.version}</version>
-      <exclusions>
-        <exclusion>
-          <groupId>com.google.code.findbugs</groupId>
-          <artifactId>jsr305</artifactId>
-        </exclusion>
-      </exclusions>
     </dependency>
 
     <dependency>
@@ -195,7 +183,7 @@
 
     <dependency>
       <groupId>com.google.code.findbugs</groupId>
-      <artifactId>annotations</artifactId>
+      <artifactId>jsr305</artifactId>
     </dependency>
 
     <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/d39471b5/sdks/java/io/hdfs/pom.xml
----------------------------------------------------------------------
diff --git a/sdks/java/io/hdfs/pom.xml b/sdks/java/io/hdfs/pom.xml
index a551455..bd34451 100644
--- a/sdks/java/io/hdfs/pom.xml
+++ b/sdks/java/io/hdfs/pom.xml
@@ -70,7 +70,7 @@
 
     <dependency>
       <groupId>com.google.code.findbugs</groupId>
-      <artifactId>annotations</artifactId>
+      <artifactId>jsr305</artifactId>
     </dependency>
 
     <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/d39471b5/sdks/java/io/jdbc/pom.xml
----------------------------------------------------------------------
diff --git a/sdks/java/io/jdbc/pom.xml b/sdks/java/io/jdbc/pom.xml
index d48ff66..428695c 100644
--- a/sdks/java/io/jdbc/pom.xml
+++ b/sdks/java/io/jdbc/pom.xml
@@ -65,7 +65,7 @@
 
     <dependency>
       <groupId>com.google.code.findbugs</groupId>
-      <artifactId>annotations</artifactId>
+      <artifactId>jsr305</artifactId>
     </dependency>
 
     <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/d39471b5/sdks/java/io/jms/pom.xml
----------------------------------------------------------------------
diff --git a/sdks/java/io/jms/pom.xml b/sdks/java/io/jms/pom.xml
index 40bc219..aedba9e 100644
--- a/sdks/java/io/jms/pom.xml
+++ b/sdks/java/io/jms/pom.xml
@@ -91,7 +91,7 @@
 
     <dependency>
       <groupId>com.google.code.findbugs</groupId>
-      <artifactId>annotations</artifactId>
+      <artifactId>jsr305</artifactId>
     </dependency>
 
     <!-- test dependencies -->

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/d39471b5/sdks/java/io/kafka/pom.xml
----------------------------------------------------------------------
diff --git a/sdks/java/io/kafka/pom.xml b/sdks/java/io/kafka/pom.xml
index 69329a4..cba1eb3 100644
--- a/sdks/java/io/kafka/pom.xml
+++ b/sdks/java/io/kafka/pom.xml
@@ -98,7 +98,7 @@
 
     <dependency>
       <groupId>com.google.code.findbugs</groupId>
-      <artifactId>annotations</artifactId>
+      <artifactId>jsr305</artifactId>
     </dependency>
 
     <!-- test dependencies-->

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/d39471b5/sdks/java/io/kinesis/pom.xml
----------------------------------------------------------------------
diff --git a/sdks/java/io/kinesis/pom.xml b/sdks/java/io/kinesis/pom.xml
index 36c7039..5bf41f0 100644
--- a/sdks/java/io/kinesis/pom.xml
+++ b/sdks/java/io/kinesis/pom.xml
@@ -123,7 +123,7 @@
 
     <dependency>
       <groupId>com.google.code.findbugs</groupId>
-      <artifactId>annotations</artifactId>
+      <artifactId>jsr305</artifactId>
     </dependency>
 
     <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/d39471b5/sdks/java/io/mongodb/pom.xml
----------------------------------------------------------------------
diff --git a/sdks/java/io/mongodb/pom.xml b/sdks/java/io/mongodb/pom.xml
index 4b100a9..4c0066e 100644
--- a/sdks/java/io/mongodb/pom.xml
+++ b/sdks/java/io/mongodb/pom.xml
@@ -69,7 +69,7 @@
 
     <dependency>
       <groupId>com.google.code.findbugs</groupId>
-      <artifactId>annotations</artifactId>
+      <artifactId>jsr305</artifactId>
     </dependency>
 
     <dependency>