Brian Hulette created BEAM-7974:
-----------------------------------
Summary: Make RowCoder package-private
Key: BEAM-7974
URL: https://issues.apache.org/jira/browse/BEAM-7974
Project: Beam
Issue Type: Improvement
Components: sdk-java-core
Reporter: Brian Hulette
RowCoder is currently public in sdk.coders, tempting people to use it directly.
But the Schemas API is written such that everyone should be using SchemaCoder,
and RowCoder should be an implementation detail.
Unfortunately this isn't a trivial change, I tried to do it and resolve the few
dependencies that cropped up, but running RowCoderTest yielded the following
error:
{code:java}
tried to access class
org.apache.beam.sdk.schemas.RowCoderGenerator$EncodeInstruction from class
org.apache.beam.sdk.coders.Coder$ByteBuddy$abBJo3R3
java.lang.IllegalAccessError: tried to access class
org.apache.beam.sdk.schemas.RowCoderGenerator$EncodeInstruction from class
org.apache.beam.sdk.coders.Coder$ByteBuddy$abBJo3R3
at org.apache.beam.sdk.coders.Coder$ByteBuddy$abBJo3R3.encode(Unknown
Source)
at org.apache.beam.sdk.coders.Coder$ByteBuddy$abBJo3R3.encode(Unknown
Source)
at org.apache.beam.sdk.schemas.RowCoder.encode(RowCoder.java:159)
at org.apache.beam.sdk.schemas.RowCoder.encode(RowCoder.java:54)
at org.apache.beam.sdk.coders.Coder.encode(Coder.java:136)
at
org.apache.beam.sdk.testing.CoderProperties.encode(CoderProperties.java:334)
at
org.apache.beam.sdk.testing.CoderProperties.decodeEncode(CoderProperties.java:362)
at
org.apache.beam.sdk.testing.CoderProperties.coderDecodeEncodeEqualInContext(CoderProperties.java:104)
at
org.apache.beam.sdk.testing.CoderProperties.coderDecodeEncodeEqual(CoderProperties.java:94)
{code}
My attempt is available at
https://github.com/TheNeuralBit/beam/commit/869b8c6ba2f554bf56d8df70a754b76ef38dbc89
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)