[ 
https://issues.apache.org/jira/browse/THRIFT-378?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12688836#action_12688836
 ] 

Jonathan Ellis commented on THRIFT-378:
---------------------------------------

I checked and could not find any such issue.  To my knowledge, the ASF lists 
are not easily searchable (one more thing that sucks about ASF).

The more I think about this the more I think 
TApplicationException.INTERNAL_ERROR is the way to go.  The reason is, all 
client code already has this as a preamble:

{{      
    if (msg.type == TMessageType.EXCEPTION) {
        TApplicationException x = TApplicationException.read(iprot_);
        iprot_.readMessageEnd();
        throw x;
    }
}}

So it would fit in with the existing machinery to handle UNKNOWN_METHOD et al.

> 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
>            Priority: Minor
>             Fix For: 0.2
>
>
> 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