[jira] [Updated] (IGNITE-8588) .NET: Serialization issue when derived type hides base type member

2019-10-10 Thread Maxim Muzafarov (Jira)


 [ 
https://issues.apache.org/jira/browse/IGNITE-8588?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Maxim Muzafarov updated IGNITE-8588:

Fix Version/s: 2.8

> .NET: Serialization issue when derived type hides base type member
> --
>
> Key: IGNITE-8588
> URL: https://issues.apache.org/jira/browse/IGNITE-8588
> Project: Ignite
>  Issue Type: Bug
>  Components: platforms
>Affects Versions: 2.4
>Reporter: Pavel Tupitsyn
>Assignee: Alexandr Shapkin
>Priority: Major
>  Labels: .NET
> Fix For: 2.8
>
>  Time Spent: 1h 10m
>  Remaining Estimate: 0h
>
> The following class structure causes an exception that is hard to understand 
> (when putting instance of B into Ignite cache):
> {code}
> public class A
> {
>   public int bob;
> } 
> public class B : A
> {
>   public int bob;
> }
> {code}
> Exception:
> {code}
>  Apache.Ignite.Core.Binary.BinaryObjectException: Conflicting field IDs 
> [type=SubGridsRequestArgument, field1=Filters, field2=Filters, 
> fieldId=-854547461]
>    at 
> Apache.Ignite.Core.Impl.Binary.BinaryReflectiveSerializerInternal.Register(Type
>  type, Int32 typeId, IBinaryNameMapper converter, IBinaryIdMapper idMapper, 
> Boolean forceTimestamp)
>    at 
> Apache.Ignite.Core.Impl.Binary.Marshaller.GetSerializer(BinaryConfiguration 
> cfg, BinaryTypeConfiguration typeCfg, Type type, Int32 typeId, 
> IBinaryNameMapper nameMapper, IBinaryIdMapper idMapper, ILogger log)
>    at Apache.Ignite.Core.Impl.Binary.Marshaller.AddUserType(Type type, Int32 
> typeId, String typeName, Boolean registered, BinaryFullTypeDescriptor desc)
>    at Apache.Ignite.Core.Impl.Binary.Marshaller.RegisterType(Type type, 
> BinaryFullTypeDescriptor desc)
>    at Apache.Ignite.Core.Impl.Binary.Marshaller.GetDescriptor(Type type)
>    at Apache.Ignite.Core.Impl.Binary.BinaryWriter.Write[T](T obj)
>    at 
> Apache.Ignite.Core.Impl.Deployment.PeerLoadingExtensions.WriteWithPeerDeployment(BinaryWriter
>  writer, Object o)
>    at 
> Apache.Ignite.Core.Impl.Binary.BinarySystemTypeSerializer`1.WriteBinary[T1](T1
>  obj, BinaryWriter writer)
>    at Apache.Ignite.Core.Impl.Binary.BinaryWriter.Write[T](T obj)
>    at 
> Apache.Ignite.Core.Impl.Binary.BinarySystemTypeSerializer`1.WriteBinary[T1](T1
>  obj, BinaryWriter writer)
>    at Apache.Ignite.Core.Impl.Binary.BinaryWriter.Write[T](T obj)
>    at Apache.Ignite.Core.Impl.Binary.BinaryWriter.WriteObjectDetached[T](T o)
>    at Apache.Ignite.Core.Impl.Compute.ComputeImpl.WriteJob(IComputeJob job, 
> BinaryWriter writer)
>    at 
> Apache.Ignite.Core.Impl.Compute.ComputeImpl.<>c__DisplayClass1d`3.b__1a(BinaryWriter
>  writer)
>    at Apache.Ignite.Core.Impl.PlatformTargetAdapter.WriteToStream(Action`1 
> action, IBinaryStream stream, Marshaller marsh)
>    at Apache.Ignite.Core.Impl.PlatformJniTarget.InStreamOutObject(Int32 type, 
> Action`1 writeAction)
>    at 
> Apache.Ignite.Core.Impl.Compute.ComputeImpl.ExecuteClosures0[TArg,TJobRes,TReduceRes](IComputeTask`3
>  task, IComputeJob job, IEnumerable`1 jobs, Int32 opId, Int32 jobsCount, 
> Action`1 writeAction)
>    --- End of inner exception stack trace ---
>    at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean 
> includeTaskCanceledExceptions)
>    at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, 
> CancellationToken cancellationToken)
>    at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout)
>    at VSS.TRex.GridFabric.Requests.SubGridRequestsProgressive`2.Execute() in 
> C:\Dev\VSS.TRex\src\netstandard\RaptorClassLibrary.netstandard\GridFabric\Requests\SubGridRequestsProgressive.cs:line
>  107
>    at VSS.TRex.Pipelines.SubGridPipelineBase`3.Initiate() in 
> C:\Dev\VSS.TRex\src\netstandard\RaptorClassLibrary.netstandard\Pipelines\SubGridPipelineBase.cs:line
>  241
>    at VSS.TRex.Rendering.PlanViewTileRenderer.ExecutePipeline() in 
> C:\Dev\VSS.TRex\src\netstandard\RaptorClassLibrary.netstandard\Rendering\PlanViewTileRenderer.cs:line
>  262
> ---> (Inner Exception #0) Apache.Ignite.Core.Binary.BinaryObjectException: 
> Conflicting field IDs [type=SubGridsRequestArgument, field1=Filters, 
> field2=Filters, fieldId=-854547461]
>    at 
> Apache.Ignite.Core.Impl.Binary.BinaryReflectiveSerializerInternal.Register(Type
>  type, Int32 typeId, IBinaryNameMapper converter, IBinaryIdMapper idMapper, 
> Boolean forceTimestamp)
>    at 
> Apache.Ignite.Core.Impl.Binary.Marshaller.GetSerializer(BinaryConfiguration 
> cfg, BinaryTypeConfiguration typeCfg, Type type, Int32 typeId, 
> IBinaryNameMapper nameMapper, IBinaryIdMapper idMapper, ILogger log)
>    at Apache.Ignite.Core.Impl.Binary.Marshaller.AddUserType(Type type, Int32 
> typeId, String typeName, Boolean registered, BinaryFullTypeDescriptor desc)
>    at 

[jira] [Updated] (IGNITE-8588) .NET: Serialization issue when derived type hides base type member

2018-05-24 Thread Pavel Tupitsyn (JIRA)

 [ 
https://issues.apache.org/jira/browse/IGNITE-8588?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Tupitsyn updated IGNITE-8588:
---
Description: 
The following class structure causes an exception that is hard to understand 
(when putting instance of B into Ignite cache):

{code}
public class A
{
  public int bob;
} 

public class B : A
{
  public int bob;
}
{code}

Exception:
{code}
 Apache.Ignite.Core.Binary.BinaryObjectException: Conflicting field IDs 
[type=SubGridsRequestArgument, field1=Filters, field2=Filters, 
fieldId=-854547461]

   at 
Apache.Ignite.Core.Impl.Binary.BinaryReflectiveSerializerInternal.Register(Type 
type, Int32 typeId, IBinaryNameMapper converter, IBinaryIdMapper idMapper, 
Boolean forceTimestamp)

   at 
Apache.Ignite.Core.Impl.Binary.Marshaller.GetSerializer(BinaryConfiguration 
cfg, BinaryTypeConfiguration typeCfg, Type type, Int32 typeId, 
IBinaryNameMapper nameMapper, IBinaryIdMapper idMapper, ILogger log)

   at Apache.Ignite.Core.Impl.Binary.Marshaller.AddUserType(Type type, Int32 
typeId, String typeName, Boolean registered, BinaryFullTypeDescriptor desc)

   at Apache.Ignite.Core.Impl.Binary.Marshaller.RegisterType(Type type, 
BinaryFullTypeDescriptor desc)

   at Apache.Ignite.Core.Impl.Binary.Marshaller.GetDescriptor(Type type)

   at Apache.Ignite.Core.Impl.Binary.BinaryWriter.Write[T](T obj)

   at 
Apache.Ignite.Core.Impl.Deployment.PeerLoadingExtensions.WriteWithPeerDeployment(BinaryWriter
 writer, Object o)

   at 
Apache.Ignite.Core.Impl.Binary.BinarySystemTypeSerializer`1.WriteBinary[T1](T1 
obj, BinaryWriter writer)

   at Apache.Ignite.Core.Impl.Binary.BinaryWriter.Write[T](T obj)

   at 
Apache.Ignite.Core.Impl.Binary.BinarySystemTypeSerializer`1.WriteBinary[T1](T1 
obj, BinaryWriter writer)

   at Apache.Ignite.Core.Impl.Binary.BinaryWriter.Write[T](T obj)

   at Apache.Ignite.Core.Impl.Binary.BinaryWriter.WriteObjectDetached[T](T o)

   at Apache.Ignite.Core.Impl.Compute.ComputeImpl.WriteJob(IComputeJob job, 
BinaryWriter writer)

   at 
Apache.Ignite.Core.Impl.Compute.ComputeImpl.<>c__DisplayClass1d`3.b__1a(BinaryWriter
 writer)

   at Apache.Ignite.Core.Impl.PlatformTargetAdapter.WriteToStream(Action`1 
action, IBinaryStream stream, Marshaller marsh)

   at Apache.Ignite.Core.Impl.PlatformJniTarget.InStreamOutObject(Int32 type, 
Action`1 writeAction)

   at 
Apache.Ignite.Core.Impl.Compute.ComputeImpl.ExecuteClosures0[TArg,TJobRes,TReduceRes](IComputeTask`3
 task, IComputeJob job, IEnumerable`1 jobs, Int32 opId, Int32 jobsCount, 
Action`1 writeAction)

   --- End of inner exception stack trace ---

   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean 
includeTaskCanceledExceptions)

   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, 
CancellationToken cancellationToken)

   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout)

   at VSS.TRex.GridFabric.Requests.SubGridRequestsProgressive`2.Execute() in 
C:\Dev\VSS.TRex\src\netstandard\RaptorClassLibrary.netstandard\GridFabric\Requests\SubGridRequestsProgressive.cs:line
 107

   at VSS.TRex.Pipelines.SubGridPipelineBase`3.Initiate() in 
C:\Dev\VSS.TRex\src\netstandard\RaptorClassLibrary.netstandard\Pipelines\SubGridPipelineBase.cs:line
 241

   at VSS.TRex.Rendering.PlanViewTileRenderer.ExecutePipeline() in 
C:\Dev\VSS.TRex\src\netstandard\RaptorClassLibrary.netstandard\Rendering\PlanViewTileRenderer.cs:line
 262

---> (Inner Exception #0) Apache.Ignite.Core.Binary.BinaryObjectException: 
Conflicting field IDs [type=SubGridsRequestArgument, field1=Filters, 
field2=Filters, fieldId=-854547461]

   at 
Apache.Ignite.Core.Impl.Binary.BinaryReflectiveSerializerInternal.Register(Type 
type, Int32 typeId, IBinaryNameMapper converter, IBinaryIdMapper idMapper, 
Boolean forceTimestamp)

   at 
Apache.Ignite.Core.Impl.Binary.Marshaller.GetSerializer(BinaryConfiguration 
cfg, BinaryTypeConfiguration typeCfg, Type type, Int32 typeId, 
IBinaryNameMapper nameMapper, IBinaryIdMapper idMapper, ILogger log)

   at Apache.Ignite.Core.Impl.Binary.Marshaller.AddUserType(Type type, Int32 
typeId, String typeName, Boolean registered, BinaryFullTypeDescriptor desc)

   at Apache.Ignite.Core.Impl.Binary.Marshaller.RegisterType(Type type, 
BinaryFullTypeDescriptor desc)

   at Apache.Ignite.Core.Impl.Binary.Marshaller.GetDescriptor(Type type)

   at Apache.Ignite.Core.Impl.Binary.BinaryWriter.Write[T](T obj)

   at 
Apache.Ignite.Core.Impl.Deployment.PeerLoadingExtensions.WriteWithPeerDeployment(BinaryWriter
 writer, Object o)

   at 
Apache.Ignite.Core.Impl.Binary.BinarySystemTypeSerializer`1.WriteBinary[T1](T1 
obj, BinaryWriter writer)

   at Apache.Ignite.Core.Impl.Binary.BinaryWriter.Write[T](T obj)

   at 
Apache.Ignite.Core.Impl.Binary.BinarySystemTypeSerializer`1.WriteBinary[T1](T1 
obj, BinaryWriter writer)

   at Apache.Ignite.Core.Impl.Binary.BinaryWriter.Write[T](T obj)

   at 

[jira] [Updated] (IGNITE-8588) .NET: Serialization issue when derived type hides base type member

2018-05-23 Thread Pavel Tupitsyn (JIRA)

 [ 
https://issues.apache.org/jira/browse/IGNITE-8588?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Tupitsyn updated IGNITE-8588:
---
Labels: .NET  (was: )

> .NET: Serialization issue when derived type hides base type member
> --
>
> Key: IGNITE-8588
> URL: https://issues.apache.org/jira/browse/IGNITE-8588
> Project: Ignite
>  Issue Type: Bug
>  Components: platforms
>Affects Versions: 2.4
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Major
>  Labels: .NET
>
> The following class structure causes an exception that is hard to understand 
> (when putting instance of B into Ignite cache):
> {code}
> public class A
> {
>   public int bob;
> } 
> public class B : A
> {
>   public int bob;
> }
> {code}
> See user list thread for more details:
> http://apache-ignite-users.70518.x6.nabble.com/Binary-type-has-different-fields-error-td21540.html



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)