From 251e36118c3cc2264ffe699440a3b87adc20e91e Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 23 Oct 2024 01:21:28 +0530 Subject: [PATCH 1/2] fix: Ensure strict typing for input defaults to prevent runtime errors --- core/src/main/java/io/kestra/core/models/flows/Input.java | 2 +- .../src/main/java/io/kestra/core/runners/FlowInputOutput.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/io/kestra/core/models/flows/Input.java b/core/src/main/java/io/kestra/core/models/flows/Input.java index 34008833c0..f7e5221e88 100644 --- a/core/src/main/java/io/kestra/core/models/flows/Input.java +++ b/core/src/main/java/io/kestra/core/models/flows/Input.java @@ -78,7 +78,7 @@ public abstract class Input implements Data { @Schema( title = "The default value to use if no value is specified." ) - Object defaults; + T defaults; @Schema( title = "The display name of the input." diff --git a/core/src/main/java/io/kestra/core/runners/FlowInputOutput.java b/core/src/main/java/io/kestra/core/runners/FlowInputOutput.java index 05d7418bc2..c44ae73509 100644 --- a/core/src/main/java/io/kestra/core/runners/FlowInputOutput.java +++ b/core/src/main/java/io/kestra/core/runners/FlowInputOutput.java @@ -405,8 +405,8 @@ private Object parseType(Execution execution, Type type, String id, Type element case FLOAT -> current instanceof Float ? current : Float.valueOf(current.toString()); case BOOLEAN -> current instanceof Boolean ? current : Boolean.valueOf((String) current); case DATETIME -> Instant.parse(((String) current)); - case DATE -> LocalDate.parse(((String) current)); - case TIME -> LocalTime.parse(((String) current)); + case DATE -> current instanceof LocalDate ? current : LocalDate.parse(((String) current)); + case TIME -> current instanceof LocalTime ? current : LocalTime.parse(((String) current)); case DURATION -> Duration.parse(((String) current)); case FILE -> { URI uri = URI.create(((String) current).replace(File.separator, "/")); From 088f1074303bed597b50289b0d4bb412081db313 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 23 Oct 2024 01:36:25 +0530 Subject: [PATCH 2/2] fix: Ensure strict typing for other input defaults to prevent runtime errors --- .../src/main/java/io/kestra/core/runners/FlowInputOutput.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/io/kestra/core/runners/FlowInputOutput.java b/core/src/main/java/io/kestra/core/runners/FlowInputOutput.java index c44ae73509..75a52c0776 100644 --- a/core/src/main/java/io/kestra/core/runners/FlowInputOutput.java +++ b/core/src/main/java/io/kestra/core/runners/FlowInputOutput.java @@ -404,10 +404,10 @@ private Object parseType(Execution execution, Type type, String id, Type element // Assuming that after the render we must have a double/int, so we can safely use its toString representation case FLOAT -> current instanceof Float ? current : Float.valueOf(current.toString()); case BOOLEAN -> current instanceof Boolean ? current : Boolean.valueOf((String) current); - case DATETIME -> Instant.parse(((String) current)); + case DATETIME -> current instanceof Instant ? current : Instant.parse(((String) current)); case DATE -> current instanceof LocalDate ? current : LocalDate.parse(((String) current)); case TIME -> current instanceof LocalTime ? current : LocalTime.parse(((String) current)); - case DURATION -> Duration.parse(((String) current)); + case DURATION -> current instanceof Duration ? current : Duration.parse(((String) current)); case FILE -> { URI uri = URI.create(((String) current).replace(File.separator, "/"));