TExceptions thrown by server result in cryptic error message on client - Tried
to read 4 bytes, but only got 0 bytes
--------------------------------------------------------------------------------------------------------------------
Key: THRIFT-517
URL: https://issues.apache.org/jira/browse/THRIFT-517
Project: Thrift
Issue Type: Bug
Components: Compiler (Java), Library (Java)
Reporter: Adrian Woodhead
To reproduce:
1. Define a simple Thrift service method with no custom exceptions.
2. In server implementation of service method, throw a TException.
3. Generated code in client forces you to do try/catch TException around
service call, do this, and output stack trace,
The exception thrown by the server then results in this rather cryptic error
message in the client:
26 22:32:44,931 INFO Caused by:
org.apache.thrift.transport.TTransportException: Cannot read. Remote side has
closed. Tried to read 4 bytes, but only got 0 bytes.
26 22:32:44,931 INFO at
org.apache.thrift.transport.TTransport.readAll(TTransport.java:86)
26 22:32:44,931 INFO at
org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:314)
26 22:32:44,931 INFO at
org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:262)
26 22:32:44,931 INFO at
org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:192)
26 22:32:44,931 INFO at
fm.last.catalogue.api.TCatalogueAPI$Client.recv_getTrackById(TCatalogueAPI.java:249)
It would be better if the client got the actual TException sent by the server,
or at the very least a better error message indicating that an unexpected error
occurred on the server (akin to an HTTP 500 message that most web servers use).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.