Skip to content

Commit

Permalink
IGN-2583 .NET: RegisterSameJavaType mode enabled when reading message
Browse files Browse the repository at this point in the history
Merge in OSPT/ignite from IGN-2583 to master

Squashed commit of the following:

commit e3b64a3f77c9abb1e6796f3a818a961acacad19f
Author: Nikolay Izhikov <nizhikov@apache.org>
Date:   Thu Feb 4 15:18:59 2021 +0300

    IGN-2583: RegisterSameJavaType mode enabled when reading message.
  • Loading branch information
nizhikov committed Feb 22, 2022
1 parent 4f7579d commit 3bf8812
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -312,17 +312,22 @@ public void TestMessagingJavaService()
return true;
});

msgng.LocalListen(lsnr, "test-topic");

svc.testSendMessage();
try
{
msgng.LocalListen(lsnr, "test-topic");

TestUtils.WaitForTrueCondition(() => rcvd.Count == 3, timeout: 2500);
svc.testSendMessage();

Assert.IsNotNull(rcvd.Find(v => v.Name == "1"));
Assert.IsNotNull(rcvd.Find(v => v.Name == "2"));
Assert.IsNotNull(rcvd.Find(v => v.Name == "3"));
TestUtils.WaitForTrueCondition(() => rcvd.Count == 3, timeout: 2500);

msgng.StopLocalListen(lsnr, "test-topic");
Assert.IsNotNull(rcvd.Find(v => v.Name == "1"));
Assert.IsNotNull(rcvd.Find(v => v.Name == "2"));
Assert.IsNotNull(rcvd.Find(v => v.Name == "3"));
}
finally
{
msgng.StopLocalListen(lsnr, "test-topic");
}

svc.startReceiveMessage();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,13 +73,29 @@ private MessageListenerHolder(Ignite grid, object filter, Func<Guid, object, boo
/// <returns></returns>
public int Invoke(IBinaryStream input)
{
var rawReader = _ignite.Marshaller.StartUnmarshal(input).GetRawReader();
Guid? nodeId;
object msg;

var nodeId = rawReader.ReadGuid();
bool locRegisterSameJavaType = Marshaller.RegisterSameJavaTypeTl.Value;

Debug.Assert(nodeId != null);
Marshaller.RegisterSameJavaTypeTl.Value = true;

return _invoker(nodeId.Value, rawReader.ReadObject<object>()) ? 1 : 0;
try
{
var rawReader = _ignite.Marshaller.StartUnmarshal(input).GetRawReader();

nodeId = rawReader.ReadGuid();

Debug.Assert(nodeId != null);

msg = rawReader.ReadObject<object>();
}
finally
{
Marshaller.RegisterSameJavaTypeTl.Value = locRegisterSameJavaType;
}

return _invoker(nodeId.Value, msg) ? 1 : 0;
}

/// <summary>
Expand Down

0 comments on commit 3bf8812

Please sign in to comment.