Uploaded image for project: 'Thrift'
  1. Thrift
  2. THRIFT-378

Java servers do not turn internal errors into thrift exceptions

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • None
    • 0.2
    • Java - Compiler
    • None

    Description

      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.

      Attachments

        1. thrift-378.patch
          2 kB
          Jonathan Ellis
        2. thrift-378-v2.patch
          3 kB
          Jonathan Ellis

        Issue Links

          Activity

            People

              jbellis Jonathan Ellis
              jbellis Jonathan Ellis
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: