From 8dbc4854f6b36ffca1ed9921af13d4aa119e4f63 Mon Sep 17 00:00:00 2001 From: fh-ms Date: Mon, 30 Mar 2026 17:35:53 +0200 Subject: [PATCH 1/2] Fix inaccurate element count calculation --- .../org/eclipse/serializer/persistence/binary/types/Binary.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/persistence/binary/src/main/java/org/eclipse/serializer/persistence/binary/types/Binary.java b/persistence/binary/src/main/java/org/eclipse/serializer/persistence/binary/types/Binary.java index ca5ece63..2c9a5b3a 100644 --- a/persistence/binary/src/main/java/org/eclipse/serializer/persistence/binary/types/Binary.java +++ b/persistence/binary/src/main/java/org/eclipse/serializer/persistence/binary/types/Binary.java @@ -2098,7 +2098,7 @@ private static void validatePostIterationState( { throw new BinaryPersistenceException( "Inconsistent element count: specified " + elementCount - + " vs. iterated " + elementsBinaryBound / entryLength + + " vs. iterated " + (elementCount - (elementsBinaryBound - address) / entryLength) ); } } From 9459e83d2cd0f35abd2625b286d41ce21f592d67 Mon Sep 17 00:00:00 2001 From: fh-ms Date: Mon, 30 Mar 2026 18:17:43 +0200 Subject: [PATCH 2/2] Improve error message for inconsistent element count detection --- .../eclipse/serializer/persistence/binary/types/Binary.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/persistence/binary/src/main/java/org/eclipse/serializer/persistence/binary/types/Binary.java b/persistence/binary/src/main/java/org/eclipse/serializer/persistence/binary/types/Binary.java index 2c9a5b3a..36c252d2 100644 --- a/persistence/binary/src/main/java/org/eclipse/serializer/persistence/binary/types/Binary.java +++ b/persistence/binary/src/main/java/org/eclipse/serializer/persistence/binary/types/Binary.java @@ -2096,9 +2096,10 @@ private static void validatePostIterationState( // (19.03.2019 TM)NOTE: added "|| iterator.hasNext()" check if(address != elementsBinaryBound || iterator.hasNext()) { + final long iteratedCount = elementCount - (elementsBinaryBound - address) / entryLength; throw new BinaryPersistenceException( "Inconsistent element count: specified " + elementCount - + " vs. iterated " + (elementCount - (elementsBinaryBound - address) / entryLength) + + " vs. iterated " + (iterator.hasNext() ? "more than " + iteratedCount : iteratedCount) ); } }