Repository: incubator-beam Updated Branches: refs/heads/master 5255a3381 -> c28957d16
Make TimerSpec and StateSpec fields accessible Project: http://git-wip-us.apache.org/repos/asf/incubator-beam/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-beam/commit/c1e1017d Tree: http://git-wip-us.apache.org/repos/asf/incubator-beam/tree/c1e1017d Diff: http://git-wip-us.apache.org/repos/asf/incubator-beam/diff/c1e1017d Branch: refs/heads/master Commit: c1e1017d6e4d75aee7f32cc3d08b9e2a7c21dbb2 Parents: ffe3ab3 Author: Kenneth Knowles <k...@google.com> Authored: Wed Dec 7 20:09:06 2016 -0800 Committer: Kenneth Knowles <k...@google.com> Committed: Fri Dec 16 20:10:37 2016 -0800 ---------------------------------------------------------------------- .../org/apache/beam/sdk/transforms/reflect/DoFnSignatures.java | 4 ++++ 1 file changed, 4 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/c1e1017d/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/reflect/DoFnSignatures.java ---------------------------------------------------------------------- diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/reflect/DoFnSignatures.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/reflect/DoFnSignatures.java index e3ba966..d72cea4 100644 --- a/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/reflect/DoFnSignatures.java +++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/reflect/DoFnSignatures.java @@ -1040,6 +1040,8 @@ public class DoFnSignatures { ErrorReporter errors, Class<?> fnClazz) { Map<String, DoFnSignature.TimerDeclaration> declarations = new HashMap<>(); for (Field field : declaredFieldsWithAnnotation(DoFn.TimerId.class, fnClazz, DoFn.class)) { + // TimerSpec fields may generally be private, but will be accessed via the signature + field.setAccessible(true); String id = field.getAnnotation(DoFn.TimerId.class).value(); validateTimerField(errors, declarations, id, field); declarations.put(id, DoFnSignature.TimerDeclaration.create(id, field)); @@ -1205,6 +1207,8 @@ public class DoFnSignatures { Map<String, DoFnSignature.StateDeclaration> declarations = new HashMap<>(); for (Field field : declaredFieldsWithAnnotation(DoFn.StateId.class, fnClazz, DoFn.class)) { + // StateSpec fields may generally be private, but will be accessed via the signature + field.setAccessible(true); String id = field.getAnnotation(DoFn.StateId.class).value(); if (declarations.containsKey(id)) {