[ 
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)

Reply via email to