Github user dragonsinth commented on a diff in the pull request:

    https://github.com/apache/curator/pull/278#discussion_r219703563
  
    --- Diff: 
curator-recipes/src/main/java/org/apache/curator/framework/recipes/cache/TreeCache.java
 ---
    @@ -263,15 +284,31 @@ private void doRefreshData() throws Exception
                 {
                     if ( dataIsCompressed )
                     {
    -                    
client.getData().decompressed().usingWatcher(this).inBackground(this).forPath(path);
    +                    
maybeWatch(client.getData().decompressed()).forPath(path);
                     }
                     else
                     {
    -                    
client.getData().usingWatcher(this).inBackground(this).forPath(path);
    +                    maybeWatch(client.getData()).forPath(path);
                     }
                 }
             }
     
    +        private ErrorListenerPathable<byte[]> 
maybeWatch(GetDataWatchBackgroundStatable dataBuilder) {
    +            if (disableZkWatches) {
    +                return dataBuilder.inBackground(this);
    +            } else {
    +                return dataBuilder.usingWatcher(this).inBackground(this);
    +            }
    +        }
    +
    +        private ErrorListenerPathable<byte[]> maybeWatch(GetDataBuilder 
dataBuilder) {
    +            if (disableZkWatches) {
    +                return dataBuilder.inBackground(this);
    +            } else {
    +                return dataBuilder.usingWatcher(this).inBackground(this);
    +            }
    +        }
    +
    --- End diff --
    
    ```java
            private void doRefreshChildren() throws Exception
            {
                if ( treeState.get() == TreeState.STARTED )
                {
                    maybeWatch(client.getChildren()).forPath(path);
                }
            }
    
            private void doRefreshData() throws Exception
            {
                if ( treeState.get() == TreeState.STARTED )
                {
                    if ( dataIsCompressed )
                    {
                        
maybeWatch(client.getData().decompressed()).forPath(path);
                    }
                    else
                    {
                        maybeWatch(client.getData()).forPath(path);
                    }
                }
            }
    
            private <T, P extends Watchable<BackgroundPathable<T>> & 
BackgroundPathable<T>> Pathable<T> maybeWatch(P dataBuilder)
            {
                if ( disableZkWatches )
                {
                    return dataBuilder.inBackground(this);
                }
                else
                {
                    return dataBuilder.usingWatcher(this).inBackground(this);
                }
            }
    ```


---

Reply via email to