Hi all,

I’ve started getting an exception after migrating to Livy 0.7.1 / JDK 17.
The issue is related to the presence of a LocalDateTime object as a field of my 
Job. To be mentioned that I’ve tried the same with a String/Integer instead of 
LocalDateTime and everything works great.

Here is the job:

public class TestJob implements Job<String> {

    private final LocalDateTime timestamp;

    public TestJob(LocalDateTime timestamp) {
        this.timestamp = timestamp;
    }


And here is the exception that I get:

Exception in thread "main" java.util.concurrent.ExecutionException: 
java.lang.RuntimeException: org.apache.livy.shaded.kryo.kryo.KryoException: 
java.time.DateTimeException: Invalid value for MonthOfYear (valid values 1 - 
12): 0
Serialization trace:
timestamp (com.adswizz.ds.attribution.TestJob)
       at 
org.apache.livy.shaded.kryo.kryo.serializers.ObjectField.read(ObjectField.java:144)
       at 
org.apache.livy.shaded.kryo.kryo.serializers.FieldSerializer.read(FieldSerializer.java:543)
       at 
org.apache.livy.shaded.kryo.kryo.Kryo.readClassAndObject(Kryo.java:813)
       at 
org.apache.livy.client.common.Serializer.deserialize(Serializer.java:67)
       at org.apache.livy.rsc.driver.BypassJob.call(BypassJob.java:39)
       at org.apache.livy.rsc.driver.BypassJob.call(BypassJob.java:27)
       at org.apache.livy.rsc.driver.JobWrapper.call(JobWrapper.java:64)
       at 
org.apache.livy.rsc.driver.BypassJobWrapper.call(BypassJobWrapper.java:45)
       at 
org.apache.livy.rsc.driver.BypassJobWrapper.call(BypassJobWrapper.java:27)
       at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
       at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
       at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
       at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: java.time.DateTimeException: Invalid value for MonthOfYear (valid 
values 1 - 12): 0
       at 
java.base/java.time.temporal.ValueRange.checkValidValue(ValueRange.java:319)
       at 
java.base/java.time.temporal.ChronoField.checkValidValue(ChronoField.java:718)
       at java.base/java.time.LocalDate.of(LocalDate.java:271)
       at 
org.apache.livy.shaded.kryo.kryo.serializers.TimeSerializers$LocalDateSerializer.read(TimeSerializers.java:129)
       at 
org.apache.livy.shaded.kryo.kryo.serializers.TimeSerializers$LocalDateTimeSerializer.read(TimeSerializers.java:144)
       at 
org.apache.livy.shaded.kryo.kryo.serializers.TimeSerializers$LocalDateTimeSerializer.read(TimeSerializers.java:133)
       at org.apache.livy.shaded.kryo.kryo.Kryo.readObjectOrNull(Kryo.java:782)
       at 
org.apache.livy.shaded.kryo.kryo.serializers.ObjectField.read(ObjectField.java:132)
       ... 12 more


Thanks in advance for any idea/suggestion.

Reply via email to