InseeFr / Trevas

Transformation engine and validator for statistics.
MIT License
10 stars 5 forks source link

Serialization issue on `check_datadapoint` #248

Closed NicoLaval closed 1 year ago

NicoLaval commented 1 year ago
define datapoint ruleset dpr1 ( variable double1, long1 ) is
    my_rule_1 : double1 > 0 errorcode "Double <= 0" errorlevel 1;
    my_rule_2 : long1 > 0 errorcode "Long <= 0" errorlevel 100
end datapoint ruleset;
ds_check_datapoint := check_datapoint(ds1_num, dpr1 all);
java.io.NotSerializableException: fr.insee.vtl.engine.visitors.AssignmentVisitor
Serialization stack:
        - object not serializable (class: fr.insee.vtl.engine.visitors.AssignmentVisitor, value: fr.insee.vtl.engine.visitors.AssignmentVisitor@dc8349f)
        - element of array (index: 0)
        - array (class [Ljava.lang.Object;, size 1)
        - field (class: java.lang.invoke.SerializedLambda, name: capturedArgs, type: class [Ljava.lang.Object;)
        - object (class java.lang.invoke.SerializedLambda, SerializedLambda[capturingClass=class fr.insee.vtl.engine.visitors.AssignmentVisitor, functionalInterfaceMethod=fr/insee/vtl/model/VtlFunction.apply:(Ljava/lang/Object;)Ljava/lang/Object;, implementation=invokeSpecial fr/insee/vtl/engine/visitors/AssignmentVisitor.lambda$visitDefDatapointRuleset$2baee62b$1:(Ljava/util/Map;)Lfr/insee/vtl/engine/visitors/expression/ExpressionVisitor;, instantiatedMethodType=(Ljava/util/Map;)Lfr/insee/vtl/engine/visitors/expression/ExpressionVisitor;, numCaptured=1])
        - writeReplace data (class: java.lang.invoke.SerializedLambda)
        - object (class fr.insee.vtl.engine.visitors.AssignmentVisitor$$Lambda$4479/0x0000000841aae840, fr.insee.vtl.engine.visitors.AssignmentVisitor$$Lambda$4479/0x0000000841aae840@6e9df18b)
        - element of array (index: 0)
        - array (class [Ljava.lang.Object;, size 2)
        - field (class: java.lang.invoke.SerializedLambda, name: capturedArgs, type: class [Ljava.lang.Object;)
        - object (class java.lang.invoke.SerializedLambda, SerializedLambda[capturingClass=class fr.insee.vtl.engine.visitors.AssignmentVisitor, functionalInterfaceMethod=fr/insee/vtl/model/VtlFunction.apply:(Ljava/lang/Object;)Ljava/lang/Object;, implementation=invokeStatic fr/insee/vtl/engine/visitors/AssignmentVisitor.lambda$visitDefDatapointRuleset$b3b5a2a0$1:(Lfr/insee/vtl/model/VtlFunction;Lfr/insee/vtl/parser/VtlParser$ExprContext;Ljava/util/Map;)Lfr/insee/vtl/model/ResolvableExpression;, instantiatedMethodType=(Ljava/util/Map;)Lfr/insee/vtl/model/ResolvableExpression;, numCaptured=2])
        - writeReplace data (class: java.lang.invoke.SerializedLambda)
        - object (class fr.insee.vtl.engine.visitors.AssignmentVisitor$$Lambda$4480/0x0000000841aaec40, fr.insee.vtl.engine.visitors.AssignmentVisitor$$Lambda$4480/0x0000000841aaec40@6297c683)
        - field (class: fr.insee.vtl.model.DataPointRule, name: buildAntecedentExpression, type: interface fr.insee.vtl.model.VtlFunction)
        - object (class fr.insee.vtl.model.DataPointRule, fr.insee.vtl.model.DataPointRule@b4d9131)
        - element of array (index: 0)
        - array (class [Ljava.lang.Object;, size 2)
        - field (class: java.lang.invoke.SerializedLambda, name: capturedArgs, type: class [Ljava.lang.Object;)
        - object (class java.lang.invoke.SerializedLambda, SerializedLambda[capturingClass=class fr.insee.vtl.spark.SparkProcessingEngine, functionalInterfaceMethod=fr/insee/vtl/model/VtlFunction.apply:(Ljava/lang/Object;)Ljava/lang/Object;, implementation=invokeStatic fr/insee/vtl/spark/SparkProcessingEngine.lambda$executeValidateDPruleset$2d952a0d$1:(Lfr/insee/vtl/model/DataPointRule;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;, instantiatedMethodType=(Ljava/lang/Object;)Ljava/lang/Object;, numCaptured=2])
        - writeReplace data (class: java.lang.invoke.SerializedLambda)
        - object (class fr.insee.vtl.spark.SparkProcessingEngine$$Lambda$4487/0x0000000841ab0840, fr.insee.vtl.spark.SparkProcessingEngine$$Lambda$4487/0x0000000841ab0840@391a153e)
        - field (class: fr.insee.vtl.model.ResolvableExpression$Builder$1, name: val$function, type: interface fr.insee.vtl.model.VtlFunction)
        - object (class fr.insee.vtl.model.ResolvableExpression$Builder$1, fr.insee.vtl.model.ResolvableExpression$Builder$1@239b6987)
        - element of array (index: 0)
        - array (class [Ljava.lang.Object;, size 1)
        - field (class: java.lang.invoke.SerializedLambda, name: capturedArgs, type: class [Ljava.lang.Object;)
        - object (class java.lang.invoke.SerializedLambda, SerializedLambda[capturingClass=class fr.insee.vtl.spark.SparkProcessingEngine, functionalInterfaceMethod=org/apache/spark/sql/api/java/UDF1.call:(Ljava/lang/Object;)Ljava/lang/Object;, implementation=invokeStatic fr/insee/vtl/spark/SparkProcessingEngine.lambda$executeCalcEvaluated$abd8e979$1:(Lfr/insee/vtl/model/ResolvableExpression;Lorg/apache/spark/sql/Row;)Ljava/lang/Object;, instantiatedMethodType=(Lorg/apache/spark/sql/Row;)Ljava/lang/Object;, numCaptured=1])
        - writeReplace data (class: java.lang.invoke.SerializedLambda)
        - object (class fr.insee.vtl.spark.SparkProcessingEngine$$Lambda$3718/0x00000008417e9040, fr.insee.vtl.spark.SparkProcessingEngine$$Lambda$3718/0x00000008417e9040@4b568acb)
        - element of array (index: 0)
        - array (class [Ljava.lang.Object;, size 1)
        - field (class: java.lang.invoke.SerializedLambda, name: capturedArgs, type: class [Ljava.lang.Object;)
        - object (class java.lang.invoke.SerializedLambda, SerializedLambda[capturingClass=class org.apache.spark.sql.functions$, functionalInterfaceMethod=scala/Function1.apply:(Ljava/lang/Object;)Ljava/lang/Object;, implementation=invokeStatic org/apache/spark/sql/functions$.$anonfun$udf$91:(Lorg/apache/spark/sql/api/java/UDF1;Ljava/lang/Object;)Ljava/lang/Object;, instantiatedMethodType=(Ljava/lang/Object;)Ljava/lang/Object;, numCaptured=1])
        - writeReplace data (class: java.lang.invoke.SerializedLambda)
        - object (class org.apache.spark.sql.functions$$$Lambda$3719/0x00000008417e9840, org.apache.spark.sql.functions$$$Lambda$3719/0x00000008417e9840@365603b3)
        - element of array (index: 5)
        - array (class [Ljava.lang.Object;, size 12)
        - element of array (index: 1)
        - array (class [Ljava.lang.Object;, size 3)
        - field (class: java.lang.invoke.SerializedLambda, name: capturedArgs, type: class [Ljava.lang.Object;)
        - object (class java.lang.invoke.SerializedLambda, SerializedLambda[capturingClass=class org.apache.spark.sql.execution.WholeStageCodegenExec, functionalInterfaceMethod=scala/Function2.apply:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;, implementation=invokeStatic org/apache/spark/sql/execution/WholeStageCodegenExec.$anonfun$doExecute$4$adapted:(Lorg/apache/spark/sql/catalyst/expressions/codegen/CodeAndComment;[Ljava/lang/Object;Lorg/apache/spark/sql/execution/metric/SQLMetric;Ljava/lang/Object;Lscala/collection/Iterator;)Lscala/collection/Iterator;, instantiatedMethodType=(Ljava/lang/Object;Lscala/collection/Iterator;)Lscala/collection/Iterator;, numCaptured=3])
NicoLaval commented 1 year ago

Fix f108f463