You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2017/05/16 20:40:08 UTC
[04/10] 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/95850b47
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/95850b47
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/95850b47
Branch: refs/heads/ignite-5075-cacheStart
Commit: 95850b47bde6df109ecd029d6a3a59b8e3772f81
Parents: dacf973
Author: Andrey V. Mashenkov <an...@gmail.com>
Authored: Mon May 15 20:24:10 2017 +0300
Committer: Andrey V. Mashenkov <an...@gmail.com>
Committed: Tue May 16 12:27:26 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/95850b47/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 bef7b98..0668708 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
@@ -1858,11 +1858,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/95850b47/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 be897d6..769a02e 100755
--- 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
@@ -2885,22 +2885,27 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter implements Communicati
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;
}