[
https://issues.apache.org/jira/browse/BEAM-3160?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ismaël Mejía resolved BEAM-3160.
--------------------------------
Resolution: Fixed
> Type based coder inference incorrectly assumes that a coder for one type is
> equivalent to every other coder for that type.
> --------------------------------------------------------------------------------------------------------------------------
>
> Key: BEAM-3160
> URL: https://issues.apache.org/jira/browse/BEAM-3160
> Project: Beam
> Issue Type: Bug
> Components: sdk-java-core
> Reporter: Luke Cwik
> Assignee: Luke Cwik
> Priority: Blocker
> Fix For: 2.3.0
>
>
> We should prevent coder inference from assuming that two coders for the same
> type are interchangeable.
> Two Avro GenericRecord coders with different schemas are considered identical
> and an arbitrary one is returned by the Coder/Type inference system if the
> GenericRecord type appears multiple times.
> e.g.
> *KvCoder.of(IterableCoder.of(AvroCoder.of(SchemaA)),
> IterableCoder.of(AvroCoder.of(SchemaB)))* after coder inference for the type
> *KV<Iterable<GenericRecord>, Iterable<GenericRecord>>* will return
> *KvCoder.of(IterableCoder.of(AvroCoder.of(SchemaX)),
> IterableCoder.of(AvroCoder.of(SchemaX)))* where SchemaX is either SchemaA or
> SchemaB.
> Code:
> https://github.com/apache/beam/blob/v2.1.1/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/CoderRegistry.java#L420
> and other Type -> Coder maps in the same file should prevent insertion if
> the type already exists and the coders aren't equal.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)