You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by av...@apache.org on 2017/05/31 12:28:11 UTC
[25/27] ignite git commit: IGNITE-5225: Fix NPE caused by changes in
IGNITE-4577.
IGNITE-5225: Fix NPE caused by changes in IGNITE-4577.
(cherry picked from commit d463840)
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/442aac25
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/442aac25
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/442aac25
Branch: refs/heads/ignite-5232-1.7.2
Commit: 442aac2507210d39b7f30ab8f8d9a3dbe2610cae
Parents: 29187ef
Author: Andrey V. Mashenkov <an...@gmail.com>
Authored: Wed May 24 18:32:11 2017 +0300
Committer: Andrey V. Mashenkov <an...@gmail.com>
Committed: Wed May 24 18:32:11 2017 +0300
----------------------------------------------------------------------
.../apache/ignite/internal/util/IgniteUtils.java | 4 ++--
.../spi/communication/tcp/TcpCommunicationSpi.java | 17 +++++++++++------
2 files changed, 13 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/442aac25/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
index ba118cb..ca29adf 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
@@ -1813,11 +1813,11 @@ public abstract class IgniteUtils {
* @return List of reachable addresses.
*/
public static List<InetAddress> filterReachable(Collection<InetAddress> addrs) {
- final int reachTimeout = 2000;
-
if (addrs.isEmpty())
return Collections.emptyList();
+ final int reachTimeout = 2000;
+
if (addrs.size() == 1) {
InetAddress addr = F.first(addrs);
http://git-wip-us.apache.org/repos/asf/ignite/blob/442aac25/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
index 81454f8..6dba6b2 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
@@ -2336,22 +2336,27 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
Set<InetAddress> allInetAddrs = U.newHashSet(addrs.size());
- for (InetSocketAddress addr : addrs)
- allInetAddrs.add(addr.getAddress());
+ for (InetSocketAddress addr : addrs) {
+ // Skip unresolved as addr.getAddress() can return null.
+ if(!addr.isUnresolved())
+ allInetAddrs.add(addr.getAddress());
+ }
List<InetAddress> reachableInetAddrs = U.filterReachable(allInetAddrs);
if (reachableInetAddrs.size() < allInetAddrs.size()) {
LinkedHashSet<InetSocketAddress> addrs0 = U.newLinkedHashSet(addrs.size());
+ List<InetSocketAddress> unreachableInetAddr = new ArrayList<>(allInetAddrs.size() - reachableInetAddrs.size());
+
for (InetSocketAddress addr : addrs) {
if (reachableInetAddrs.contains(addr.getAddress()))
addrs0.add(addr);
+ else
+ unreachableInetAddr.add(addr);
}
- for (InetSocketAddress addr : addrs) {
- if (!reachableInetAddrs.contains(addr.getAddress()))
- addrs0.add(addr);
- }
+
+ addrs0.addAll(unreachableInetAddr);
addrs = addrs0;
}