[
https://issues.apache.org/jira/browse/IGNITE-12860?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alexey Kukushkin updated IGNITE-12860:
--------------------------------------
Description:
.NET NullReferenceException when serializing fields of the same type in
different order
+*Steps to reproduce*+:
* Implement IBinarizable for a type having multiple fields and randomly select
subset of the fields in the IBinarizable.WriteBinary implementation
* Serialize the type multiple times
+*Actual result*+:
Eventual NullReferenceException at some iteration of serialization:
{{Object reference not set to an instance of an object. }}{{at
Apache.Ignite.Core.Impl.Binary.Structure.BinaryStructure.GetFieldId(String
fieldName, Byte fieldType, Int32& pathIdx, Int32 actionIdx)}}{{ at
Apache.Ignite.Core.Impl.Binary.Structure.BinaryStructureTracker.GetFieldId(String
fieldName, Byte fieldTypeId)}}{{ at
Apache.Ignite.Core.Impl.Binary.BinaryWriter.WriteFieldId(String fieldName, Byte
fieldTypeId)}}{{ at
Apache.Ignite.Core.Impl.Binary.BinaryWriter.WriteInt(String fieldName, Int32
val)}}{{ at }}
was:
.NET NullReferenceException when serializing fields of the same type in
different order
+*Steps to reproduce*+:
* Implement IBinarizable for a type having multiple fields and randomly select
subset of the fields in the IBinarizable.WriteBinary implementation
* Serialize the type multiple times
+*Actual result*+:
Eventual NullReferenceException at some iteration of serialization:
{{Object reference not set to an instance of an object. }}{{at
Apache.Ignite.Core.Impl.Binary.Structure.BinaryStructure.GetFieldId(String
fieldName, Byte fieldType, Int32& pathIdx, Int32 actionIdx)}}{{ at
Apache.Ignite.Core.Impl.Binary.Structure.BinaryStructureTracker.GetFieldId(String
fieldName, Byte fieldTypeId)}}{{ at
Apache.Ignite.Core.Impl.Binary.BinaryWriter.WriteFieldId(String fieldName, Byte
fieldTypeId)}}{{ at
Apache.Ignite.Core.Impl.Binary.BinaryWriter.WriteInt(String fieldName, Int32
val)}}{{ at
Sbt.Cashflow.Grid.Ignite.Serialization.<>c.<.cctor>b__8_26(IBinaryWriter w,
String k, Object v) in
d:\Repos\Sbt.CMS.Cashflow\sbt.cashflow.grid.subrepo\Sbt.Cashflow.Grid\Sbt.Cashflow.Grid\Ignite\Serialization.cs:line
231}}{{ at Sbt.Cashflow.Grid.Ignite.Serialization.Write(IBinaryWriter
writer, Type type, String name, Object val) in
d:\Repos\Sbt.CMS.Cashflow\sbt.cashflow.grid.subrepo\Sbt.Cashflow.Grid\Sbt.Cashflow.Grid\Ignite\Serialization.cs:line
51}}{{ at
Sbt.CMS.Infrastructure.Ignite.Objects.CacheItem.WriteBinary(IBinaryWriter
writer) in
d:\Repos\Sbt.CMS.Cashflow\sbt.cms.subrepo\Sbt.CMS.Infrastructure\Ignite\Objects\CacheItem.cs:line
162}}
> .NET NullReferenceException when serializing fields of the same type in
> different order
> ---------------------------------------------------------------------------------------
>
> Key: IGNITE-12860
> URL: https://issues.apache.org/jira/browse/IGNITE-12860
> Project: Ignite
> Issue Type: Bug
> Affects Versions: 2.8
> Reporter: Alexey Kukushkin
> Assignee: Pavel Tupitsyn
> Priority: Major
> Labels: sbcf
> Attachments: ignite-12860-vs-2.8.patch
>
>
> .NET NullReferenceException when serializing fields of the same type in
> different order
> +*Steps to reproduce*+:
> * Implement IBinarizable for a type having multiple fields and randomly
> select subset of the fields in the IBinarizable.WriteBinary implementation
> * Serialize the type multiple times
> +*Actual result*+:
> Eventual NullReferenceException at some iteration of serialization:
> {{Object reference not set to an instance of an object. }}{{at
> Apache.Ignite.Core.Impl.Binary.Structure.BinaryStructure.GetFieldId(String
> fieldName, Byte fieldType, Int32& pathIdx, Int32 actionIdx)}}{{ at
> Apache.Ignite.Core.Impl.Binary.Structure.BinaryStructureTracker.GetFieldId(String
> fieldName, Byte fieldTypeId)}}{{ at
> Apache.Ignite.Core.Impl.Binary.BinaryWriter.WriteFieldId(String fieldName,
> Byte fieldTypeId)}}{{ at
> Apache.Ignite.Core.Impl.Binary.BinaryWriter.WriteInt(String fieldName, Int32
> val)}}{{ at }}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)