James M created THRIFT-4215:
-------------------------------

             Summary: Golang TTransportFactory Pattern Squelches Errors
                 Key: THRIFT-4215
                 URL: https://issues.apache.org/jira/browse/THRIFT-4215
             Project: Thrift
          Issue Type: Bug
          Components: Go - Library
    Affects Versions: 0.10.0
            Reporter: James M


The current (as of 72ca60d) pattern for [TTransport 
factories|https://github.com/apache/thrift/blob/master/lib/go/thrift/transport_factory.go#L26]
 in Golang is 

{code}
type TTransportFactory interface {
        GetTransport(trans TTransport) TTransport
}
{code}

This causes issues, because some {{TTransportFactory}} implementations can 
return and error. Consider the 
[THttpClientTransportFactory|https://github.com/apache/thrift/blob/master/lib/go/thrift/http_client.go#L52],
 which as of of 72ca60d, includes the following snippet:
 
{code}
        s, _ := NewTHttpClientWithOptions(p.url, p.options)
        return s
{code}

The call to {{NewTHttpClientWithOptions(...)}} call can throw errors. The 
resultant behavior is that {{nil}} is returned in place of a valid 
{{TTransport}}, with a {{nil}} error.

The {{TTransportFactory}} interface (and associated use patterns) should be 
extended to include errors.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to