diff --git a/src/main/java/org/akhq/utils/AvroSerializer.java b/src/main/java/org/akhq/utils/AvroSerializer.java index 89b83dcfb..58b75e593 100644 --- a/src/main/java/org/akhq/utils/AvroSerializer.java +++ b/src/main/java/org/akhq/utils/AvroSerializer.java @@ -112,6 +112,9 @@ private static Object objectSerializer(Object value, Schema schema) { case INT: return value; case LONG: + if (value != null && value instanceof Integer) { + return ((Integer) value).longValue(); + } return value; case FLOAT: return value; diff --git a/src/test/java/org/akhq/utils/AvroDeserializerTest.java b/src/test/java/org/akhq/utils/AvroDeserializerTest.java index 6d14ca690..21094a08d 100644 --- a/src/test/java/org/akhq/utils/AvroDeserializerTest.java +++ b/src/test/java/org/akhq/utils/AvroDeserializerTest.java @@ -77,6 +77,7 @@ static Stream convertionSource() { Arguments.of("abc", "\"bytes\"", "abc".getBytes()), Arguments.of("10.10", "{\"type\": \"bytes\", \"logicalType\": \"decimal\", \"scale\": 2, \"precision\": 4}", new BigDecimal("10.10")), Arguments.of("26910000000000000000000000000258.00000", "{\"type\": \"bytes\", \"logicalType\": \"decimal\", \"scale\": 5, \"precision\": 37}", new BigDecimal("26910000000000000000000000000258.00000")), + Arguments.of(1, "[\"null\",\"long\"]", 1L), Arguments.of(uuid.toString(), "{\"type\": \"string\", \"logicalType\": \"uuid\"}", uuid), Arguments.of(LocalDate.now().format(DateTimeFormatter.ISO_LOCAL_DATE), "{\"type\": \"int\", \"logicalType\": \"date\"}", LocalDate.now()), Arguments.of(localTime.format(DateTimeFormatter.ISO_LOCAL_TIME), "{\"type\": \"long\", \"logicalType\": \"time-micros\"}", localTime),