diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryClassDescriptor.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryClassDescriptor.java index be1ffc3cb5707..6c6a37c7f9940 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryClassDescriptor.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryClassDescriptor.java @@ -1063,7 +1063,7 @@ private boolean preWrite(BinaryWriterExImpl writer, Object obj) { * @param writer Writer. */ private void postWrite(BinaryWriterExImpl writer) { - writer.postWrite(userType, registered); + writer.postWrite(null, userType, registered); } /** diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java index a28c068247450..c32c70facad17 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java @@ -273,12 +273,12 @@ public void preWrite(@Nullable String clsName) { * @param userType User type flag. * @param registered Whether type is registered. */ - public void postWrite(boolean userType, boolean registered) { + public void postWrite(Boolean existingCompactFooter, boolean userType, boolean registered) { short flags; boolean useCompactFooter; if (userType) { - if (ctx.isCompactFooter()) { + if (existingCompactFooter != null ? existingCompactFooter : ctx.isCompactFooter()) { flags = BinaryUtils.FLAG_USR_TYP | BinaryUtils.FLAG_COMPACT_FOOTER; useCompactFooter = true; } diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java index c1f9e60cb436c..378f06c2f9b68 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java @@ -341,7 +341,7 @@ else if (readCache == null) { reader.position(start + BinaryUtils.length(reader, start)); } - writer.postWrite(true, registeredType); + writer.postWrite(BinaryUtils.isCompactFooter(flags), true, registeredType); // Update metadata if needed. int schemaId = writer.schemaId();