You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by dr...@apache.org on 2015/01/21 09:01:28 UTC
[2/2] directory-kerberos git commit: Avoided some unnecessarily
thrown exception
Avoided some unnecessarily thrown exception
Project: http://git-wip-us.apache.org/repos/asf/directory-kerberos/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-kerberos/commit/a69651e9
Tree: http://git-wip-us.apache.org/repos/asf/directory-kerberos/tree/a69651e9
Diff: http://git-wip-us.apache.org/repos/asf/directory-kerberos/diff/a69651e9
Branch: refs/heads/master
Commit: a69651e9daef6f88ce7ab1bb3d2415d0b213701b
Parents: 795e982
Author: drankye <dr...@gmail.com>
Authored: Wed Jan 21 23:58:04 2015 +0800
Committer: drankye <dr...@gmail.com>
Committed: Wed Jan 21 23:58:04 2015 +0800
----------------------------------------------------------------------
.../apache/haox/event/ExecutedEventHandler.java | 4 +++
.../java/org/apache/haox/transport/Network.java | 26 +++++++++----------
.../apache/haox/transport/tcp/TcpAcceptor.java | 27 +++++++++-----------
3 files changed, 29 insertions(+), 28 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/a69651e9/contrib/haox-event/src/main/java/org/apache/haox/event/ExecutedEventHandler.java
----------------------------------------------------------------------
diff --git a/contrib/haox-event/src/main/java/org/apache/haox/event/ExecutedEventHandler.java b/contrib/haox-event/src/main/java/org/apache/haox/event/ExecutedEventHandler.java
index c6ab5b5..c707648 100644
--- a/contrib/haox-event/src/main/java/org/apache/haox/event/ExecutedEventHandler.java
+++ b/contrib/haox-event/src/main/java/org/apache/haox/event/ExecutedEventHandler.java
@@ -35,6 +35,10 @@ public class ExecutedEventHandler extends AbstractInternalEventHandler {
@Override
protected void doHandle(final Event event) throws Exception {
+ if (executorService.isTerminated()) {
+ return;
+ }
+
executorService.execute(new Runnable() {
@Override
public void run() {
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/a69651e9/contrib/haox-event/src/main/java/org/apache/haox/transport/Network.java
----------------------------------------------------------------------
diff --git a/contrib/haox-event/src/main/java/org/apache/haox/transport/Network.java b/contrib/haox-event/src/main/java/org/apache/haox/transport/Network.java
index c8b4776..a61925e 100644
--- a/contrib/haox-event/src/main/java/org/apache/haox/transport/Network.java
+++ b/contrib/haox-event/src/main/java/org/apache/haox/transport/Network.java
@@ -260,25 +260,25 @@ public class Network extends LongRunningEventHandler {
dispatch(event);
}
- void doTcpAccept(SelectionKey key) throws IOException {
+ protected void doTcpAccept(SelectionKey key) throws IOException {
ServerSocketChannel server = (ServerSocketChannel) key.channel();
SocketChannel channel;
- while ((channel = server.accept()) != null) {
- // Quick fix: avoid exception during exiting
- if (! selector.isOpen()) {
- channel.close();
- break;
- };
- channel.configureBlocking(false);
- channel.socket().setTcpNoDelay(true);
- channel.socket().setKeepAlive(true);
+ try {
+ while ((channel = server.accept()) != null) {
+ channel.configureBlocking(false);
+ channel.socket().setTcpNoDelay(true);
+ channel.socket().setKeepAlive(true);
- Transport transport = new TcpTransport(channel,
+ Transport transport = new TcpTransport(channel,
tcpTransportHandler.getStreamingDecoder());
- channel.register(selector,
+
+ channel.register(selector,
SelectionKey.OP_READ | SelectionKey.OP_WRITE, transport);
- onNewTransport(transport);
+ onNewTransport(transport);
+ }
+ } catch (ClosedByInterruptException e) {
+ // No op as normal
}
}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/a69651e9/contrib/haox-event/src/main/java/org/apache/haox/transport/tcp/TcpAcceptor.java
----------------------------------------------------------------------
diff --git a/contrib/haox-event/src/main/java/org/apache/haox/transport/tcp/TcpAcceptor.java b/contrib/haox-event/src/main/java/org/apache/haox/transport/tcp/TcpAcceptor.java
index b6241cf..32d6614 100644
--- a/contrib/haox-event/src/main/java/org/apache/haox/transport/tcp/TcpAcceptor.java
+++ b/contrib/haox-event/src/main/java/org/apache/haox/transport/tcp/TcpAcceptor.java
@@ -29,6 +29,7 @@ import org.apache.haox.transport.event.AddressEvent;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
+import java.nio.channels.ClosedByInterruptException;
import java.nio.channels.SelectionKey;
import java.nio.channels.ServerSocketChannel;
import java.nio.channels.SocketChannel;
@@ -81,26 +82,22 @@ public class TcpAcceptor extends Acceptor {
void doAccept(SelectionKey key) throws IOException {
ServerSocketChannel server = (ServerSocketChannel) key.channel();
SocketChannel channel;
- while ((channel = server.accept()) != null) {
- // Quick fix: avoid exception during exiting
- if (! selector.isOpen()) {
- channel.close();
- break;
- };
- channel.configureBlocking(false);
- channel.socket().setTcpNoDelay(true);
- channel.socket().setKeepAlive(true);
+ try {
+ while ((channel = server.accept()) != null) {
+ channel.configureBlocking(false);
+ channel.socket().setTcpNoDelay(true);
+ channel.socket().setKeepAlive(true);
- Transport transport = new TcpTransport(channel,
+ Transport transport = new TcpTransport(channel,
((TcpTransportHandler) transportHandler).getStreamingDecoder());
- if (! selector.isOpen()) {
- break;
+ channel.register(selector,
+ SelectionKey.OP_READ | SelectionKey.OP_WRITE, transport);
+ onNewTransport(transport);
}
- channel.register(selector,
- SelectionKey.OP_READ | SelectionKey.OP_WRITE, transport);
- onNewTransport(transport);
+ } catch (ClosedByInterruptException e) {
+ // No op as normal
}
}