…oblem with creating a HTTPClusterClient If you supplied an existing HTTPClientConfig to the builder it would copy the URL - at that point calling the withHost() or withPort() methods would not produce a change because having already set the URL took precedence. A second problem was that even if you hadn't set the URL, calling build() did set it. This causes a problem if you were attempting to use the builder to construct multiple HTTPClients with different hosts and/or ports (as was the case with HTTPClusterClient) - you end up with all the HTTPClients having the same URL I corrected this by parsing out the host and port from the URL if you passed in an existing config to the builder while at the same time not copying the URL. I also changed build() to not set the URL.
made sure all plugins had version numbers, changed scm config to allow automated release to work
…and there's an internal state that protects a FutureTask from being run() twice that I wasn't aware of.
…em because the CountDownLatch was still at 0. Resetting it to 1 afterward would leave iopen a tiny race condition. Wrapping the whole thing in a volatile boolean solves the problem, and in the case of a failure all subsequent requests will also fail.
…ora. Added test to verify
…hose that are currently broken and containing the string "undefined" rather than an int value
…ce to return an Iterable<NodeStats) rather than an interator.
… testing and think if the interface is sane or not.
…s except 404 and 412 A number of the operations objects are expecting 404 to come back, and the 412 needs to be handled upstream as well