dasahcc commented on a change in pull request #1035:
URL: https://github.com/apache/helix/pull/1035#discussion_r434980493
##########
File path:
helix-core/src/main/java/org/apache/helix/manager/zk/CallbackHandler.java
##########
@@ -748,6 +756,10 @@ public void handleChildChange(String parentPath,
List<String> currentChilds) {
// removeListener will call handler.reset(), which in turn call
invoke() on FINALIZE type
_manager.removeListener(_propertyKey, _listener);
} else {
+ if (!isReady()) {
+ // avoid leaking CallbackHandler
Review comment:
Shall we print some logs here? Since there are some other info log
printed before
##########
File path:
zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/ZkClient.java
##########
@@ -1865,17 +1934,24 @@ public Object call() throws Exception {
* exist.
*/
public List<String> watchForChilds(final String path) {
+ return watchForChilds(path, false);
+ }
+
+ private List<String> watchForChilds(final String path, boolean
skipWatchingNodeNotExist) {
if (_zookeeperEventThread != null && Thread.currentThread() ==
_zookeeperEventThread) {
throw new IllegalArgumentException("Must not be done in the zookeeper
event thread.");
}
return retryUntilConnected(new Callable<List<String>>() {
@Override
public List<String> call() throws Exception {
- exists(path, true);
+ if (!skipWatchingNodeNotExist) {
Review comment:
But if skipWatchingNodeNotExist is true, so we skip install watcher on
parent path. Then do we still need to install watcher on childs? Shall we
directly return here?
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]