This is an automated email from the ASF dual-hosted git repository.

apilloud pushed a commit to branch release-2.12.0
in repository https://gitbox.apache.org/repos/asf/beam.git


The following commit(s) were added to refs/heads/release-2.12.0 by this push:
     new 6339847  Merge pull request #8258 from aaltay/j7038
     new 6983e07  Merge pull request #8265: [BEAM-7038] Merge pull request 
#8258 to release branch
6339847 is described below

commit 633984763a86c815bd66c1edb0e887e2de275eef
Author: Ahmet Altay <[email protected]>
AuthorDate: Tue Apr 9 15:00:32 2019 -0700

    Merge pull request #8258 from aaltay/j7038
    
    [BEAM-7038] Revert "[BEAM-3279] Deprecate and remove 
Coder.consistentWithEquals (#8071)
---
 .../apache/beam/sdk/coders/BigDecimalCoder.java    | 16 +++++----
 .../beam/sdk/coders/BigEndianIntegerCoder.java     | 16 +++++----
 .../apache/beam/sdk/coders/BigEndianLongCoder.java | 16 +++++----
 .../beam/sdk/coders/BigEndianShortCoder.java       | 16 +++++----
 .../apache/beam/sdk/coders/BigIntegerCoder.java    | 16 +++++----
 .../org/apache/beam/sdk/coders/BitSetCoder.java    |  5 ++-
 .../org/apache/beam/sdk/coders/BooleanCoder.java   | 11 +++----
 .../java/org/apache/beam/sdk/coders/ByteCoder.java | 16 +++++----
 .../java/org/apache/beam/sdk/coders/Coder.java     | 13 +++-----
 .../org/apache/beam/sdk/coders/DoubleCoder.java    | 16 +++++----
 .../org/apache/beam/sdk/coders/DurationCoder.java  | 16 +++++----
 .../org/apache/beam/sdk/coders/FloatCoder.java     | 16 +++++----
 .../org/apache/beam/sdk/coders/InstantCoder.java   | 16 +++++----
 .../java/org/apache/beam/sdk/coders/RowCoder.java  | 11 +++----
 .../apache/beam/sdk/coders/SerializableCoder.java  |  5 +++
 .../apache/beam/sdk/coders/StringUtf8Coder.java    |  6 ----
 .../org/apache/beam/sdk/coders/VarIntCoder.java    | 16 +++++----
 .../org/apache/beam/sdk/coders/VarLongCoder.java   | 16 +++++----
 .../beam/sdk/coders/BigDecimalCoderTest.java       |  8 -----
 .../beam/sdk/coders/BigEndianIntegerCoderTest.java |  8 -----
 .../beam/sdk/coders/BigEndianLongCoderTest.java    |  8 -----
 .../beam/sdk/coders/BigIntegerCoderTest.java       |  8 -----
 .../apache/beam/sdk/coders/BitSetCoderTest.java    |  8 -----
 .../apache/beam/sdk/coders/BooleanCoderTest.java   | 37 ---------------------
 .../org/apache/beam/sdk/coders/ByteCoderTest.java  |  8 -----
 .../apache/beam/sdk/coders/CoderRegistryTest.java  |  5 +++
 .../apache/beam/sdk/coders/DoubleCoderTest.java    |  8 -----
 .../apache/beam/sdk/coders/DurationCoderTest.java  |  8 -----
 .../org/apache/beam/sdk/coders/FloatCoderTest.java | 38 ----------------------
 .../apache/beam/sdk/coders/InstantCoderTest.java   |  8 -----
 .../org/apache/beam/sdk/coders/KvCoderTest.java    |  8 -----
 .../org/apache/beam/sdk/coders/ListCoderTest.java  | 22 ++++++++-----
 .../org/apache/beam/sdk/coders/MapCoderTest.java   | 22 ++++++++-----
 .../org/apache/beam/sdk/coders/RowCoderTest.java   | 11 -------
 .../beam/sdk/coders/SerializableCoderTest.java     |  8 -----
 .../beam/sdk/coders/StringUtf8CoderTest.java       |  8 -----
 .../beam/sdk/coders/StructuredCoderTest.java       | 10 ++++++
 .../apache/beam/sdk/coders/VarIntCoderTest.java    |  8 -----
 .../apache/beam/sdk/coders/VarLongCoderTest.java   |  8 -----
 39 files changed, 184 insertions(+), 316 deletions(-)

diff --git 
a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigDecimalCoder.java 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigDecimalCoder.java
index 5c1fccd..e705120 100644
--- 
a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigDecimalCoder.java
+++ 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigDecimalCoder.java
@@ -82,6 +82,16 @@ public class BigDecimalCoder extends AtomicCoder<BigDecimal> 
{
   /**
    * {@inheritDoc}
    *
+   * @return {@code true}. This coder is injective.
+   */
+  @Override
+  public boolean consistentWithEquals() {
+    return true;
+  }
+
+  /**
+   * {@inheritDoc}
+   *
    * @return {@code true}, because {@link #getEncodedElementByteSize} runs in 
constant time.
    */
   @Override
@@ -102,10 +112,4 @@ public class BigDecimalCoder extends 
AtomicCoder<BigDecimal> {
     return VAR_INT_CODER.getEncodedElementByteSize(value.scale())
         + BIG_INT_CODER.getEncodedElementByteSize(value.unscaledValue());
   }
-
-  /** {@inheritDoc} */
-  @Override
-  public Object structuralValue(BigDecimal value) {
-    return value;
-  }
 }
diff --git 
a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigEndianIntegerCoder.java
 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigEndianIntegerCoder.java
index 30918ad..680901a 100644
--- 
a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigEndianIntegerCoder.java
+++ 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigEndianIntegerCoder.java
@@ -65,6 +65,16 @@ public class BigEndianIntegerCoder extends 
AtomicCoder<Integer> {
   /**
    * {@inheritDoc}
    *
+   * @return {@code true}. This coder is injective.
+   */
+  @Override
+  public boolean consistentWithEquals() {
+    return true;
+  }
+
+  /**
+   * {@inheritDoc}
+   *
    * @return {@code true}, because {@link #getEncodedElementByteSize} runs in 
constant time.
    */
   @Override
@@ -89,10 +99,4 @@ public class BigEndianIntegerCoder extends 
AtomicCoder<Integer> {
     }
     return 4;
   }
-
-  /** {@inheritDoc} */
-  @Override
-  public Object structuralValue(Integer value) {
-    return value;
-  }
 }
diff --git 
a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigEndianLongCoder.java
 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigEndianLongCoder.java
index 158ff8f..c13bacb 100644
--- 
a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigEndianLongCoder.java
+++ 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigEndianLongCoder.java
@@ -65,6 +65,16 @@ public class BigEndianLongCoder extends AtomicCoder<Long> {
   /**
    * {@inheritDoc}
    *
+   * @return {@code true}. This coder is injective.
+   */
+  @Override
+  public boolean consistentWithEquals() {
+    return true;
+  }
+
+  /**
+   * {@inheritDoc}
+   *
    * @return {@code true}, since {@link #getEncodedElementByteSize} returns a 
constant.
    */
   @Override
@@ -89,10 +99,4 @@ public class BigEndianLongCoder extends AtomicCoder<Long> {
     }
     return 8;
   }
-
-  /** {@inheritDoc} */
-  @Override
-  public Object structuralValue(Long value) {
-    return value;
-  }
 }
diff --git 
a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigEndianShortCoder.java
 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigEndianShortCoder.java
index af47d28..2ea605f 100644
--- 
a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigEndianShortCoder.java
+++ 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigEndianShortCoder.java
@@ -65,6 +65,16 @@ public class BigEndianShortCoder extends AtomicCoder<Short> {
   /**
    * {@inheritDoc}
    *
+   * @return {@code true}. This coder is injective.
+   */
+  @Override
+  public boolean consistentWithEquals() {
+    return true;
+  }
+
+  /**
+   * {@inheritDoc}
+   *
    * @return {@code true}, because {@link #getEncodedElementByteSize} runs in 
constant time.
    */
   @Override
@@ -89,10 +99,4 @@ public class BigEndianShortCoder extends AtomicCoder<Short> {
     }
     return 2;
   }
-
-  /** {@inheritDoc} */
-  @Override
-  public Object structuralValue(Short value) {
-    return value;
-  }
 }
diff --git 
a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigIntegerCoder.java 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigIntegerCoder.java
index cfbf486..a878e6c 100644
--- 
a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigIntegerCoder.java
+++ 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BigIntegerCoder.java
@@ -72,6 +72,16 @@ public class BigIntegerCoder extends AtomicCoder<BigInteger> 
{
   /**
    * {@inheritDoc}
    *
+   * @return {@code true}. This coder is injective.
+   */
+  @Override
+  public boolean consistentWithEquals() {
+    return true;
+  }
+
+  /**
+   * {@inheritDoc}
+   *
    * @return {@code true}, because {@link #getEncodedElementByteSize} runs in 
constant time.
    */
   @Override
@@ -89,10 +99,4 @@ public class BigIntegerCoder extends AtomicCoder<BigInteger> 
{
     checkNotNull(value, String.format("cannot encode a null %s", 
BigInteger.class.getSimpleName()));
     return BYTE_ARRAY_CODER.getEncodedElementByteSize(value.toByteArray());
   }
-
-  /** {@inheritDoc} */
-  @Override
-  public Object structuralValue(BigInteger value) {
-    return value;
-  }
 }
diff --git 
a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BitSetCoder.java 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BitSetCoder.java
index 7dd5abc..27d8d5b 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BitSetCoder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BitSetCoder.java
@@ -63,9 +63,8 @@ public class BitSetCoder extends AtomicCoder<BitSet> {
         this, "BitSetCoder requires its ByteArrayCoder to be deterministic.", 
BYTE_ARRAY_CODER);
   }
 
-  /** {@inheritDoc} */
   @Override
-  public Object structuralValue(BitSet value) {
-    return value;
+  public boolean consistentWithEquals() {
+    return true;
   }
 }
diff --git 
a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BooleanCoder.java 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BooleanCoder.java
index a7b6fcf..e7f7543 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BooleanCoder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/BooleanCoder.java
@@ -43,18 +43,17 @@ public class BooleanCoder extends AtomicCoder<Boolean> {
   }
 
   @Override
-  public boolean isRegisterByteSizeObserverCheap(Boolean value) {
+  public boolean consistentWithEquals() {
     return true;
   }
 
   @Override
-  protected long getEncodedElementByteSize(Boolean value) throws Exception {
-    return 1;
+  public boolean isRegisterByteSizeObserverCheap(Boolean value) {
+    return true;
   }
 
-  /** {@inheritDoc} */
   @Override
-  public Object structuralValue(Boolean value) {
-    return value;
+  protected long getEncodedElementByteSize(Boolean value) throws Exception {
+    return 1;
   }
 }
diff --git 
a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/ByteCoder.java 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/ByteCoder.java
index cd735f1..08a7cb6 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/ByteCoder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/ByteCoder.java
@@ -74,6 +74,16 @@ public class ByteCoder extends AtomicCoder<Byte> {
   /**
    * {@inheritDoc}
    *
+   * @return {@code true}. This coder is injective.
+   */
+  @Override
+  public boolean consistentWithEquals() {
+    return true;
+  }
+
+  /**
+   * {@inheritDoc}
+   *
    * @return {@code true}. {@link ByteCoder#getEncodedElementByteSize} returns 
a constant.
    */
   @Override
@@ -98,10 +108,4 @@ public class ByteCoder extends AtomicCoder<Byte> {
     }
     return 1;
   }
-
-  /** {@inheritDoc} */
-  @Override
-  public Object structuralValue(Byte value) {
-    return value;
-  }
 }
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/Coder.java 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/Coder.java
index 40ec138..1ba5537 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/Coder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/Coder.java
@@ -210,20 +210,15 @@ public abstract class Coder<T> implements Serializable {
   /**
    * Returns {@code true} if this {@link Coder} is injective with respect to 
{@link Objects#equals}.
    *
-   * <p>By default, returns false, assuming that the encoding may differ from 
{@link Objects#equals}
-   * in arbitrary ways.
-   *
    * <p>Whenever the encoded bytes of two values are equal, then the original 
values are equal
    * according to {@code Objects.equals()}. Note that this is well-defined for 
{@code null}.
    *
-   * <p>This condition is most notably false for arrays, where encoded 
equality does not correspond
-   * to Java equality. More generally, this condition is false whenever {@code 
equals()} compares
-   * object identity, rather than performing a semantic/structural comparison.
+   * <p>This condition is most notably false for arrays. More generally, this 
condition is false
+   * whenever {@code equals()} compares object identity, rather than 
performing a
+   * semantic/structural comparison.
    *
-   * @deprecated For coders that are injective with respect to {@link 
Objects#equals}, override
-   *     {@link #structuralValue(Object)} to return the input element directly.
+   * <p>By default, returns false.
    */
-  @Deprecated
   public boolean consistentWithEquals() {
     return false;
   }
diff --git 
a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/DoubleCoder.java 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/DoubleCoder.java
index ba9130e..7cc9dd2 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/DoubleCoder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/DoubleCoder.java
@@ -75,6 +75,16 @@ public class DoubleCoder extends AtomicCoder<Double> {
   /**
    * {@inheritDoc}
    *
+   * @return {@code true}. This coder is injective.
+   */
+  @Override
+  public boolean consistentWithEquals() {
+    return true;
+  }
+
+  /**
+   * {@inheritDoc}
+   *
    * @return {@code true}. {@link DoubleCoder#getEncodedElementByteSize} 
returns a constant.
    */
   @Override
@@ -99,10 +109,4 @@ public class DoubleCoder extends AtomicCoder<Double> {
     }
     return 8;
   }
-
-  /** {@inheritDoc} */
-  @Override
-  public Object structuralValue(Double value) {
-    return value;
-  }
 }
diff --git 
a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/DurationCoder.java 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/DurationCoder.java
index 1b56677..3ddc4ee 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/DurationCoder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/DurationCoder.java
@@ -75,6 +75,16 @@ public class DurationCoder extends 
AtomicCoder<ReadableDuration> {
   /**
    * {@inheritDoc}
    *
+   * @return {@code true}. This coder is injective.
+   */
+  @Override
+  public boolean consistentWithEquals() {
+    return true;
+  }
+
+  /**
+   * {@inheritDoc}
+   *
    * @return {@code true}, because it is cheap to ascertain the byte size of a 
long.
    */
   @Override
@@ -92,10 +102,4 @@ public class DurationCoder extends 
AtomicCoder<ReadableDuration> {
   public TypeDescriptor<ReadableDuration> getEncodedTypeDescriptor() {
     return TYPE_DESCRIPTOR;
   }
-
-  /** {@inheritDoc} */
-  @Override
-  public Object structuralValue(ReadableDuration value) {
-    return value;
-  }
 }
diff --git 
a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/FloatCoder.java 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/FloatCoder.java
index b320193..b131c4e 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/FloatCoder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/FloatCoder.java
@@ -75,6 +75,16 @@ public class FloatCoder extends AtomicCoder<Float> {
   /**
    * {@inheritDoc}
    *
+   * @return {@code true}. This coder is injective.
+   */
+  @Override
+  public boolean consistentWithEquals() {
+    return true;
+  }
+
+  /**
+   * {@inheritDoc}
+   *
    * @return {@code true}. {@link FloatCoder#getEncodedElementByteSize} 
returns a constant.
    */
   @Override
@@ -99,10 +109,4 @@ public class FloatCoder extends AtomicCoder<Float> {
     }
     return 4;
   }
-
-  /** {@inheritDoc} */
-  @Override
-  public Object structuralValue(Float value) {
-    return value;
-  }
 }
diff --git 
a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/InstantCoder.java 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/InstantCoder.java
index 8d93f58..2a94f07 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/InstantCoder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/InstantCoder.java
@@ -85,6 +85,16 @@ public class InstantCoder extends AtomicCoder<Instant> {
   /**
    * {@inheritDoc}
    *
+   * @return {@code true}. This coder is injective.
+   */
+  @Override
+  public boolean consistentWithEquals() {
+    return true;
+  }
+
+  /**
+   * {@inheritDoc}
+   *
    * @return {@code true}. The byte size for a big endian long is a constant.
    */
   @Override
@@ -104,10 +114,4 @@ public class InstantCoder extends AtomicCoder<Instant> {
   public TypeDescriptor<Instant> getEncodedTypeDescriptor() {
     return TYPE_DESCRIPTOR;
   }
-
-  /** {@inheritDoc} */
-  @Override
-  public Object structuralValue(Instant value) {
-    return value;
-  }
 }
diff --git 
a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/RowCoder.java 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/RowCoder.java
index d8f4ef9..c4f753f 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/RowCoder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/RowCoder.java
@@ -134,6 +134,11 @@ public class RowCoder extends CustomCoder<Row> {
     Coder.verifyDeterministic(this, "All fields must have deterministic 
encoding", coders);
   }
 
+  @Override
+  public boolean consistentWithEquals() {
+    return true;
+  }
+
   /** Returns the coder used for a given primitive type. */
   public static <T> Coder<T> coderForFieldType(FieldType fieldType) {
     switch (fieldType.getTypeName()) {
@@ -198,10 +203,4 @@ public class RowCoder extends CustomCoder<Row> {
         return ESTIMATED_FIELD_SIZES.get(typeDescriptor.getTypeName());
     }
   }
-
-  /** {@inheritDoc} */
-  @Override
-  public Object structuralValue(Row value) {
-    return value;
-  }
 }
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 d682345..ea84dbd 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
@@ -72,6 +72,11 @@ public class SerializableCoder<T extends Serializable> 
extends CustomCoder<T> {
     return new SerializableCoder<>(clazz, type);
   }
 
+  @Override
+  public boolean consistentWithEquals() {
+    return false;
+  }
+
   /**
    * The structural value of the object is the object itself. The {@link 
SerializableCoder} should
    * be only used for objects with a proper {@link Object#equals} 
implementation.
diff --git 
a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/StringUtf8Coder.java 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/StringUtf8Coder.java
index cb52c9c..4414cb3 100644
--- 
a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/StringUtf8Coder.java
+++ 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/StringUtf8Coder.java
@@ -138,10 +138,4 @@ public class StringUtf8Coder extends AtomicCoder<String> {
     int size = Utf8.encodedLength(value);
     return (long) VarInt.getLength(size) + size;
   }
-
-  /** {@inheritDoc} */
-  @Override
-  public Object structuralValue(String value) {
-    return value;
-  }
 }
diff --git 
a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/VarIntCoder.java 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/VarIntCoder.java
index 0bde3ae..c16ed77 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/VarIntCoder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/VarIntCoder.java
@@ -68,6 +68,16 @@ public class VarIntCoder extends AtomicCoder<Integer> {
   /**
    * {@inheritDoc}
    *
+   * @return {@code true}. {@link VarIntCoder} is injective.
+   */
+  @Override
+  public boolean consistentWithEquals() {
+    return true;
+  }
+
+  /**
+   * {@inheritDoc}
+   *
    * @return {@code true}. {@link #getEncodedElementByteSize} is cheap.
    */
   @Override
@@ -87,10 +97,4 @@ public class VarIntCoder extends AtomicCoder<Integer> {
     }
     return VarInt.getLength(value.longValue());
   }
-
-  /** {@inheritDoc} */
-  @Override
-  public Object structuralValue(Integer value) {
-    return value;
-  }
 }
diff --git 
a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/VarLongCoder.java 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/VarLongCoder.java
index 14fb1c1..c739253 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/VarLongCoder.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/VarLongCoder.java
@@ -74,6 +74,16 @@ public class VarLongCoder extends StructuredCoder<Long> {
   /**
    * {@inheritDoc}
    *
+   * @return {@code true}. {@link VarLongCoder} is injective.
+   */
+  @Override
+  public boolean consistentWithEquals() {
+    return true;
+  }
+
+  /**
+   * {@inheritDoc}
+   *
    * @return {@code true}. {@link #getEncodedElementByteSize} is cheap.
    */
   @Override
@@ -93,10 +103,4 @@ public class VarLongCoder extends StructuredCoder<Long> {
     }
     return VarInt.getLength(value);
   }
-
-  /** {@inheritDoc} */
-  @Override
-  public Object structuralValue(Long value) {
-    return value;
-  }
 }
diff --git 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BigDecimalCoderTest.java
 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BigDecimalCoderTest.java
index 78ebad6..4acc0bc 100644
--- 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BigDecimalCoderTest.java
+++ 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BigDecimalCoderTest.java
@@ -18,7 +18,6 @@
 package org.apache.beam.sdk.coders;
 
 import static org.hamcrest.Matchers.equalTo;
-import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
 
 import java.math.BigDecimal;
@@ -114,11 +113,4 @@ public class BigDecimalCoderTest {
 
     CoderUtils.encodeToBase64(TEST_CODER, null);
   }
-
-  @Test
-  public void testStructuralValueReturnTheSameValue() {
-    BigDecimal expected = new BigDecimal(123.23);
-    Object actual = TEST_CODER.structuralValue(expected);
-    assertEquals(expected, actual);
-  }
 }
diff --git 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BigEndianIntegerCoderTest.java
 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BigEndianIntegerCoderTest.java
index 7fc07e4..b9730ad 100644
--- 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BigEndianIntegerCoderTest.java
+++ 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BigEndianIntegerCoderTest.java
@@ -18,7 +18,6 @@
 package org.apache.beam.sdk.coders;
 
 import static org.hamcrest.Matchers.equalTo;
-import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
 
 import java.util.Arrays;
@@ -76,11 +75,4 @@ public class BigEndianIntegerCoderTest {
   public void testEncodedTypeDescriptor() throws Exception {
     assertThat(TEST_CODER.getEncodedTypeDescriptor(), 
equalTo(TypeDescriptor.of(Integer.class)));
   }
-
-  @Test
-  public void testStructuralValueReturnTheSameValue() {
-    Integer expected = 223;
-    Object actual = TEST_CODER.structuralValue(expected);
-    assertEquals(expected, actual);
-  }
 }
diff --git 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BigEndianLongCoderTest.java
 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BigEndianLongCoderTest.java
index d7b1de5..873cac8 100644
--- 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BigEndianLongCoderTest.java
+++ 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BigEndianLongCoderTest.java
@@ -18,7 +18,6 @@
 package org.apache.beam.sdk.coders;
 
 import static org.hamcrest.Matchers.equalTo;
-import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
 
 import java.util.Arrays;
@@ -98,11 +97,4 @@ public class BigEndianLongCoderTest {
   public void testEncodedTypeDescriptor() throws Exception {
     assertThat(TEST_CODER.getEncodedTypeDescriptor(), 
equalTo(TypeDescriptor.of(Long.class)));
   }
-
-  @Test
-  public void testStructuralValueReturnTheSameValue() {
-    Long expected = 223L;
-    Object actual = TEST_CODER.structuralValue(expected);
-    assertEquals(expected, actual);
-  }
 }
diff --git 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BigIntegerCoderTest.java
 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BigIntegerCoderTest.java
index 4d51f51..37ce59d 100644
--- 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BigIntegerCoderTest.java
+++ 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BigIntegerCoderTest.java
@@ -18,7 +18,6 @@
 package org.apache.beam.sdk.coders;
 
 import static org.hamcrest.Matchers.equalTo;
-import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
 
 import java.math.BigInteger;
@@ -89,11 +88,4 @@ public class BigIntegerCoderTest {
 
     CoderUtils.encodeToBase64(TEST_CODER, null);
   }
-
-  @Test
-  public void testStructuralValueReturnTheSameValue() {
-    BigInteger expected = BigInteger.valueOf(223L);
-    Object actual = TEST_CODER.structuralValue(expected);
-    assertEquals(expected, actual);
-  }
 }
diff --git 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BitSetCoderTest.java 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BitSetCoderTest.java
index c3c9f3a..7d87303 100644
--- 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BitSetCoderTest.java
+++ 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BitSetCoderTest.java
@@ -18,7 +18,6 @@
 package org.apache.beam.sdk.coders;
 
 import static org.hamcrest.Matchers.equalTo;
-import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
 
 import java.util.Arrays;
@@ -99,11 +98,4 @@ public class BitSetCoderTest {
   public void testEncodedTypeDescriptor() throws Exception {
     assertThat(TEST_CODER.getEncodedTypeDescriptor(), 
equalTo(TypeDescriptor.of(BitSet.class)));
   }
-
-  @Test
-  public void testStructuralValueReturnTheSameValue() {
-    BitSet expected = BitSet.valueOf(new byte[] {0xd, 0x3});
-    Object actual = TEST_CODER.structuralValue(expected);
-    assertEquals(expected, actual);
-  }
 }
diff --git 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BooleanCoderTest.java 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BooleanCoderTest.java
deleted file mode 100644
index d598cb8..0000000
--- 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/BooleanCoderTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.beam.sdk.coders;
-
-import static org.junit.Assert.assertEquals;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-/** Tests for {@link BooleanCoder}. */
-@RunWith(JUnit4.class)
-public class BooleanCoderTest {
-  private static final Coder<Boolean> TEST_CODER = BooleanCoder.of();
-
-  @Test
-  public void testStructuralValueReturnTheSameValue() {
-    Boolean expected = Boolean.TRUE;
-    Object actual = TEST_CODER.structuralValue(expected);
-    assertEquals(expected, actual);
-  }
-}
diff --git 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/ByteCoderTest.java 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/ByteCoderTest.java
index 77a3784..ad11eb8 100644
--- a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/ByteCoderTest.java
+++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/ByteCoderTest.java
@@ -18,7 +18,6 @@
 package org.apache.beam.sdk.coders;
 
 import static org.hamcrest.Matchers.equalTo;
-import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
 
 import java.util.Arrays;
@@ -75,11 +74,4 @@ public class ByteCoderTest {
   public void testEncodedTypeDescriptor() throws Exception {
     assertThat(TEST_CODER.getEncodedTypeDescriptor(), 
equalTo(TypeDescriptor.of(Byte.class)));
   }
-
-  @Test
-  public void testStructuralValueReturnTheSameValue() {
-    Byte expected = 2;
-    Object actual = TEST_CODER.structuralValue(expected);
-    assertEquals(expected, actual);
-  }
 }
diff --git 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/CoderRegistryTest.java
 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/CoderRegistryTest.java
index d5427f6..3f9d917 100644
--- 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/CoderRegistryTest.java
+++ 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/CoderRegistryTest.java
@@ -384,6 +384,11 @@ public class CoderRegistryTest {
     public void verifyDeterministic() {}
 
     @Override
+    public boolean consistentWithEquals() {
+      return true;
+    }
+
+    @Override
     public Object structuralValue(MyValue value) {
       return value;
     }
diff --git 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/DoubleCoderTest.java 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/DoubleCoderTest.java
index a4ed39c..3e7dd4a 100644
--- 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/DoubleCoderTest.java
+++ 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/DoubleCoderTest.java
@@ -18,7 +18,6 @@
 package org.apache.beam.sdk.coders;
 
 import static org.hamcrest.Matchers.equalTo;
-import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
 
 import java.util.Arrays;
@@ -100,11 +99,4 @@ public class DoubleCoderTest {
   public void testEncodedTypeDescriptor() throws Exception {
     assertThat(TEST_CODER.getEncodedTypeDescriptor(), 
equalTo(TypeDescriptor.of(Double.class)));
   }
-
-  @Test
-  public void testStructuralValueReturnTheSameValue() {
-    Double expected = 23.32;
-    Object actual = TEST_CODER.structuralValue(expected);
-    assertEquals(expected, actual);
-  }
 }
diff --git 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/DurationCoderTest.java
 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/DurationCoderTest.java
index 5287466..9959452 100644
--- 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/DurationCoderTest.java
+++ 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/DurationCoderTest.java
@@ -18,7 +18,6 @@
 package org.apache.beam.sdk.coders;
 
 import static org.hamcrest.Matchers.equalTo;
-import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
 
 import java.util.Arrays;
@@ -87,11 +86,4 @@ public class DurationCoderTest {
     assertThat(
         TEST_CODER.getEncodedTypeDescriptor(), 
equalTo(TypeDescriptor.of(ReadableDuration.class)));
   }
-
-  @Test
-  public void testStructuralValueReturnTheSameValue() {
-    ReadableDuration expected = Duration.millis(3_000);
-    Object actual = TEST_CODER.structuralValue(expected);
-    assertEquals(expected, actual);
-  }
 }
diff --git 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/FloatCoderTest.java 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/FloatCoderTest.java
deleted file mode 100644
index 5d71480..0000000
--- 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/FloatCoderTest.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.beam.sdk.coders;
-
-import static org.junit.Assert.assertEquals;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-/** Tests for {@link FloatCoder}. */
-@RunWith(JUnit4.class)
-public class FloatCoderTest {
-
-  private static final Coder<Float> TEST_CODER = FloatCoder.of();
-
-  @Test
-  public void testStructuralValueReturnTheSameValue() {
-    Float expected = 23.45F;
-    Object actual = TEST_CODER.structuralValue(expected);
-    assertEquals(expected, actual);
-  }
-}
diff --git 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/InstantCoderTest.java 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/InstantCoderTest.java
index e70dfb0..ec00fb5 100644
--- 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/InstantCoderTest.java
+++ 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/InstantCoderTest.java
@@ -18,7 +18,6 @@
 package org.apache.beam.sdk.coders;
 
 import static org.hamcrest.Matchers.equalTo;
-import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
 
 import java.util.ArrayList;
@@ -114,11 +113,4 @@ public class InstantCoderTest {
   public void testEncodedTypeDescriptor() throws Exception {
     assertThat(TEST_CODER.getEncodedTypeDescriptor(), 
equalTo(TypeDescriptor.of(Instant.class)));
   }
-
-  @Test
-  public void testStructuralValueReturnTheSameValue() {
-    Instant expected = new Instant(234L);
-    Object actual = TEST_CODER.structuralValue(expected);
-    assertEquals(expected, actual);
-  }
 }
diff --git 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/KvCoderTest.java 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/KvCoderTest.java
index 8e860f7..3d75eb2 100644
--- a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/KvCoderTest.java
+++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/KvCoderTest.java
@@ -18,7 +18,6 @@
 package org.apache.beam.sdk.coders;
 
 import static org.hamcrest.Matchers.equalTo;
-import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
 
 import java.util.Arrays;
@@ -129,11 +128,4 @@ public class KvCoderTest {
         new TypeDescriptor<KV<String, Integer>>() {};
     assertThat(TEST_CODER.getEncodedTypeDescriptor(), equalTo(typeDescriptor));
   }
-
-  @Test
-  public void testStructuralValueReturnTheSameValue() {
-    KV<String, Integer> expected = KV.of("test", 10);
-    Object actual = TEST_CODER.structuralValue(expected);
-    assertEquals(expected, actual);
-  }
 }
diff --git 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/ListCoderTest.java 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/ListCoderTest.java
index daeaa3f..e793e40 100644
--- a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/ListCoderTest.java
+++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/ListCoderTest.java
@@ -17,8 +17,9 @@
  */
 package org.apache.beam.sdk.coders;
 
+import static junit.framework.TestCase.assertTrue;
 import static org.hamcrest.Matchers.equalTo;
-import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertThat;
 
 import java.util.ArrayList;
@@ -119,15 +120,20 @@ public class ListCoderTest {
   }
 
   @Test
-  public void testEncodedTypeDescriptor() throws Exception {
-    TypeDescriptor<List<Integer>> typeDescriptor = new 
TypeDescriptor<List<Integer>>() {};
-    assertThat(TEST_CODER.getEncodedTypeDescriptor(), equalTo(typeDescriptor));
+  public void testNotConsistentWithEquals() {
+    ListCoder<byte[]> coder = ListCoder.of(ByteArrayCoder.of());
+    assertFalse(coder.consistentWithEquals());
+  }
+
+  @Test
+  public void testConsistentWithEquals() {
+    ListCoder<Integer> coder = ListCoder.of(VarIntCoder.of());
+    assertTrue(coder.consistentWithEquals());
   }
 
   @Test
-  public void testStructuralValueReturnTheSameValueForConsistType() {
-    List<Integer> expected = Arrays.asList(1, 2, 3, 4);
-    Object actual = TEST_CODER.structuralValue(expected);
-    assertEquals(expected, actual);
+  public void testEncodedTypeDescriptor() throws Exception {
+    TypeDescriptor<List<Integer>> typeDescriptor = new 
TypeDescriptor<List<Integer>>() {};
+    assertThat(TEST_CODER.getEncodedTypeDescriptor(), equalTo(typeDescriptor));
   }
 }
diff --git 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/MapCoderTest.java 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/MapCoderTest.java
index 33dbc38..74dfa7b 100644
--- a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/MapCoderTest.java
+++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/MapCoderTest.java
@@ -18,8 +18,9 @@
 package org.apache.beam.sdk.coders;
 
 import static org.hamcrest.Matchers.equalTo;
-import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
 
 import java.util.Arrays;
 import java.util.Collections;
@@ -93,16 +94,21 @@ public class MapCoderTest {
   }
 
   @Test
+  public void testNotConsistentWithEquals() {
+    MapCoder<Integer, byte[]> coder = MapCoder.of(VarIntCoder.of(), 
ByteArrayCoder.of());
+    assertFalse(coder.consistentWithEquals());
+  }
+
+  @Test
+  public void testConsistentWithEquals() {
+    MapCoder<Integer, Integer> coder = MapCoder.of(VarIntCoder.of(), 
VarIntCoder.of());
+    assertTrue(coder.consistentWithEquals());
+  }
+
+  @Test
   public void testEncodedTypeDescriptor() throws Exception {
     TypeDescriptor<Map<Integer, String>> typeDescriptor =
         new TypeDescriptor<Map<Integer, String>>() {};
     assertThat(TEST_CODER.getEncodedTypeDescriptor(), equalTo(typeDescriptor));
   }
-
-  @Test
-  public void testStructuralValueReturnTheSameValueForConsistsType() {
-    Map<Integer, String> expected = Collections.singletonMap(10, "test");
-    Object actual = TEST_CODER.structuralValue(expected);
-    assertEquals(expected, actual);
-  }
 }
diff --git 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/RowCoderTest.java 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/RowCoderTest.java
index 4734b7d..f0d814c 100644
--- a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/RowCoderTest.java
+++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/RowCoderTest.java
@@ -17,8 +17,6 @@
  */
 package org.apache.beam.sdk.coders;
 
-import static org.junit.Assert.assertEquals;
-
 import java.math.BigDecimal;
 import java.util.Arrays;
 import java.util.Collections;
@@ -237,13 +235,4 @@ public class RowCoderTest {
     Row row = Row.withSchema(schema).addValue(Collections.singletonMap(1, 
null)).build();
     CoderProperties.coderDecodeEncodeEqual(RowCoder.of(schema), row);
   }
-
-  @Test
-  public void testStructuralValueReturnTheSameValue() {
-    Schema schema = Schema.builder().addField("field", 
FieldType.INT32).build();
-    Row expected = Row.withSchema(schema).addValue(2123).build();
-    Coder<Row> rowCoder = RowCoder.of(schema);
-    Object actual = rowCoder.structuralValue(expected);
-    assertEquals(expected, actual);
-  }
 }
diff --git 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/SerializableCoderTest.java
 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/SerializableCoderTest.java
index cae9392..70817c0 100644
--- 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/SerializableCoderTest.java
+++ 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/SerializableCoderTest.java
@@ -360,12 +360,4 @@ public class SerializableCoderTest implements Serializable 
{
 
     coder.encode("", outputStream);
   }
-
-  @Test
-  public void testStructuralValueReturnTheSameValue() {
-    Coder<String> coder = SerializableCoder.of(String.class);
-    String expected = "serTest";
-    Object actual = coder.structuralValue(expected);
-    assertEquals(expected, actual);
-  }
 }
diff --git 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/StringUtf8CoderTest.java
 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/StringUtf8CoderTest.java
index e9ee769..d85f2d5 100644
--- 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/StringUtf8CoderTest.java
+++ 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/StringUtf8CoderTest.java
@@ -18,7 +18,6 @@
 package org.apache.beam.sdk.coders;
 
 import static org.hamcrest.Matchers.equalTo;
-import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
 
 import java.util.Arrays;
@@ -88,11 +87,4 @@ public class StringUtf8CoderTest {
   public void testEncodedTypeDescriptor() throws Exception {
     assertThat(TEST_CODER.getEncodedTypeDescriptor(), 
equalTo(TypeDescriptor.of(String.class)));
   }
-
-  @Test
-  public void testStructuralValueReturnTheSameValue() {
-    String expected = "testStructuralValue";
-    Object actual = TEST_CODER.structuralValue(expected);
-    assertEquals(expected, actual);
-  }
 }
diff --git 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/StructuredCoderTest.java
 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/StructuredCoderTest.java
index ca2e7cc..396e272 100644
--- 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/StructuredCoderTest.java
+++ 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/StructuredCoderTest.java
@@ -75,6 +75,11 @@ public class StructuredCoderTest {
 
     @Override
     public void verifyDeterministic() throws NonDeterministicException {}
+
+    @Override
+    public boolean consistentWithEquals() {
+      return true;
+    }
   }
 
   /** A boxed {@code int} with {@code equals()} that compares object identity. 
*/
@@ -128,6 +133,11 @@ public class StructuredCoderTest {
 
     @Override
     public void verifyDeterministic() throws NonDeterministicException {}
+
+    @Override
+    public boolean consistentWithEquals() {
+      return false;
+    }
   }
 
   /**
diff --git 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/VarIntCoderTest.java 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/VarIntCoderTest.java
index d111bcd..718c9b6 100644
--- 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/VarIntCoderTest.java
+++ 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/VarIntCoderTest.java
@@ -18,7 +18,6 @@
 package org.apache.beam.sdk.coders;
 
 import static org.hamcrest.Matchers.equalTo;
-import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
 
 import java.util.Arrays;
@@ -75,11 +74,4 @@ public class VarIntCoderTest {
   public void testEncodedTypeDescriptor() throws Exception {
     assertThat(TEST_CODER.getEncodedTypeDescriptor(), 
equalTo(TypeDescriptor.of(Integer.class)));
   }
-
-  @Test
-  public void testStructuralValueReturnTheSameValue() {
-    Integer expected = 2239;
-    Object actual = TEST_CODER.structuralValue(expected);
-    assertEquals(expected, actual);
-  }
 }
diff --git 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/VarLongCoderTest.java 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/VarLongCoderTest.java
index 8e538b7..ca84262 100644
--- 
a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/VarLongCoderTest.java
+++ 
b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/VarLongCoderTest.java
@@ -18,7 +18,6 @@
 package org.apache.beam.sdk.coders;
 
 import static org.hamcrest.Matchers.equalTo;
-import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
 
 import java.util.Arrays;
@@ -98,11 +97,4 @@ public class VarLongCoderTest {
   public void testEncodedTypeDescriptor() throws Exception {
     assertThat(TEST_CODER.getEncodedTypeDescriptor(), 
equalTo(TypeDescriptor.of(Long.class)));
   }
-
-  @Test
-  public void testStructuralValueReturnTheSameValue() {
-    Long expected = 223L;
-    Object actual = TEST_CODER.structuralValue(expected);
-    assertEquals(expected, actual);
-  }
 }

Reply via email to