Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 660A3200D26 for ; Sat, 21 Oct 2017 00:00:55 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 64CC1160BCB; Fri, 20 Oct 2017 22:00:55 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 802F9160BEE for ; Sat, 21 Oct 2017 00:00:54 +0200 (CEST) Received: (qmail 78747 invoked by uid 500); 20 Oct 2017 22:00:53 -0000 Mailing-List: contact commits-help@beam.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@beam.apache.org Delivered-To: mailing list commits@beam.apache.org Received: (qmail 78709 invoked by uid 99); 20 Oct 2017 22:00:53 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 20 Oct 2017 22:00:53 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 21618DF9AB; Fri, 20 Oct 2017 22:00:50 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: kenn@apache.org To: commits@beam.apache.org Date: Fri, 20 Oct 2017 22:00:52 -0000 Message-Id: <706120e141644d96974aafd51e94cfa5@git.apache.org> In-Reply-To: <886ee8c53ad04c19a9a72b22f3234673@git.apache.org> References: <886ee8c53ad04c19a9a72b22f3234673@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [03/10] beam git commit: NonNull by default in sdk/coders archived-at: Fri, 20 Oct 2017 22:00:55 -0000 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 Authored: Thu Oct 19 19:42:44 2017 -0700 Committer: Kenneth Knowles 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 value(); /** @@ -86,22 +88,23 @@ public @interface DefaultCoder { clazz.getName())); } - if (defaultAnnotation.value() == null) { + Class 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 extends StructuredCoder { * {@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 extends CustomCoder { } private final Class type; - private transient TypeDescriptor typeDescriptor; + + /** Access via {@link #getEncodedTypeDescriptor()}. */ + @Nullable private transient TypeDescriptor typeDescriptor; protected SerializableCoder(Class type, TypeDescriptor 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 extends Coder { *

The default components will be equal to the value returned by {@link #getCoderArguments()}. */ public List> getComponents() { - List> 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 { } @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;