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)