[ https://issues.apache.org/jira/browse/THRIFT-3797?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Kyle Johnson updated THRIFT-3797: --------------------------------- Flags: Patch Patch Info: Patch Available > Generated Delphi processor shouldn't error out on timed out exceptions > ---------------------------------------------------------------------- > > Key: THRIFT-3797 > URL: https://issues.apache.org/jira/browse/THRIFT-3797 > Project: Thrift > Issue Type: Bug > Components: Delphi - Compiler, Delphi - Library > Reporter: Kyle Johnson > Assignee: Kyle Johnson > > When the generated service processor waits on a new message to arrive in the > TProcessorImpl.Process() function, it treats all exceptions identically, > causing the function to return False when an exception is raised. When > returning false, the server treats this as an error, aborts the processing > loop and subsequently aborts the connection, tears down all connection > information and then waits for a new connection. > However, this is undesired in the situation where a message hasn't arrived > for longer than the configured timeout of the connection. In this instance, > the server shouldn't consider the timeout to be an error, because it is > desired to have the server continue running even when an RPC call hasn't been > received in longer than the duration of the timeout. > The patch fixes this issue by catching the timeout exception and returning > success even when a timeout occurs, allowing the server to continue execution > with the current connection. This behavior mirrors what happens in the C++ > library in TConnectedClient.cpp, where in TConnectedClient.run(), TIMED_OUT > exception types don't cause the processing loop to abort. -- This message was sent by Atlassian JIRA (v6.3.4#6332)