While doing some debugging of my server, I noticed that after my handler method
returns, another connection is received which immediately fails with an empty
TTransportException. The exception stack trace is below.
These are normally silently swallowed by empty catch blocks in TSimpleServer
and TThreadPoolServer that look like this
} catch (TTransportException ttx) {
// Client died, just move on // Line 89, TSimpleServer.java
}
Here's the exception.
org.apache.thrift.transport.TTransportException
at
org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:132)
at org.apache.thrift.transport.TTransport.readAll(TTransport.java:84)
at
org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:362)
at
org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:284)
at
org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:191)
at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:27)
at com.foo.FooServerFactory$FooProcessor.process(FooServerFactory.java:165)
at org.apache.thrift.server.TSimpleServer.serve(TSimpleServer.java:83)
My question is, am I doing something wrong to trigger this extra connection?
This happens when the service method returns in the client, before the client
gets a chance to call TTransport.close.
-craig