[
https://issues.apache.org/jira/browse/THRIFT-1638?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Kamil Salas updated THRIFT-1638:
--------------------------------
Attachment: 0001-thrift-1638.patch
The situation is a bit complicated. There is no way of reconnecting in Java
socket, but our TSocket supports it. This is not correct for all use cases.
When a client connects to the server, a Java Socket is created and later
TSocket(Socket) is called. We should not be able to reconnect this TSocket.
Once the connection to the client is lost, we can not get it back.
Unfortunately, the same constructor is also used by TSSLSocketFactory, what
creates situation when SSL connection over TSocket is not reconnectable. The
simplest solution would be to disallow reconnection of TSocket, but it is s not
possible due to mature of the project.
I propose a workaround which adds a new constructor to the TSocket where we can
pass a SocketFactory. This creates a way to recreate connection in SSL use
case.
I've also added throwing a TTransportException when we want to reconnect
TSocket which was created by TSocket(Socket).
> TSocket constructor with socket will throw NPE on open
> ------------------------------------------------------
>
> Key: THRIFT-1638
> URL: https://issues.apache.org/jira/browse/THRIFT-1638
> Project: Thrift
> Issue Type: Bug
> Components: Java - Library
> Affects Versions: 0.8, 0.9, 1.0, 1.1
> Reporter: Jim Kerwood
> Priority: Minor
> Attachments: 0001-thrift-1638.patch
>
> Original Estimate: 0.5h
> Remaining Estimate: 0.5h
>
> When using the constructor of TSocket(Socket s) the open() method will throw
> an NPE checking host_.length()
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira