You are right. 
I have found it myself just very few days ago, when digging into the hector code for a bug.
"lastSuccessTime" should be assigned to System.currentTimeMillis() when creating a HThriftClient instance.
Otherwise, when dealing with a firewall, the following use case could occur:
* an appserver/hector client could be started (for example, in the middle of the night)
* this appserver remains idle, or some HThriftClient instances are not immediatly used
* for those instances, for their first use, long time after their creation, the associated socket connection would be closed by the firewall, but while "lastSuccessTime " is set to 0, hector would use them, leading to a transport error.