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

ASF GitHub Bot commented on THRIFT-4215:
----------------------------------------

GitHub user dcelasun opened a pull request:

    https://github.com/apache/thrift/pull/1285

    THRIFT-4215/4216 Make transport factories return errors

    This commit changes the signature of `TTransportFactory.GetTransport` from
    ```go
    GetTransport(trans TTransport) TTransport
    ```
    to
    ```go
    GetTransport(trans TTransport) (TTransport, error)
    ```
    so the factory can pass any underlying error to the caller (previously such 
errors were ignored).
    
    This is a backwards incompatible change for anyone implementing custom 
transports, but it shouldn't effect anyone using the ones in this library.
    
    Fixes [THRIFT-4215](https://issues.apache.org/jira/browse/THRIFT-4215).
    
    Fixes [THRIFT-4216](https://issues.apache.org/jira/browse/THRIFT-4216).

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/dcelasun/thrift THRIFT-4215

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/thrift/pull/1285.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1285
    
----
commit 312a4aadbb2106c9fb21360b87e0c2d5fea8a78e
Author: D. Can Celasun <c...@dcc.im>
Date:   2017-06-02T12:33:32Z

    THRIFT-4215 Make transport factories return errors
    
    This commit changes the signature of TTransportFactory.GetTransport
    from
    
      GetTransport(trans TTransport) TTransport
    
    to
    
      GetTransport(trans TTransport) (TTransport, error)
    
    so the factory can pass any underlying error to the caller (previously
    such errors were ignored).
    
    This is a backwards incompatible change for anyone implementing custom
    transports, but it shouldn't effect anyone using the ones in this
    library.
    
    Fixes THRIFT-4215.
    
    Fixes THRIFT-4216.

----


> 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 Mouradian
>            Assignee: Can Celasun
>
> 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