You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Alexey Popov (JIRA)" <ji...@apache.org> on 2017/11/13 15:59:00 UTC
[jira] [Commented] (IGNITE-6896) .NET: support Multidimensional
Arrays in binary serializer
[ https://issues.apache.org/jira/browse/IGNITE-6896?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16249762#comment-16249762 ]
Alexey Popov commented on IGNITE-6896:
--------------------------------------
Sample exception:
System.TypeInitializationException : The type initializer for 'Casters`1' threw an exception.
----> System.InvalidOperationException : No coercion operator is defined between types 'System.Single[,]' and 'System.Single[]'.
at Apache.Ignite.Core.Impl.Common.TypeCaster`1.Cast[TFrom](TFrom obj) in C:\incubator-ignite\modules\platforms\dotnet\Apache.Ignite.Core\Impl\Common\TypeCaster.cs:line 45
at Apache.Ignite.Core.Impl.Binary.BinarySystemWriteHandler`1.Write[T](BinaryWriter writer, T obj) in C:\incubator-ignite\modules\platforms\dotnet\Apache.Ignite.Core\Impl\Binary\BinarySystemHandlers.cs:line 716
at Apache.Ignite.Core.Impl.Binary.BinaryWriter.Write[T](T obj) in C:\incubator-ignite\modules\platforms\dotnet\Apache.Ignite.Core\Impl\Binary\BinaryWriter.cs:line 1168
at Apache.Ignite.Core.Impl.Binary.Marshaller.Marshal[T](T val, IBinaryStream stream) in C:\incubator-ignite\modules\platforms\dotnet\Apache.Ignite.Core\Impl\Binary\Marshaller.cs:line 159
at Apache.Ignite.Core.Impl.Binary.Marshaller.Marshal[T](T val) in C:\incubator-ignite\modules\platforms\dotnet\Apache.Ignite.Core\Impl\Binary\Marshaller.cs:line 144
at Apache.Ignite.Core.Tests.TestUtils.SerializeDeserialize[T](T obj) in C:\incubator-ignite\modules\platforms\dotnet\Apache.Ignite.Core.Tests\TestUtils.cs:line 384
at Apache.Ignite.Core.Tests.Binary.Serializable.GenericCollectionsTest.TestXX() in C:\incubator-ignite\modules\platforms\dotnet\Apache.Ignite.Core.Tests\Binary\Serializable\GenericCollectionsTest.cs:line 98
--InvalidOperationException
at System.Linq.Expressions.Expression.GetUserDefinedCoercionOrThrow(ExpressionType coercionType, Expression expression, Type convertToType)
at Apache.Ignite.Core.Impl.Common.TypeCaster`1.Casters`1.Compile() in C:\incubator-ignite\modules\platforms\dotnet\Apache.Ignite.Core\Impl\Common\TypeCaster.cs:line 85
at Apache.Ignite.Core.Impl.Common.TypeCaster`1.Casters`1..cctor() in C:\incubator-ignite\modules\platforms\dotnet\Apache.Ignite.Core\Impl\Common\TypeCaster.cs:line 69
> .NET: support Multidimensional Arrays in binary serializer
> ----------------------------------------------------------
>
> Key: IGNITE-6896
> URL: https://issues.apache.org/jira/browse/IGNITE-6896
> Project: Ignite
> Issue Type: Improvement
> Security Level: Public(Viewable by anyone)
> Components: platforms
> Affects Versions: 2.3
> Reporter: Alexey Popov
>
> It is found that legacy 2D, 3D, etc. are not working in BinarySerializer.
> Sample reproducer:
> {code:java}
> [Test]
> public void TestXX()
> {
> var array2D = new float[32, 32];
> var res = TestUtils.SerializeDeserialize(array2D);
> Assert.AreEqual(array2D, res);
> }
> {code}
> BTW, please note that 2D array in Java (a[2][2]) is just a jugged array:
> obj = {byte[2][]@1928}
> 0 = {byte[2]@1974}
> 1 = {byte[2]@1975}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)