damccorm opened a new issue, #20954:
URL: https://github.com/apache/beam/issues/20954

   Minimum example: 
[https://github.com/akettmann-e24/beamErrorExample](https://github.com/akettmann-e24/beamErrorExample)
   
   Runner: DirectRunner
   
   Tested under JVMs:
    * AdoptJDK Java 11.0.10
    * AdoptJDK Java 11.0.11
    * Oracle Java 1.8.0.262
   
   Tested under beam version:
    * 2.28.0
    * 2.29.0
   
   When using a schema with a JavaBeanSchema, if a field is an 
`Java.time.Instant`, pipeline fails once the value has been returned and the 
return value needs to be encoded into a ByteArray. Stack trace below:
   ```
   
   SLF4J: Class path contains multiple SLF4J bindings.
   SLF4J: Found binding in 
[jar:file:/home/akettmann/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
   SLF4J:
   Found binding in 
[jar:file:/home/akettmann/.m2/repository/org/slf4j/slf4j-log4j12/1.7.25/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
   SLF4J:
   See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
   SLF4J: Actual binding is
   of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
   14:20:53.698 [main] DEBUG org.apache.beam.sdk.options.PipelineOptionsFactory
   - Provided Arguments: {}
   14:20:53.752 [main] DEBUG org.apache.beam.sdk.Pipeline - Creating 
Pipeline#998062648
   14:20:53.758
   [main] DEBUG org.apache.beam.sdk.Pipeline - Adding Create.Values to 
Pipeline#998062648
   Exception in
   thread "main" java.lang.VerifyError: Operand stack underflow
   Exception Details:
    Location:
    
org/apache/beam/sdk/schemas/FieldValueGetter$SchemaCodeGen$tyVybsgB.get(Ljava/time/Instant;)Ljava/lang/Long;
   @1: invokevirtual
    Reason:
    Attempt to pop empty stack.
    Current Frame:
    bci: @1
    flags: { }
   
   locals: { 
'org/apache/beam/sdk/schemas/FieldValueGetter$SchemaCodeGen$tyVybsgB', 
'java/time/Instant'
   }
    stack: { 'java/time/Instant' }
    Bytecode:
    0000000: 2bb6 0016 b800 1cb0
   at java.base/java.lang.Class.getDeclaredFields0(Native
   Method)
    at java.base/java.lang.Class.privateGetDeclaredFields(Class.java:3061)
    at java.base/java.lang.Class.getDeclaredField(Class.java:2409)
   
   at 
org.apache.beam.vendor.bytebuddy.v1_10_8.net.bytebuddy.implementation.LoadedTypeInitializer$ForStaticField.onLoad(LoadedTypeInitializer.java:122)
   
   at 
org.apache.beam.vendor.bytebuddy.v1_10_8.net.bytebuddy.implementation.LoadedTypeInitializer$Compound.onLoad(LoadedTypeInitializer.java:192)
   
   at 
org.apache.beam.vendor.bytebuddy.v1_10_8.net.bytebuddy.dynamic.TypeResolutionStrategy$Passive.initialize(TypeResolutionStrategy.java:102)
   
   at 
org.apache.beam.vendor.bytebuddy.v1_10_8.net.bytebuddy.dynamic.DynamicType$Default$Unloaded.load(DynamicType.java:5707)
   
   at 
org.apache.beam.sdk.schemas.utils.JavaBeanUtils.createGetter(JavaBeanUtils.java:162)
    at 
org.apache.beam.sdk.schemas.utils.JavaBeanUtils.lambda$getGetters$1(JavaBeanUtils.java:145)
   
   at 
java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
    at 
java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
   
   at 
java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
    at 
java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
   
   at 
java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
    at 
java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
   
   at 
java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
    at 
org.apache.beam.sdk.schemas.utils.JavaBeanUtils.lambda$getGetters$2(JavaBeanUtils.java:146)
   
   at 
java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1705)
    at
   
org.apache.beam.sdk.schemas.utils.JavaBeanUtils.getGetters(JavaBeanUtils.java:140)
    at 
org.apache.beam.sdk.schemas.JavaBeanSchema.fieldValueGetters(JavaBeanSchema.java:142)
   
   at org.apache.beam.sdk.schemas.CachingFactory.create(CachingFactory.java:56)
    at org.apache.beam.sdk.values.RowWithGetters.<init>(RowWithGetters.java:66)
   
   at 
org.apache.beam.sdk.values.RowWithGetters.getValue(RowWithGetters.java:111)
    at 
org.apache.beam.sdk.values.RowWithGetters.getValue(RowWithGetters.java:78)
   
   at 
org.apache.beam.sdk.coders.RowCoderGenerator$EncodeInstruction.encodeDelegate(RowCoderGenerator.java:272)
   
   at org.apache.beam.sdk.coders.Coder$ByteBuddy$xu4m7ooW.encode(Unknown Source)
    at org.apache.beam.sdk.coders.Coder$ByteBuddy$xu4m7ooW.encode(Unknown
   Source)
    at org.apache.beam.sdk.schemas.SchemaCoder.encode(SchemaCoder.java:118)
    at org.apache.beam.sdk.coders.Coder.encode(Coder.java:136)
   
   at org.apache.beam.sdk.util.CoderUtils.encodeToSafeStream(CoderUtils.java:85)
    at org.apache.beam.sdk.util.CoderUtils.encodeToByteArray(CoderUtils.java:69)
   
   at org.apache.beam.sdk.util.CoderUtils.encodeToByteArray(CoderUtils.java:54)
    at 
org.apache.beam.sdk.transforms.Create$Values$CreateSource.fromIterable(Create.java:413)
   
   at org.apache.beam.sdk.transforms.Create$Values.expand(Create.java:370)
    at org.apache.beam.sdk.transforms.Create$Values.expand(Create.java:277)
   
   at org.apache.beam.sdk.Pipeline.applyInternal(Pipeline.java:547)
    at org.apache.beam.sdk.Pipeline.applyTransform(Pipeline.java:481)
   
   at org.apache.beam.sdk.values.PBegin.apply(PBegin.java:44)
    at org.apache.beam.sdk.Pipeline.apply(Pipeline.java:176)
   
   at 
com.example.beam.coder.BeanSchemaErrorExample.run(BeanSchemaErrorExample.java:28)
    at 
com.example.beam.coder.BeanSchemaErrorExample.main(BeanSchemaErrorExample.java:19)
   Disconnected
   from the target VM, address: '127.0.0.1:42807', transport: 'socket'
   Process finished with exit code
   1
   
   ```
   
    
   
   Slightly different stack trace when it is from a ParDo returning a type that 
has a schema inferred, but the same end result of a stack underflow.
   
   Imported from Jira 
[BEAM-12360](https://issues.apache.org/jira/browse/BEAM-12360). Original Jira 
may contain additional context.
   Reported by: akettmann.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to