thrift-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <>
Subject [jira] [Commented] (THRIFT-1805) Thrift should not swallow ALL exceptions
Date Mon, 13 Feb 2017 19:27:41 GMT


ASF GitHub Bot commented on THRIFT-1805:

Github user keith-turner commented on a diff in the pull request:
    --- Diff: compiler/cpp/src/thrift/generate/ ---
    @@ -5265,6 +5274,9 @@ THRIFT_REGISTER_GENERATOR(
         "    android_legacy:  Do not use (available for Android
2.3 and "
         "    option_type:     Wrap optional fields in an Option type.\n"
    +    "    handle_runtime_exceptions:\n"
    +    "                     Generated services will handle RuntimeException as "
    --- End diff --
    I like that.  I was also trying to document what the default behavior is.  When someone
is trying to make decision about enabling the option, its nice to know what not enabling it

> Thrift should not swallow ALL exceptions
> ----------------------------------------
>                 Key: THRIFT-1805
>                 URL:
>             Project: Thrift
>          Issue Type: Bug
>          Components: Java - Compiler, Java - Library
>    Affects Versions: 0.9
>            Reporter: Diwaker Gupta
>            Assignee: Diwaker Gupta
>         Attachments: THRIFT-1805.patch
> In Thrift 0.8.0, Thrift generated Java code did not swallow application exceptions. As
a result of THRIFT-1658, this behavior changed in 0.9.0 and now the generated code swallows
ALL application exceptions (via ProcessFunction). Apparently this was the behavior in Thrift
0.6.0 and while I see the rationale, it is breaking our applications.
> Our code relies on the fact that exceptions can propagate outside of Thrift for certain
things (e.g., to aggressively drop connections for clients that send invalid/malformed requests).
ProcessFunction makes it near impossible to do this -- not only does it swallow the exception,
it also loses all information about the original exception and just writes out a generic TApplicationException.
> IMO ProcessFunction should only catch TException. If the application code wants to use
other exceptions for some reason (in particular, Errors and RuntimeExceptions), Thrift shouldn't
prevent that.

This message was sent by Atlassian JIRA

View raw message