diff options
author | Jens Geyer <jensg@apache.org> | 2015-09-23 23:04:17 +0200 |
---|---|---|
committer | Jens Geyer <jensg@apache.org> | 2015-09-23 23:05:26 +0200 |
commit | b121a586b20c801bb52aa423b2d0edddf5d3ce9e (patch) | |
tree | 372b74ff8ca39b31d69b9bf678b1781ea9b0ad5f | |
parent | 804504b79a17c6e3e3f59218679288102a4e33aa (diff) | |
download | thrift-b121a586b20c801bb52aa423b2d0edddf5d3ce9e.tar.gz |
THRIFT-3345 Clients blocked indefinitely when a java.lang.Error is thrown
Client: Java
Author: huahang <huahang@users.noreply.github.com>
This closes #618
-rwxr-xr-x | lib/java/src/org/apache/thrift/server/TThreadPoolServer.java | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/lib/java/src/org/apache/thrift/server/TThreadPoolServer.java b/lib/java/src/org/apache/thrift/server/TThreadPoolServer.java index a963bc956..0529d72bf 100755 --- a/lib/java/src/org/apache/thrift/server/TThreadPoolServer.java +++ b/lib/java/src/org/apache/thrift/server/TThreadPoolServer.java @@ -295,22 +295,19 @@ public class TThreadPoolServer extends TServer { LOGGER.error("Thrift error occurred during processing of message.", tx); } catch (Exception x) { LOGGER.error("Error occurred during processing of message.", x); - } - - if (eventHandler != null) { - eventHandler.deleteContext(connectionContext, inputProtocol, outputProtocol); - } - - if (inputTransport != null) { - inputTransport.close(); - } - - if (outputTransport != null) { - outputTransport.close(); - } - - if (client_.isOpen()) { - client_.close(); + } finally { + if (eventHandler != null) { + eventHandler.deleteContext(connectionContext, inputProtocol, outputProtocol); + } + if (inputTransport != null) { + inputTransport.close(); + } + if (outputTransport != null) { + outputTransport.close(); + } + if (client_.isOpen()) { + client_.close(); + } } } } |