TSocket supports only one timeout field so setting timeout or invoking
TSocket.setTimeout sets both timeout field and sets underlying java
socket's socket timeout.
TSocket is set up with cpConfig.getConnectTimeout() which sets
TSocket.timeout_ to connection timeout from Astyanax config which is as
expected but also it set's underlying java socket timeout ot connection
timeout.
Later during ThriftConnection#setTimeout both timeout and java socket
timeout set to cpConfig.getSocketTimeout.
During transport.open then socket timeout used as a connection timeout
which is not what expected.
This fix moves ThriftConnection#setTimeout to later stage so socket is
open using connection timeout and later java socket's socket timeout is
set to cpConfig.getSocketTimeout.
TSocket supports only one timeout field so setting timeout or invoking TSocket.setTimeout sets both timeout field and sets underlying java socket's socket timeout. TSocket is set up with cpConfig.getConnectTimeout() which sets TSocket.timeout_ to connection timeout from Astyanax config which is as expected but also it set's underlying java socket timeout ot connection timeout. Later during ThriftConnection#setTimeout both timeout and java socket timeout set to cpConfig.getSocketTimeout. During transport.open then socket timeout used as a connection timeout which is not what expected. This fix moves ThriftConnection#setTimeout to later stage so socket is open using connection timeout and later java socket's socket timeout is set to cpConfig.getSocketTimeout.