Java servers do not turn internal errors into thrift exceptions
---------------------------------------------------------------

                 Key: THRIFT-378
                 URL: https://issues.apache.org/jira/browse/THRIFT-378
             Project: Thrift
          Issue Type: Bug
          Components: Compiler (Java)
            Reporter: Jonathan Ellis


Occasionally a service will produce a runtime exception because of a problem in 
the environment or simply a bug.

By default this means clients will error out trying to read a response.  This 
is confusing because it is not obvious that the problem was with the server, 
let alone what the problem actually was.

One workaround might be to add an InternalError exception and declare every 
method to throw that, but this would require wrapping each method 
implementation on the server with a try/catch/throw block, which is ugly and 
repetitive (especially if there are other try/catch blocks nested) -- exactly 
the sort of code that Thrift is good at automating away.

I think the right fix would be for the server to catch runtime exceptions in 
the generated process methods and send back a TApplicationException.  This is 
what some other servers (e.g., Erlang) already do.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to