This is an automated email from the ASF dual-hosted git repository.

Caideyipi pushed a commit to branch multi-fix
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/multi-fix by this push:
     new 0d31a872de1 legacy
0d31a872de1 is described below

commit 0d31a872de16fbe147e918c77c1e1b53f7d95c9e
Author: Caideyipi <[email protected]>
AuthorDate: Thu Apr 30 15:30:35 2026 +0800

    legacy
---
 .../impl/pipe/task/StopPipeProcedureV2.java          |  4 +++-
 .../impl/pipe/task/StopPipeProcedureV2Test.java      | 20 ++++++++++++++++++++
 2 files changed, 23 insertions(+), 1 deletion(-)

diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/pipe/task/StopPipeProcedureV2.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/pipe/task/StopPipeProcedureV2.java
index 3a8beb136ac..b2e1a584ec5 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/pipe/task/StopPipeProcedureV2.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/pipe/task/StopPipeProcedureV2.java
@@ -172,7 +172,9 @@ public class StopPipeProcedureV2 extends 
AbstractOperatePipeProcedureV2 {
   public void deserialize(ByteBuffer byteBuffer) {
     super.deserialize(byteBuffer);
     pipeName = ReadWriteIOUtils.readString(byteBuffer);
-    isStoppedByRuntimeExceptionBeforeStop = 
ReadWriteIOUtils.readBool(byteBuffer);
+    // Legacy persisted procedures do not carry this field.
+    isStoppedByRuntimeExceptionBeforeStop =
+        byteBuffer.hasRemaining() && ReadWriteIOUtils.readBool(byteBuffer);
   }
 
   @Override
diff --git 
a/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/procedure/impl/pipe/task/StopPipeProcedureV2Test.java
 
b/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/procedure/impl/pipe/task/StopPipeProcedureV2Test.java
index f448383e3a0..e3da356059b 100644
--- 
a/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/procedure/impl/pipe/task/StopPipeProcedureV2Test.java
+++ 
b/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/procedure/impl/pipe/task/StopPipeProcedureV2Test.java
@@ -106,6 +106,26 @@ public class StopPipeProcedureV2Test {
     }
   }
 
+  @Test
+  public void serializeDeserializeLegacyFormatTest() {
+    final PublicBAOS byteArrayOutputStream = new PublicBAOS();
+    final DataOutputStream outputStream = new 
DataOutputStream(byteArrayOutputStream);
+
+    final StopPipeProcedureV2 proc = new StopPipeProcedureV2("testPipe");
+
+    try {
+      proc.serialize(outputStream);
+      final ByteBuffer buffer =
+          ByteBuffer.wrap(byteArrayOutputStream.getBuf(), 0, 
byteArrayOutputStream.size() - 1);
+      final StopPipeProcedureV2 proc2 =
+          (StopPipeProcedureV2) ProcedureFactory.getInstance().create(buffer);
+
+      assertEquals(proc, proc2);
+    } catch (Exception e) {
+      fail();
+    }
+  }
+
   @Test
   public void testStopPipeWritesStatusAndRuntimeExceptionFlagAtomically() 
throws Exception {
     final String pipeName = "testPipe";

Reply via email to