Yuhao Fang created THRIFT-3344: ---------------------------------- Summary: Error in TThreadPoolServer Key: THRIFT-3344 URL: https://issues.apache.org/jira/browse/THRIFT-3344 Project: Thrift Issue Type: Improvement Components: Java - Library Reporter: Yuhao Fang Priority: Minor
org.apache.thrift.server.TThreadPoolServer We got *NoClassDefFoundError* here: {code:java} ... try { ... while (true) { if (eventHandler != null) { eventHandler.processContext(connectionContext, inputTransport, outputTransport); } if(stopped_ || !processor.process(inputProtocol, outputProtocol)) { break; } } } catch (TSaslTransportException ttx) { // Something thats not SASL was in the stream, continue silently } catch (TTransportException ttx) { // Assume the client died and continue silently } catch (TException tx) { LOGGER.error("Thrift error occurred during processing of message.", tx); } catch (Exception x) { LOGGER.error("Error occurred during processing of message.", x); } {code} Server does not execute the code below: {code:java} if (eventHandler != null) { eventHandler.deleteContext(connectionContext, inputProtocol, outputProtocol); } if (inputTransport != null) { inputTransport.close(); } if (outputTransport != null) { outputTransport.close(); } if (client_.isOpen()) { client_.close(); } {code} So the client doesn't know what happened, still waiting the response from server. Shall we move these clean up code to finally scope? or catch the Error. -- This message was sent by Atlassian JIRA (v6.3.4#6332)