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 2015/03/02 10:49:52 UTC
[07/50] [abbrv] incubator-ignite git commit: # ignite-11 Fix issues
found on review.
# ignite-11 Fix issues found on review.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/6130f7e5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/6130f7e5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/6130f7e5
Branch: refs/heads/ignite-342
Commit: 6130f7e52214ab0b0d0876d8be0c141e9dc1a2df
Parents: 2999d20
Author: sevdokimov <se...@gridgain.com>
Authored: Thu Feb 26 18:11:50 2015 +0300
Committer: sevdokimov <se...@gridgain.com>
Committed: Thu Feb 26 18:11:50 2015 +0300
----------------------------------------------------------------------
.../spi/discovery/tcp/TcpDiscoverySpi.java | 7 +---
.../discovery/tcp/TcpDiscoverySpiAdapter.java | 42 +++++++++++++-------
2 files changed, 29 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6130f7e5/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index 3fc52b1..df39d6b 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -1401,9 +1401,7 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
boolean retry = false;
Collection<Exception> errs = new ArrayList<>();
- SocketMultiConnector multiConnector = new SocketMultiConnector(addrs, 2);
-
- try {
+ try (SocketMultiConnector multiConnector = new SocketMultiConnector(addrs, 2)) {
GridTuple3<InetSocketAddress, Socket, Exception> tuple;
while ((tuple = multiConnector.next()) != null) {
@@ -1476,9 +1474,6 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
}
}
}
- finally {
- multiConnector.close();
- }
if (retry) {
if (log.isDebugEnabled())
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6130f7e5/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
index 80b793a..1d9559e 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiAdapter.java
@@ -1013,7 +1013,7 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
/**
*
*/
- protected class SocketMultiConnector {
+ protected class SocketMultiConnector implements AutoCloseable {
/** */
private int connInProgress;
@@ -1068,11 +1068,15 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
return null;
try {
+ Future<GridTuple3<InetSocketAddress, Socket, Exception>> fut = completionSrvc.take();
+
connInProgress--;
- return completionSrvc.take().get();
+ return fut.get();
}
catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+
throw new IgniteSpiException("Thread has been interrupted.", e);
}
catch (ExecutionException e) {
@@ -1080,33 +1084,43 @@ abstract class TcpDiscoverySpiAdapter extends IgniteSpiAdapter implements Discov
}
}
- /**
- *
- */
- public void close() {
- executor.shutdown();
+ /** {@inheritDoc} */
+ @Override public void close() {
+ List<Runnable> unstartedTasks = executor.shutdownNow();
+
+ connInProgress -= unstartedTasks.size();
if (connInProgress > 0) {
- new Thread(new Runnable() {
+ Thread thread = new Thread(new Runnable() {
@Override public void run() {
try {
- for (int i = 0; i < connInProgress; i++) {
+ executor.awaitTermination(5, TimeUnit.MINUTES);
+
+ Future<GridTuple3<InetSocketAddress, Socket, Exception>> fut;
+
+ while ((fut = completionSrvc.poll()) != null) {
try {
- GridTuple3<InetSocketAddress, Socket, Exception> take = completionSrvc.take().get();
+ GridTuple3<InetSocketAddress, Socket, Exception> tuple3 = fut.get();
- if (take != null)
- IgniteUtils.closeQuiet(take.get2());
+ if (tuple3 != null)
+ IgniteUtils.closeQuiet(tuple3.get2());
}
- catch (ExecutionException ignored) {
+ catch (ExecutionException ignore) {
}
}
}
catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+
throw new RuntimeException(e);
}
}
- }).start();
+ });
+
+ thread.setDaemon(true);
+
+ thread.start();
}
}
}