From 934f469b6b1b9f8c4b61bc46c6f9b4c82cf0b476 Mon Sep 17 00:00:00 2001 From: Emmanuel GALLOIS Date: Thu, 28 May 2026 11:26:33 +0200 Subject: [PATCH] chore(QTDI-2913): fix wrong condition --- .../runtime/beam/transformer/BeamIOTransformer.java | 2 -- .../beam/transformer/BeamIOTransformerTest.java | 12 ++++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/component-runtime-beam/src/main/java/org/talend/sdk/component/runtime/beam/transformer/BeamIOTransformer.java b/component-runtime-beam/src/main/java/org/talend/sdk/component/runtime/beam/transformer/BeamIOTransformer.java index a5ef97656c32b..62b00345386ff 100644 --- a/component-runtime-beam/src/main/java/org/talend/sdk/component/runtime/beam/transformer/BeamIOTransformer.java +++ b/component-runtime-beam/src/main/java/org/talend/sdk/component/runtime/beam/transformer/BeamIOTransformer.java @@ -260,8 +260,6 @@ private static BiConsumer doCreateSerializer() { writeClass.invoke(oos, obj, false); } else if (ObjectStreamClass.class.isInstance(obj)) { writeClassDesc.invoke(oos, obj, false); - } else if (String.class.isInstance(obj)) { - writeClassDesc.invoke(oos, obj, false); } else if (obj instanceof String) { writeString.invoke(oos, obj, false); } else if (obj.getClass().isArray()) { diff --git a/component-runtime-beam/src/test/java/org/talend/sdk/component/runtime/beam/transformer/BeamIOTransformerTest.java b/component-runtime-beam/src/test/java/org/talend/sdk/component/runtime/beam/transformer/BeamIOTransformerTest.java index f0e238d6aa467..181f85678d62e 100644 --- a/component-runtime-beam/src/test/java/org/talend/sdk/component/runtime/beam/transformer/BeamIOTransformerTest.java +++ b/component-runtime-beam/src/test/java/org/talend/sdk/component/runtime/beam/transformer/BeamIOTransformerTest.java @@ -120,6 +120,18 @@ void coder() { }); } + @Test + void bypassReplaceSerializerHandlesString() { + // Ensures the custom serializer used by SerializationWrapper writes top-level String + // values via writeString instead of falling into the wrong writeClassDesc branch. + scenario((transformer, loader) -> { + final BeamIOTransformer.SerializationWrapper wrapper = + (BeamIOTransformer.SerializationWrapper) BeamIOTransformer.SerializationWrapper + .replace("hello", "test"); + assertEquals("hello", wrapper.readResolve()); + }); + } + @Test void coderSerialization() { scenario((transformer, loader) -> {