You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Nikolai Kulagin (Jira)" <ji...@apache.org> on 2020/05/25 17:42:00 UTC
[jira] [Comment Edited] (IGNITE-12823) .NET: Service method with
user type array parameter can't be found
[ https://issues.apache.org/jira/browse/IGNITE-12823?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17116157#comment-17116157 ]
Nikolai Kulagin edited comment on IGNITE-12823 at 5/25/20, 5:41 PM:
--------------------------------------------------------------------
[~ptupitsyn], Yes, your decision is better. Unfortunately, I did not think of this. But I came up with one crazy case (maybe he is not alone) in which your decision needs to be fixed.
As I understand it, do you take a ticket to yourself?
{code:java}
Assert.AreEqual("PlatformComputeBinarizable2", prx.TestBinarizableArray(new[] {10, 11, 12}.Select(x => new PlatformComputeBinarizable2 {Field = x}).ToArray()));
....
public string TestBinarizableArray(object[] x)
{
if (x.GetType() == typeof(PlatformComputeBinarizable[]))
return "PlatformComputeBinarizable";
if (x.GetType() == typeof(PlatformComputeBinarizable2[]))
return "PlatformComputeBinarizable2";
return "object";
}
...
Expected string length 27 but was 6. Strings differ at index 0.
Expected: "PlatformComputeBinarizable2"
But was: "object"
{code}
was (Author: zzzadruga):
[~ptupitsyn], Yes, your decision is better. Unfortunately, I did not think of this. But I came up with one crazy case (maybe he is not alone) in which your decision needs to be finalized.
As I understand it, do you take a ticket to yourself?
{code:java}
Assert.AreEqual("PlatformComputeBinarizable2", prx.TestBinarizableArray(new[] {10, 11, 12}.Select(x => new PlatformComputeBinarizable2 {Field = x}).ToArray()));
....
public string TestBinarizableArray(object[] x)
{
if (x.GetType() == typeof(PlatformComputeBinarizable[]))
return "PlatformComputeBinarizable";
if (x.GetType() == typeof(PlatformComputeBinarizable2[]))
return "PlatformComputeBinarizable2";
return "object";
}
...
Expected string length 27 but was 6. Strings differ at index 0.
Expected: "PlatformComputeBinarizable2"
But was: "object"
{code}
> .NET: Service method with user type array parameter can't be found
> ------------------------------------------------------------------
>
> Key: IGNITE-12823
> URL: https://issues.apache.org/jira/browse/IGNITE-12823
> Project: Ignite
> Issue Type: Bug
> Components: platforms
> Reporter: Alexey Kukushkin
> Assignee: Nikolai Kulagin
> Priority: Major
> Labels: .NET, sbcf
> Attachments: ignite-12823-vs-2.8.patch
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> *+Setup+*
> * Ignite Java service with a method having an array of user types as a parameters, for example, caclulate(Parameter[] params)
> *+Actions+*
> * .NET client calls the Ignite Java service, for example, ignite.GetServices().GetServiceProxy<ICalculator>().calculate(new[] \{new Parameter()});
> *+Expected+*
> * The service method is called
> *+Actual+*
> * Exception "Could not find proxy method 'calculate' in class ICalculator"
> *+Workaround+*
> * Replace array of user types with array of objects in the service methods signatures, for example, caclulate(Object[] params)
--
This message was sent by Atlassian Jira
(v8.3.4#803005)