[ https://issues.apache.org/jira/browse/BEAM-5967?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16675384#comment-16675384 ]
Kenneth Knowles commented on BEAM-5967: --------------------------------------- I looked here: https://developers.google.com/protocol-buffers/docs/reference/java/com/google/protobuf/DynamicMessage It seems like it has all the necessary methods. Do they crash? If a DynamicMessage has a proto schema available at runtime this seems like it should work. > ProtoCoder doesn't support DynamicMessage > ----------------------------------------- > > Key: BEAM-5967 > URL: https://issues.apache.org/jira/browse/BEAM-5967 > Project: Beam > Issue Type: Improvement > Components: sdk-java-core > Affects Versions: 2.8.0 > Reporter: Alex Van Boxel > Priority: Major > > The ProtoCoder does make some assumptions about static messages being > available. The DynamicMessage doesn't have some of them, mainly because the > proto schema is defined at runtime and not at compile time. > Does it make sense to make a special coder for DynamicMessage or build it > into the normal ProtoCoder. > Here is an example of the assumtion being made in the current Codec: > {code:java} > try { > @SuppressWarnings("unchecked") > T protoMessageInstance = (T) > protoMessageClass.getMethod("getDefaultInstance").invoke(null); > @SuppressWarnings("unchecked") > Parser<T> tParser = (Parser<T>) protoMessageInstance.getParserForType(); > memoizedParser = tParser; > } catch (IllegalAccessException | InvocationTargetException | > NoSuchMethodException e) { > throw new IllegalArgumentException(e); > } > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)