You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by ma...@apache.org on 2014/12/30 15:04:16 UTC
incubator-nifi git commit: NIFI-211: Use ServerSocket.accept instead
of ServerSocketChannel.accept so that timeout is taken into account
Repository: incubator-nifi
Updated Branches:
refs/heads/develop d27d2e303 -> 0a0b7e05a
NIFI-211: Use ServerSocket.accept instead of ServerSocketChannel.accept so that timeout is taken into account
Project: http://git-wip-us.apache.org/repos/asf/incubator-nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-nifi/commit/0a0b7e05
Tree: http://git-wip-us.apache.org/repos/asf/incubator-nifi/tree/0a0b7e05
Diff: http://git-wip-us.apache.org/repos/asf/incubator-nifi/diff/0a0b7e05
Branch: refs/heads/develop
Commit: 0a0b7e05a08428a5e6e78e9f8c204cd05991b4b3
Parents: d27d2e3
Author: Mark Payne <ma...@hotmail.com>
Authored: Tue Dec 30 08:59:10 2014 -0500
Committer: Mark Payne <ma...@hotmail.com>
Committed: Tue Dec 30 08:59:10 2014 -0500
----------------------------------------------------------------------
.../nifi/remote/SocketRemoteSiteListener.java | 22 +++++++++++++-------
1 file changed, 15 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/0a0b7e05/nar-bundles/framework-bundle/framework/site-to-site/src/main/java/org/apache/nifi/remote/SocketRemoteSiteListener.java
----------------------------------------------------------------------
diff --git a/nar-bundles/framework-bundle/framework/site-to-site/src/main/java/org/apache/nifi/remote/SocketRemoteSiteListener.java b/nar-bundles/framework-bundle/framework/site-to-site/src/main/java/org/apache/nifi/remote/SocketRemoteSiteListener.java
index a0a3ed6..ec169ad 100644
--- a/nar-bundles/framework-bundle/framework/site-to-site/src/main/java/org/apache/nifi/remote/SocketRemoteSiteListener.java
+++ b/nar-bundles/framework-bundle/framework/site-to-site/src/main/java/org/apache/nifi/remote/SocketRemoteSiteListener.java
@@ -23,6 +23,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetSocketAddress;
+import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketTimeoutException;
import java.nio.channels.ServerSocketChannel;
@@ -43,7 +44,6 @@ import org.apache.nifi.remote.io.socket.ssl.SSLSocketChannelCommunicationsSessio
import org.apache.nifi.remote.protocol.CommunicationsSession;
import org.apache.nifi.remote.protocol.RequestType;
import org.apache.nifi.remote.protocol.ServerProtocol;
-
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -99,11 +99,20 @@ public class SocketRemoteSiteListener implements RemoteSiteListener {
continue;
}
+
LOG.trace("Accepting Connection...");
- final SocketChannel socketChannel;
+ Socket acceptedSocket = null;
try {
- serverSocketChannel.socket().setSoTimeout(5000);
- socketChannel = serverSocketChannel.accept();
+ serverSocketChannel.configureBlocking(false);
+ final ServerSocket serverSocket = serverSocketChannel.socket();
+ serverSocket.setSoTimeout(2000);
+ while ( !stopped.get() && acceptedSocket == null ) {
+ try {
+ acceptedSocket = serverSocket.accept();
+ } catch (final SocketTimeoutException ste) {
+ continue;
+ }
+ }
} catch (final IOException e) {
LOG.error("RemoteSiteListener Unable to accept connection due to {}", e.toString());
if ( LOG.isDebugEnabled() ) {
@@ -113,12 +122,11 @@ public class SocketRemoteSiteListener implements RemoteSiteListener {
}
LOG.trace("Got connection");
-
+ final Socket socket = acceptedSocket;
+ final SocketChannel socketChannel = socket.getChannel();
final Thread thread = new Thread(new Runnable() {
@Override
public void run() {
- final Socket socket = socketChannel.socket();
-
String hostname = socket.getInetAddress().getHostName();
final int slashIndex = hostname.indexOf("/");
if ( slashIndex == 0 ) {