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)

Reply via email to