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 <[email protected]> Authored: Thu Oct 19 19:42:44 2017 -0700 Committer: Kenneth Knowles <[email protected]> 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;
