[ 
https://issues.apache.org/jira/browse/BEAM-3697?focusedWorklogId=96855&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-96855
 ]

ASF GitHub Bot logged work on BEAM-3697:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 30/Apr/18 21:02
            Start Date: 30/Apr/18 21:02
    Worklog Time Spent: 10m 
      Work Description: kennknowles closed pull request #5161: [BEAM-3697] Add 
errorprone to Gradle build
URL: https://github.com/apache/beam/pull/5161
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/build.gradle b/build.gradle
index 591c42965df..772003b967b 100644
--- a/build.gradle
+++ b/build.gradle
@@ -63,6 +63,7 @@ buildscript {
     classpath "com.github.jengelman.gradle.plugins:shadow:2.0.1"               
                         // Enable shading Java dependencies
     classpath "ca.coglinc:javacc-gradle-plugin:2.4.0"                          
                         // Enable the JavaCC parser generator
     classpath 
"gradle.plugin.io.pry.gradle.offline_dependencies:gradle-offline-dependencies-plugin:0.3"
 // Enable creating an offline repository
+    classpath "net.ltgt.gradle:gradle-errorprone-plugin:0.0.13"                
                         // Enable errorprone Java static analysis
   }
 }
 
diff --git a/build_rules.gradle b/build_rules.gradle
index ff789fea401..aded2f76ddd 100644
--- a/build_rules.gradle
+++ b/build_rules.gradle
@@ -336,6 +336,8 @@ ext.DEFAULT_SHADOW_CLOSURE = {
 class JavaNatureConfiguration {
   double javaVersion = 1.8        // Controls the JDK source language and 
target compatibility
   boolean enableFindbugs = true   // Controls whether the findbugs plugin is 
enabled and configured
+  boolean enableErrorProne = true // Controls whether the errorprone plugin is 
enabled and configured
+
   // The shadowJar / shadowTestJar tasks execute the following closure to 
configure themselves.
   // Users can compose their closure with the default closure via:
   // DEFAULT_SHADOW_CLOSURE << {
@@ -500,6 +502,11 @@ ext.applyJavaNature = {
     }
   }
 
+  // Enable errorprone, not by default right now
+  if (configuration.enableErrorProne) {
+    apply plugin: 'net.ltgt.errorprone'
+  }
+
   // Enables a plugin which can perform shading of classes. See the general 
comments
   // above about dependency management for Java projects and how the shadow 
plugin
   // is expected to be used for the different Gradle configurations.
@@ -813,9 +820,13 @@ ext.applyJavaNature = {
   //
   // TODO: Figure out whether we should force all dependency conflict 
resolution
   // to occur in the "shadow" and "shadowTest" configurations.
-  configurations.all {
-    resolutionStrategy {
-      force library.java.values()
+  configurations.all { config ->
+    // The "errorprone" configuration controls the classpath used by 
errorprone static analysis, which
+    // has different dependencies than our project.
+    if (config.getName() != "errorprone") {
+      config.resolutionStrategy {
+        force library.java.values()
+      }
     }
   }
 
diff --git 
a/examples/java/src/test/java/org/apache/beam/examples/subprocess/ExampleEchoPipelineTest.java
 
b/examples/java/src/test/java/org/apache/beam/examples/subprocess/ExampleEchoPipelineTest.java
index 4a9bec7380a..8fb260b62c5 100644
--- 
a/examples/java/src/test/java/org/apache/beam/examples/subprocess/ExampleEchoPipelineTest.java
+++ 
b/examples/java/src/test/java/org/apache/beam/examples/subprocess/ExampleEchoPipelineTest.java
@@ -58,6 +58,7 @@
  * it is not factored or testable. This test file should be maintained with a 
copy of its
  * code for a basic smoke test.
  **/
+@RunWith(JUnit4.class)
 public class ExampleEchoPipelineTest {
 
   static final Logger LOG = 
LoggerFactory.getLogger(ExampleEchoPipelineTest.class);
@@ -124,7 +125,7 @@
   /**
    * Simple DoFn that echos the element, used as an example of running a C++ 
library.
    */
-  @SuppressWarnings("serial") @RunWith(JUnit4.class) public static class 
EchoInputDoFn
+  @SuppressWarnings("serial") private static class EchoInputDoFn
       extends DoFn<KV<String, String>, KV<String, String>> {
 
     static final Logger LOG = LoggerFactory.getLogger(EchoInputDoFn.class);
diff --git a/model/fn-execution/build.gradle b/model/fn-execution/build.gradle
index 1b4fd224ad8..15770dc5ffb 100644
--- a/model/fn-execution/build.gradle
+++ b/model/fn-execution/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature(enableFindbugs: false)
+applyJavaNature(enableFindbugs: false, enableErrorProne: false)
 applyGrpcNature()
 
 description = "Apache Beam :: Model :: Fn Execution"
diff --git a/model/job-management/build.gradle 
b/model/job-management/build.gradle
index 1be9d6e4ddd..2b475376a37 100644
--- a/model/job-management/build.gradle
+++ b/model/job-management/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature(enableFindbugs: false)
+applyJavaNature(enableFindbugs: false, enableErrorProne: false)
 applyGrpcNature()
 
 description = "Apache Beam :: Model :: Job Management"
diff --git a/model/pipeline/build.gradle b/model/pipeline/build.gradle
index 275a59c79d1..c3ea10490e3 100644
--- a/model/pipeline/build.gradle
+++ b/model/pipeline/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature(enableFindbugs: false)
+applyJavaNature(enableFindbugs: false, enableErrorProne: false)
 applyGrpcNature()
 
 description = "Apache Beam :: Model :: Pipeline"
diff --git 
a/runners/core-construction-java/src/test/java/org/apache/beam/runners/core/construction/PipelineTranslationTest.java
 
b/runners/core-construction-java/src/test/java/org/apache/beam/runners/core/construction/PipelineTranslationTest.java
index c5d1b92b720..839e1271540 100644
--- 
a/runners/core-construction-java/src/test/java/org/apache/beam/runners/core/construction/PipelineTranslationTest.java
+++ 
b/runners/core-construction-java/src/test/java/org/apache/beam/runners/core/construction/PipelineTranslationTest.java
@@ -187,7 +187,7 @@ public void visitValue(PValue value, Node producer) {
     }
 
     private void addCoders(Coder<?> coder) {
-      coders.add(Equivalence.<Coder<?>>identity().wrap(coder));
+      coders.add(Equivalence.identity().wrap(coder));
       if (CoderTranslation.KNOWN_CODER_URNS.containsKey(coder.getClass())) {
         for (Coder<?> component : ((StructuredCoder<?>) 
coder).getComponents()) {
           addCoders(component);
diff --git 
a/runners/core-java/src/test/java/org/apache/beam/runners/core/ReduceFnRunnerTest.java
 
b/runners/core-java/src/test/java/org/apache/beam/runners/core/ReduceFnRunnerTest.java
index 72dd619aedc..0a3c0d6c5da 100644
--- 
a/runners/core-java/src/test/java/org/apache/beam/runners/core/ReduceFnRunnerTest.java
+++ 
b/runners/core-java/src/test/java/org/apache/beam/runners/core/ReduceFnRunnerTest.java
@@ -255,7 +255,7 @@ public void testSessionEowAndGcTogether() throws Exception {
     ReduceFnTester<Integer, Iterable<Integer>, IntervalWindow> tester =
         ReduceFnTester.nonCombining(
             Sessions.withGapDuration(Duration.millis(10)),
-            DefaultTriggerStateMachine.<IntervalWindow>of(),
+            DefaultTriggerStateMachine.of(),
             AccumulationMode.ACCUMULATING_FIRED_PANES,
             Duration.millis(50),
             ClosingBehavior.FIRE_ALWAYS);
@@ -282,7 +282,7 @@ public void testFixedWindowsEowAndGcTogether() throws 
Exception {
     ReduceFnTester<Integer, Iterable<Integer>, IntervalWindow> tester =
         ReduceFnTester.nonCombining(
             FixedWindows.of(Duration.millis(10)),
-            DefaultTriggerStateMachine.<IntervalWindow>of(),
+            DefaultTriggerStateMachine.of(),
             AccumulationMode.ACCUMULATING_FIRED_PANES,
             Duration.millis(50),
             ClosingBehavior.FIRE_ALWAYS);
@@ -309,7 +309,7 @@ public void 
testFixedWindowsEowAndGcTogetherFireIfNonEmpty() throws Exception {
     ReduceFnTester<Integer, Iterable<Integer>, IntervalWindow> tester =
         ReduceFnTester.nonCombining(
             FixedWindows.of(Duration.millis(10)),
-            DefaultTriggerStateMachine.<IntervalWindow>of(),
+            DefaultTriggerStateMachine.of(),
             AccumulationMode.ACCUMULATING_FIRED_PANES,
             Duration.millis(50),
             ClosingBehavior.FIRE_IF_NON_EMPTY);
@@ -1022,7 +1022,7 @@ public void testPaneInfoAllStatesAfterWatermark() throws 
Exception {
   public void noEmptyPanesFinalIfNonEmpty() throws Exception {
     ReduceFnTester<Integer, Iterable<Integer>, IntervalWindow> tester = 
ReduceFnTester.nonCombining(
         WindowingStrategy.of(FixedWindows.of(Duration.millis(10)))
-            
.withTrigger(Repeatedly.<IntervalWindow>forever(AfterFirst.<IntervalWindow>of(
+            .withTrigger(Repeatedly.forever(AfterFirst.of(
                 AfterPane.elementCountAtLeast(2),
                 AfterWatermark.pastEndOfWindow())))
             .withMode(AccumulationMode.ACCUMULATING_FIRED_PANES)
@@ -1049,7 +1049,7 @@ public void noEmptyPanesFinalIfNonEmpty() throws 
Exception {
   public void noEmptyPanesFinalAlways() throws Exception {
     ReduceFnTester<Integer, Iterable<Integer>, IntervalWindow> tester = 
ReduceFnTester.nonCombining(
         WindowingStrategy.of(FixedWindows.of(Duration.millis(10)))
-            
.withTrigger(Repeatedly.<IntervalWindow>forever(AfterFirst.<IntervalWindow>of(
+            .withTrigger(Repeatedly.forever(AfterFirst.of(
                 AfterPane.elementCountAtLeast(2),
                 AfterWatermark.pastEndOfWindow())))
             .withMode(AccumulationMode.ACCUMULATING_FIRED_PANES)
@@ -1650,7 +1650,7 @@ public void testEmptyOnTimeFromOrFinally() throws 
Exception {
         WindowingStrategy.of((WindowFn<?, IntervalWindow>) 
FixedWindows.of(Duration.millis(10)))
             .withTimestampCombiner(TimestampCombiner.EARLIEST)
             .withTrigger(
-                AfterEach.<IntervalWindow>inOrder(
+                AfterEach.inOrder(
                     Repeatedly.forever(
                             AfterProcessingTime.pastFirstElementInPane()
                                 .plusDelayOf(new Duration(5)))
@@ -1703,7 +1703,7 @@ public void 
testEmptyOnTimeWithOnTimeBehaviorFireIfNonEmpty() throws Exception {
         WindowingStrategy.of((WindowFn<?, IntervalWindow>) 
FixedWindows.of(Duration.millis(10)))
             .withTimestampCombiner(TimestampCombiner.EARLIEST)
             .withTrigger(
-                AfterEach.<IntervalWindow>inOrder(
+                AfterEach.inOrder(
                     Repeatedly.forever(
                         AfterProcessingTime.pastFirstElementInPane()
                             .plusDelayOf(new Duration(5)))
@@ -1803,7 +1803,7 @@ public void 
testEmptyOnTimeWithOnTimeBehaviorFireIfNonEmptyAndLateData() throws
         WindowingStrategy.of((WindowFn<?, IntervalWindow>) 
FixedWindows.of(Duration.millis(10)))
             .withTimestampCombiner(TimestampCombiner.EARLIEST)
             .withTrigger(
-                AfterEach.<IntervalWindow>inOrder(
+                AfterEach.inOrder(
                     Repeatedly.forever(
                         AfterProcessingTime.pastFirstElementInPane()
                             .plusDelayOf(new Duration(5)))
@@ -1865,7 +1865,7 @@ public void testProcessingTime() throws Exception {
         WindowingStrategy.of((WindowFn<?, IntervalWindow>) 
FixedWindows.of(Duration.millis(10)))
             .withTimestampCombiner(TimestampCombiner.EARLIEST)
             .withTrigger(
-                AfterEach.<IntervalWindow>inOrder(
+                AfterEach.inOrder(
                     Repeatedly.forever(
                             AfterProcessingTime.pastFirstElementInPane()
                                 .plusDelayOf(new Duration(5)))
@@ -1948,7 +1948,7 @@ public void fireNonEmptyOnDrainInGlobalWindow() throws 
Exception {
     ReduceFnTester<Integer, Iterable<Integer>, GlobalWindow> tester =
         ReduceFnTester.nonCombining(
             WindowingStrategy.of(new GlobalWindows())
-                             .withTrigger(Repeatedly.<GlobalWindow>forever(
+                             .withTrigger(Repeatedly.forever(
                                  AfterPane.elementCountAtLeast(3)))
                              
.withMode(AccumulationMode.DISCARDING_FIRED_PANES));
 
@@ -1985,7 +1985,7 @@ public void fireEmptyOnDrainInGlobalWindowIfRequested() 
throws Exception {
     ReduceFnTester<Integer, Iterable<Integer>, GlobalWindow> tester =
         ReduceFnTester.nonCombining(
             WindowingStrategy.of(new GlobalWindows())
-                             .withTrigger(Repeatedly.<GlobalWindow>forever(
+                             .withTrigger(Repeatedly.forever(
                                  
AfterProcessingTime.pastFirstElementInPane().plusDelayOf(
                                      new Duration(3))))
                              
.withMode(AccumulationMode.DISCARDING_FIRED_PANES));
diff --git 
a/runners/core-java/src/test/java/org/apache/beam/runners/core/SplittableParDoProcessFnTest.java
 
b/runners/core-java/src/test/java/org/apache/beam/runners/core/SplittableParDoProcessFnTest.java
index b9fd0ab1f41..8ceee91852b 100644
--- 
a/runners/core-java/src/test/java/org/apache/beam/runners/core/SplittableParDoProcessFnTest.java
+++ 
b/runners/core-java/src/test/java/org/apache/beam/runners/core/SplittableParDoProcessFnTest.java
@@ -64,6 +64,7 @@
 import org.apache.beam.sdk.values.WindowingStrategy;
 import org.joda.time.Duration;
 import org.joda.time.Instant;
+import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -439,6 +440,8 @@ public OffsetRange getInitialRestriction(Integer elem) {
     }
   }
 
+  @Test
+  @Ignore("https://issues.apache.org/jira/browse/BEAM-4144";)
   public void testResumeCarriesOverState() throws Exception {
     DoFn<Integer, String> fn = new CounterFn(1);
     Instant base = Instant.now();
diff --git 
a/runners/direct-java/src/main/java/org/apache/beam/runners/direct/DirectMetrics.java
 
b/runners/direct-java/src/main/java/org/apache/beam/runners/direct/DirectMetrics.java
index 0656e147b4a..85d9acc7cc0 100644
--- 
a/runners/direct-java/src/main/java/org/apache/beam/runners/direct/DirectMetrics.java
+++ 
b/runners/direct-java/src/main/java/org/apache/beam/runners/direct/DirectMetrics.java
@@ -70,9 +70,10 @@
     private final AtomicReference<UpdateT> finishedCommitted;
 
     private final Object attemptedLock = new Object();
+
     @GuardedBy("attemptedLock")
     private volatile UpdateT finishedAttempted;
-    @GuardedBy("attemptedLock")
+
     private final ConcurrentMap<CommittedBundle<?>, UpdateT> inflightAttempted 
=
         new ConcurrentHashMap<>();
 
@@ -91,7 +92,7 @@ public DirectMetric(MetricAggregation<UpdateT, ResultT> 
aggregation,
      * @param tentativeCumulative The new cumulative value for the given 
bundle.
      */
     public void updatePhysical(CommittedBundle<?> bundle, UpdateT 
tentativeCumulative) {
-      // Add (or update) the cumulatiev value for the given bundle.
+      // Add (or update) the cumulative value for the given bundle.
       inflightAttempted.put(bundle, tentativeCumulative);
     }
 
diff --git 
a/runners/direct-java/src/main/java/org/apache/beam/runners/direct/portable/DirectMetrics.java
 
b/runners/direct-java/src/main/java/org/apache/beam/runners/direct/portable/DirectMetrics.java
index 04b22819802..f8f7cbd95bf 100644
--- 
a/runners/direct-java/src/main/java/org/apache/beam/runners/direct/portable/DirectMetrics.java
+++ 
b/runners/direct-java/src/main/java/org/apache/beam/runners/direct/portable/DirectMetrics.java
@@ -79,9 +79,10 @@
     private final AtomicReference<UpdateT> finishedCommitted;
 
     private final Object attemptedLock = new Object();
+
     @GuardedBy("attemptedLock")
     private volatile UpdateT finishedAttempted;
-    @GuardedBy("attemptedLock")
+
     private final ConcurrentMap<CommittedBundle<?>, UpdateT> inflightAttempted 
=
         new ConcurrentHashMap<>();
 
diff --git 
a/runners/direct-java/src/test/java/org/apache/beam/runners/direct/WatermarkManagerTest.java
 
b/runners/direct-java/src/test/java/org/apache/beam/runners/direct/WatermarkManagerTest.java
index b8aef857dc1..30a2d3b1645 100644
--- 
a/runners/direct-java/src/test/java/org/apache/beam/runners/direct/WatermarkManagerTest.java
+++ 
b/runners/direct-java/src/test/java/org/apache/beam/runners/direct/WatermarkManagerTest.java
@@ -72,6 +72,7 @@
 import org.joda.time.Duration;
 import org.joda.time.Instant;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
@@ -776,6 +777,8 @@ public void updateWatermarkWithLateData() {
     manager.refreshAll();
   }
 
+  @Test
+  @Ignore("https://issues.apache.org/jira/browse/BEAM-4191";)
   public void updateWatermarkWithDifferentWindowedValueInstances() {
     manager.updateWatermarks(
         null,
diff --git 
a/runners/direct-java/src/test/java/org/apache/beam/runners/direct/portable/WatermarkManagerTest.java
 
b/runners/direct-java/src/test/java/org/apache/beam/runners/direct/portable/WatermarkManagerTest.java
index 22880a45f82..08746f70e46 100644
--- 
a/runners/direct-java/src/test/java/org/apache/beam/runners/direct/portable/WatermarkManagerTest.java
+++ 
b/runners/direct-java/src/test/java/org/apache/beam/runners/direct/portable/WatermarkManagerTest.java
@@ -74,6 +74,7 @@
 import org.joda.time.Duration;
 import org.joda.time.Instant;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
@@ -777,6 +778,8 @@ public void updateWatermarkWithLateData() {
     manager.refreshAll();
   }
 
+  @Test
+  @Ignore("https://issues.apache.org/jira/browse/BEAM-4191";)
   public void updateWatermarkWithDifferentWindowedValueInstances() {
     manager.updateWatermarks(
         null,
diff --git 
a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/fs/ResourceIdTester.java 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/fs/ResourceIdTester.java
index 8ceaeed5359..d1965531da3 100644
--- 
a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/fs/ResourceIdTester.java
+++ 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/fs/ResourceIdTester.java
@@ -108,7 +108,7 @@ private static void validateFailureResolvingIds(ResourceId 
baseDirectory) {
     try {
       ResourceId badFile = baseDirectory.resolve("file/", RESOLVE_FILE);
       fail(String.format("Resolving badFile %s should have failed", badFile));
-    } catch (Throwable t) {
+    } catch (IllegalArgumentException e) {
       // expected
     }
 
@@ -116,7 +116,7 @@ private static void validateFailureResolvingIds(ResourceId 
baseDirectory) {
     try {
       baseDirectory.resolve("file2", RESOLVE_FILE);
       fail(String.format("Should not be able to resolve against file resource 
%s", file));
-    } catch (Throwable t) {
+    } catch (IllegalArgumentException e) {
       // expected
     }
   }
diff --git 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/CollectionCoderTest.java
 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/CollectionCoderTest.java
index e6ddf16cf2f..b8ea5d7770d 100644
--- 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/CollectionCoderTest.java
+++ 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/CollectionCoderTest.java
@@ -93,6 +93,7 @@ public void testCoderIsSerializableWithWellKnownCoderType() 
throws Exception {
     
CoderProperties.coderSerializable(CollectionCoder.of(GlobalWindow.Coder.INSTANCE));
   }
 
+  @Test
   public void testEncodedTypeDescriptor() throws Exception {
     TypeDescriptor<Collection<Integer>> expectedTypeDescriptor =
         new TypeDescriptor<Collection<Integer>>() {};
diff --git 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/io/LocalResourceIdTest.java 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/io/LocalResourceIdTest.java
index e1ca30382c7..ec7625eef41 100644
--- 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/io/LocalResourceIdTest.java
+++ 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/io/LocalResourceIdTest.java
@@ -33,6 +33,7 @@
 import org.apache.beam.sdk.io.fs.ResourceId;
 import org.apache.beam.sdk.io.fs.ResourceIdTester;
 import org.apache.commons.lang3.SystemUtils;
+import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
@@ -261,6 +262,7 @@ public void testGetFilename() throws Exception {
   }
 
   @Test
+  @Ignore("https://issues.apache.org/jira/browse/BEAM-4110";)
   public void testResourceIdTester() throws Exception {
     ResourceIdTester.runResourceIdBattery(toResourceIdentifier("/tmp/foo/"));
   }
diff --git 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/transforms/ViewTest.java 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/transforms/ViewTest.java
index cc953c0b82a..ad1cc8434ae 100644
--- a/sdks/java/core/src/test/java/org/apache/beam/sdk/transforms/ViewTest.java
+++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/transforms/ViewTest.java
@@ -207,18 +207,23 @@ public void testListSideInput() {
         pipeline.apply("CreateSideInput", Create.of(11, 13, 17, 
23)).apply(View.asList());
 
     PCollection<Integer> output =
-        pipeline.apply("CreateMainInput", Create.of(29, 31))
-            .apply("OutputSideInputs",
-                ParDo.of(new DoFn<Integer, Integer>() {
-                  @ProcessElement
-                  public void processElement(ProcessContext c) {
-                    checkArgument(c.sideInput(view).size() == 4);
-                    checkArgument(c.sideInput(view).get(0) == 
c.sideInput(view).get(0));
-                    for (Integer i : c.sideInput(view)) {
-                      c.output(i);
-                    }
-                  }
-                }).withSideInputs(view));
+        pipeline
+            .apply("CreateMainInput", Create.of(29, 31))
+            .apply(
+                "OutputSideInputs",
+                ParDo.of(
+                        new DoFn<Integer, Integer>() {
+                          @ProcessElement
+                          public void processElement(ProcessContext c) {
+                            checkArgument(c.sideInput(view).size() == 4);
+                            checkArgument(
+                                
c.sideInput(view).get(0).equals(c.sideInput(view).get(0)));
+                            for (Integer i : c.sideInput(view)) {
+                              c.output(i);
+                            }
+                          }
+                        })
+                    .withSideInputs(view));
 
     PAssert.that(output).containsInAnyOrder(11, 13, 17, 23, 11, 13, 17, 23);
 
@@ -260,7 +265,8 @@ public void testWindowedListSideInput() {
                           @ProcessElement
                           public void processElement(ProcessContext c) {
                             checkArgument(c.sideInput(view).size() == 4);
-                            checkArgument(c.sideInput(view).get(0) == 
c.sideInput(view).get(0));
+                            checkArgument(
+                                
c.sideInput(view).get(0).equals(c.sideInput(view).get(0)));
                             for (Integer i : c.sideInput(view)) {
                               c.output(i);
                             }
diff --git 
a/sdks/java/extensions/google-cloud-platform-core/src/test/java/org/apache/beam/sdk/extensions/gcp/storage/GcsResourceIdTest.java
 
b/sdks/java/extensions/google-cloud-platform-core/src/test/java/org/apache/beam/sdk/extensions/gcp/storage/GcsResourceIdTest.java
index ae7d40c81a1..99f60d57ded 100644
--- 
a/sdks/java/extensions/google-cloud-platform-core/src/test/java/org/apache/beam/sdk/extensions/gcp/storage/GcsResourceIdTest.java
+++ 
b/sdks/java/extensions/google-cloud-platform-core/src/test/java/org/apache/beam/sdk/extensions/gcp/storage/GcsResourceIdTest.java
@@ -28,6 +28,7 @@
 import org.apache.beam.sdk.io.fs.ResourceIdTester;
 import org.apache.beam.sdk.options.PipelineOptionsFactory;
 import org.apache.beam.sdk.util.gcsfs.GcsPath;
+import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
@@ -167,6 +168,7 @@ public void testGetFilename() throws Exception {
   }
 
   @Test
+  @Ignore("https://issues.apache.org/jira/browse/BEAM-4143";)
   public void testResourceIdTester() throws Exception {
     FileSystems.setDefaultPipelineOptions(PipelineOptionsFactory.create());
     
ResourceIdTester.runResourceIdBattery(toResourceIdentifier("gs://bucket/foo/"));
diff --git 
a/sdks/java/extensions/google-cloud-platform-core/src/test/java/org/apache/beam/sdk/util/RetryHttpRequestInitializerTest.java
 
b/sdks/java/extensions/google-cloud-platform-core/src/test/java/org/apache/beam/sdk/util/RetryHttpRequestInitializerTest.java
index 5e7c2d08c74..3c3282ef79e 100644
--- 
a/sdks/java/extensions/google-cloud-platform-core/src/test/java/org/apache/beam/sdk/util/RetryHttpRequestInitializerTest.java
+++ 
b/sdks/java/extensions/google-cloud-platform-core/src/test/java/org/apache/beam/sdk/util/RetryHttpRequestInitializerTest.java
@@ -239,7 +239,7 @@ public Integer answer(InvocationOnMock invocation) {
     try {
       result.executeUnparsed();
       fail();
-    } catch (Throwable t) {
+    } catch (IOException e) {
     }
 
     
verify(mockHttpResponseInterceptor).interceptResponse(any(HttpResponse.class));
diff --git 
a/sdks/java/io/amazon-web-services/src/main/java/org/apache/beam/sdk/io/aws/s3/S3FileSystem.java
 
b/sdks/java/io/amazon-web-services/src/main/java/org/apache/beam/sdk/io/aws/s3/S3FileSystem.java
index 14e027f36c7..f23e8272b3f 100644
--- 
a/sdks/java/io/amazon-web-services/src/main/java/org/apache/beam/sdk/io/aws/s3/S3FileSystem.java
+++ 
b/sdks/java/io/amazon-web-services/src/main/java/org/apache/beam/sdk/io/aws/s3/S3FileSystem.java
@@ -87,9 +87,10 @@
       Runtime.getRuntime().maxMemory() < 512 * 1024 * 1024
           ? MINIMUM_UPLOAD_BUFFER_SIZE_BYTES
           : 64 * 1024 * 1024;
+
   // Amazon S3 API: You can create a copy of your object up to 5 GB in a 
single atomic operation
   // Ref. 
https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjectsExamples.html
-  private static final int MAX_COPY_OBJECT_SIZE_BYTES = 5 * 1024 * 1024 * 1024;
+  private static final long MAX_COPY_OBJECT_SIZE_BYTES = 5L * 1024L * 1024L * 
1024L;
 
   // S3 API, delete-objects: "You may specify up to 1000 keys."
   private static final int MAX_DELETE_OBJECTS_PER_REQUEST = 1000;
diff --git 
a/sdks/java/io/amazon-web-services/src/test/java/org/apache/beam/sdk/io/aws/s3/S3ResourceIdTest.java
 
b/sdks/java/io/amazon-web-services/src/test/java/org/apache/beam/sdk/io/aws/s3/S3ResourceIdTest.java
index 3884f0fdcdd..97fd2bc7b3c 100644
--- 
a/sdks/java/io/amazon-web-services/src/test/java/org/apache/beam/sdk/io/aws/s3/S3ResourceIdTest.java
+++ 
b/sdks/java/io/amazon-web-services/src/test/java/org/apache/beam/sdk/io/aws/s3/S3ResourceIdTest.java
@@ -33,6 +33,7 @@
 import org.apache.beam.sdk.io.fs.ResourceId;
 import org.apache.beam.sdk.io.fs.ResourceIdTester;
 import org.apache.beam.sdk.options.PipelineOptionsFactory;
+import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
@@ -274,22 +275,28 @@ public void testEquals() {
     assertNotEquals(b, a);
   }
 
+  @Test
   public void testInvalidS3ResourceId() {
     thrown.expect(IllegalArgumentException.class);
     S3ResourceId.fromUri("file://invalid/s3/path");
   }
 
+  @Test
+  @Ignore("https://issues.apache.org/jira/browse/BEAM-4184";)
   public void testInvalidBucket() {
     thrown.expect(IllegalArgumentException.class);
     S3ResourceId.fromComponents("invalid/", "");
   }
 
+  @Test
+  @Ignore("https://issues.apache.org/jira/browse/BEAM-4184";)
   public void testInvalidBucketWithUnderscore() {
     thrown.expect(IllegalArgumentException.class);
     S3ResourceId.fromComponents("invalid_bucket", "");
   }
 
   @Test
+  @Ignore("https://issues.apache.org/jira/browse/BEAM-4184";)
   public void testResourceIdTester() throws Exception {
     S3Options options = PipelineOptionsFactory.create().as(S3Options.class);
     options.setAwsRegion("us-west-1");
diff --git 
a/sdks/java/io/cassandra/src/test/java/org/apache/beam/sdk/io/cassandra/CassandraIOIT.java
 
b/sdks/java/io/cassandra/src/test/java/org/apache/beam/sdk/io/cassandra/CassandraIOIT.java
index 8e517efa595..86bf75e234f 100644
--- 
a/sdks/java/io/cassandra/src/test/java/org/apache/beam/sdk/io/cassandra/CassandraIOIT.java
+++ 
b/sdks/java/io/cassandra/src/test/java/org/apache/beam/sdk/io/cassandra/CassandraIOIT.java
@@ -208,7 +208,7 @@ public Scientist() {
     }
 
     public Scientist(int id) {
-      this(0, "");
+      this(id, "");
     }
 
     public Scientist(int id, String name) {
diff --git 
a/sdks/java/io/hadoop-file-system/src/test/java/org/apache/beam/sdk/io/hdfs/HadoopResourceIdTest.java
 
b/sdks/java/io/hadoop-file-system/src/test/java/org/apache/beam/sdk/io/hdfs/HadoopResourceIdTest.java
index c4a8577fbd8..b5e7a9efc44 100644
--- 
a/sdks/java/io/hadoop-file-system/src/test/java/org/apache/beam/sdk/io/hdfs/HadoopResourceIdTest.java
+++ 
b/sdks/java/io/hadoop-file-system/src/test/java/org/apache/beam/sdk/io/hdfs/HadoopResourceIdTest.java
@@ -27,6 +27,7 @@
 import org.apache.hadoop.hdfs.MiniDFSCluster;
 import org.junit.After;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
@@ -62,6 +63,7 @@ public void tearDown() throws Exception {
   }
 
   @Test
+  @Ignore("https://issues.apache.org/jira/browse/BEAM-4142";)
   public void testResourceIdTester() throws Exception {
     ResourceId baseDirectory =
         FileSystems.matchNewResource(
diff --git a/sdks/java/io/jdbc/build.gradle b/sdks/java/io/jdbc/build.gradle
index 88406a495fc..a4ce64c6669 100644
--- a/sdks/java/io/jdbc/build.gradle
+++ b/sdks/java/io/jdbc/build.gradle
@@ -17,7 +17,7 @@
  */
 
 apply from: project(":").file("build_rules.gradle")
-applyJavaNature()
+applyJavaNature(enableFindbugs: false)
 provideIntegrationTestingDependencies()
 enableJavaPerformanceTesting()
 
diff --git 
a/sdks/java/io/kinesis/src/test/java/org/apache/beam/sdk/io/kinesis/KinesisMockWriteTest.java
 
b/sdks/java/io/kinesis/src/test/java/org/apache/beam/sdk/io/kinesis/KinesisMockWriteTest.java
index 4227166d5ed..3f3cc0a24c9 100644
--- 
a/sdks/java/io/kinesis/src/test/java/org/apache/beam/sdk/io/kinesis/KinesisMockWriteTest.java
+++ 
b/sdks/java/io/kinesis/src/test/java/org/apache/beam/sdk/io/kinesis/KinesisMockWriteTest.java
@@ -29,8 +29,8 @@
 import com.amazonaws.services.kinesis.model.DescribeStreamResult;
 import com.amazonaws.services.kinesis.producer.IKinesisProducer;
 import com.amazonaws.services.kinesis.producer.KinesisProducerConfiguration;
+import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Iterables;
-import java.util.Arrays;
 import java.util.List;
 import java.util.Properties;
 import org.apache.beam.sdk.testing.PAssert;
@@ -131,7 +131,7 @@ public void 
testWriteValidationFailsMissingAWSClientsProvider() {
 
   @Test
   public void testNotExistedStream() {
-    Iterable<byte[]> data = Arrays.asList("1".getBytes());
+    Iterable<byte[]> data = ImmutableList.of("1".getBytes());
     p.apply(Create.of(data))
         .apply(
             KinesisIO.write()
@@ -149,7 +149,7 @@ public void testSetInvalidProperty() {
     Properties properties = new Properties();
     properties.setProperty("KinesisPort", "qwe");
 
-    Iterable<byte[]> data = Arrays.asList("1".getBytes());
+    Iterable<byte[]> data = ImmutableList.of("1".getBytes());
     p.apply(Create.of(data))
         .apply(
             KinesisIO.write()
@@ -171,7 +171,7 @@ public void testWrite() {
     properties.setProperty("KinesisPort", "4567");
     properties.setProperty("VerifyCertificate", "false");
 
-    Iterable<byte[]> data = Arrays.asList("1".getBytes(), "2".getBytes(), 
"3".getBytes());
+    Iterable<byte[]> data = ImmutableList.of("1".getBytes(), "2".getBytes(), 
"3".getBytes());
     p.apply(Create.of(data))
         .apply(
             KinesisIO.write()
@@ -186,7 +186,7 @@ public void testWrite() {
 
   @Test
   public void testWriteFailed() {
-    Iterable<byte[]> data = Arrays.asList("1".getBytes());
+    Iterable<byte[]> data = ImmutableList.of("1".getBytes());
     p.apply(Create.of(data))
         .apply(
             KinesisIO.write()
@@ -203,7 +203,7 @@ public void testWriteFailed() {
   public void testWriteAndReadFromMockKinesis() {
     KinesisServiceMock kinesisService = KinesisServiceMock.getInstance();
 
-    Iterable<byte[]> data = Arrays.asList("1".getBytes(), "2".getBytes());
+    Iterable<byte[]> data = ImmutableList.of("1".getBytes(), "2".getBytes());
     p.apply(Create.of(data))
         .apply(
             KinesisIO.write()
diff --git 
a/sdks/java/io/mongodb/src/test/java/org/apache/beam/sdk/io/mongodb/MongoDBGridFSIOTest.java
 
b/sdks/java/io/mongodb/src/test/java/org/apache/beam/sdk/io/mongodb/MongoDBGridFSIOTest.java
index 6e97fcf8eff..2724bf988ff 100644
--- 
a/sdks/java/io/mongodb/src/test/java/org/apache/beam/sdk/io/mongodb/MongoDBGridFSIOTest.java
+++ 
b/sdks/java/io/mongodb/src/test/java/org/apache/beam/sdk/io/mongodb/MongoDBGridFSIOTest.java
@@ -179,7 +179,7 @@ public static void stop() throws Exception {
   public void testFullRead() throws Exception {
 
     PCollection<String> output = pipeline.apply(
-        MongoDbGridFSIO.<String>read()
+        MongoDbGridFSIO.read()
             .withUri("mongodb://localhost:" + port)
             .withDatabase(DATABASE));
 
@@ -203,7 +203,7 @@ public void testReadWithParser() throws Exception {
 
     PCollection<KV<String, Integer>> output =
         pipeline.apply(
-            MongoDbGridFSIO.<KV<String, Integer>>read()
+            MongoDbGridFSIO.read()
                 .withUri("mongodb://localhost:" + port)
                 .withDatabase(DATABASE)
                 .withBucket("mapBucket")
@@ -244,7 +244,7 @@ public void testReadWithParser() throws Exception {
   @Test
   public void testSplit() throws Exception {
     PipelineOptions options = PipelineOptionsFactory.create();
-    MongoDbGridFSIO.Read<String> read = MongoDbGridFSIO.<String>read()
+    MongoDbGridFSIO.Read<String> read = MongoDbGridFSIO.read()
         .withUri("mongodb://localhost:" + port)
         .withDatabase(DATABASE);
 


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


Issue Time Tracking
-------------------

    Worklog Id:     (was: 96855)
    Time Spent: 4.5h  (was: 4h 20m)

> Add errorprone to gradle builds
> -------------------------------
>
>                 Key: BEAM-3697
>                 URL: https://issues.apache.org/jira/browse/BEAM-3697
>             Project: Beam
>          Issue Type: Sub-task
>          Components: build-system
>            Reporter: Eugene Kirpichov
>            Assignee: Kenneth Knowles
>            Priority: Major
>          Time Spent: 4.5h
>  Remaining Estimate: 0h
>
> [http://errorprone.info/] is a good static checker that covers a number of 
> bugs not covered by FindBugs or Checkstyle. We use it internally at Google 
> and, when run on the Beam codebase, it occasionally uncovers issues missed 
> during PR review process.
>  
> It has Maven and Gradle plugins:
> [http://errorprone.info/docs/installation]
> [https://github.com/tbroyer/gradle-errorprone-plugin]
>  
> It would be good to integrate it into our Maven and Gradle builds.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to