* MAJOR CHANGE (thus a version bump): I'd always thought that if the client is 
disconnected from the server
long enough then an Expired event would be generated. Testing, however, shows 
this not to be the case. I believe
it's related to ZOOKEEPER-1159. The behavior associated with this is that if 
the clients lost connection to the
cluster for longer than the session expiration they would _never_ be able to 
reconnect. The connection would
be permanently lost. Many users were seeing this as endless log messages 
indicating "Connection timed out
for connection...". As a workaround, in 1.3.0+ when the Curator state changes 
to LOST, a flag will be set
so that the next time Curator needs to get the ZooKeeper instance, the current 
instance will be closed and a new
ZooKeeper instance will be allocated (as if the session had expired).

* Added checks for illegal namespaces.

* Issue 232: NodeCache wasn't handling server connection issues well. It would 
repeatedly execute checkExists()
with a watcher causing the heap to fill with watcher objects.

* Issue 233: An internal idiom being used to create an EnsurePath instance with 
the parent of a passed in path
wasn't correct. Due to an unfortunate implementation of ZKPaths.PathAndNode 
(mea culpa) the root path is specified
differently than non-root paths. To work around this, I added a method to 
EnsurePath - excludingLast() - that
can be used instead of the idiom.

* Issue 230: Added a filter to control which IP address are returned by 
ServiceInstanceBuilder.getAllLocalIPs().
Set the filter via ServiceInstanceBuilder.setLocalIpFilter().

Reply via email to