[ https://issues.apache.org/jira/browse/IGNITE-15638?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17426304#comment-17426304 ]
Assen Sharlandjiev edited comment on IGNITE-15638 at 10/8/21, 5:36 PM: ----------------------------------------------------------------------- [~jooger] Another hint. The following code works, as work-around: {code:java} final var value = (BinaryObjectImpl) entry.getValue(); final var builder = ignite.binary().builder(value.type().typeName()); value.type().fieldNames().forEach(fieldName -> { var fieldValue = value.type().field(fieldName).value(value); builder.setField(fieldName, fieldValue); }); final var binaryObject = builder.build(); {code} was (Author: assens): [~jooger] Another hint. The following code works, as work-around: {code:java} final var value = (BinaryObjectImpl) entry.getValue(); final var builder = ignite.binary().builder(value.type().typeName()); value.type().fieldNames().forEach(fieldName -> builder.setField(fieldName, value.type().field(fieldName).value(value))); final var binaryObject = builder.build(); {code} > BinaryObjectBuilder build() causes java.lang.StackOverflowError > --------------------------------------------------------------- > > Key: IGNITE-15638 > URL: https://issues.apache.org/jira/browse/IGNITE-15638 > Project: Ignite > Issue Type: Bug > Components: binary > Affects Versions: 2.11 > Reporter: Assen Sharlandjiev > Priority: Major > Attachments: screenshot-1.png > > > The following code causes java.lang.StackOverflowError. > {code:java} > final var value = (BinaryObjectImpl) entry.getValue(); > final var builder = value.toBuilder(); > final var binaryObject = builder.build(); > {code} > below is the stack trace: > {noformat} > java.lang.StackOverflowError: null > at java.base/java.lang.Class.isArray(Native Method) ~[na:na] > at java.base/java.lang.Class.getComponentType(Class.java:1227) ~[na:na] > at > java.base/jdk.internal.misc.Unsafe.checkPrimitiveArray(Unsafe.java:558) > ~[na:na] > at > java.base/jdk.internal.misc.Unsafe.checkPrimitivePointer(Unsafe.java:579) > ~[na:na] > at java.base/jdk.internal.misc.Unsafe.copyMemoryChecks(Unsafe.java:832) > ~[na:na] > at java.base/jdk.internal.misc.Unsafe.copyMemory(Unsafe.java:800) > ~[na:na] > at jdk.unsupported/sun.misc.Unsafe.copyMemory(Unsafe.java:573) ~[na:na] > at > org.apache.ignite.internal.util.GridUnsafe.copyMemory(GridUnsafe.java:1312) > ~[ignite-core-2.11.0.jar:2.11.0] > at > org.apache.ignite.internal.binary.streams.BinaryHeapOutputStream.copyAndShift(BinaryHeapOutputStream.java:96) > ~[ignite-core-2.11.0.jar:2.11.0] > at > org.apache.ignite.internal.binary.streams.BinaryAbstractOutputStream.write(BinaryAbstractOutputStream.java:233) > ~[ignite-core-2.11.0.jar:2.11.0] > at > org.apache.ignite.internal.binary.BinaryWriterExImpl.write(BinaryWriterExImpl.java:401) > ~[ignite-core-2.11.0.jar:2.11.0] > at > org.apache.ignite.internal.binary.builder.BinaryPlainLazyValue.writeTo(BinaryPlainLazyValue.java:47) > ~[ignite-core-2.11.0.jar:2.11.0] > at > org.apache.ignite.internal.binary.builder.BinaryBuilderSerializer.writeValue(BinaryBuilderSerializer.java:73) > ~[ignite-core-2.11.0.jar:2.11.0] > at > org.apache.ignite.internal.binary.builder.BinaryBuilderSerializer.writeValue(BinaryBuilderSerializer.java:54) > ~[ignite-core-2.11.0.jar:2.11.0] > at > org.apache.ignite.internal.binary.builder.BinaryLazyMap.writeTo(BinaryLazyMap.java:99) > ~[ignite-core-2.11.0.jar:2.11.0] > at > org.apache.ignite.internal.binary.builder.BinaryBuilderSerializer.writeValue(BinaryBuilderSerializer.java:73) > ~[ignite-core-2.11.0.jar:2.11.0] > at > org.apache.ignite.internal.binary.builder.BinaryBuilderSerializer.writeValue(BinaryBuilderSerializer.java:54) > ~[ignite-core-2.11.0.jar:2.11.0] > at > org.apache.ignite.internal.binary.builder.BinaryLazyMap.writeTo(BinaryLazyMap.java:100) > ~[ignite-core-2.11.0.jar:2.11.0] > at > org.apache.ignite.internal.binary.builder.BinaryBuilderSerializer.writeValue(BinaryBuilderSerializer.java:73) > ~[ignite-core-2.11.0.jar:2.11.0] > at > org.apache.ignite.internal.binary.builder.BinaryBuilderSerializer.writeValue(BinaryBuilderSerializer.java:54) > ~[ignite-core-2.11.0.jar:2.11.0] > at > org.apache.ignite.internal.binary.builder.BinaryLazyMap.writeTo(BinaryLazyMap.java:100) > ~[ignite-core-2.11.0.jar:2.11.0] > ..... > {noformat} -- This message was sent by Atlassian Jira (v8.3.4#803005)