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)