[
https://issues.apache.org/jira/browse/IGNITE-15196?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alexander Lapin updated IGNITE-15196:
-------------------------------------
Description:
In case of node stop it's possible to get null as a result of an invoke
operation.
{code:java}
return cluster
.requestResponse(fromNetworkAddress(addr), message)
.timeout(Duration.ofMillis(timeout))
.toFuture()
.thenApply(m -> m == null ? null : m.data()); // The result can be null on
node stopping.
{code}
It's a rather confusing behavior that produces NPE. See IGNITE-15195 for more
details. In order not not fail with NPE I've updated null handling in a
following way
{code:java}
return cluster
.requestResponse(fromNetworkAddress(addr), message)
.timeout(Duration.ofMillis(timeout))
.toFuture()
.thenApply(m -> {
if (m == null)
throw new CompletionException(new NodeStoppingCheckedException());
else
return m.data();
}); // The result can be null on node stopping.{code}
within IGNITE-15148
{panel}
{panel}
was:
In case of node stop it's possible to get null as a result of an invoke
operation.
{code:java}
return cluster
.requestResponse(fromNetworkAddress(addr), message)
.timeout(Duration.ofMillis(timeout))
.toFuture()
.thenApply(m -> m == null ? null : m.data()); // The result can be null on
node stopping.
{code}
It's a rather confusing behavior that produces NPE. See
[IGNITE-15195|https://issues.apache.org/jira/browse/IGNITE-15195] for more
details. In order not not fail with NPE I've updated null handling in a
following way
{code:java}
return cluster
.requestResponse(fromNetworkAddress(addr), message)
.timeout(Duration.ofMillis(timeout))
.toFuture()
.thenApply(m -> {
if (m == null)
throw new CompletionException(new NodeStoppingCheckedException());
else
return m.data();
}); // The result can be null on node stopping.{code}
within [IGNITE-15148|https://issues.apache.org/jira/browse/IGNITE-15148]
> Null seems to be an unexpected result for ScaleCubeMessagingService#invoke()
> on node stopping
> ----------------------------------------------------------------------------------------------
>
> Key: IGNITE-15196
> URL: https://issues.apache.org/jira/browse/IGNITE-15196
> Project: Ignite
> Issue Type: Bug
> Reporter: Alexander Lapin
> Priority: Major
> Labels: ignite-3
>
> In case of node stop it's possible to get null as a result of an invoke
> operation.
> {code:java}
> return cluster
> .requestResponse(fromNetworkAddress(addr), message)
> .timeout(Duration.ofMillis(timeout))
> .toFuture()
> .thenApply(m -> m == null ? null : m.data()); // The result can be null
> on node stopping.
> {code}
> It's a rather confusing behavior that produces NPE. See IGNITE-15195 for more
> details. In order not not fail with NPE I've updated null handling in a
> following way
> {code:java}
> return cluster
> .requestResponse(fromNetworkAddress(addr), message)
> .timeout(Duration.ofMillis(timeout))
> .toFuture()
> .thenApply(m -> {
> if (m == null)
> throw new CompletionException(new NodeStoppingCheckedException());
> else
> return m.data();
> }); // The result can be null on node stopping.{code}
> within IGNITE-15148
> {panel}
> {panel}
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)