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 2017/10/20 22:00:50 UTC

[01/10] beam git commit: NonNull by default in sdk/runners

Repository: beam
Updated Branches:
  refs/heads/master a29e0ad61 -> 66fcda99c


NonNull by default in sdk/runners


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

Branch: refs/heads/master
Commit: 51118fb8e5adc0b21cf306d7ef9cfaec5d21adf8
Parents: 31eeb10
Author: Kenneth Knowles <kl...@google.com>
Authored: Thu Oct 19 19:50:47 2017 -0700
Committer: Kenneth Knowles <ke...@apache.org>
Committed: Fri Oct 20 12:43:38 2017 -0700

----------------------------------------------------------------------
 .../apache/beam/sdk/runners/TransformHierarchy.java  | 15 +++++++++------
 .../org/apache/beam/sdk/runners/package-info.java    |  4 ++++
 2 files changed, 13 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/beam/blob/51118fb8/sdks/java/core/src/main/java/org/apache/beam/sdk/runners/TransformHierarchy.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/runners/TransformHierarchy.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/runners/TransformHierarchy.java
index c2d5771..ec1f7d9 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/runners/TransformHierarchy.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/runners/TransformHierarchy.java
@@ -309,11 +309,13 @@ public class TransformHierarchy {
    * for initialization and ordered visitation.
    */
   public class Node {
-    private final Node enclosingNode;
+    // null for the root node, otherwise the enclosing node
+    @Nullable private final Node enclosingNode;
+
     // The PTransform for this node, which may be a composite PTransform.
     // The root of a TransformHierarchy is represented as a Node
     // with a null transform field.
-    private final PTransform<?, ?> transform;
+    @Nullable private final PTransform<?, ?> transform;
 
     private final String fullName;
 
@@ -324,21 +326,22 @@ public class TransformHierarchy {
     private final Map<TupleTag<?>, PValue> inputs;
 
     // TODO: track which outputs need to be exported to parent.
-    // Output of the transform, in expanded form.
-    private Map<TupleTag<?>, PValue> outputs;
+    // Output of the transform, in expanded form. Null if not yet set.
+    @Nullable private Map<TupleTag<?>, PValue> outputs;
 
     @VisibleForTesting
     boolean finishedSpecifying = false;
 
     /**
      * Creates the root-level node. The root level node has a null enclosing node, a null transform,
-     * an empty map of inputs, and a name equal to the empty string.
+     * an empty map of inputs, an empty map of outputs, and a name equal to the empty string.
      */
     private Node() {
       this.enclosingNode = null;
       this.transform = null;
       this.fullName = "";
       this.inputs = Collections.emptyMap();
+      this.outputs = Collections.emptyMap();
     }
 
     /**
@@ -469,7 +472,7 @@ public class TransformHierarchy {
 
     /** Returns the transform input, in fully expanded form. */
     public Map<TupleTag<?>, PValue> getInputs() {
-      return inputs == null ? Collections.<TupleTag<?>, PValue>emptyMap() : inputs;
+      return inputs;
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/beam/blob/51118fb8/sdks/java/core/src/main/java/org/apache/beam/sdk/runners/package-info.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/runners/package-info.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/runners/package-info.java
index 2726936..cd28c64 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/runners/package-info.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/runners/package-info.java
@@ -20,4 +20,8 @@
 
  * <p>Internals for use by runners.
  */
+@DefaultAnnotation(NonNull.class)
 package org.apache.beam.sdk.runners;
+
+import edu.umd.cs.findbugs.annotations.DefaultAnnotation;
+import edu.umd.cs.findbugs.annotations.NonNull;


[05/10] beam git commit: Make Java core SDK root dir NonNull by default

Posted by ke...@apache.org.
Make Java core SDK root dir NonNull by default


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

Branch: refs/heads/master
Commit: 4502521240a75c61addbb71e783450a7fbe61122
Parents: ff54534
Author: Kenneth Knowles <kl...@google.com>
Authored: Thu Oct 19 19:27:21 2017 -0700
Committer: Kenneth Knowles <ke...@apache.org>
Committed: Fri Oct 20 12:43:38 2017 -0700

----------------------------------------------------------------------
 sdks/java/core/pom.xml                                  |  5 +++++
 .../src/main/java/org/apache/beam/sdk/Pipeline.java     | 12 ++++++++++--
 .../src/main/java/org/apache/beam/sdk/package-info.java |  4 ++++
 3 files changed, 19 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/beam/blob/45025212/sdks/java/core/pom.xml
----------------------------------------------------------------------
diff --git a/sdks/java/core/pom.xml b/sdks/java/core/pom.xml
index 2e54e43..5cead58 100644
--- a/sdks/java/core/pom.xml
+++ b/sdks/java/core/pom.xml
@@ -227,6 +227,11 @@
     </dependency>
 
     <dependency>
+      <groupId>com.github.stephenc.findbugs</groupId>
+      <artifactId>findbugs-annotations</artifactId>
+    </dependency>
+
+    <dependency>
       <groupId>com.fasterxml.jackson.core</groupId>
       <artifactId>jackson-core</artifactId>
     </dependency>

http://git-wip-us.apache.org/repos/asf/beam/blob/45025212/sdks/java/core/src/main/java/org/apache/beam/sdk/Pipeline.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/Pipeline.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/Pipeline.java
index 760efb3..5358f7d 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/Pipeline.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/Pipeline.java
@@ -29,6 +29,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import javax.annotation.Nullable;
 import org.apache.beam.sdk.annotations.Internal;
 import org.apache.beam.sdk.coders.CoderRegistry;
 import org.apache.beam.sdk.io.Read;
@@ -393,9 +394,13 @@ public class Pipeline {
      */
     class Defaults implements PipelineVisitor {
 
-      private Pipeline pipeline;
+      @Nullable private Pipeline pipeline;
 
       protected Pipeline getPipeline() {
+        if (pipeline == null) {
+          throw new IllegalStateException(
+              "Illegal access to pipeline after visitor traversal was completed");
+        }
         return pipeline;
       }
 
@@ -484,7 +489,10 @@ public class Pipeline {
 
   private final TransformHierarchy transforms;
   private Set<String> usedFullNames = new HashSet<>();
-  private CoderRegistry coderRegistry;
+
+  /** Lazily initialized; access via {@link #getCoderRegistry()}. */
+  @Nullable private CoderRegistry coderRegistry;
+
   private final List<String> unstableNames = new ArrayList<>();
   private final PipelineOptions defaultOptions;
 

http://git-wip-us.apache.org/repos/asf/beam/blob/45025212/sdks/java/core/src/main/java/org/apache/beam/sdk/package-info.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/package-info.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/package-info.java
index 995bcb9..7593807 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/package-info.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/package-info.java
@@ -31,4 +31,8 @@
  * where and how it should run after pipeline construction is complete.
  *
  */
+@DefaultAnnotation(NonNull.class)
 package org.apache.beam.sdk;
+
+import edu.umd.cs.findbugs.annotations.DefaultAnnotation;
+import edu.umd.cs.findbugs.annotations.NonNull;


[02/10] beam git commit: NonNull by default in sdk/annotations

Posted by ke...@apache.org.
NonNull by default in sdk/annotations


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

Branch: refs/heads/master
Commit: 31eeb1037d2b59d439ab4f6d6a1f2a468a00f4d0
Parents: e33c514
Author: Kenneth Knowles <kl...@google.com>
Authored: Thu Oct 19 19:43:02 2017 -0700
Committer: Kenneth Knowles <ke...@apache.org>
Committed: Fri Oct 20 12:43:38 2017 -0700

----------------------------------------------------------------------
 .../main/java/org/apache/beam/sdk/annotations/package-info.java  | 4 ++++
 1 file changed, 4 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/beam/blob/31eeb103/sdks/java/core/src/main/java/org/apache/beam/sdk/annotations/package-info.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/annotations/package-info.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/annotations/package-info.java
index df42eda..9f8cfd0 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/annotations/package-info.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/annotations/package-info.java
@@ -18,4 +18,8 @@
 /**
  * Defines annotations used across the SDK.
  */
+@DefaultAnnotation(NonNull.class)
 package org.apache.beam.sdk.annotations;
+
+import edu.umd.cs.findbugs.annotations.DefaultAnnotation;
+import edu.umd.cs.findbugs.annotations.NonNull;


[09/10] beam git commit: NonNull by default for sdk/testing

Posted by ke...@apache.org.
NonNull by default for sdk/testing


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

Branch: refs/heads/master
Commit: 3a64e9199c3f64a7e679e726e67079e93dd6cdd9
Parents: 524d824
Author: Kenneth Knowles <kl...@google.com>
Authored: Thu Oct 19 20:08:36 2017 -0700
Committer: Kenneth Knowles <ke...@apache.org>
Committed: Fri Oct 20 14:51:42 2017 -0700

----------------------------------------------------------------------
 .../beam/sdk/testing/FileChecksumMatcher.java   | 41 +++++++++++++-------
 .../beam/sdk/testing/SuccessOrFailure.java      |  6 +--
 .../apache/beam/sdk/testing/TestPipeline.java   |  4 +-
 .../apache/beam/sdk/testing/WindowSupplier.java |  4 +-
 .../apache/beam/sdk/testing/package-info.java   |  5 +++
 5 files changed, 41 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/beam/blob/3a64e919/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/FileChecksumMatcher.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/FileChecksumMatcher.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/FileChecksumMatcher.java
index 5ed0525..e798841 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/FileChecksumMatcher.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/FileChecksumMatcher.java
@@ -29,6 +29,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.regex.Pattern;
 import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 import org.apache.beam.sdk.PipelineResult;
 import org.apache.beam.sdk.util.FluentBackoff;
 import org.apache.beam.sdk.util.NumberedShardedFile;
@@ -71,9 +72,11 @@ public class FileChecksumMatcher extends TypeSafeMatcher<PipelineResult>
       Pattern.compile("(?x) \\S* (?<shardnum> \\d+) -of- (?<numshards> \\d+)");
 
   private final String expectedChecksum;
-  private String actualChecksum;
   private final ShardedFile shardedFile;
 
+  /** Access via {@link #getActualChecksum()}. */
+  @Nullable private String actualChecksum;
+
   /**
    * Constructor that uses default shard template.
    *
@@ -123,20 +126,30 @@ public class FileChecksumMatcher extends TypeSafeMatcher<PipelineResult>
 
   @Override
   public boolean matchesSafely(PipelineResult pipelineResult) {
-    // Load output data
-    List<String> outputs;
-    try {
-      outputs = shardedFile.readFilesWithRetries(Sleeper.DEFAULT, BACK_OFF_FACTORY.backoff());
-    } catch (Exception e) {
-      throw new RuntimeException(
-          String.format("Failed to read from: %s", shardedFile), e);
-    }
+    return getActualChecksum().equals(expectedChecksum);
+  }
 
-    // Verify outputs. Checksum is computed using SHA-1 algorithm
-    actualChecksum = computeHash(outputs);
-    LOG.debug("Generated checksum: {}", actualChecksum);
+  /**
+   * Computes a checksum of the sharded file specified in the constructor. Not safe to call until
+   * the writing is complete.
+   */
+  private String getActualChecksum() {
+    if (actualChecksum == null) {
+      // Load output data
+      List<String> outputs;
+      try {
+        outputs = shardedFile.readFilesWithRetries(Sleeper.DEFAULT, BACK_OFF_FACTORY.backoff());
+      } catch (Exception e) {
+        throw new RuntimeException(
+            String.format("Failed to read from: %s", shardedFile), e);
+      }
+
+      // Verify outputs. Checksum is computed using SHA-1 algorithm
+      actualChecksum = computeHash(outputs);
+      LOG.debug("Generated checksum: {}", actualChecksum);
+    }
 
-    return actualChecksum.equals(expectedChecksum);
+    return actualChecksum;
   }
 
   private String computeHash(@Nonnull List<String> strs) {
@@ -163,7 +176,7 @@ public class FileChecksumMatcher extends TypeSafeMatcher<PipelineResult>
   public void describeMismatchSafely(PipelineResult pResult, Description description) {
     description
         .appendText("was (")
-        .appendText(actualChecksum)
+        .appendText(getActualChecksum())
         .appendText(")");
   }
 }

http://git-wip-us.apache.org/repos/asf/beam/blob/3a64e919/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/SuccessOrFailure.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/SuccessOrFailure.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/SuccessOrFailure.java
index 79e83d6..a63bbcc 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/SuccessOrFailure.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/SuccessOrFailure.java
@@ -31,10 +31,10 @@ import org.apache.beam.sdk.coders.SerializableCoder;
 @DefaultCoder(SerializableCoder.class)
 public final class SuccessOrFailure implements Serializable {
   private static final class SerializableThrowable implements Serializable {
-    private final Throwable throwable;
-    private final StackTraceElement[] stackTrace;
+    @Nullable private final Throwable throwable;
+    @Nullable private final StackTraceElement[] stackTrace;
 
-    private SerializableThrowable(Throwable t) {
+    private SerializableThrowable(@Nullable Throwable t) {
       this.throwable = t;
       this.stackTrace = (t == null) ? null : t.getStackTrace();
     }

http://git-wip-us.apache.org/repos/asf/beam/blob/3a64e919/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/TestPipeline.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/TestPipeline.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/TestPipeline.java
index be2f193..f2729e9 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/TestPipeline.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/TestPipeline.java
@@ -142,7 +142,8 @@ public class TestPipeline extends Pipeline implements TestRule {
 
   private static class PipelineAbandonedNodeEnforcement extends PipelineRunEnforcement {
 
-    private List<TransformHierarchy.Node> runVisitedNodes;
+    // Null until the pipeline has been run
+    @Nullable private List<TransformHierarchy.Node> runVisitedNodes;
 
     private final Predicate<TransformHierarchy.Node> isPAssertNode =
         new Predicate<TransformHierarchy.Node>() {
@@ -172,6 +173,7 @@ public class TestPipeline extends Pipeline implements TestRule {
 
     private PipelineAbandonedNodeEnforcement(final TestPipeline pipeline) {
       super(pipeline);
+      runVisitedNodes = null;
     }
 
     private List<TransformHierarchy.Node> recordPipelineNodes(final Pipeline pipeline) {

http://git-wip-us.apache.org/repos/asf/beam/blob/3a64e919/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/WindowSupplier.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/WindowSupplier.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/WindowSupplier.java
index 96091ef..953dd27 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/WindowSupplier.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/WindowSupplier.java
@@ -22,6 +22,7 @@ import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 import java.io.Serializable;
 import java.util.Collection;
+import javax.annotation.Nullable;
 import org.apache.beam.sdk.coders.Coder;
 import org.apache.beam.sdk.coders.CoderException;
 import org.apache.beam.sdk.transforms.windowing.BoundedWindow;
@@ -36,7 +37,8 @@ final class WindowSupplier implements Supplier<Collection<BoundedWindow>>, Seria
   private final Coder<? extends BoundedWindow> coder;
   private final Collection<byte[]> encodedWindows;
 
-  private transient Collection<BoundedWindow> windows;
+  /** Access via {@link #get()}.*/
+  @Nullable private transient Collection<BoundedWindow> windows;
 
   public static <W extends BoundedWindow> WindowSupplier of(Coder<W> coder, Iterable<W> windows) {
     ImmutableSet.Builder<byte[]> windowsBuilder = ImmutableSet.builder();

http://git-wip-us.apache.org/repos/asf/beam/blob/3a64e919/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/package-info.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/package-info.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/package-info.java
index e66677d..6a28529 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/package-info.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/testing/package-info.java
@@ -19,4 +19,9 @@
  * Defines utilities for unit testing Apache Beam pipelines. The tests for the {@code PTransform}s
  * and examples included in the Apache Beam SDK provide examples of using these utilities.
  */
+@DefaultAnnotation(NonNull.class)
 package org.apache.beam.sdk.testing;
+
+import edu.umd.cs.findbugs.annotations.DefaultAnnotation;
+import edu.umd.cs.findbugs.annotations.NonNull;
+


[04/10] beam git commit: Add dep on Apache-licensed findbugs-annotations implementation

Posted by ke...@apache.org.
Add dep on Apache-licensed findbugs-annotations implementation

Very useful library, previously unavailable under an acceptable license.  This
is a compatible library reimplemented, discussed and now used by many Apache
projects, including Avro, Falcon, Geode, HBase, Nifi, and Rya.


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

Branch: refs/heads/master
Commit: ff54534edfd9e045d5c253d92272bcddbda0eda3
Parents: f7aa41a
Author: Kenneth Knowles <ke...@apache.org>
Authored: Thu Oct 19 15:07:12 2017 -0700
Committer: Kenneth Knowles <ke...@apache.org>
Committed: Fri Oct 20 12:43:38 2017 -0700

----------------------------------------------------------------------
 pom.xml | 7 +++++++
 1 file changed, 7 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/beam/blob/ff54534e/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 3509407..72e4c94 100644
--- a/pom.xml
+++ b/pom.xml
@@ -137,6 +137,7 @@
     <hamcrest.version>1.3</hamcrest.version>
     <jackson.version>2.8.9</jackson.version>
     <findbugs.version>3.0.1</findbugs.version>
+    <findbugs.annotations.version>1.3.9-1</findbugs.annotations.version>
     <joda.version>2.4</joda.version>
     <junit.version>4.12</junit.version>
     <mockito.version>1.9.5</mockito.version>
@@ -1037,6 +1038,12 @@
       </dependency>
 
       <dependency>
+        <groupId>com.github.stephenc.findbugs</groupId>
+        <artifactId>findbugs-annotations</artifactId>
+        <version>${findbugs.annotations.version}</version>
+      </dependency>
+
+      <dependency>
         <groupId>com.google.cloud.bigdataoss</groupId>
         <artifactId>gcsio</artifactId>
         <version>${google-cloud-bigdataoss.version}</version>


[03/10] beam git commit: NonNull by default in sdk/coders

Posted by ke...@apache.org.
NonNull by default in sdk/coders


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

Branch: refs/heads/master
Commit: e33c514cd9eba32af59c47ca2d49cc0144d0f186
Parents: 4502521
Author: Kenneth Knowles <kl...@google.com>
Authored: Thu Oct 19 19:42:44 2017 -0700
Committer: Kenneth Knowles <ke...@apache.org>
Committed: Fri Oct 20 12:43:38 2017 -0700

----------------------------------------------------------------------
 .../org/apache/beam/sdk/coders/DefaultCoder.java   | 17 ++++++++++-------
 .../apache/beam/sdk/coders/LengthPrefixCoder.java  |  3 +--
 .../apache/beam/sdk/coders/SerializableCoder.java  |  5 ++++-
 .../apache/beam/sdk/coders/StructuredCoder.java    |  8 +-------
 .../java/org/apache/beam/sdk/coders/VoidCoder.java |  2 ++
 .../org/apache/beam/sdk/coders/package-info.java   |  4 ++++
 6 files changed, 22 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/beam/blob/e33c514c/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/DefaultCoder.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/DefaultCoder.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/DefaultCoder.java
index 7eb2ecb..57ab122 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/DefaultCoder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/DefaultCoder.java
@@ -26,6 +26,7 @@ import java.lang.annotation.Target;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.util.List;
+import javax.annotation.CheckForNull;
 import org.apache.beam.sdk.values.PCollection;
 import org.apache.beam.sdk.values.TypeDescriptor;
 import org.slf4j.Logger;
@@ -49,6 +50,7 @@ import org.slf4j.LoggerFactory;
 @Target(ElementType.TYPE)
 @SuppressWarnings("rawtypes")
 public @interface DefaultCoder {
+  @CheckForNull
   Class<? extends Coder> value();
 
   /**
@@ -86,22 +88,23 @@ public @interface DefaultCoder {
                   clazz.getName()));
         }
 
-        if (defaultAnnotation.value() == null) {
+        Class<? extends Coder> defaultAnnotationValue = defaultAnnotation.value();
+        if (defaultAnnotationValue == null) {
           throw new CannotProvideCoderException(
-              String.format("Class %s has a @DefaultCoder annotation with a null value.",
-                  clazz.getName()));
+              String.format(
+                  "Class %s has a @DefaultCoder annotation with a null value.", clazz.getName()));
         }
 
         LOG.debug("DefaultCoder annotation found for {} with value {}",
-            clazz, defaultAnnotation.value());
+            clazz, defaultAnnotationValue);
 
         Method coderProviderMethod;
         try {
-          coderProviderMethod = defaultAnnotation.value().getMethod("getCoderProvider");
+          coderProviderMethod = defaultAnnotationValue.getMethod("getCoderProvider");
         } catch (NoSuchMethodException e) {
           throw new CannotProvideCoderException(String.format(
               "Unable to find 'public static CoderProvider getCoderProvider()' on %s",
-              defaultAnnotation.value()),
+              defaultAnnotationValue),
               e);
         }
 
@@ -115,7 +118,7 @@ public @interface DefaultCoder {
             | ExceptionInInitializerError e) {
           throw new CannotProvideCoderException(String.format(
               "Unable to invoke 'public static CoderProvider getCoderProvider()' on %s",
-              defaultAnnotation.value()),
+              defaultAnnotationValue),
               e);
         }
         return coderProvider.coderFor(typeDescriptor, componentCoders);

http://git-wip-us.apache.org/repos/asf/beam/blob/e33c514c/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/LengthPrefixCoder.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/LengthPrefixCoder.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/LengthPrefixCoder.java
index b24f66d..9466ad1 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/LengthPrefixCoder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/LengthPrefixCoder.java
@@ -26,7 +26,6 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.util.List;
-import javax.annotation.Nullable;
 import org.apache.beam.sdk.util.VarInt;
 
 /**
@@ -126,7 +125,7 @@ public class LengthPrefixCoder<T> extends StructuredCoder<T> {
    * {@inheritDoc}
    */
   @Override
-  public boolean isRegisterByteSizeObserverCheap(@Nullable T value) {
+  public boolean isRegisterByteSizeObserverCheap(T value) {
     return valueCoder.isRegisterByteSizeObserverCheap(value);
   }
 }

http://git-wip-us.apache.org/repos/asf/beam/blob/e33c514c/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/SerializableCoder.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/SerializableCoder.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/SerializableCoder.java
index 9204942..1330125 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/SerializableCoder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/SerializableCoder.java
@@ -25,6 +25,7 @@ import java.io.ObjectOutputStream;
 import java.io.OutputStream;
 import java.io.Serializable;
 import java.util.List;
+import javax.annotation.Nullable;
 import org.apache.beam.sdk.values.TypeDescriptor;
 
 /**
@@ -105,7 +106,9 @@ public class SerializableCoder<T extends Serializable> extends CustomCoder<T> {
   }
 
   private final Class<T> type;
-  private transient TypeDescriptor<T> typeDescriptor;
+
+  /** Access via {@link #getEncodedTypeDescriptor()}. */
+  @Nullable private transient TypeDescriptor<T> typeDescriptor;
 
   protected SerializableCoder(Class<T> type, TypeDescriptor<T> typeDescriptor) {
     this.type = type;

http://git-wip-us.apache.org/repos/asf/beam/blob/e33c514c/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/StructuredCoder.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/StructuredCoder.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/StructuredCoder.java
index bd964f4..fe17e8b 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/StructuredCoder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/StructuredCoder.java
@@ -17,7 +17,6 @@
  */
 package org.apache.beam.sdk.coders;
 
-import java.util.Collections;
 import java.util.List;
 
 /**
@@ -46,12 +45,7 @@ public abstract class StructuredCoder<T> extends Coder<T> {
    * <p>The default components will be equal to the value returned by {@link #getCoderArguments()}.
    */
   public List<? extends Coder<?>> getComponents() {
-    List<? extends Coder<?>> coderArguments = getCoderArguments();
-    if (coderArguments == null) {
-      return Collections.emptyList();
-    } else {
-      return coderArguments;
-    }
+    return getCoderArguments();
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/beam/blob/e33c514c/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/VoidCoder.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/VoidCoder.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/VoidCoder.java
index 0e2236e..82b63f0 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/VoidCoder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/VoidCoder.java
@@ -19,6 +19,7 @@ package org.apache.beam.sdk.coders;
 
 import java.io.InputStream;
 import java.io.OutputStream;
+import javax.annotation.Nullable;
 import org.apache.beam.sdk.values.TypeDescriptor;
 
 /**
@@ -44,6 +45,7 @@ public class VoidCoder extends AtomicCoder<Void> {
   }
 
   @Override
+  @Nullable
   public Void decode(InputStream inStream) {
     // Nothing to read!
     return null;

http://git-wip-us.apache.org/repos/asf/beam/blob/e33c514c/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/package-info.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/package-info.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/package-info.java
index 5693077..9b61223 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/package-info.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/package-info.java
@@ -42,4 +42,8 @@
  * types.
  *
  */
+@DefaultAnnotation(NonNull.class)
 package org.apache.beam.sdk.coders;
+
+import edu.umd.cs.findbugs.annotations.DefaultAnnotation;
+import edu.umd.cs.findbugs.annotations.NonNull;


[07/10] beam git commit: Ignore findbugs in AutoValue generated classes

Posted by ke...@apache.org.
Ignore findbugs in AutoValue generated classes


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

Branch: refs/heads/master
Commit: 62529b7b327de7c356a9b109992f82816f79fb30
Parents: 3a64e91
Author: Kenneth Knowles <kl...@google.com>
Authored: Thu Oct 19 20:26:41 2017 -0700
Committer: Kenneth Knowles <ke...@apache.org>
Committed: Fri Oct 20 14:51:42 2017 -0700

----------------------------------------------------------------------
 .../build-tools/src/main/resources/beam/findbugs-filter.xml   | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/beam/blob/62529b7b/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 bf10571..e7ad509 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
@@ -26,13 +26,18 @@
   <!-- The uncallable method error fails on @ProcessElement style methods -->
   <Bug pattern="UMAC_UNCALLABLE_METHOD_OF_ANONYMOUS_CLASS"/>
 
+  <!-- Suppress checking of AutoValue internals -->
+  <Match>
+    <Class name="~.*AutoValue_.*"/>
+  </Match>
+
   <!--
           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.fn.harness.control.BeamFnControlClient$InboundObserver"/>
     <Method name="onCompleted"/>


[08/10] beam git commit: NonNull by default in sdk/state

Posted by ke...@apache.org.
NonNull by default in sdk/state


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

Branch: refs/heads/master
Commit: 524d824915203da4949d08bdc6bebb6abcb90f55
Parents: 51118fb
Author: Kenneth Knowles <kl...@google.com>
Authored: Thu Oct 19 19:54:46 2017 -0700
Committer: Kenneth Knowles <ke...@apache.org>
Committed: Fri Oct 20 14:51:42 2017 -0700

----------------------------------------------------------------------
 .../java/org/apache/beam/runners/core/SideInputHandler.java    | 2 +-
 .../main/java/org/apache/beam/runners/core/WatermarkHold.java  | 6 +++---
 .../beam/runners/core/triggers/TriggerStateMachineRunner.java  | 3 ++-
 .../core/src/main/java/org/apache/beam/sdk/state/BagState.java | 6 ++++++
 .../main/java/org/apache/beam/sdk/state/CombiningState.java    | 5 +++++
 .../src/main/java/org/apache/beam/sdk/state/ReadableState.java | 4 +++-
 .../src/main/java/org/apache/beam/sdk/state/StateSpecs.java    | 4 ++--
 .../src/main/java/org/apache/beam/sdk/state/package-info.java  | 4 ++++
 8 files changed, 26 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/beam/blob/524d8249/runners/core-java/src/main/java/org/apache/beam/runners/core/SideInputHandler.java
----------------------------------------------------------------------
diff --git a/runners/core-java/src/main/java/org/apache/beam/runners/core/SideInputHandler.java b/runners/core-java/src/main/java/org/apache/beam/runners/core/SideInputHandler.java
index 539b9f0..3b37702 100644
--- a/runners/core-java/src/main/java/org/apache/beam/runners/core/SideInputHandler.java
+++ b/runners/core-java/src/main/java/org/apache/beam/runners/core/SideInputHandler.java
@@ -174,7 +174,7 @@ public class SideInputHandler implements ReadyCheckingSideInputReader {
     ValueState<Iterable<WindowedValue<?>>> state =
         stateInternals.state(StateNamespaces.window(windowCoder, window), stateTag);
 
-    Iterable<WindowedValue<?>> elements = state.read();
+    @Nullable Iterable<WindowedValue<?>> elements = state.read();
 
     if (elements == null) {
       elements = Collections.emptyList();

http://git-wip-us.apache.org/repos/asf/beam/blob/524d8249/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 13e4c43..8859bbb 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
@@ -483,9 +483,9 @@ class WatermarkHold<W extends BoundedWindow> implements Serializable {
       @Override
       public OldAndNewHolds read() {
         // Read both the element and extra holds.
-        Instant elementHold = elementHoldState.read();
-        Instant extraHold = extraHoldState.read();
-        Instant oldHold;
+        @Nullable Instant elementHold = elementHoldState.read();
+        @Nullable Instant extraHold = extraHoldState.read();
+        @Nullable Instant oldHold;
         // Find the minimum, accounting for null.
         if (elementHold == null) {
           oldHold = extraHold;

http://git-wip-us.apache.org/repos/asf/beam/blob/524d8249/runners/core-java/src/main/java/org/apache/beam/runners/core/triggers/TriggerStateMachineRunner.java
----------------------------------------------------------------------
diff --git a/runners/core-java/src/main/java/org/apache/beam/runners/core/triggers/TriggerStateMachineRunner.java b/runners/core-java/src/main/java/org/apache/beam/runners/core/triggers/TriggerStateMachineRunner.java
index 88ea6ef..b643a7b 100644
--- a/runners/core-java/src/main/java/org/apache/beam/runners/core/triggers/TriggerStateMachineRunner.java
+++ b/runners/core-java/src/main/java/org/apache/beam/runners/core/triggers/TriggerStateMachineRunner.java
@@ -24,6 +24,7 @@ import com.google.common.collect.ImmutableMap;
 import java.util.BitSet;
 import java.util.Collection;
 import java.util.Map;
+import javax.annotation.Nullable;
 import org.apache.beam.runners.core.MergingStateAccessor;
 import org.apache.beam.runners.core.StateAccessor;
 import org.apache.beam.runners.core.StateTag;
@@ -79,7 +80,7 @@ public class TriggerStateMachineRunner<W extends BoundedWindow> {
       return FinishedTriggersBitSet.emptyWithCapacity(rootTrigger.getFirstIndexAfterSubtree());
     }
 
-    BitSet bitSet = state.read();
+    @Nullable BitSet bitSet = state.read();
     return bitSet == null
         ? FinishedTriggersBitSet.emptyWithCapacity(rootTrigger.getFirstIndexAfterSubtree())
             : FinishedTriggersBitSet.fromBitSet(bitSet);

http://git-wip-us.apache.org/repos/asf/beam/blob/524d8249/sdks/java/core/src/main/java/org/apache/beam/sdk/state/BagState.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/state/BagState.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/state/BagState.java
index 76d3e32..a4af6eb 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/state/BagState.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/state/BagState.java
@@ -17,6 +17,7 @@
  */
 package org.apache.beam.sdk.state;
 
+import javax.annotation.Nonnull;
 import org.apache.beam.sdk.annotations.Experimental;
 import org.apache.beam.sdk.annotations.Experimental.Kind;
 
@@ -31,6 +32,11 @@ import org.apache.beam.sdk.annotations.Experimental.Kind;
  */
 @Experimental(Kind.STATE)
 public interface BagState<T> extends GroupingState<T, Iterable<T>> {
+
+  @Override
+  @Nonnull
+  Iterable<T> read();
+
   @Override
   BagState<T> readLater();
 }

http://git-wip-us.apache.org/repos/asf/beam/blob/524d8249/sdks/java/core/src/main/java/org/apache/beam/sdk/state/CombiningState.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/state/CombiningState.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/state/CombiningState.java
index 94a36d3..5cf4229 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/state/CombiningState.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/state/CombiningState.java
@@ -17,6 +17,7 @@
  */
 package org.apache.beam.sdk.state;
 
+import javax.annotation.Nonnull;
 import org.apache.beam.sdk.annotations.Experimental;
 import org.apache.beam.sdk.annotations.Experimental.Kind;
 import org.apache.beam.sdk.transforms.Combine.CombineFn;
@@ -35,6 +36,10 @@ import org.apache.beam.sdk.transforms.Combine.CombineFn;
 @Experimental(Kind.STATE)
 public interface CombiningState<InputT, AccumT, OutputT> extends GroupingState<InputT, OutputT> {
 
+  @Override
+  @Nonnull
+  OutputT read();
+
   /**
    * Read the merged accumulator for this state cell. It is implied that reading the state involves
    * reading the accumulator, so {@link #readLater} is sufficient to prefetch for this.

http://git-wip-us.apache.org/repos/asf/beam/blob/524d8249/sdks/java/core/src/main/java/org/apache/beam/sdk/state/ReadableState.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/state/ReadableState.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/state/ReadableState.java
index f2774ba..dec064a 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/state/ReadableState.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/state/ReadableState.java
@@ -17,6 +17,7 @@
  */
 package org.apache.beam.sdk.state;
 
+import javax.annotation.Nullable;
 import org.apache.beam.sdk.annotations.Experimental;
 import org.apache.beam.sdk.annotations.Experimental.Kind;
 
@@ -37,10 +38,11 @@ public interface ReadableState<T> {
    * should first call {@link #readLater} for all of them so the reads can potentially be batched
    * (depending on the underlying implementation}.
    *
-   * <p>The returned object should be independent of the underlying state.  Any direct modification
+   * <p>The returned object should be independent of the underlying state. Any direct modification
    * of the returned object should not modify state without going through the appropriate state
    * interface, and modification to the state should not be mirrored in the returned object.
    */
+  @Nullable
   T read();
 
   /**

http://git-wip-us.apache.org/repos/asf/beam/blob/524d8249/sdks/java/core/src/main/java/org/apache/beam/sdk/state/StateSpecs.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/state/StateSpecs.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/state/StateSpecs.java
index 4222304..360d9d3 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/state/StateSpecs.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/state/StateSpecs.java
@@ -131,7 +131,7 @@ public class StateSpecs {
    * @see #bag(Coder)
    */
   public static <T> StateSpec<BagState<T>> bag() {
-    return bag(null);
+    return new BagStateSpec<>(null);
   }
 
   /**
@@ -151,7 +151,7 @@ public class StateSpecs {
    * @see #set(Coder)
    */
   public static <T> StateSpec<SetState<T>> set() {
-    return set(null);
+    return new SetStateSpec<>(null);
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/beam/blob/524d8249/sdks/java/core/src/main/java/org/apache/beam/sdk/state/package-info.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/state/package-info.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/state/package-info.java
index d8b8e92..01570f0 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/state/package-info.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/state/package-info.java
@@ -19,4 +19,8 @@
 /**
  * Classes and interfaces for interacting with state.
  */
+@DefaultAnnotation(NonNull.class)
 package org.apache.beam.sdk.state;
+
+import edu.umd.cs.findbugs.annotations.DefaultAnnotation;
+import edu.umd.cs.findbugs.annotations.NonNull;


[06/10] beam git commit: NonNull by default in metrics

Posted by ke...@apache.org.
NonNull by default in metrics


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

Branch: refs/heads/master
Commit: a1311d40a443b385d82ad34a9f6057f8ede52c36
Parents: 62529b7
Author: Kenneth Knowles <kl...@google.com>
Authored: Thu Oct 19 20:26:59 2017 -0700
Committer: Kenneth Knowles <ke...@apache.org>
Committed: Fri Oct 20 14:51:42 2017 -0700

----------------------------------------------------------------------
 .../src/main/java/org/apache/beam/sdk/metrics/package-info.java  | 4 ++++
 1 file changed, 4 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/beam/blob/a1311d40/sdks/java/core/src/main/java/org/apache/beam/sdk/metrics/package-info.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/metrics/package-info.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/metrics/package-info.java
index f71dc7a..a391b98 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/metrics/package-info.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/metrics/package-info.java
@@ -25,4 +25,8 @@
  * <p>Runners should look at {@link org.apache.beam.sdk.metrics.MetricsContainer} for details on
  * how to support metrics.
  */
+@DefaultAnnotation(NonNull.class)
 package org.apache.beam.sdk.metrics;
+
+import edu.umd.cs.findbugs.annotations.DefaultAnnotation;
+import edu.umd.cs.findbugs.annotations.NonNull;


[10/10] beam git commit: This closes #4021: [BEAM-3081] Findbugs: NonNull by default

Posted by ke...@apache.org.
This closes #4021: [BEAM-3081] Findbugs: NonNull by default

  NonNull by default in metrics
  Ignore findbugs in AutoValue generated classes
  NonNull by default for sdk/testing
  NonNull by default in sdk/state
  NonNull by default in sdk/runners
  NonNull by default in sdk/annotations
  NonNull by default in sdk/coders
  Make Java core SDK root dir NonNull by default
  Add dep on Apache-licensed findbugs-annotations implementation


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

Branch: refs/heads/master
Commit: 66fcda99c1e5902ff4d0981b887c70f7afe9380a
Parents: a29e0ad a1311d4
Author: Kenneth Knowles <ke...@apache.org>
Authored: Fri Oct 20 14:51:56 2017 -0700
Committer: Kenneth Knowles <ke...@apache.org>
Committed: Fri Oct 20 14:51:56 2017 -0700

----------------------------------------------------------------------
 pom.xml                                         |  7 ++++
 .../beam/runners/core/SideInputHandler.java     |  2 +-
 .../apache/beam/runners/core/WatermarkHold.java |  6 +--
 .../triggers/TriggerStateMachineRunner.java     |  3 +-
 .../src/main/resources/beam/findbugs-filter.xml |  7 +++-
 sdks/java/core/pom.xml                          |  5 +++
 .../main/java/org/apache/beam/sdk/Pipeline.java | 12 +++++-
 .../beam/sdk/annotations/package-info.java      |  4 ++
 .../apache/beam/sdk/coders/DefaultCoder.java    | 17 ++++----
 .../beam/sdk/coders/LengthPrefixCoder.java      |  3 +-
 .../beam/sdk/coders/SerializableCoder.java      |  5 ++-
 .../apache/beam/sdk/coders/StructuredCoder.java |  8 +---
 .../org/apache/beam/sdk/coders/VoidCoder.java   |  2 +
 .../apache/beam/sdk/coders/package-info.java    |  4 ++
 .../apache/beam/sdk/metrics/package-info.java   |  4 ++
 .../java/org/apache/beam/sdk/package-info.java  |  4 ++
 .../beam/sdk/runners/TransformHierarchy.java    | 15 ++++---
 .../apache/beam/sdk/runners/package-info.java   |  4 ++
 .../org/apache/beam/sdk/state/BagState.java     |  6 +++
 .../apache/beam/sdk/state/CombiningState.java   |  5 +++
 .../apache/beam/sdk/state/ReadableState.java    |  4 +-
 .../org/apache/beam/sdk/state/StateSpecs.java   |  4 +-
 .../org/apache/beam/sdk/state/package-info.java |  4 ++
 .../beam/sdk/testing/FileChecksumMatcher.java   | 41 +++++++++++++-------
 .../beam/sdk/testing/SuccessOrFailure.java      |  6 +--
 .../apache/beam/sdk/testing/TestPipeline.java   |  4 +-
 .../apache/beam/sdk/testing/WindowSupplier.java |  4 +-
 .../apache/beam/sdk/testing/package-info.java   |  5 +++
 28 files changed, 142 insertions(+), 53 deletions(-)
----------------------------------------------------------------------