I don't see any unit tests for inherited AutoValue accessors, so I suspect it simply does not work today with AutoValueSchema. This is something that's probably fixable (though such a fix does risk breaking some users).
On Mon, Apr 8, 2024 at 11:21 PM Ruben Vargas <ruben.var...@metova.com> wrote: > Hello Guys > > I have a PCollection with a "Session" object, inside that object I > have a list of events > > For each event, I have different types, EventA, EventB, EventC and so > on.. all of them extend from Event, which will contain common fields. > > According to the AutoValue documentation, inheritance from another > AutoValue class is not supported. but extend to have the fields is. > ( > https://github.com/google/auto/blob/main/value/userguide/howto.md#-have-autovalue-also-implement-abstract-methods-from-my-supertypes > ) > > But when I run my pipeline, it fails with an NPE. > > Caused by: java.lang.NullPointerException > at > org.apache.beam.sdk.schemas.utils.JavaBeanUtils.createGetter(JavaBeanUtils.java:153) > ~[beam-sdks-java-core-2.55.0.jar:?] > at > org.apache.beam.sdk.schemas.utils.JavaBeanUtils.lambda$getGetters$1(JavaBeanUtils.java:143) > ~[beam-sdks-java-core-2.55.0.jar:?] > at > java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) > ~[?:?] > at > java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655) > ~[?:?] > at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) > ~[?:?] > at > java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) > ~[?:?] > at > java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) > ~[?:?] > at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) > ~[?:?] > at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578) > ~[?:?] > at > org.apache.beam.sdk.schemas.utils.JavaBeanUtils.lambda$getGetters$2(JavaBeanUtils.java:144) > ~[beam-sdks-java-core-2.55.0.jar:?] > at > java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1705) > ~[?:?] > at > org.apache.beam.sdk.schemas.utils.JavaBeanUtils.getGetters(JavaBeanUtils.java:138) > ~[beam-sdks-java-core-2.55.0.jar:?] > at > org.apache.beam.sdk.schemas.AutoValueSchema.fieldValueGetters(AutoValueSchema.java:93) > ~[beam-sdks-java-core-2.55.0.jar:?] > at > org.apache.beam.sdk.schemas.GetterBasedSchemaProvider$RowValueGettersFactory.create(GetterBasedSchemaProvider.java:145) > ~[beam-sdks-java-core-2.55.0.jar:?] > at > org.apache.beam.sdk.schemas.GetterBasedSchemaProvider$RowValueGettersFactory.create(GetterBasedSchemaProvider.java:130) > ~[beam-sdks-java-core-2.55.0.jar:?] > at > org.apache.beam.sdk.schemas.CachingFactory.create(CachingFactory.java:56) > ~[beam-sdks-java-core-2.55.0.jar:?] > > > Is this not supported? or is it a Bug? should I file an issue in GH then? > > Thanks >