summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Geyer <jensg@apache.org>2015-09-23 23:04:17 +0200
committerJens Geyer <jensg@apache.org>2015-09-23 23:05:26 +0200
commitb121a586b20c801bb52aa423b2d0edddf5d3ce9e (patch)
tree372b74ff8ca39b31d69b9bf678b1781ea9b0ad5f
parent804504b79a17c6e3e3f59218679288102a4e33aa (diff)
downloadthrift-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-xlib/java/src/org/apache/thrift/server/TThreadPoolServer.java29
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();
+ }
}
}
}