From 5e86555a8430f63351c0f6573e8fae0b59073c64 Mon Sep 17 00:00:00 2001 From: Thomas Groh Date: Fri, 14 Oct 2016 10:34:55 -0700 Subject: [PATCH] Remove Remaining Nested Contexts from NullableCoder --- .../org/apache/beam/sdk/coders/NullableCoder.java | 6 +++--- .../org/apache/beam/sdk/coders/NullableCoderTest.java | 11 +++++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/NullableCoder.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/NullableCoder.java index 29b697ce63b0..8a7a1cb5034e 100644 --- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/NullableCoder.java +++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/NullableCoder.java @@ -142,7 +142,7 @@ public void registerByteSizeObserver( @Nullable T value, ElementByteSizeObserver observer, Context context) throws Exception { observer.update(1); if (value != null) { - valueCoder.registerByteSizeObserver(value, observer, context.nested()); + valueCoder.registerByteSizeObserver(value, observer, context); } } @@ -163,7 +163,7 @@ protected long getEncodedElementByteSize(@Nullable T value, Context context) thr // If valueCoder is a StandardCoder then we can ask it directly for the encoded size of // the value, adding 1 byte to count the null indicator. return 1 + ((StandardCoder) valueCoder) - .getEncodedElementByteSize(value, context.nested()); + .getEncodedElementByteSize(value, context); } // If value is not a StandardCoder then fall back to the default StandardCoder behavior @@ -181,6 +181,6 @@ public boolean isRegisterByteSizeObserverCheap(@Nullable T value, Context contex if (value == null) { return true; } - return valueCoder.isRegisterByteSizeObserverCheap(value, context.nested()); + return valueCoder.isRegisterByteSizeObserverCheap(value, context); } } diff --git a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/NullableCoderTest.java b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/NullableCoderTest.java index 425d5ba06e72..21ecb45804dc 100644 --- a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/NullableCoderTest.java +++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/NullableCoderTest.java @@ -103,6 +103,17 @@ public void testEncodedSize() throws Exception { assertEquals(9, coder.getEncodedElementByteSize(5.0, Coder.Context.OUTER)); } + @Test + public void testEncodedSizeNested() throws Exception { + NullableCoder varLenCoder = NullableCoder.of(StringUtf8Coder.of()); + + assertEquals(1, varLenCoder.getEncodedElementByteSize(null, Context.OUTER)); + assertEquals(1, varLenCoder.getEncodedElementByteSize(null, Context.NESTED)); + + assertEquals(5, varLenCoder.getEncodedElementByteSize("spam", Context.OUTER)); + assertEquals(6, varLenCoder.getEncodedElementByteSize("spam", Context.NESTED)); + } + @Test public void testObserverIsCheap() throws Exception { NullableCoder coder = NullableCoder.of(DoubleCoder.of());