You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@curator.apache.org by Jordan Zimmerman <jo...@jordanzimmerman.com> on 2016/03/09 18:44:47 UTC

Re: curator pathcache

Moving this to Curator’s list…

Where do you get the NPE? Please send the stacktrace.

-Jordan

> On Mar 8, 2016, at 8:27 PM, s influxdb <el...@gmail.com> wrote:
> 
> I am trying to run the path cahce and keep java NPE
> 
> Running curator 2.9.0 libraries against a zookeeper 3.4.6 cluster
> Even
> 
> The samples are taken from the curator examples .
> 
> 
> 
>  public void run () throws Exception
>       {
>             try {
> 
>                pcache = new PathChildrenCache(client, PATH, true);
>             pcache.start();
> 
>                addListener(cache);
> 
>           //    list(pcache);
> 
>               pcache.close();
>            }
>             finally {
>                CloseableUtils.closeQuietly(cache);
>             }
>        }
> 
> 
>      private static void addListener(PathChildrenCache cache)
>      {
>          // a PathChildrenCacheListener is optional. Here, it's used just
> to log changes
>          PathChildrenCacheListener listener = new
> PathChildrenCacheListener()
>          {
>              @Override
>              public void childEvent(CuratorFramework client,
> PathChildrenCacheEvent event) throws Exception
>              {
>                  switch ( event.getType() )
>                  {
>                      case CHILD_ADDED:
>                      {
>                          System.out.println("Node added: " +
> ZKPaths.getNodeFromPath(event.getData().getPath()));
>                          break;
>                      }
> 
>                      case CHILD_UPDATED:
>                      {
>                          System.out.println("Node changed: " +
> ZKPaths.getNodeFromPath(event.getData().getPath()));
>                          break;
>                      }
> 
>                      case CHILD_REMOVED:
>                      {
>                          System.out.println("Node removed: " +
> ZKPaths.getNodeFromPath(event.getData().getPath()));
>                          break;
>                      }
>                  }
>              }
>          };
>          cache.getListenable().addListener(listener);
>      }
> 
> 
> Here running a list returns empty size all the time
> 
>      private static void list(PathChildrenCache cache)
>        {
> 
>            if ( cache.getCurrentData().size() == 0 )
>            {
>                System.out.println("* empty *");
>            }
>            else
>            {
>                for ( ChildData data : cache.getCurrentData() )
>                {
>                    System.out.println(data.getPath() + " = " + new
> String(data.getData()));
>                }
>            }
>        }


Re: curator pathcache

Posted by s influxdb <el...@gmail.com>.
Thanks Jordan. I will try with sample Maven pom file.  I spend a good deal
of time by building the project in Eclipse just by adding the JARs. I
appreciate the quick replies very much.

On Wed, Mar 9, 2016 at 6:16 PM, Jordan Zimmerman <jordan@jordanzimmerman.com
> wrote:

> You need to do much more than that. Have you done much Java programming?
> Curator’s TestServer is in a separate artifact. I suggest you use a
> dependency manager such as Maven or Gradle. The Curator examples directory
> has a Maven pom file that you can use. But, explaining Maven, etc. is more
> than we can do in an email.
>
> https://github.com/apache/curator/tree/master/curator-examples
>
> -Jordan
>
>
> On Mar 9, 2016, at 9:13 PM, s influxdb <el...@gmail.com> wrote:
>
> i was using the Eclipse IDE and adding the Curator JAR's as External JAR.
> It resolves for curator framework , curator client etc
>
> The code i have is nothing but the sample PathCacheExample.java code from
> the examples posted in curator.apache.org
>
> Let me try it using maven instead.
>
> On Wed, Mar 9, 2016 at 6:09 PM, Jordan Zimmerman <
> jordan@jordanzimmerman.com> wrote:
>
>> Post your code along with whatever build scripts you’re using to Github
>> or something similar and we’ll have a look. Are you using Maven? Gradle?
>> How are you putting your dependencies together?
>>
>> On Mar 9, 2016, at 9:04 PM, s influxdb <el...@gmail.com> wrote:
>>
>> i tried all the curator libraries . still same result . TestingServer or
>> the PathCache isn't working
>>
>> On Wed, Mar 9, 2016 at 5:22 PM, s influxdb <el...@gmail.com> wrote:
>>
>>> Ok let me try that.
>>>
>>> On another note this piece of nodecache code works
>>>
>>>             final NodeCache nodeCache = new NodeCache(client, PATH);
>>>                 nodeCache.getListenable().addListener(new
>>> NodeCacheListener() {
>>>                     @Override
>>>                     public void nodeChanged() throws Exception {
>>>                         ChildData currentData =
>>> nodeCache.getCurrentData();
>>>                         System.out.println("data change watched, and
>>> current data = " + new String(currentData.getData()));
>>>                     }
>>>                 });
>>>                 nodeCache.start();
>>>                 Thread.sleep(50000);
>>>
>>> On Wed, Mar 9, 2016 at 5:20 PM, Cameron McKenzie <mckenzie.cam@gmail.com
>>> > wrote:
>>>
>>>> You must have some old Curator stuff on your classpath. All of the
>>>> curator stuff has an org.apache package prefix. It was ported from Netflix
>>>> some time ago.
>>>>
>>>> On Thu, Mar 10, 2016 at 12:15 PM, s influxdb <el...@gmail.com>
>>>> wrote:
>>>>
>>>>> I see the TestingServer class in  import
>>>>> com.netflix.curator.test.TestingServer;
>>>>>
>>>>> In the sample file i see it as import
>>>>> org.apache.curator.test.TestingServer;
>>>>>
>>>>> Even then i get the below error while instantiating a TestingServer
>>>>> Class
>>>>> Default constructor cannot handle exception type Exception thrown by
>>>>> implicit super constructor. Must define an explicit constructor
>>>>>
>>>>> Then i tried the TestingCluster class
>>>>> static TestingCluster       server = new TestingCluster();
>>>>>
>>>>> That gives me a class not found exception
>>>>> Exception in thread "main" java.lang.NoClassDefFoundError:
>>>>> javassist/NotFoundException
>>>>>     at
>>>>> com.netflix.curator.test.TestingCluster.<clinit>(TestingCluster.java:40)
>>>>>
>>>>>
>>>>> On Wed, Mar 9, 2016 at 4:16 PM, Cameron McKenzie <
>>>>> mckenzie.cam@gmail.com> wrote:
>>>>>
>>>>>> The TestingServer class is definitely in the curator-test jar, so you
>>>>>> must have some issue with your build / IDE environment.
>>>>>>
>>>>>> On Thu, Mar 10, 2016 at 11:13 AM, s influxdb <el...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> I tried importing the curator-test artifcactid and it this import
>>>>>>> org.apache.curator.test.TestingServer; doesn't resolve
>>>>>>>
>>>>>>> On Wed, Mar 9, 2016 at 2:58 PM, Cameron McKenzie <
>>>>>>> mckenzie.cam@gmail.com> wrote:
>>>>>>>
>>>>>>>> Can you try running the PathCacheExample unmodified? It uses a
>>>>>>>> testing ZK server. But can you just confirm that this much works for you?
>>>>>>>> Then maybe try and modify the sample so that it connects to your real ZK
>>>>>>>> instance?
>>>>>>>>
>>>>>>>> On Thu, Mar 10, 2016 at 9:53 AM, s influxdb <el...@gmail.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> i did try adding a sleep and got the same result
>>>>>>>>>      cache.start();
>>>>>>>>>             Thread.sleep(5000);
>>>>>>>>>             list(cache);
>>>>>>>>>
>>>>>>>>> I am using curator libraries version 2.10 and zookeeper version
>>>>>>>>> 3..4.6
>>>>>>>>>
>>>>>>>>> On Wed, Mar 9, 2016 at 2:19 PM, Cameron McKenzie <
>>>>>>>>> mckenzie.cam@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> I think that you have a race condition between calling start() on
>>>>>>>>>> your cache and calling list(). Calling list() just checks the current state
>>>>>>>>>> of the cache. If it hasn't communicated with ZK yet, it won't have any
>>>>>>>>>> data. Try putting in a sleep after the cache.start() call, before you call
>>>>>>>>>> list().
>>>>>>>>>>
>>>>>>>>>> On Thu, Mar 10, 2016 at 9:16 AM, s influxdb <
>>>>>>>>>> elastic.l.k@gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> sure
>>>>>>>>>>>
>>>>>>>>>>> main class
>>>>>>>>>>>     RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000,
>>>>>>>>>>> 3);
>>>>>>>>>>>             client =
>>>>>>>>>>> CuratorFrameworkFactory.newClient("10.x.x.x", retryPolicy);
>>>>>>>>>>>             client.start();
>>>>>>>>>>>             SyncData sd = new SyncData(client);
>>>>>>>>>>>             sd.run();
>>>>>>>>>>>
>>>>>>>>>>> the class that calls cache
>>>>>>>>>>>
>>>>>>>>>>> private static final String PATH = "/zktest";
>>>>>>>>>>>
>>>>>>>>>>>     public void run () throws Exception
>>>>>>>>>>>        {
>>>>>>>>>>>         try {
>>>>>>>>>>>
>>>>>>>>>>>             cache = new PathChildrenCache(client, PATH, true);
>>>>>>>>>>>             cache.start();
>>>>>>>>>>>
>>>>>>>>>>>             list(cache);
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>                 for(;;) {
>>>>>>>>>>>                     try {
>>>>>>>>>>>                         Thread.sleep(50000);
>>>>>>>>>>>                     } catch(InterruptedException e) {
>>>>>>>>>>>                     }
>>>>>>>>>>>                 }
>>>>>>>>>>>
>>>>>>>>>>>             }
>>>>>>>>>>>              finally {
>>>>>>>>>>>                 CloseableUtils.closeQuietly(cache);
>>>>>>>>>>>              }
>>>>>>>>>>>         }
>>>>>>>>>>>
>>>>>>>>>>> On Wed, Mar 9, 2016 at 1:30 PM, Cameron McKenzie <
>>>>>>>>>>> mckenzie.cam@gmail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> I just tried running the example and it seems to work fine for
>>>>>>>>>>>> me. I assume that you modified the code in some way for it to run against a
>>>>>>>>>>>> proper ZK instance? Can you post it somewhere?
>>>>>>>>>>>>
>>>>>>>>>>>> On Thu, Mar 10, 2016 at 5:53 AM, s influxdb <
>>>>>>>>>>>> elastic.l.k@gmail.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> ---------- Forwarded message ----------
>>>>>>>>>>>>> From: s influxdb <el...@gmail.com>
>>>>>>>>>>>>> Date: Wed, Mar 9, 2016 at 10:36 AM
>>>>>>>>>>>>> Subject: Re: curator pathcache
>>>>>>>>>>>>> To: Jordan Zimmerman <jo...@jordanzimmerman.com>
>>>>>>>>>>>>> Cc: user@curator.apache.org
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Sorry for posting this in a wrong forum the first time.
>>>>>>>>>>>>>
>>>>>>>>>>>>> I recreated a new project and was running the example code
>>>>>>>>>>>>> here for cache :
>>>>>>>>>>>>> http://curator.apache.org/curator-examples/index.html
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Today when i  try to replicathe NPE i am unable to do that .
>>>>>>>>>>>>> However when i call the  list(cache) it prints the size of the
>>>>>>>>>>>>> data in the node as 0. This works with NodeCache
>>>>>>>>>>>>>
>>>>>>>>>>>>> Curator libraries are 2.10 and zookeeper version 3.4.6.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Ideally i would like to use TreeCache but it gave me NPE too.
>>>>>>>>>>>>> My use case is setting a watch on the entire znode in the cluster and be
>>>>>>>>>>>>> notified about it. Thanks for replying to the mail.
>>>>>>>>>>>>>
>>>>>>>>>>>>>     private static void list(PathChildrenCache cache)
>>>>>>>>>>>>>     {
>>>>>>>>>>>>>         if ( cache.getCurrentData().size() == 0 )
>>>>>>>>>>>>>         {
>>>>>>>>>>>>>             System.out.println("* empty *");
>>>>>>>>>>>>>         }
>>>>>>>>>>>>>         else
>>>>>>>>>>>>>         {
>>>>>>>>>>>>>             for ( ChildData data : cache.getCurrentData() )
>>>>>>>>>>>>>             {
>>>>>>>>>>>>>                 System.out.println(data.getPath() + " = " +
>>>>>>>>>>>>> new String(data.getData()));
>>>>>>>>>>>>>             }
>>>>>>>>>>>>>         }
>>>>>>>>>>>>>     }
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Wed, Mar 9, 2016 at 9:44 AM, Jordan Zimmerman <
>>>>>>>>>>>>> jordan@jordanzimmerman.com> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Moving this to Curator’s list…
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Where do you get the NPE? Please send the stacktrace.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> -Jordan
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> > On Mar 8, 2016, at 8:27 PM, s influxdb <
>>>>>>>>>>>>>> elastic.l.k@gmail.com> wrote:
>>>>>>>>>>>>>> >
>>>>>>>>>>>>>> > I am trying to run the path cahce and keep java NPE
>>>>>>>>>>>>>> >
>>>>>>>>>>>>>> > Running curator 2.9.0 libraries against a zookeeper 3.4.6
>>>>>>>>>>>>>> cluster
>>>>>>>>>>>>>> > Even
>>>>>>>>>>>>>> >
>>>>>>>>>>>>>> > The samples are taken from the curator examples .
>>>>>>>>>>>>>> >
>>>>>>>>>>>>>> >
>>>>>>>>>>>>>> >
>>>>>>>>>>>>>> >  public void run () throws Exception
>>>>>>>>>>>>>> >       {
>>>>>>>>>>>>>> >             try {
>>>>>>>>>>>>>> >
>>>>>>>>>>>>>> >                pcache = new PathChildrenCache(client, PATH,
>>>>>>>>>>>>>> true);
>>>>>>>>>>>>>> >             pcache.start();
>>>>>>>>>>>>>> >
>>>>>>>>>>>>>> >                addListener(cache);
>>>>>>>>>>>>>> >
>>>>>>>>>>>>>> >           //    list(pcache);
>>>>>>>>>>>>>> >
>>>>>>>>>>>>>> >               pcache.close();
>>>>>>>>>>>>>> >            }
>>>>>>>>>>>>>> >             finally {
>>>>>>>>>>>>>> >                CloseableUtils.closeQuietly(cache);
>>>>>>>>>>>>>> >             }
>>>>>>>>>>>>>> >        }
>>>>>>>>>>>>>> >
>>>>>>>>>>>>>> >
>>>>>>>>>>>>>> >      private static void addListener(PathChildrenCache
>>>>>>>>>>>>>> cache)
>>>>>>>>>>>>>> >      {
>>>>>>>>>>>>>> >          // a PathChildrenCacheListener is optional. Here,
>>>>>>>>>>>>>> it's used just
>>>>>>>>>>>>>> > to log changes
>>>>>>>>>>>>>> >          PathChildrenCacheListener listener = new
>>>>>>>>>>>>>> > PathChildrenCacheListener()
>>>>>>>>>>>>>> >          {
>>>>>>>>>>>>>> >              @Override
>>>>>>>>>>>>>> >              public void childEvent(CuratorFramework client,
>>>>>>>>>>>>>> > PathChildrenCacheEvent event) throws Exception
>>>>>>>>>>>>>> >              {
>>>>>>>>>>>>>> >                  switch ( event.getType() )
>>>>>>>>>>>>>> >                  {
>>>>>>>>>>>>>> >                      case CHILD_ADDED:
>>>>>>>>>>>>>> >                      {
>>>>>>>>>>>>>> >                          System.out.println("Node added: " +
>>>>>>>>>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>>>>>>>>>>>> >                          break;
>>>>>>>>>>>>>> >                      }
>>>>>>>>>>>>>> >
>>>>>>>>>>>>>> >                      case CHILD_UPDATED:
>>>>>>>>>>>>>> >                      {
>>>>>>>>>>>>>> >                          System.out.println("Node changed:
>>>>>>>>>>>>>> " +
>>>>>>>>>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>>>>>>>>>>>> >                          break;
>>>>>>>>>>>>>> >                      }
>>>>>>>>>>>>>> >
>>>>>>>>>>>>>> >                      case CHILD_REMOVED:
>>>>>>>>>>>>>> >                      {
>>>>>>>>>>>>>> >                          System.out.println("Node removed:
>>>>>>>>>>>>>> " +
>>>>>>>>>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>>>>>>>>>>>> >                          break;
>>>>>>>>>>>>>> >                      }
>>>>>>>>>>>>>> >                  }
>>>>>>>>>>>>>> >              }
>>>>>>>>>>>>>> >          };
>>>>>>>>>>>>>> >          cache.getListenable().addListener(listener);
>>>>>>>>>>>>>> >      }
>>>>>>>>>>>>>> >
>>>>>>>>>>>>>> >
>>>>>>>>>>>>>> > Here running a list returns empty size all the time
>>>>>>>>>>>>>> >
>>>>>>>>>>>>>> >      private static void list(PathChildrenCache cache)
>>>>>>>>>>>>>> >        {
>>>>>>>>>>>>>> >
>>>>>>>>>>>>>> >            if ( cache.getCurrentData().size() == 0 )
>>>>>>>>>>>>>> >            {
>>>>>>>>>>>>>> >                System.out.println("* empty *");
>>>>>>>>>>>>>> >            }
>>>>>>>>>>>>>> >            else
>>>>>>>>>>>>>> >            {
>>>>>>>>>>>>>> >                for ( ChildData data :
>>>>>>>>>>>>>> cache.getCurrentData() )
>>>>>>>>>>>>>> >                {
>>>>>>>>>>>>>> >                    System.out.println(data.getPath() + " =
>>>>>>>>>>>>>> " + new
>>>>>>>>>>>>>> > String(data.getData()));
>>>>>>>>>>>>>> >                }
>>>>>>>>>>>>>> >            }
>>>>>>>>>>>>>> >        }
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>>
>
>

Re: curator pathcache

Posted by Jordan Zimmerman <jo...@jordanzimmerman.com>.
You need to do much more than that. Have you done much Java programming? Curator’s TestServer is in a separate artifact. I suggest you use a dependency manager such as Maven or Gradle. The Curator examples directory has a Maven pom file that you can use. But, explaining Maven, etc. is more than we can do in an email.

https://github.com/apache/curator/tree/master/curator-examples

-Jordan

> On Mar 9, 2016, at 9:13 PM, s influxdb <el...@gmail.com> wrote:
> 
> i was using the Eclipse IDE and adding the Curator JAR's as External JAR. It resolves for curator framework , curator client etc
> 
> The code i have is nothing but the sample PathCacheExample.java code from the examples posted in curator.apache.org <http://curator.apache.org/>
> 
> Let me try it using maven instead.
> 
> On Wed, Mar 9, 2016 at 6:09 PM, Jordan Zimmerman <jordan@jordanzimmerman.com <ma...@jordanzimmerman.com>> wrote:
> Post your code along with whatever build scripts you’re using to Github or something similar and we’ll have a look. Are you using Maven? Gradle? How are you putting your dependencies together? 
> 
>> On Mar 9, 2016, at 9:04 PM, s influxdb <elastic.l.k@gmail.com <ma...@gmail.com>> wrote:
>> 
>> i tried all the curator libraries . still same result . TestingServer or the PathCache isn't working
>> 
>> On Wed, Mar 9, 2016 at 5:22 PM, s influxdb <elastic.l.k@gmail.com <ma...@gmail.com>> wrote:
>> Ok let me try that. 
>> 
>> On another note this piece of nodecache code works
>> 
>>             final NodeCache nodeCache = new NodeCache(client, PATH);
>>                 nodeCache.getListenable().addListener(new NodeCacheListener() {
>>                     @Override
>>                     public void nodeChanged() throws Exception {
>>                         ChildData currentData = nodeCache.getCurrentData();
>>                         System.out.println("data change watched, and current data = " + new String(currentData.getData()));
>>                     }
>>                 });
>>                 nodeCache.start();
>>                 Thread.sleep(50000);
>> 
>> On Wed, Mar 9, 2016 at 5:20 PM, Cameron McKenzie <mckenzie.cam@gmail.com <ma...@gmail.com>> wrote:
>> You must have some old Curator stuff on your classpath. All of the curator stuff has an org.apache package prefix. It was ported from Netflix some time ago.
>> 
>> On Thu, Mar 10, 2016 at 12:15 PM, s influxdb <elastic.l.k@gmail.com <ma...@gmail.com>> wrote:
>> I see the TestingServer class in  import com.netflix.curator.test.TestingServer;
>> 
>> In the sample file i see it as import org.apache.curator.test.TestingServer;
>> 
>> Even then i get the below error while instantiating a TestingServer Class
>> Default constructor cannot handle exception type Exception thrown by implicit super constructor. Must define an explicit constructor
>> 
>> Then i tried the TestingCluster class
>> static TestingCluster       server = new TestingCluster();
>> 
>> That gives me a class not found exception
>> Exception in thread "main" java.lang.NoClassDefFoundError: javassist/NotFoundException
>>     at com.netflix.curator.test.TestingCluster.<clinit>(TestingCluster.java:40)
>> 
>> 
>> On Wed, Mar 9, 2016 at 4:16 PM, Cameron McKenzie <mckenzie.cam@gmail.com <ma...@gmail.com>> wrote:
>> The TestingServer class is definitely in the curator-test jar, so you must have some issue with your build / IDE environment.
>> 
>> On Thu, Mar 10, 2016 at 11:13 AM, s influxdb <elastic.l.k@gmail.com <ma...@gmail.com>> wrote:
>> I tried importing the curator-test artifcactid and it this import org.apache.curator.test.TestingServer; doesn't resolve
>> 
>> On Wed, Mar 9, 2016 at 2:58 PM, Cameron McKenzie <mckenzie.cam@gmail.com <ma...@gmail.com>> wrote:
>> Can you try running the PathCacheExample unmodified? It uses a testing ZK server. But can you just confirm that this much works for you? Then maybe try and modify the sample so that it connects to your real ZK instance?
>> 
>> On Thu, Mar 10, 2016 at 9:53 AM, s influxdb <elastic.l.k@gmail.com <ma...@gmail.com>> wrote:
>> i did try adding a sleep and got the same result
>>      cache.start();
>>             Thread.sleep(5000);
>>             list(cache);
>> 
>> I am using curator libraries version 2.10 and zookeeper version 3..4.6
>> 
>> On Wed, Mar 9, 2016 at 2:19 PM, Cameron McKenzie <mckenzie.cam@gmail.com <ma...@gmail.com>> wrote:
>> I think that you have a race condition between calling start() on your cache and calling list(). Calling list() just checks the current state of the cache. If it hasn't communicated with ZK yet, it won't have any data. Try putting in a sleep after the cache.start() call, before you call list().
>> 
>> On Thu, Mar 10, 2016 at 9:16 AM, s influxdb <elastic.l.k@gmail.com <ma...@gmail.com>> wrote:
>> sure 
>> 
>> main class
>>     RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
>>             client = CuratorFrameworkFactory.newClient("10.x.x.x", retryPolicy);
>>             client.start();
>>             SyncData sd = new SyncData(client);
>>             sd.run();
>>             
>> the class that calls cache
>> 
>> private static final String PATH = "/zktest";
>> 
>>     public void run () throws Exception 
>>        {
>>         try {
>>                
>>             cache = new PathChildrenCache(client, PATH, true);
>>             cache.start();
>> 
>>             list(cache);
>>                     
>>                 
>>                 for(;;) {
>>                     try {
>>                         Thread.sleep(50000);
>>                     } catch(InterruptedException e) {
>>                     }
>>                 }
>>                
>>             }
>>              finally {
>>                 CloseableUtils.closeQuietly(cache);
>>              }
>>         }
>> 
>> On Wed, Mar 9, 2016 at 1:30 PM, Cameron McKenzie <mckenzie.cam@gmail.com <ma...@gmail.com>> wrote:
>> I just tried running the example and it seems to work fine for me. I assume that you modified the code in some way for it to run against a proper ZK instance? Can you post it somewhere?
>> 
>> On Thu, Mar 10, 2016 at 5:53 AM, s influxdb <elastic.l.k@gmail.com <ma...@gmail.com>> wrote:
>> 
>> ---------- Forwarded message ----------
>> From: s influxdb <elastic.l.k@gmail.com <ma...@gmail.com>>
>> Date: Wed, Mar 9, 2016 at 10:36 AM
>> Subject: Re: curator pathcache
>> To: Jordan Zimmerman <jordan@jordanzimmerman.com <ma...@jordanzimmerman.com>>
>> Cc: user@curator.apache.org <ma...@curator.apache.org>
>> 
>> 
>> Sorry for posting this in a wrong forum the first time.
>> 
>> I recreated a new project and was running the example code here for cache : http://curator.apache.org/curator-examples/index.html <http://curator.apache.org/curator-examples/index.html>
>> 
>> 
>> Today when i  try to replicathe NPE i am unable to do that . 
>> However when i call the  list(cache) it prints the size of the data in the node as 0. This works with NodeCache
>> 
>> Curator libraries are 2.10 and zookeeper version 3.4.6.
>> 
>> Ideally i would like to use TreeCache but it gave me NPE too. My use case is setting a watch on the entire znode in the cluster and be notified about it. Thanks for replying to the mail.
>> 
>>     private static void list(PathChildrenCache cache)
>>     {
>>         if ( cache.getCurrentData().size() == 0 )
>>         {
>>             System.out.println("* empty *");
>>         }
>>         else
>>         {
>>             for ( ChildData data : cache.getCurrentData() )
>>             {
>>                 System.out.println(data.getPath() + " = " + new String(data.getData()));
>>             }
>>         }
>>     }
>>       
>> 
>> 
>> 
>> On Wed, Mar 9, 2016 at 9:44 AM, Jordan Zimmerman <jordan@jordanzimmerman.com <ma...@jordanzimmerman.com>> wrote:
>> Moving this to Curator’s list…
>> 
>> Where do you get the NPE? Please send the stacktrace.
>> 
>> -Jordan
>> 
>> > On Mar 8, 2016, at 8:27 PM, s influxdb <elastic.l.k@gmail.com <ma...@gmail.com>> wrote:
>> >
>> > I am trying to run the path cahce and keep java NPE
>> >
>> > Running curator 2.9.0 libraries against a zookeeper 3.4.6 cluster
>> > Even
>> >
>> > The samples are taken from the curator examples .
>> >
>> >
>> >
>> >  public void run () throws Exception
>> >       {
>> >             try {
>> >
>> >                pcache = new PathChildrenCache(client, PATH, true);
>> >             pcache.start();
>> >
>> >                addListener(cache);
>> >
>> >           //    list(pcache);
>> >
>> >               pcache.close();
>> >            }
>> >             finally {
>> >                CloseableUtils.closeQuietly(cache);
>> >             }
>> >        }
>> >
>> >
>> >      private static void addListener(PathChildrenCache cache)
>> >      {
>> >          // a PathChildrenCacheListener is optional. Here, it's used just
>> > to log changes
>> >          PathChildrenCacheListener listener = new
>> > PathChildrenCacheListener()
>> >          {
>> >              @Override
>> >              public void childEvent(CuratorFramework client,
>> > PathChildrenCacheEvent event) throws Exception
>> >              {
>> >                  switch ( event.getType() )
>> >                  {
>> >                      case CHILD_ADDED:
>> >                      {
>> >                          System.out.println("Node added: " +
>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>> >                          break;
>> >                      }
>> >
>> >                      case CHILD_UPDATED:
>> >                      {
>> >                          System.out.println("Node changed: " +
>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>> >                          break;
>> >                      }
>> >
>> >                      case CHILD_REMOVED:
>> >                      {
>> >                          System.out.println("Node removed: " +
>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>> >                          break;
>> >                      }
>> >                  }
>> >              }
>> >          };
>> >          cache.getListenable().addListener(listener);
>> >      }
>> >
>> >
>> > Here running a list returns empty size all the time
>> >
>> >      private static void list(PathChildrenCache cache)
>> >        {
>> >
>> >            if ( cache.getCurrentData().size() == 0 )
>> >            {
>> >                System.out.println("* empty *");
>> >            }
>> >            else
>> >            {
>> >                for ( ChildData data : cache.getCurrentData() )
>> >                {
>> >                    System.out.println(data.getPath() + " = " + new
>> > String(data.getData()));
>> >                }
>> >            }
>> >        }
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
> 
> 


Re: curator pathcache

Posted by s influxdb <el...@gmail.com>.
i was using the Eclipse IDE and adding the Curator JAR's as External JAR.
It resolves for curator framework , curator client etc

The code i have is nothing but the sample PathCacheExample.java code from
the examples posted in curator.apache.org

Let me try it using maven instead.

On Wed, Mar 9, 2016 at 6:09 PM, Jordan Zimmerman <jordan@jordanzimmerman.com
> wrote:

> Post your code along with whatever build scripts you’re using to Github or
> something similar and we’ll have a look. Are you using Maven? Gradle? How
> are you putting your dependencies together?
>
> On Mar 9, 2016, at 9:04 PM, s influxdb <el...@gmail.com> wrote:
>
> i tried all the curator libraries . still same result . TestingServer or
> the PathCache isn't working
>
> On Wed, Mar 9, 2016 at 5:22 PM, s influxdb <el...@gmail.com> wrote:
>
>> Ok let me try that.
>>
>> On another note this piece of nodecache code works
>>
>>             final NodeCache nodeCache = new NodeCache(client, PATH);
>>                 nodeCache.getListenable().addListener(new
>> NodeCacheListener() {
>>                     @Override
>>                     public void nodeChanged() throws Exception {
>>                         ChildData currentData =
>> nodeCache.getCurrentData();
>>                         System.out.println("data change watched, and
>> current data = " + new String(currentData.getData()));
>>                     }
>>                 });
>>                 nodeCache.start();
>>                 Thread.sleep(50000);
>>
>> On Wed, Mar 9, 2016 at 5:20 PM, Cameron McKenzie <mc...@gmail.com>
>> wrote:
>>
>>> You must have some old Curator stuff on your classpath. All of the
>>> curator stuff has an org.apache package prefix. It was ported from Netflix
>>> some time ago.
>>>
>>> On Thu, Mar 10, 2016 at 12:15 PM, s influxdb <el...@gmail.com>
>>> wrote:
>>>
>>>> I see the TestingServer class in  import
>>>> com.netflix.curator.test.TestingServer;
>>>>
>>>> In the sample file i see it as import
>>>> org.apache.curator.test.TestingServer;
>>>>
>>>> Even then i get the below error while instantiating a TestingServer
>>>> Class
>>>> Default constructor cannot handle exception type Exception thrown by
>>>> implicit super constructor. Must define an explicit constructor
>>>>
>>>> Then i tried the TestingCluster class
>>>> static TestingCluster       server = new TestingCluster();
>>>>
>>>> That gives me a class not found exception
>>>> Exception in thread "main" java.lang.NoClassDefFoundError:
>>>> javassist/NotFoundException
>>>>     at
>>>> com.netflix.curator.test.TestingCluster.<clinit>(TestingCluster.java:40)
>>>>
>>>>
>>>> On Wed, Mar 9, 2016 at 4:16 PM, Cameron McKenzie <
>>>> mckenzie.cam@gmail.com> wrote:
>>>>
>>>>> The TestingServer class is definitely in the curator-test jar, so you
>>>>> must have some issue with your build / IDE environment.
>>>>>
>>>>> On Thu, Mar 10, 2016 at 11:13 AM, s influxdb <el...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> I tried importing the curator-test artifcactid and it this import
>>>>>> org.apache.curator.test.TestingServer; doesn't resolve
>>>>>>
>>>>>> On Wed, Mar 9, 2016 at 2:58 PM, Cameron McKenzie <
>>>>>> mckenzie.cam@gmail.com> wrote:
>>>>>>
>>>>>>> Can you try running the PathCacheExample unmodified? It uses a
>>>>>>> testing ZK server. But can you just confirm that this much works for you?
>>>>>>> Then maybe try and modify the sample so that it connects to your real ZK
>>>>>>> instance?
>>>>>>>
>>>>>>> On Thu, Mar 10, 2016 at 9:53 AM, s influxdb <el...@gmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> i did try adding a sleep and got the same result
>>>>>>>>      cache.start();
>>>>>>>>             Thread.sleep(5000);
>>>>>>>>             list(cache);
>>>>>>>>
>>>>>>>> I am using curator libraries version 2.10 and zookeeper version
>>>>>>>> 3..4.6
>>>>>>>>
>>>>>>>> On Wed, Mar 9, 2016 at 2:19 PM, Cameron McKenzie <
>>>>>>>> mckenzie.cam@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> I think that you have a race condition between calling start() on
>>>>>>>>> your cache and calling list(). Calling list() just checks the current state
>>>>>>>>> of the cache. If it hasn't communicated with ZK yet, it won't have any
>>>>>>>>> data. Try putting in a sleep after the cache.start() call, before you call
>>>>>>>>> list().
>>>>>>>>>
>>>>>>>>> On Thu, Mar 10, 2016 at 9:16 AM, s influxdb <elastic.l.k@gmail.com
>>>>>>>>> > wrote:
>>>>>>>>>
>>>>>>>>>> sure
>>>>>>>>>>
>>>>>>>>>> main class
>>>>>>>>>>     RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000,
>>>>>>>>>> 3);
>>>>>>>>>>             client =
>>>>>>>>>> CuratorFrameworkFactory.newClient("10.x.x.x", retryPolicy);
>>>>>>>>>>             client.start();
>>>>>>>>>>             SyncData sd = new SyncData(client);
>>>>>>>>>>             sd.run();
>>>>>>>>>>
>>>>>>>>>> the class that calls cache
>>>>>>>>>>
>>>>>>>>>> private static final String PATH = "/zktest";
>>>>>>>>>>
>>>>>>>>>>     public void run () throws Exception
>>>>>>>>>>        {
>>>>>>>>>>         try {
>>>>>>>>>>
>>>>>>>>>>             cache = new PathChildrenCache(client, PATH, true);
>>>>>>>>>>             cache.start();
>>>>>>>>>>
>>>>>>>>>>             list(cache);
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>                 for(;;) {
>>>>>>>>>>                     try {
>>>>>>>>>>                         Thread.sleep(50000);
>>>>>>>>>>                     } catch(InterruptedException e) {
>>>>>>>>>>                     }
>>>>>>>>>>                 }
>>>>>>>>>>
>>>>>>>>>>             }
>>>>>>>>>>              finally {
>>>>>>>>>>                 CloseableUtils.closeQuietly(cache);
>>>>>>>>>>              }
>>>>>>>>>>         }
>>>>>>>>>>
>>>>>>>>>> On Wed, Mar 9, 2016 at 1:30 PM, Cameron McKenzie <
>>>>>>>>>> mckenzie.cam@gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> I just tried running the example and it seems to work fine for
>>>>>>>>>>> me. I assume that you modified the code in some way for it to run against a
>>>>>>>>>>> proper ZK instance? Can you post it somewhere?
>>>>>>>>>>>
>>>>>>>>>>> On Thu, Mar 10, 2016 at 5:53 AM, s influxdb <
>>>>>>>>>>> elastic.l.k@gmail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> ---------- Forwarded message ----------
>>>>>>>>>>>> From: s influxdb <el...@gmail.com>
>>>>>>>>>>>> Date: Wed, Mar 9, 2016 at 10:36 AM
>>>>>>>>>>>> Subject: Re: curator pathcache
>>>>>>>>>>>> To: Jordan Zimmerman <jo...@jordanzimmerman.com>
>>>>>>>>>>>> Cc: user@curator.apache.org
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Sorry for posting this in a wrong forum the first time.
>>>>>>>>>>>>
>>>>>>>>>>>> I recreated a new project and was running the example code here
>>>>>>>>>>>> for cache :
>>>>>>>>>>>> http://curator.apache.org/curator-examples/index.html
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Today when i  try to replicathe NPE i am unable to do that .
>>>>>>>>>>>> However when i call the  list(cache) it prints the size of the
>>>>>>>>>>>> data in the node as 0. This works with NodeCache
>>>>>>>>>>>>
>>>>>>>>>>>> Curator libraries are 2.10 and zookeeper version 3.4.6.
>>>>>>>>>>>>
>>>>>>>>>>>> Ideally i would like to use TreeCache but it gave me NPE too.
>>>>>>>>>>>> My use case is setting a watch on the entire znode in the cluster and be
>>>>>>>>>>>> notified about it. Thanks for replying to the mail.
>>>>>>>>>>>>
>>>>>>>>>>>>     private static void list(PathChildrenCache cache)
>>>>>>>>>>>>     {
>>>>>>>>>>>>         if ( cache.getCurrentData().size() == 0 )
>>>>>>>>>>>>         {
>>>>>>>>>>>>             System.out.println("* empty *");
>>>>>>>>>>>>         }
>>>>>>>>>>>>         else
>>>>>>>>>>>>         {
>>>>>>>>>>>>             for ( ChildData data : cache.getCurrentData() )
>>>>>>>>>>>>             {
>>>>>>>>>>>>                 System.out.println(data.getPath() + " = " + new
>>>>>>>>>>>> String(data.getData()));
>>>>>>>>>>>>             }
>>>>>>>>>>>>         }
>>>>>>>>>>>>     }
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Wed, Mar 9, 2016 at 9:44 AM, Jordan Zimmerman <
>>>>>>>>>>>> jordan@jordanzimmerman.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Moving this to Curator’s list…
>>>>>>>>>>>>>
>>>>>>>>>>>>> Where do you get the NPE? Please send the stacktrace.
>>>>>>>>>>>>>
>>>>>>>>>>>>> -Jordan
>>>>>>>>>>>>>
>>>>>>>>>>>>> > On Mar 8, 2016, at 8:27 PM, s influxdb <
>>>>>>>>>>>>> elastic.l.k@gmail.com> wrote:
>>>>>>>>>>>>> >
>>>>>>>>>>>>> > I am trying to run the path cahce and keep java NPE
>>>>>>>>>>>>> >
>>>>>>>>>>>>> > Running curator 2.9.0 libraries against a zookeeper 3.4.6
>>>>>>>>>>>>> cluster
>>>>>>>>>>>>> > Even
>>>>>>>>>>>>> >
>>>>>>>>>>>>> > The samples are taken from the curator examples .
>>>>>>>>>>>>> >
>>>>>>>>>>>>> >
>>>>>>>>>>>>> >
>>>>>>>>>>>>> >  public void run () throws Exception
>>>>>>>>>>>>> >       {
>>>>>>>>>>>>> >             try {
>>>>>>>>>>>>> >
>>>>>>>>>>>>> >                pcache = new PathChildrenCache(client, PATH,
>>>>>>>>>>>>> true);
>>>>>>>>>>>>> >             pcache.start();
>>>>>>>>>>>>> >
>>>>>>>>>>>>> >                addListener(cache);
>>>>>>>>>>>>> >
>>>>>>>>>>>>> >           //    list(pcache);
>>>>>>>>>>>>> >
>>>>>>>>>>>>> >               pcache.close();
>>>>>>>>>>>>> >            }
>>>>>>>>>>>>> >             finally {
>>>>>>>>>>>>> >                CloseableUtils.closeQuietly(cache);
>>>>>>>>>>>>> >             }
>>>>>>>>>>>>> >        }
>>>>>>>>>>>>> >
>>>>>>>>>>>>> >
>>>>>>>>>>>>> >      private static void addListener(PathChildrenCache cache)
>>>>>>>>>>>>> >      {
>>>>>>>>>>>>> >          // a PathChildrenCacheListener is optional. Here,
>>>>>>>>>>>>> it's used just
>>>>>>>>>>>>> > to log changes
>>>>>>>>>>>>> >          PathChildrenCacheListener listener = new
>>>>>>>>>>>>> > PathChildrenCacheListener()
>>>>>>>>>>>>> >          {
>>>>>>>>>>>>> >              @Override
>>>>>>>>>>>>> >              public void childEvent(CuratorFramework client,
>>>>>>>>>>>>> > PathChildrenCacheEvent event) throws Exception
>>>>>>>>>>>>> >              {
>>>>>>>>>>>>> >                  switch ( event.getType() )
>>>>>>>>>>>>> >                  {
>>>>>>>>>>>>> >                      case CHILD_ADDED:
>>>>>>>>>>>>> >                      {
>>>>>>>>>>>>> >                          System.out.println("Node added: " +
>>>>>>>>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>>>>>>>>>>> >                          break;
>>>>>>>>>>>>> >                      }
>>>>>>>>>>>>> >
>>>>>>>>>>>>> >                      case CHILD_UPDATED:
>>>>>>>>>>>>> >                      {
>>>>>>>>>>>>> >                          System.out.println("Node changed: "
>>>>>>>>>>>>> +
>>>>>>>>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>>>>>>>>>>> >                          break;
>>>>>>>>>>>>> >                      }
>>>>>>>>>>>>> >
>>>>>>>>>>>>> >                      case CHILD_REMOVED:
>>>>>>>>>>>>> >                      {
>>>>>>>>>>>>> >                          System.out.println("Node removed: "
>>>>>>>>>>>>> +
>>>>>>>>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>>>>>>>>>>> >                          break;
>>>>>>>>>>>>> >                      }
>>>>>>>>>>>>> >                  }
>>>>>>>>>>>>> >              }
>>>>>>>>>>>>> >          };
>>>>>>>>>>>>> >          cache.getListenable().addListener(listener);
>>>>>>>>>>>>> >      }
>>>>>>>>>>>>> >
>>>>>>>>>>>>> >
>>>>>>>>>>>>> > Here running a list returns empty size all the time
>>>>>>>>>>>>> >
>>>>>>>>>>>>> >      private static void list(PathChildrenCache cache)
>>>>>>>>>>>>> >        {
>>>>>>>>>>>>> >
>>>>>>>>>>>>> >            if ( cache.getCurrentData().size() == 0 )
>>>>>>>>>>>>> >            {
>>>>>>>>>>>>> >                System.out.println("* empty *");
>>>>>>>>>>>>> >            }
>>>>>>>>>>>>> >            else
>>>>>>>>>>>>> >            {
>>>>>>>>>>>>> >                for ( ChildData data : cache.getCurrentData()
>>>>>>>>>>>>> )
>>>>>>>>>>>>> >                {
>>>>>>>>>>>>> >                    System.out.println(data.getPath() + " = "
>>>>>>>>>>>>> + new
>>>>>>>>>>>>> > String(data.getData()));
>>>>>>>>>>>>> >                }
>>>>>>>>>>>>> >            }
>>>>>>>>>>>>> >        }
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
>

Re: curator pathcache

Posted by Jordan Zimmerman <jo...@jordanzimmerman.com>.
Post your code along with whatever build scripts you’re using to Github or something similar and we’ll have a look. Are you using Maven? Gradle? How are you putting your dependencies together? 

> On Mar 9, 2016, at 9:04 PM, s influxdb <el...@gmail.com> wrote:
> 
> i tried all the curator libraries . still same result . TestingServer or the PathCache isn't working
> 
> On Wed, Mar 9, 2016 at 5:22 PM, s influxdb <elastic.l.k@gmail.com <ma...@gmail.com>> wrote:
> Ok let me try that. 
> 
> On another note this piece of nodecache code works
> 
>             final NodeCache nodeCache = new NodeCache(client, PATH);
>                 nodeCache.getListenable().addListener(new NodeCacheListener() {
>                     @Override
>                     public void nodeChanged() throws Exception {
>                         ChildData currentData = nodeCache.getCurrentData();
>                         System.out.println("data change watched, and current data = " + new String(currentData.getData()));
>                     }
>                 });
>                 nodeCache.start();
>                 Thread.sleep(50000);
> 
> On Wed, Mar 9, 2016 at 5:20 PM, Cameron McKenzie <mckenzie.cam@gmail.com <ma...@gmail.com>> wrote:
> You must have some old Curator stuff on your classpath. All of the curator stuff has an org.apache package prefix. It was ported from Netflix some time ago.
> 
> On Thu, Mar 10, 2016 at 12:15 PM, s influxdb <elastic.l.k@gmail.com <ma...@gmail.com>> wrote:
> I see the TestingServer class in  import com.netflix.curator.test.TestingServer;
> 
> In the sample file i see it as import org.apache.curator.test.TestingServer;
> 
> Even then i get the below error while instantiating a TestingServer Class
> Default constructor cannot handle exception type Exception thrown by implicit super constructor. Must define an explicit constructor
> 
> Then i tried the TestingCluster class
> static TestingCluster       server = new TestingCluster();
> 
> That gives me a class not found exception
> Exception in thread "main" java.lang.NoClassDefFoundError: javassist/NotFoundException
>     at com.netflix.curator.test.TestingCluster.<clinit>(TestingCluster.java:40)
> 
> 
> On Wed, Mar 9, 2016 at 4:16 PM, Cameron McKenzie <mckenzie.cam@gmail.com <ma...@gmail.com>> wrote:
> The TestingServer class is definitely in the curator-test jar, so you must have some issue with your build / IDE environment.
> 
> On Thu, Mar 10, 2016 at 11:13 AM, s influxdb <elastic.l.k@gmail.com <ma...@gmail.com>> wrote:
> I tried importing the curator-test artifcactid and it this import org.apache.curator.test.TestingServer; doesn't resolve
> 
> On Wed, Mar 9, 2016 at 2:58 PM, Cameron McKenzie <mckenzie.cam@gmail.com <ma...@gmail.com>> wrote:
> Can you try running the PathCacheExample unmodified? It uses a testing ZK server. But can you just confirm that this much works for you? Then maybe try and modify the sample so that it connects to your real ZK instance?
> 
> On Thu, Mar 10, 2016 at 9:53 AM, s influxdb <elastic.l.k@gmail.com <ma...@gmail.com>> wrote:
> i did try adding a sleep and got the same result
>      cache.start();
>             Thread.sleep(5000);
>             list(cache);
> 
> I am using curator libraries version 2.10 and zookeeper version 3..4.6
> 
> On Wed, Mar 9, 2016 at 2:19 PM, Cameron McKenzie <mckenzie.cam@gmail.com <ma...@gmail.com>> wrote:
> I think that you have a race condition between calling start() on your cache and calling list(). Calling list() just checks the current state of the cache. If it hasn't communicated with ZK yet, it won't have any data. Try putting in a sleep after the cache.start() call, before you call list().
> 
> On Thu, Mar 10, 2016 at 9:16 AM, s influxdb <elastic.l.k@gmail.com <ma...@gmail.com>> wrote:
> sure 
> 
> main class
>     RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
>             client = CuratorFrameworkFactory.newClient("10.x.x.x", retryPolicy);
>             client.start();
>             SyncData sd = new SyncData(client);
>             sd.run();
>             
> the class that calls cache
> 
> private static final String PATH = "/zktest";
> 
>     public void run () throws Exception 
>        {
>         try {
>                
>             cache = new PathChildrenCache(client, PATH, true);
>             cache.start();
> 
>             list(cache);
>                     
>                 
>                 for(;;) {
>                     try {
>                         Thread.sleep(50000);
>                     } catch(InterruptedException e) {
>                     }
>                 }
>                
>             }
>              finally {
>                 CloseableUtils.closeQuietly(cache);
>              }
>         }
> 
> On Wed, Mar 9, 2016 at 1:30 PM, Cameron McKenzie <mckenzie.cam@gmail.com <ma...@gmail.com>> wrote:
> I just tried running the example and it seems to work fine for me. I assume that you modified the code in some way for it to run against a proper ZK instance? Can you post it somewhere?
> 
> On Thu, Mar 10, 2016 at 5:53 AM, s influxdb <elastic.l.k@gmail.com <ma...@gmail.com>> wrote:
> 
> ---------- Forwarded message ----------
> From: s influxdb <elastic.l.k@gmail.com <ma...@gmail.com>>
> Date: Wed, Mar 9, 2016 at 10:36 AM
> Subject: Re: curator pathcache
> To: Jordan Zimmerman <jordan@jordanzimmerman.com <ma...@jordanzimmerman.com>>
> Cc: user@curator.apache.org <ma...@curator.apache.org>
> 
> 
> Sorry for posting this in a wrong forum the first time.
> 
> I recreated a new project and was running the example code here for cache : http://curator.apache.org/curator-examples/index.html <http://curator.apache.org/curator-examples/index.html>
> 
> 
> Today when i  try to replicathe NPE i am unable to do that . 
> However when i call the  list(cache) it prints the size of the data in the node as 0. This works with NodeCache
> 
> Curator libraries are 2.10 and zookeeper version 3.4.6.
> 
> Ideally i would like to use TreeCache but it gave me NPE too. My use case is setting a watch on the entire znode in the cluster and be notified about it. Thanks for replying to the mail.
> 
>     private static void list(PathChildrenCache cache)
>     {
>         if ( cache.getCurrentData().size() == 0 )
>         {
>             System.out.println("* empty *");
>         }
>         else
>         {
>             for ( ChildData data : cache.getCurrentData() )
>             {
>                 System.out.println(data.getPath() + " = " + new String(data.getData()));
>             }
>         }
>     }
>       
> 
> 
> 
> On Wed, Mar 9, 2016 at 9:44 AM, Jordan Zimmerman <jordan@jordanzimmerman.com <ma...@jordanzimmerman.com>> wrote:
> Moving this to Curator’s list…
> 
> Where do you get the NPE? Please send the stacktrace.
> 
> -Jordan
> 
> > On Mar 8, 2016, at 8:27 PM, s influxdb <elastic.l.k@gmail.com <ma...@gmail.com>> wrote:
> >
> > I am trying to run the path cahce and keep java NPE
> >
> > Running curator 2.9.0 libraries against a zookeeper 3.4.6 cluster
> > Even
> >
> > The samples are taken from the curator examples .
> >
> >
> >
> >  public void run () throws Exception
> >       {
> >             try {
> >
> >                pcache = new PathChildrenCache(client, PATH, true);
> >             pcache.start();
> >
> >                addListener(cache);
> >
> >           //    list(pcache);
> >
> >               pcache.close();
> >            }
> >             finally {
> >                CloseableUtils.closeQuietly(cache);
> >             }
> >        }
> >
> >
> >      private static void addListener(PathChildrenCache cache)
> >      {
> >          // a PathChildrenCacheListener is optional. Here, it's used just
> > to log changes
> >          PathChildrenCacheListener listener = new
> > PathChildrenCacheListener()
> >          {
> >              @Override
> >              public void childEvent(CuratorFramework client,
> > PathChildrenCacheEvent event) throws Exception
> >              {
> >                  switch ( event.getType() )
> >                  {
> >                      case CHILD_ADDED:
> >                      {
> >                          System.out.println("Node added: " +
> > ZKPaths.getNodeFromPath(event.getData().getPath()));
> >                          break;
> >                      }
> >
> >                      case CHILD_UPDATED:
> >                      {
> >                          System.out.println("Node changed: " +
> > ZKPaths.getNodeFromPath(event.getData().getPath()));
> >                          break;
> >                      }
> >
> >                      case CHILD_REMOVED:
> >                      {
> >                          System.out.println("Node removed: " +
> > ZKPaths.getNodeFromPath(event.getData().getPath()));
> >                          break;
> >                      }
> >                  }
> >              }
> >          };
> >          cache.getListenable().addListener(listener);
> >      }
> >
> >
> > Here running a list returns empty size all the time
> >
> >      private static void list(PathChildrenCache cache)
> >        {
> >
> >            if ( cache.getCurrentData().size() == 0 )
> >            {
> >                System.out.println("* empty *");
> >            }
> >            else
> >            {
> >                for ( ChildData data : cache.getCurrentData() )
> >                {
> >                    System.out.println(data.getPath() + " = " + new
> > String(data.getData()));
> >                }
> >            }
> >        }
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 


Re: curator pathcache

Posted by s influxdb <el...@gmail.com>.
i tried all the curator libraries . still same result . TestingServer or
the PathCache isn't working

On Wed, Mar 9, 2016 at 5:22 PM, s influxdb <el...@gmail.com> wrote:

> Ok let me try that.
>
> On another note this piece of nodecache code works
>
>             final NodeCache nodeCache = new NodeCache(client, PATH);
>                 nodeCache.getListenable().addListener(new
> NodeCacheListener() {
>                     @Override
>                     public void nodeChanged() throws Exception {
>                         ChildData currentData = nodeCache.getCurrentData();
>                         System.out.println("data change watched, and
> current data = " + new String(currentData.getData()));
>                     }
>                 });
>                 nodeCache.start();
>                 Thread.sleep(50000);
>
> On Wed, Mar 9, 2016 at 5:20 PM, Cameron McKenzie <mc...@gmail.com>
> wrote:
>
>> You must have some old Curator stuff on your classpath. All of the
>> curator stuff has an org.apache package prefix. It was ported from Netflix
>> some time ago.
>>
>> On Thu, Mar 10, 2016 at 12:15 PM, s influxdb <el...@gmail.com>
>> wrote:
>>
>>> I see the TestingServer class in  import
>>> com.netflix.curator.test.TestingServer;
>>>
>>> In the sample file i see it as import
>>> org.apache.curator.test.TestingServer;
>>>
>>> Even then i get the below error while instantiating a TestingServer Class
>>> Default constructor cannot handle exception type Exception thrown by
>>> implicit super constructor. Must define an explicit constructor
>>>
>>> Then i tried the TestingCluster class
>>> static TestingCluster       server = new TestingCluster();
>>>
>>> That gives me a class not found exception
>>> Exception in thread "main" java.lang.NoClassDefFoundError:
>>> javassist/NotFoundException
>>>     at
>>> com.netflix.curator.test.TestingCluster.<clinit>(TestingCluster.java:40)
>>>
>>>
>>> On Wed, Mar 9, 2016 at 4:16 PM, Cameron McKenzie <mckenzie.cam@gmail.com
>>> > wrote:
>>>
>>>> The TestingServer class is definitely in the curator-test jar, so you
>>>> must have some issue with your build / IDE environment.
>>>>
>>>> On Thu, Mar 10, 2016 at 11:13 AM, s influxdb <el...@gmail.com>
>>>> wrote:
>>>>
>>>>> I tried importing the curator-test artifcactid and it this import
>>>>> org.apache.curator.test.TestingServer; doesn't resolve
>>>>>
>>>>> On Wed, Mar 9, 2016 at 2:58 PM, Cameron McKenzie <
>>>>> mckenzie.cam@gmail.com> wrote:
>>>>>
>>>>>> Can you try running the PathCacheExample unmodified? It uses a
>>>>>> testing ZK server. But can you just confirm that this much works for you?
>>>>>> Then maybe try and modify the sample so that it connects to your real ZK
>>>>>> instance?
>>>>>>
>>>>>> On Thu, Mar 10, 2016 at 9:53 AM, s influxdb <el...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> i did try adding a sleep and got the same result
>>>>>>>      cache.start();
>>>>>>>             Thread.sleep(5000);
>>>>>>>             list(cache);
>>>>>>>
>>>>>>> I am using curator libraries version 2.10 and zookeeper version
>>>>>>> 3..4.6
>>>>>>>
>>>>>>> On Wed, Mar 9, 2016 at 2:19 PM, Cameron McKenzie <
>>>>>>> mckenzie.cam@gmail.com> wrote:
>>>>>>>
>>>>>>>> I think that you have a race condition between calling start() on
>>>>>>>> your cache and calling list(). Calling list() just checks the current state
>>>>>>>> of the cache. If it hasn't communicated with ZK yet, it won't have any
>>>>>>>> data. Try putting in a sleep after the cache.start() call, before you call
>>>>>>>> list().
>>>>>>>>
>>>>>>>> On Thu, Mar 10, 2016 at 9:16 AM, s influxdb <el...@gmail.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> sure
>>>>>>>>>
>>>>>>>>> main class
>>>>>>>>>     RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
>>>>>>>>>             client = CuratorFrameworkFactory.newClient("10.x.x.x",
>>>>>>>>> retryPolicy);
>>>>>>>>>             client.start();
>>>>>>>>>             SyncData sd = new SyncData(client);
>>>>>>>>>             sd.run();
>>>>>>>>>
>>>>>>>>> the class that calls cache
>>>>>>>>>
>>>>>>>>> private static final String PATH = "/zktest";
>>>>>>>>>
>>>>>>>>>     public void run () throws Exception
>>>>>>>>>        {
>>>>>>>>>         try {
>>>>>>>>>
>>>>>>>>>             cache = new PathChildrenCache(client, PATH, true);
>>>>>>>>>             cache.start();
>>>>>>>>>
>>>>>>>>>             list(cache);
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>                 for(;;) {
>>>>>>>>>                     try {
>>>>>>>>>                         Thread.sleep(50000);
>>>>>>>>>                     } catch(InterruptedException e) {
>>>>>>>>>                     }
>>>>>>>>>                 }
>>>>>>>>>
>>>>>>>>>             }
>>>>>>>>>              finally {
>>>>>>>>>                 CloseableUtils.closeQuietly(cache);
>>>>>>>>>              }
>>>>>>>>>         }
>>>>>>>>>
>>>>>>>>> On Wed, Mar 9, 2016 at 1:30 PM, Cameron McKenzie <
>>>>>>>>> mckenzie.cam@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> I just tried running the example and it seems to work fine for
>>>>>>>>>> me. I assume that you modified the code in some way for it to run against a
>>>>>>>>>> proper ZK instance? Can you post it somewhere?
>>>>>>>>>>
>>>>>>>>>> On Thu, Mar 10, 2016 at 5:53 AM, s influxdb <
>>>>>>>>>> elastic.l.k@gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> ---------- Forwarded message ----------
>>>>>>>>>>> From: s influxdb <el...@gmail.com>
>>>>>>>>>>> Date: Wed, Mar 9, 2016 at 10:36 AM
>>>>>>>>>>> Subject: Re: curator pathcache
>>>>>>>>>>> To: Jordan Zimmerman <jo...@jordanzimmerman.com>
>>>>>>>>>>> Cc: user@curator.apache.org
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Sorry for posting this in a wrong forum the first time.
>>>>>>>>>>>
>>>>>>>>>>> I recreated a new project and was running the example code here
>>>>>>>>>>> for cache :
>>>>>>>>>>> http://curator.apache.org/curator-examples/index.html
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Today when i  try to replicathe NPE i am unable to do that .
>>>>>>>>>>> However when i call the  list(cache) it prints the size of the
>>>>>>>>>>> data in the node as 0. This works with NodeCache
>>>>>>>>>>>
>>>>>>>>>>> Curator libraries are 2.10 and zookeeper version 3.4.6.
>>>>>>>>>>>
>>>>>>>>>>> Ideally i would like to use TreeCache but it gave me NPE too. My
>>>>>>>>>>> use case is setting a watch on the entire znode in the cluster and be
>>>>>>>>>>> notified about it. Thanks for replying to the mail.
>>>>>>>>>>>
>>>>>>>>>>>     private static void list(PathChildrenCache cache)
>>>>>>>>>>>     {
>>>>>>>>>>>         if ( cache.getCurrentData().size() == 0 )
>>>>>>>>>>>         {
>>>>>>>>>>>             System.out.println("* empty *");
>>>>>>>>>>>         }
>>>>>>>>>>>         else
>>>>>>>>>>>         {
>>>>>>>>>>>             for ( ChildData data : cache.getCurrentData() )
>>>>>>>>>>>             {
>>>>>>>>>>>                 System.out.println(data.getPath() + " = " + new
>>>>>>>>>>> String(data.getData()));
>>>>>>>>>>>             }
>>>>>>>>>>>         }
>>>>>>>>>>>     }
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Wed, Mar 9, 2016 at 9:44 AM, Jordan Zimmerman <
>>>>>>>>>>> jordan@jordanzimmerman.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Moving this to Curator’s list…
>>>>>>>>>>>>
>>>>>>>>>>>> Where do you get the NPE? Please send the stacktrace.
>>>>>>>>>>>>
>>>>>>>>>>>> -Jordan
>>>>>>>>>>>>
>>>>>>>>>>>> > On Mar 8, 2016, at 8:27 PM, s influxdb <el...@gmail.com>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>> >
>>>>>>>>>>>> > I am trying to run the path cahce and keep java NPE
>>>>>>>>>>>> >
>>>>>>>>>>>> > Running curator 2.9.0 libraries against a zookeeper 3.4.6
>>>>>>>>>>>> cluster
>>>>>>>>>>>> > Even
>>>>>>>>>>>> >
>>>>>>>>>>>> > The samples are taken from the curator examples .
>>>>>>>>>>>> >
>>>>>>>>>>>> >
>>>>>>>>>>>> >
>>>>>>>>>>>> >  public void run () throws Exception
>>>>>>>>>>>> >       {
>>>>>>>>>>>> >             try {
>>>>>>>>>>>> >
>>>>>>>>>>>> >                pcache = new PathChildrenCache(client, PATH,
>>>>>>>>>>>> true);
>>>>>>>>>>>> >             pcache.start();
>>>>>>>>>>>> >
>>>>>>>>>>>> >                addListener(cache);
>>>>>>>>>>>> >
>>>>>>>>>>>> >           //    list(pcache);
>>>>>>>>>>>> >
>>>>>>>>>>>> >               pcache.close();
>>>>>>>>>>>> >            }
>>>>>>>>>>>> >             finally {
>>>>>>>>>>>> >                CloseableUtils.closeQuietly(cache);
>>>>>>>>>>>> >             }
>>>>>>>>>>>> >        }
>>>>>>>>>>>> >
>>>>>>>>>>>> >
>>>>>>>>>>>> >      private static void addListener(PathChildrenCache cache)
>>>>>>>>>>>> >      {
>>>>>>>>>>>> >          // a PathChildrenCacheListener is optional. Here,
>>>>>>>>>>>> it's used just
>>>>>>>>>>>> > to log changes
>>>>>>>>>>>> >          PathChildrenCacheListener listener = new
>>>>>>>>>>>> > PathChildrenCacheListener()
>>>>>>>>>>>> >          {
>>>>>>>>>>>> >              @Override
>>>>>>>>>>>> >              public void childEvent(CuratorFramework client,
>>>>>>>>>>>> > PathChildrenCacheEvent event) throws Exception
>>>>>>>>>>>> >              {
>>>>>>>>>>>> >                  switch ( event.getType() )
>>>>>>>>>>>> >                  {
>>>>>>>>>>>> >                      case CHILD_ADDED:
>>>>>>>>>>>> >                      {
>>>>>>>>>>>> >                          System.out.println("Node added: " +
>>>>>>>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>>>>>>>>>> >                          break;
>>>>>>>>>>>> >                      }
>>>>>>>>>>>> >
>>>>>>>>>>>> >                      case CHILD_UPDATED:
>>>>>>>>>>>> >                      {
>>>>>>>>>>>> >                          System.out.println("Node changed: " +
>>>>>>>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>>>>>>>>>> >                          break;
>>>>>>>>>>>> >                      }
>>>>>>>>>>>> >
>>>>>>>>>>>> >                      case CHILD_REMOVED:
>>>>>>>>>>>> >                      {
>>>>>>>>>>>> >                          System.out.println("Node removed: " +
>>>>>>>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>>>>>>>>>> >                          break;
>>>>>>>>>>>> >                      }
>>>>>>>>>>>> >                  }
>>>>>>>>>>>> >              }
>>>>>>>>>>>> >          };
>>>>>>>>>>>> >          cache.getListenable().addListener(listener);
>>>>>>>>>>>> >      }
>>>>>>>>>>>> >
>>>>>>>>>>>> >
>>>>>>>>>>>> > Here running a list returns empty size all the time
>>>>>>>>>>>> >
>>>>>>>>>>>> >      private static void list(PathChildrenCache cache)
>>>>>>>>>>>> >        {
>>>>>>>>>>>> >
>>>>>>>>>>>> >            if ( cache.getCurrentData().size() == 0 )
>>>>>>>>>>>> >            {
>>>>>>>>>>>> >                System.out.println("* empty *");
>>>>>>>>>>>> >            }
>>>>>>>>>>>> >            else
>>>>>>>>>>>> >            {
>>>>>>>>>>>> >                for ( ChildData data : cache.getCurrentData() )
>>>>>>>>>>>> >                {
>>>>>>>>>>>> >                    System.out.println(data.getPath() + " = "
>>>>>>>>>>>> + new
>>>>>>>>>>>> > String(data.getData()));
>>>>>>>>>>>> >                }
>>>>>>>>>>>> >            }
>>>>>>>>>>>> >        }
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>

Re: curator pathcache

Posted by s influxdb <el...@gmail.com>.
Ok let me try that.

On another note this piece of nodecache code works

            final NodeCache nodeCache = new NodeCache(client, PATH);
                nodeCache.getListenable().addListener(new
NodeCacheListener() {
                    @Override
                    public void nodeChanged() throws Exception {
                        ChildData currentData = nodeCache.getCurrentData();
                        System.out.println("data change watched, and
current data = " + new String(currentData.getData()));
                    }
                });
                nodeCache.start();
                Thread.sleep(50000);

On Wed, Mar 9, 2016 at 5:20 PM, Cameron McKenzie <mc...@gmail.com>
wrote:

> You must have some old Curator stuff on your classpath. All of the curator
> stuff has an org.apache package prefix. It was ported from Netflix some
> time ago.
>
> On Thu, Mar 10, 2016 at 12:15 PM, s influxdb <el...@gmail.com>
> wrote:
>
>> I see the TestingServer class in  import
>> com.netflix.curator.test.TestingServer;
>>
>> In the sample file i see it as import
>> org.apache.curator.test.TestingServer;
>>
>> Even then i get the below error while instantiating a TestingServer Class
>> Default constructor cannot handle exception type Exception thrown by
>> implicit super constructor. Must define an explicit constructor
>>
>> Then i tried the TestingCluster class
>> static TestingCluster       server = new TestingCluster();
>>
>> That gives me a class not found exception
>> Exception in thread "main" java.lang.NoClassDefFoundError:
>> javassist/NotFoundException
>>     at
>> com.netflix.curator.test.TestingCluster.<clinit>(TestingCluster.java:40)
>>
>>
>> On Wed, Mar 9, 2016 at 4:16 PM, Cameron McKenzie <mc...@gmail.com>
>> wrote:
>>
>>> The TestingServer class is definitely in the curator-test jar, so you
>>> must have some issue with your build / IDE environment.
>>>
>>> On Thu, Mar 10, 2016 at 11:13 AM, s influxdb <el...@gmail.com>
>>> wrote:
>>>
>>>> I tried importing the curator-test artifcactid and it this import
>>>> org.apache.curator.test.TestingServer; doesn't resolve
>>>>
>>>> On Wed, Mar 9, 2016 at 2:58 PM, Cameron McKenzie <
>>>> mckenzie.cam@gmail.com> wrote:
>>>>
>>>>> Can you try running the PathCacheExample unmodified? It uses a testing
>>>>> ZK server. But can you just confirm that this much works for you? Then
>>>>> maybe try and modify the sample so that it connects to your real ZK
>>>>> instance?
>>>>>
>>>>> On Thu, Mar 10, 2016 at 9:53 AM, s influxdb <el...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> i did try adding a sleep and got the same result
>>>>>>      cache.start();
>>>>>>             Thread.sleep(5000);
>>>>>>             list(cache);
>>>>>>
>>>>>> I am using curator libraries version 2.10 and zookeeper version 3..4.6
>>>>>>
>>>>>> On Wed, Mar 9, 2016 at 2:19 PM, Cameron McKenzie <
>>>>>> mckenzie.cam@gmail.com> wrote:
>>>>>>
>>>>>>> I think that you have a race condition between calling start() on
>>>>>>> your cache and calling list(). Calling list() just checks the current state
>>>>>>> of the cache. If it hasn't communicated with ZK yet, it won't have any
>>>>>>> data. Try putting in a sleep after the cache.start() call, before you call
>>>>>>> list().
>>>>>>>
>>>>>>> On Thu, Mar 10, 2016 at 9:16 AM, s influxdb <el...@gmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> sure
>>>>>>>>
>>>>>>>> main class
>>>>>>>>     RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
>>>>>>>>             client = CuratorFrameworkFactory.newClient("10.x.x.x",
>>>>>>>> retryPolicy);
>>>>>>>>             client.start();
>>>>>>>>             SyncData sd = new SyncData(client);
>>>>>>>>             sd.run();
>>>>>>>>
>>>>>>>> the class that calls cache
>>>>>>>>
>>>>>>>> private static final String PATH = "/zktest";
>>>>>>>>
>>>>>>>>     public void run () throws Exception
>>>>>>>>        {
>>>>>>>>         try {
>>>>>>>>
>>>>>>>>             cache = new PathChildrenCache(client, PATH, true);
>>>>>>>>             cache.start();
>>>>>>>>
>>>>>>>>             list(cache);
>>>>>>>>
>>>>>>>>
>>>>>>>>                 for(;;) {
>>>>>>>>                     try {
>>>>>>>>                         Thread.sleep(50000);
>>>>>>>>                     } catch(InterruptedException e) {
>>>>>>>>                     }
>>>>>>>>                 }
>>>>>>>>
>>>>>>>>             }
>>>>>>>>              finally {
>>>>>>>>                 CloseableUtils.closeQuietly(cache);
>>>>>>>>              }
>>>>>>>>         }
>>>>>>>>
>>>>>>>> On Wed, Mar 9, 2016 at 1:30 PM, Cameron McKenzie <
>>>>>>>> mckenzie.cam@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> I just tried running the example and it seems to work fine for me.
>>>>>>>>> I assume that you modified the code in some way for it to run against a
>>>>>>>>> proper ZK instance? Can you post it somewhere?
>>>>>>>>>
>>>>>>>>> On Thu, Mar 10, 2016 at 5:53 AM, s influxdb <elastic.l.k@gmail.com
>>>>>>>>> > wrote:
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> ---------- Forwarded message ----------
>>>>>>>>>> From: s influxdb <el...@gmail.com>
>>>>>>>>>> Date: Wed, Mar 9, 2016 at 10:36 AM
>>>>>>>>>> Subject: Re: curator pathcache
>>>>>>>>>> To: Jordan Zimmerman <jo...@jordanzimmerman.com>
>>>>>>>>>> Cc: user@curator.apache.org
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Sorry for posting this in a wrong forum the first time.
>>>>>>>>>>
>>>>>>>>>> I recreated a new project and was running the example code here
>>>>>>>>>> for cache : http://curator.apache.org/curator-examples/index.html
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Today when i  try to replicathe NPE i am unable to do that .
>>>>>>>>>> However when i call the  list(cache) it prints the size of the
>>>>>>>>>> data in the node as 0. This works with NodeCache
>>>>>>>>>>
>>>>>>>>>> Curator libraries are 2.10 and zookeeper version 3.4.6.
>>>>>>>>>>
>>>>>>>>>> Ideally i would like to use TreeCache but it gave me NPE too. My
>>>>>>>>>> use case is setting a watch on the entire znode in the cluster and be
>>>>>>>>>> notified about it. Thanks for replying to the mail.
>>>>>>>>>>
>>>>>>>>>>     private static void list(PathChildrenCache cache)
>>>>>>>>>>     {
>>>>>>>>>>         if ( cache.getCurrentData().size() == 0 )
>>>>>>>>>>         {
>>>>>>>>>>             System.out.println("* empty *");
>>>>>>>>>>         }
>>>>>>>>>>         else
>>>>>>>>>>         {
>>>>>>>>>>             for ( ChildData data : cache.getCurrentData() )
>>>>>>>>>>             {
>>>>>>>>>>                 System.out.println(data.getPath() + " = " + new
>>>>>>>>>> String(data.getData()));
>>>>>>>>>>             }
>>>>>>>>>>         }
>>>>>>>>>>     }
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Wed, Mar 9, 2016 at 9:44 AM, Jordan Zimmerman <
>>>>>>>>>> jordan@jordanzimmerman.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> Moving this to Curator’s list…
>>>>>>>>>>>
>>>>>>>>>>> Where do you get the NPE? Please send the stacktrace.
>>>>>>>>>>>
>>>>>>>>>>> -Jordan
>>>>>>>>>>>
>>>>>>>>>>> > On Mar 8, 2016, at 8:27 PM, s influxdb <el...@gmail.com>
>>>>>>>>>>> wrote:
>>>>>>>>>>> >
>>>>>>>>>>> > I am trying to run the path cahce and keep java NPE
>>>>>>>>>>> >
>>>>>>>>>>> > Running curator 2.9.0 libraries against a zookeeper 3.4.6
>>>>>>>>>>> cluster
>>>>>>>>>>> > Even
>>>>>>>>>>> >
>>>>>>>>>>> > The samples are taken from the curator examples .
>>>>>>>>>>> >
>>>>>>>>>>> >
>>>>>>>>>>> >
>>>>>>>>>>> >  public void run () throws Exception
>>>>>>>>>>> >       {
>>>>>>>>>>> >             try {
>>>>>>>>>>> >
>>>>>>>>>>> >                pcache = new PathChildrenCache(client, PATH,
>>>>>>>>>>> true);
>>>>>>>>>>> >             pcache.start();
>>>>>>>>>>> >
>>>>>>>>>>> >                addListener(cache);
>>>>>>>>>>> >
>>>>>>>>>>> >           //    list(pcache);
>>>>>>>>>>> >
>>>>>>>>>>> >               pcache.close();
>>>>>>>>>>> >            }
>>>>>>>>>>> >             finally {
>>>>>>>>>>> >                CloseableUtils.closeQuietly(cache);
>>>>>>>>>>> >             }
>>>>>>>>>>> >        }
>>>>>>>>>>> >
>>>>>>>>>>> >
>>>>>>>>>>> >      private static void addListener(PathChildrenCache cache)
>>>>>>>>>>> >      {
>>>>>>>>>>> >          // a PathChildrenCacheListener is optional. Here,
>>>>>>>>>>> it's used just
>>>>>>>>>>> > to log changes
>>>>>>>>>>> >          PathChildrenCacheListener listener = new
>>>>>>>>>>> > PathChildrenCacheListener()
>>>>>>>>>>> >          {
>>>>>>>>>>> >              @Override
>>>>>>>>>>> >              public void childEvent(CuratorFramework client,
>>>>>>>>>>> > PathChildrenCacheEvent event) throws Exception
>>>>>>>>>>> >              {
>>>>>>>>>>> >                  switch ( event.getType() )
>>>>>>>>>>> >                  {
>>>>>>>>>>> >                      case CHILD_ADDED:
>>>>>>>>>>> >                      {
>>>>>>>>>>> >                          System.out.println("Node added: " +
>>>>>>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>>>>>>>>> >                          break;
>>>>>>>>>>> >                      }
>>>>>>>>>>> >
>>>>>>>>>>> >                      case CHILD_UPDATED:
>>>>>>>>>>> >                      {
>>>>>>>>>>> >                          System.out.println("Node changed: " +
>>>>>>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>>>>>>>>> >                          break;
>>>>>>>>>>> >                      }
>>>>>>>>>>> >
>>>>>>>>>>> >                      case CHILD_REMOVED:
>>>>>>>>>>> >                      {
>>>>>>>>>>> >                          System.out.println("Node removed: " +
>>>>>>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>>>>>>>>> >                          break;
>>>>>>>>>>> >                      }
>>>>>>>>>>> >                  }
>>>>>>>>>>> >              }
>>>>>>>>>>> >          };
>>>>>>>>>>> >          cache.getListenable().addListener(listener);
>>>>>>>>>>> >      }
>>>>>>>>>>> >
>>>>>>>>>>> >
>>>>>>>>>>> > Here running a list returns empty size all the time
>>>>>>>>>>> >
>>>>>>>>>>> >      private static void list(PathChildrenCache cache)
>>>>>>>>>>> >        {
>>>>>>>>>>> >
>>>>>>>>>>> >            if ( cache.getCurrentData().size() == 0 )
>>>>>>>>>>> >            {
>>>>>>>>>>> >                System.out.println("* empty *");
>>>>>>>>>>> >            }
>>>>>>>>>>> >            else
>>>>>>>>>>> >            {
>>>>>>>>>>> >                for ( ChildData data : cache.getCurrentData() )
>>>>>>>>>>> >                {
>>>>>>>>>>> >                    System.out.println(data.getPath() + " = " +
>>>>>>>>>>> new
>>>>>>>>>>> > String(data.getData()));
>>>>>>>>>>> >                }
>>>>>>>>>>> >            }
>>>>>>>>>>> >        }
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>

Re: curator pathcache

Posted by Cameron McKenzie <mc...@gmail.com>.
You must have some old Curator stuff on your classpath. All of the curator
stuff has an org.apache package prefix. It was ported from Netflix some
time ago.

On Thu, Mar 10, 2016 at 12:15 PM, s influxdb <el...@gmail.com> wrote:

> I see the TestingServer class in  import
> com.netflix.curator.test.TestingServer;
>
> In the sample file i see it as import
> org.apache.curator.test.TestingServer;
>
> Even then i get the below error while instantiating a TestingServer Class
> Default constructor cannot handle exception type Exception thrown by
> implicit super constructor. Must define an explicit constructor
>
> Then i tried the TestingCluster class
> static TestingCluster       server = new TestingCluster();
>
> That gives me a class not found exception
> Exception in thread "main" java.lang.NoClassDefFoundError:
> javassist/NotFoundException
>     at
> com.netflix.curator.test.TestingCluster.<clinit>(TestingCluster.java:40)
>
>
> On Wed, Mar 9, 2016 at 4:16 PM, Cameron McKenzie <mc...@gmail.com>
> wrote:
>
>> The TestingServer class is definitely in the curator-test jar, so you
>> must have some issue with your build / IDE environment.
>>
>> On Thu, Mar 10, 2016 at 11:13 AM, s influxdb <el...@gmail.com>
>> wrote:
>>
>>> I tried importing the curator-test artifcactid and it this import
>>> org.apache.curator.test.TestingServer; doesn't resolve
>>>
>>> On Wed, Mar 9, 2016 at 2:58 PM, Cameron McKenzie <mckenzie.cam@gmail.com
>>> > wrote:
>>>
>>>> Can you try running the PathCacheExample unmodified? It uses a testing
>>>> ZK server. But can you just confirm that this much works for you? Then
>>>> maybe try and modify the sample so that it connects to your real ZK
>>>> instance?
>>>>
>>>> On Thu, Mar 10, 2016 at 9:53 AM, s influxdb <el...@gmail.com>
>>>> wrote:
>>>>
>>>>> i did try adding a sleep and got the same result
>>>>>      cache.start();
>>>>>             Thread.sleep(5000);
>>>>>             list(cache);
>>>>>
>>>>> I am using curator libraries version 2.10 and zookeeper version 3..4.6
>>>>>
>>>>> On Wed, Mar 9, 2016 at 2:19 PM, Cameron McKenzie <
>>>>> mckenzie.cam@gmail.com> wrote:
>>>>>
>>>>>> I think that you have a race condition between calling start() on
>>>>>> your cache and calling list(). Calling list() just checks the current state
>>>>>> of the cache. If it hasn't communicated with ZK yet, it won't have any
>>>>>> data. Try putting in a sleep after the cache.start() call, before you call
>>>>>> list().
>>>>>>
>>>>>> On Thu, Mar 10, 2016 at 9:16 AM, s influxdb <el...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> sure
>>>>>>>
>>>>>>> main class
>>>>>>>     RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
>>>>>>>             client = CuratorFrameworkFactory.newClient("10.x.x.x",
>>>>>>> retryPolicy);
>>>>>>>             client.start();
>>>>>>>             SyncData sd = new SyncData(client);
>>>>>>>             sd.run();
>>>>>>>
>>>>>>> the class that calls cache
>>>>>>>
>>>>>>> private static final String PATH = "/zktest";
>>>>>>>
>>>>>>>     public void run () throws Exception
>>>>>>>        {
>>>>>>>         try {
>>>>>>>
>>>>>>>             cache = new PathChildrenCache(client, PATH, true);
>>>>>>>             cache.start();
>>>>>>>
>>>>>>>             list(cache);
>>>>>>>
>>>>>>>
>>>>>>>                 for(;;) {
>>>>>>>                     try {
>>>>>>>                         Thread.sleep(50000);
>>>>>>>                     } catch(InterruptedException e) {
>>>>>>>                     }
>>>>>>>                 }
>>>>>>>
>>>>>>>             }
>>>>>>>              finally {
>>>>>>>                 CloseableUtils.closeQuietly(cache);
>>>>>>>              }
>>>>>>>         }
>>>>>>>
>>>>>>> On Wed, Mar 9, 2016 at 1:30 PM, Cameron McKenzie <
>>>>>>> mckenzie.cam@gmail.com> wrote:
>>>>>>>
>>>>>>>> I just tried running the example and it seems to work fine for me.
>>>>>>>> I assume that you modified the code in some way for it to run against a
>>>>>>>> proper ZK instance? Can you post it somewhere?
>>>>>>>>
>>>>>>>> On Thu, Mar 10, 2016 at 5:53 AM, s influxdb <el...@gmail.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>>
>>>>>>>>> ---------- Forwarded message ----------
>>>>>>>>> From: s influxdb <el...@gmail.com>
>>>>>>>>> Date: Wed, Mar 9, 2016 at 10:36 AM
>>>>>>>>> Subject: Re: curator pathcache
>>>>>>>>> To: Jordan Zimmerman <jo...@jordanzimmerman.com>
>>>>>>>>> Cc: user@curator.apache.org
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Sorry for posting this in a wrong forum the first time.
>>>>>>>>>
>>>>>>>>> I recreated a new project and was running the example code here
>>>>>>>>> for cache : http://curator.apache.org/curator-examples/index.html
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Today when i  try to replicathe NPE i am unable to do that .
>>>>>>>>> However when i call the  list(cache) it prints the size of the
>>>>>>>>> data in the node as 0. This works with NodeCache
>>>>>>>>>
>>>>>>>>> Curator libraries are 2.10 and zookeeper version 3.4.6.
>>>>>>>>>
>>>>>>>>> Ideally i would like to use TreeCache but it gave me NPE too. My
>>>>>>>>> use case is setting a watch on the entire znode in the cluster and be
>>>>>>>>> notified about it. Thanks for replying to the mail.
>>>>>>>>>
>>>>>>>>>     private static void list(PathChildrenCache cache)
>>>>>>>>>     {
>>>>>>>>>         if ( cache.getCurrentData().size() == 0 )
>>>>>>>>>         {
>>>>>>>>>             System.out.println("* empty *");
>>>>>>>>>         }
>>>>>>>>>         else
>>>>>>>>>         {
>>>>>>>>>             for ( ChildData data : cache.getCurrentData() )
>>>>>>>>>             {
>>>>>>>>>                 System.out.println(data.getPath() + " = " + new
>>>>>>>>> String(data.getData()));
>>>>>>>>>             }
>>>>>>>>>         }
>>>>>>>>>     }
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Wed, Mar 9, 2016 at 9:44 AM, Jordan Zimmerman <
>>>>>>>>> jordan@jordanzimmerman.com> wrote:
>>>>>>>>>
>>>>>>>>>> Moving this to Curator’s list…
>>>>>>>>>>
>>>>>>>>>> Where do you get the NPE? Please send the stacktrace.
>>>>>>>>>>
>>>>>>>>>> -Jordan
>>>>>>>>>>
>>>>>>>>>> > On Mar 8, 2016, at 8:27 PM, s influxdb <el...@gmail.com>
>>>>>>>>>> wrote:
>>>>>>>>>> >
>>>>>>>>>> > I am trying to run the path cahce and keep java NPE
>>>>>>>>>> >
>>>>>>>>>> > Running curator 2.9.0 libraries against a zookeeper 3.4.6
>>>>>>>>>> cluster
>>>>>>>>>> > Even
>>>>>>>>>> >
>>>>>>>>>> > The samples are taken from the curator examples .
>>>>>>>>>> >
>>>>>>>>>> >
>>>>>>>>>> >
>>>>>>>>>> >  public void run () throws Exception
>>>>>>>>>> >       {
>>>>>>>>>> >             try {
>>>>>>>>>> >
>>>>>>>>>> >                pcache = new PathChildrenCache(client, PATH,
>>>>>>>>>> true);
>>>>>>>>>> >             pcache.start();
>>>>>>>>>> >
>>>>>>>>>> >                addListener(cache);
>>>>>>>>>> >
>>>>>>>>>> >           //    list(pcache);
>>>>>>>>>> >
>>>>>>>>>> >               pcache.close();
>>>>>>>>>> >            }
>>>>>>>>>> >             finally {
>>>>>>>>>> >                CloseableUtils.closeQuietly(cache);
>>>>>>>>>> >             }
>>>>>>>>>> >        }
>>>>>>>>>> >
>>>>>>>>>> >
>>>>>>>>>> >      private static void addListener(PathChildrenCache cache)
>>>>>>>>>> >      {
>>>>>>>>>> >          // a PathChildrenCacheListener is optional. Here, it's
>>>>>>>>>> used just
>>>>>>>>>> > to log changes
>>>>>>>>>> >          PathChildrenCacheListener listener = new
>>>>>>>>>> > PathChildrenCacheListener()
>>>>>>>>>> >          {
>>>>>>>>>> >              @Override
>>>>>>>>>> >              public void childEvent(CuratorFramework client,
>>>>>>>>>> > PathChildrenCacheEvent event) throws Exception
>>>>>>>>>> >              {
>>>>>>>>>> >                  switch ( event.getType() )
>>>>>>>>>> >                  {
>>>>>>>>>> >                      case CHILD_ADDED:
>>>>>>>>>> >                      {
>>>>>>>>>> >                          System.out.println("Node added: " +
>>>>>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>>>>>>>> >                          break;
>>>>>>>>>> >                      }
>>>>>>>>>> >
>>>>>>>>>> >                      case CHILD_UPDATED:
>>>>>>>>>> >                      {
>>>>>>>>>> >                          System.out.println("Node changed: " +
>>>>>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>>>>>>>> >                          break;
>>>>>>>>>> >                      }
>>>>>>>>>> >
>>>>>>>>>> >                      case CHILD_REMOVED:
>>>>>>>>>> >                      {
>>>>>>>>>> >                          System.out.println("Node removed: " +
>>>>>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>>>>>>>> >                          break;
>>>>>>>>>> >                      }
>>>>>>>>>> >                  }
>>>>>>>>>> >              }
>>>>>>>>>> >          };
>>>>>>>>>> >          cache.getListenable().addListener(listener);
>>>>>>>>>> >      }
>>>>>>>>>> >
>>>>>>>>>> >
>>>>>>>>>> > Here running a list returns empty size all the time
>>>>>>>>>> >
>>>>>>>>>> >      private static void list(PathChildrenCache cache)
>>>>>>>>>> >        {
>>>>>>>>>> >
>>>>>>>>>> >            if ( cache.getCurrentData().size() == 0 )
>>>>>>>>>> >            {
>>>>>>>>>> >                System.out.println("* empty *");
>>>>>>>>>> >            }
>>>>>>>>>> >            else
>>>>>>>>>> >            {
>>>>>>>>>> >                for ( ChildData data : cache.getCurrentData() )
>>>>>>>>>> >                {
>>>>>>>>>> >                    System.out.println(data.getPath() + " = " +
>>>>>>>>>> new
>>>>>>>>>> > String(data.getData()));
>>>>>>>>>> >                }
>>>>>>>>>> >            }
>>>>>>>>>> >        }
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>

Re: curator pathcache

Posted by s influxdb <el...@gmail.com>.
I see the TestingServer class in  import
com.netflix.curator.test.TestingServer;

In the sample file i see it as import org.apache.curator.test.TestingServer;

Even then i get the below error while instantiating a TestingServer Class
Default constructor cannot handle exception type Exception thrown by
implicit super constructor. Must define an explicit constructor

Then i tried the TestingCluster class
static TestingCluster       server = new TestingCluster();

That gives me a class not found exception
Exception in thread "main" java.lang.NoClassDefFoundError:
javassist/NotFoundException
    at
com.netflix.curator.test.TestingCluster.<clinit>(TestingCluster.java:40)


On Wed, Mar 9, 2016 at 4:16 PM, Cameron McKenzie <mc...@gmail.com>
wrote:

> The TestingServer class is definitely in the curator-test jar, so you must
> have some issue with your build / IDE environment.
>
> On Thu, Mar 10, 2016 at 11:13 AM, s influxdb <el...@gmail.com>
> wrote:
>
>> I tried importing the curator-test artifcactid and it this import
>> org.apache.curator.test.TestingServer; doesn't resolve
>>
>> On Wed, Mar 9, 2016 at 2:58 PM, Cameron McKenzie <mc...@gmail.com>
>> wrote:
>>
>>> Can you try running the PathCacheExample unmodified? It uses a testing
>>> ZK server. But can you just confirm that this much works for you? Then
>>> maybe try and modify the sample so that it connects to your real ZK
>>> instance?
>>>
>>> On Thu, Mar 10, 2016 at 9:53 AM, s influxdb <el...@gmail.com>
>>> wrote:
>>>
>>>> i did try adding a sleep and got the same result
>>>>      cache.start();
>>>>             Thread.sleep(5000);
>>>>             list(cache);
>>>>
>>>> I am using curator libraries version 2.10 and zookeeper version 3..4.6
>>>>
>>>> On Wed, Mar 9, 2016 at 2:19 PM, Cameron McKenzie <
>>>> mckenzie.cam@gmail.com> wrote:
>>>>
>>>>> I think that you have a race condition between calling start() on your
>>>>> cache and calling list(). Calling list() just checks the current state of
>>>>> the cache. If it hasn't communicated with ZK yet, it won't have any data.
>>>>> Try putting in a sleep after the cache.start() call, before you call list().
>>>>>
>>>>> On Thu, Mar 10, 2016 at 9:16 AM, s influxdb <el...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> sure
>>>>>>
>>>>>> main class
>>>>>>     RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
>>>>>>             client = CuratorFrameworkFactory.newClient("10.x.x.x",
>>>>>> retryPolicy);
>>>>>>             client.start();
>>>>>>             SyncData sd = new SyncData(client);
>>>>>>             sd.run();
>>>>>>
>>>>>> the class that calls cache
>>>>>>
>>>>>> private static final String PATH = "/zktest";
>>>>>>
>>>>>>     public void run () throws Exception
>>>>>>        {
>>>>>>         try {
>>>>>>
>>>>>>             cache = new PathChildrenCache(client, PATH, true);
>>>>>>             cache.start();
>>>>>>
>>>>>>             list(cache);
>>>>>>
>>>>>>
>>>>>>                 for(;;) {
>>>>>>                     try {
>>>>>>                         Thread.sleep(50000);
>>>>>>                     } catch(InterruptedException e) {
>>>>>>                     }
>>>>>>                 }
>>>>>>
>>>>>>             }
>>>>>>              finally {
>>>>>>                 CloseableUtils.closeQuietly(cache);
>>>>>>              }
>>>>>>         }
>>>>>>
>>>>>> On Wed, Mar 9, 2016 at 1:30 PM, Cameron McKenzie <
>>>>>> mckenzie.cam@gmail.com> wrote:
>>>>>>
>>>>>>> I just tried running the example and it seems to work fine for me. I
>>>>>>> assume that you modified the code in some way for it to run against a
>>>>>>> proper ZK instance? Can you post it somewhere?
>>>>>>>
>>>>>>> On Thu, Mar 10, 2016 at 5:53 AM, s influxdb <el...@gmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>>
>>>>>>>> ---------- Forwarded message ----------
>>>>>>>> From: s influxdb <el...@gmail.com>
>>>>>>>> Date: Wed, Mar 9, 2016 at 10:36 AM
>>>>>>>> Subject: Re: curator pathcache
>>>>>>>> To: Jordan Zimmerman <jo...@jordanzimmerman.com>
>>>>>>>> Cc: user@curator.apache.org
>>>>>>>>
>>>>>>>>
>>>>>>>> Sorry for posting this in a wrong forum the first time.
>>>>>>>>
>>>>>>>> I recreated a new project and was running the example code here for
>>>>>>>> cache : http://curator.apache.org/curator-examples/index.html
>>>>>>>>
>>>>>>>>
>>>>>>>> Today when i  try to replicathe NPE i am unable to do that .
>>>>>>>> However when i call the  list(cache) it prints the size of the data
>>>>>>>> in the node as 0. This works with NodeCache
>>>>>>>>
>>>>>>>> Curator libraries are 2.10 and zookeeper version 3.4.6.
>>>>>>>>
>>>>>>>> Ideally i would like to use TreeCache but it gave me NPE too. My
>>>>>>>> use case is setting a watch on the entire znode in the cluster and be
>>>>>>>> notified about it. Thanks for replying to the mail.
>>>>>>>>
>>>>>>>>     private static void list(PathChildrenCache cache)
>>>>>>>>     {
>>>>>>>>         if ( cache.getCurrentData().size() == 0 )
>>>>>>>>         {
>>>>>>>>             System.out.println("* empty *");
>>>>>>>>         }
>>>>>>>>         else
>>>>>>>>         {
>>>>>>>>             for ( ChildData data : cache.getCurrentData() )
>>>>>>>>             {
>>>>>>>>                 System.out.println(data.getPath() + " = " + new
>>>>>>>> String(data.getData()));
>>>>>>>>             }
>>>>>>>>         }
>>>>>>>>     }
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Mar 9, 2016 at 9:44 AM, Jordan Zimmerman <
>>>>>>>> jordan@jordanzimmerman.com> wrote:
>>>>>>>>
>>>>>>>>> Moving this to Curator’s list…
>>>>>>>>>
>>>>>>>>> Where do you get the NPE? Please send the stacktrace.
>>>>>>>>>
>>>>>>>>> -Jordan
>>>>>>>>>
>>>>>>>>> > On Mar 8, 2016, at 8:27 PM, s influxdb <el...@gmail.com>
>>>>>>>>> wrote:
>>>>>>>>> >
>>>>>>>>> > I am trying to run the path cahce and keep java NPE
>>>>>>>>> >
>>>>>>>>> > Running curator 2.9.0 libraries against a zookeeper 3.4.6 cluster
>>>>>>>>> > Even
>>>>>>>>> >
>>>>>>>>> > The samples are taken from the curator examples .
>>>>>>>>> >
>>>>>>>>> >
>>>>>>>>> >
>>>>>>>>> >  public void run () throws Exception
>>>>>>>>> >       {
>>>>>>>>> >             try {
>>>>>>>>> >
>>>>>>>>> >                pcache = new PathChildrenCache(client, PATH,
>>>>>>>>> true);
>>>>>>>>> >             pcache.start();
>>>>>>>>> >
>>>>>>>>> >                addListener(cache);
>>>>>>>>> >
>>>>>>>>> >           //    list(pcache);
>>>>>>>>> >
>>>>>>>>> >               pcache.close();
>>>>>>>>> >            }
>>>>>>>>> >             finally {
>>>>>>>>> >                CloseableUtils.closeQuietly(cache);
>>>>>>>>> >             }
>>>>>>>>> >        }
>>>>>>>>> >
>>>>>>>>> >
>>>>>>>>> >      private static void addListener(PathChildrenCache cache)
>>>>>>>>> >      {
>>>>>>>>> >          // a PathChildrenCacheListener is optional. Here, it's
>>>>>>>>> used just
>>>>>>>>> > to log changes
>>>>>>>>> >          PathChildrenCacheListener listener = new
>>>>>>>>> > PathChildrenCacheListener()
>>>>>>>>> >          {
>>>>>>>>> >              @Override
>>>>>>>>> >              public void childEvent(CuratorFramework client,
>>>>>>>>> > PathChildrenCacheEvent event) throws Exception
>>>>>>>>> >              {
>>>>>>>>> >                  switch ( event.getType() )
>>>>>>>>> >                  {
>>>>>>>>> >                      case CHILD_ADDED:
>>>>>>>>> >                      {
>>>>>>>>> >                          System.out.println("Node added: " +
>>>>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>>>>>>> >                          break;
>>>>>>>>> >                      }
>>>>>>>>> >
>>>>>>>>> >                      case CHILD_UPDATED:
>>>>>>>>> >                      {
>>>>>>>>> >                          System.out.println("Node changed: " +
>>>>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>>>>>>> >                          break;
>>>>>>>>> >                      }
>>>>>>>>> >
>>>>>>>>> >                      case CHILD_REMOVED:
>>>>>>>>> >                      {
>>>>>>>>> >                          System.out.println("Node removed: " +
>>>>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>>>>>>> >                          break;
>>>>>>>>> >                      }
>>>>>>>>> >                  }
>>>>>>>>> >              }
>>>>>>>>> >          };
>>>>>>>>> >          cache.getListenable().addListener(listener);
>>>>>>>>> >      }
>>>>>>>>> >
>>>>>>>>> >
>>>>>>>>> > Here running a list returns empty size all the time
>>>>>>>>> >
>>>>>>>>> >      private static void list(PathChildrenCache cache)
>>>>>>>>> >        {
>>>>>>>>> >
>>>>>>>>> >            if ( cache.getCurrentData().size() == 0 )
>>>>>>>>> >            {
>>>>>>>>> >                System.out.println("* empty *");
>>>>>>>>> >            }
>>>>>>>>> >            else
>>>>>>>>> >            {
>>>>>>>>> >                for ( ChildData data : cache.getCurrentData() )
>>>>>>>>> >                {
>>>>>>>>> >                    System.out.println(data.getPath() + " = " +
>>>>>>>>> new
>>>>>>>>> > String(data.getData()));
>>>>>>>>> >                }
>>>>>>>>> >            }
>>>>>>>>> >        }
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>

Re: curator pathcache

Posted by Cameron McKenzie <mc...@gmail.com>.
The TestingServer class is definitely in the curator-test jar, so you must
have some issue with your build / IDE environment.

On Thu, Mar 10, 2016 at 11:13 AM, s influxdb <el...@gmail.com> wrote:

> I tried importing the curator-test artifcactid and it this import
> org.apache.curator.test.TestingServer; doesn't resolve
>
> On Wed, Mar 9, 2016 at 2:58 PM, Cameron McKenzie <mc...@gmail.com>
> wrote:
>
>> Can you try running the PathCacheExample unmodified? It uses a testing ZK
>> server. But can you just confirm that this much works for you? Then maybe
>> try and modify the sample so that it connects to your real ZK instance?
>>
>> On Thu, Mar 10, 2016 at 9:53 AM, s influxdb <el...@gmail.com>
>> wrote:
>>
>>> i did try adding a sleep and got the same result
>>>      cache.start();
>>>             Thread.sleep(5000);
>>>             list(cache);
>>>
>>> I am using curator libraries version 2.10 and zookeeper version 3..4.6
>>>
>>> On Wed, Mar 9, 2016 at 2:19 PM, Cameron McKenzie <mckenzie.cam@gmail.com
>>> > wrote:
>>>
>>>> I think that you have a race condition between calling start() on your
>>>> cache and calling list(). Calling list() just checks the current state of
>>>> the cache. If it hasn't communicated with ZK yet, it won't have any data.
>>>> Try putting in a sleep after the cache.start() call, before you call list().
>>>>
>>>> On Thu, Mar 10, 2016 at 9:16 AM, s influxdb <el...@gmail.com>
>>>> wrote:
>>>>
>>>>> sure
>>>>>
>>>>> main class
>>>>>     RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
>>>>>             client = CuratorFrameworkFactory.newClient("10.x.x.x",
>>>>> retryPolicy);
>>>>>             client.start();
>>>>>             SyncData sd = new SyncData(client);
>>>>>             sd.run();
>>>>>
>>>>> the class that calls cache
>>>>>
>>>>> private static final String PATH = "/zktest";
>>>>>
>>>>>     public void run () throws Exception
>>>>>        {
>>>>>         try {
>>>>>
>>>>>             cache = new PathChildrenCache(client, PATH, true);
>>>>>             cache.start();
>>>>>
>>>>>             list(cache);
>>>>>
>>>>>
>>>>>                 for(;;) {
>>>>>                     try {
>>>>>                         Thread.sleep(50000);
>>>>>                     } catch(InterruptedException e) {
>>>>>                     }
>>>>>                 }
>>>>>
>>>>>             }
>>>>>              finally {
>>>>>                 CloseableUtils.closeQuietly(cache);
>>>>>              }
>>>>>         }
>>>>>
>>>>> On Wed, Mar 9, 2016 at 1:30 PM, Cameron McKenzie <
>>>>> mckenzie.cam@gmail.com> wrote:
>>>>>
>>>>>> I just tried running the example and it seems to work fine for me. I
>>>>>> assume that you modified the code in some way for it to run against a
>>>>>> proper ZK instance? Can you post it somewhere?
>>>>>>
>>>>>> On Thu, Mar 10, 2016 at 5:53 AM, s influxdb <el...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>>
>>>>>>> ---------- Forwarded message ----------
>>>>>>> From: s influxdb <el...@gmail.com>
>>>>>>> Date: Wed, Mar 9, 2016 at 10:36 AM
>>>>>>> Subject: Re: curator pathcache
>>>>>>> To: Jordan Zimmerman <jo...@jordanzimmerman.com>
>>>>>>> Cc: user@curator.apache.org
>>>>>>>
>>>>>>>
>>>>>>> Sorry for posting this in a wrong forum the first time.
>>>>>>>
>>>>>>> I recreated a new project and was running the example code here for
>>>>>>> cache : http://curator.apache.org/curator-examples/index.html
>>>>>>>
>>>>>>>
>>>>>>> Today when i  try to replicathe NPE i am unable to do that .
>>>>>>> However when i call the  list(cache) it prints the size of the data
>>>>>>> in the node as 0. This works with NodeCache
>>>>>>>
>>>>>>> Curator libraries are 2.10 and zookeeper version 3.4.6.
>>>>>>>
>>>>>>> Ideally i would like to use TreeCache but it gave me NPE too. My use
>>>>>>> case is setting a watch on the entire znode in the cluster and be notified
>>>>>>> about it. Thanks for replying to the mail.
>>>>>>>
>>>>>>>     private static void list(PathChildrenCache cache)
>>>>>>>     {
>>>>>>>         if ( cache.getCurrentData().size() == 0 )
>>>>>>>         {
>>>>>>>             System.out.println("* empty *");
>>>>>>>         }
>>>>>>>         else
>>>>>>>         {
>>>>>>>             for ( ChildData data : cache.getCurrentData() )
>>>>>>>             {
>>>>>>>                 System.out.println(data.getPath() + " = " + new
>>>>>>> String(data.getData()));
>>>>>>>             }
>>>>>>>         }
>>>>>>>     }
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Wed, Mar 9, 2016 at 9:44 AM, Jordan Zimmerman <
>>>>>>> jordan@jordanzimmerman.com> wrote:
>>>>>>>
>>>>>>>> Moving this to Curator’s list…
>>>>>>>>
>>>>>>>> Where do you get the NPE? Please send the stacktrace.
>>>>>>>>
>>>>>>>> -Jordan
>>>>>>>>
>>>>>>>> > On Mar 8, 2016, at 8:27 PM, s influxdb <el...@gmail.com>
>>>>>>>> wrote:
>>>>>>>> >
>>>>>>>> > I am trying to run the path cahce and keep java NPE
>>>>>>>> >
>>>>>>>> > Running curator 2.9.0 libraries against a zookeeper 3.4.6 cluster
>>>>>>>> > Even
>>>>>>>> >
>>>>>>>> > The samples are taken from the curator examples .
>>>>>>>> >
>>>>>>>> >
>>>>>>>> >
>>>>>>>> >  public void run () throws Exception
>>>>>>>> >       {
>>>>>>>> >             try {
>>>>>>>> >
>>>>>>>> >                pcache = new PathChildrenCache(client, PATH, true);
>>>>>>>> >             pcache.start();
>>>>>>>> >
>>>>>>>> >                addListener(cache);
>>>>>>>> >
>>>>>>>> >           //    list(pcache);
>>>>>>>> >
>>>>>>>> >               pcache.close();
>>>>>>>> >            }
>>>>>>>> >             finally {
>>>>>>>> >                CloseableUtils.closeQuietly(cache);
>>>>>>>> >             }
>>>>>>>> >        }
>>>>>>>> >
>>>>>>>> >
>>>>>>>> >      private static void addListener(PathChildrenCache cache)
>>>>>>>> >      {
>>>>>>>> >          // a PathChildrenCacheListener is optional. Here, it's
>>>>>>>> used just
>>>>>>>> > to log changes
>>>>>>>> >          PathChildrenCacheListener listener = new
>>>>>>>> > PathChildrenCacheListener()
>>>>>>>> >          {
>>>>>>>> >              @Override
>>>>>>>> >              public void childEvent(CuratorFramework client,
>>>>>>>> > PathChildrenCacheEvent event) throws Exception
>>>>>>>> >              {
>>>>>>>> >                  switch ( event.getType() )
>>>>>>>> >                  {
>>>>>>>> >                      case CHILD_ADDED:
>>>>>>>> >                      {
>>>>>>>> >                          System.out.println("Node added: " +
>>>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>>>>>> >                          break;
>>>>>>>> >                      }
>>>>>>>> >
>>>>>>>> >                      case CHILD_UPDATED:
>>>>>>>> >                      {
>>>>>>>> >                          System.out.println("Node changed: " +
>>>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>>>>>> >                          break;
>>>>>>>> >                      }
>>>>>>>> >
>>>>>>>> >                      case CHILD_REMOVED:
>>>>>>>> >                      {
>>>>>>>> >                          System.out.println("Node removed: " +
>>>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>>>>>> >                          break;
>>>>>>>> >                      }
>>>>>>>> >                  }
>>>>>>>> >              }
>>>>>>>> >          };
>>>>>>>> >          cache.getListenable().addListener(listener);
>>>>>>>> >      }
>>>>>>>> >
>>>>>>>> >
>>>>>>>> > Here running a list returns empty size all the time
>>>>>>>> >
>>>>>>>> >      private static void list(PathChildrenCache cache)
>>>>>>>> >        {
>>>>>>>> >
>>>>>>>> >            if ( cache.getCurrentData().size() == 0 )
>>>>>>>> >            {
>>>>>>>> >                System.out.println("* empty *");
>>>>>>>> >            }
>>>>>>>> >            else
>>>>>>>> >            {
>>>>>>>> >                for ( ChildData data : cache.getCurrentData() )
>>>>>>>> >                {
>>>>>>>> >                    System.out.println(data.getPath() + " = " + new
>>>>>>>> > String(data.getData()));
>>>>>>>> >                }
>>>>>>>> >            }
>>>>>>>> >        }
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>

Re: curator pathcache

Posted by s influxdb <el...@gmail.com>.
I tried importing the curator-test artifcactid and it this import
org.apache.curator.test.TestingServer; doesn't resolve

On Wed, Mar 9, 2016 at 2:58 PM, Cameron McKenzie <mc...@gmail.com>
wrote:

> Can you try running the PathCacheExample unmodified? It uses a testing ZK
> server. But can you just confirm that this much works for you? Then maybe
> try and modify the sample so that it connects to your real ZK instance?
>
> On Thu, Mar 10, 2016 at 9:53 AM, s influxdb <el...@gmail.com> wrote:
>
>> i did try adding a sleep and got the same result
>>      cache.start();
>>             Thread.sleep(5000);
>>             list(cache);
>>
>> I am using curator libraries version 2.10 and zookeeper version 3..4.6
>>
>> On Wed, Mar 9, 2016 at 2:19 PM, Cameron McKenzie <mc...@gmail.com>
>> wrote:
>>
>>> I think that you have a race condition between calling start() on your
>>> cache and calling list(). Calling list() just checks the current state of
>>> the cache. If it hasn't communicated with ZK yet, it won't have any data.
>>> Try putting in a sleep after the cache.start() call, before you call list().
>>>
>>> On Thu, Mar 10, 2016 at 9:16 AM, s influxdb <el...@gmail.com>
>>> wrote:
>>>
>>>> sure
>>>>
>>>> main class
>>>>     RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
>>>>             client = CuratorFrameworkFactory.newClient("10.x.x.x",
>>>> retryPolicy);
>>>>             client.start();
>>>>             SyncData sd = new SyncData(client);
>>>>             sd.run();
>>>>
>>>> the class that calls cache
>>>>
>>>> private static final String PATH = "/zktest";
>>>>
>>>>     public void run () throws Exception
>>>>        {
>>>>         try {
>>>>
>>>>             cache = new PathChildrenCache(client, PATH, true);
>>>>             cache.start();
>>>>
>>>>             list(cache);
>>>>
>>>>
>>>>                 for(;;) {
>>>>                     try {
>>>>                         Thread.sleep(50000);
>>>>                     } catch(InterruptedException e) {
>>>>                     }
>>>>                 }
>>>>
>>>>             }
>>>>              finally {
>>>>                 CloseableUtils.closeQuietly(cache);
>>>>              }
>>>>         }
>>>>
>>>> On Wed, Mar 9, 2016 at 1:30 PM, Cameron McKenzie <
>>>> mckenzie.cam@gmail.com> wrote:
>>>>
>>>>> I just tried running the example and it seems to work fine for me. I
>>>>> assume that you modified the code in some way for it to run against a
>>>>> proper ZK instance? Can you post it somewhere?
>>>>>
>>>>> On Thu, Mar 10, 2016 at 5:53 AM, s influxdb <el...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>>
>>>>>> ---------- Forwarded message ----------
>>>>>> From: s influxdb <el...@gmail.com>
>>>>>> Date: Wed, Mar 9, 2016 at 10:36 AM
>>>>>> Subject: Re: curator pathcache
>>>>>> To: Jordan Zimmerman <jo...@jordanzimmerman.com>
>>>>>> Cc: user@curator.apache.org
>>>>>>
>>>>>>
>>>>>> Sorry for posting this in a wrong forum the first time.
>>>>>>
>>>>>> I recreated a new project and was running the example code here for
>>>>>> cache : http://curator.apache.org/curator-examples/index.html
>>>>>>
>>>>>>
>>>>>> Today when i  try to replicathe NPE i am unable to do that .
>>>>>> However when i call the  list(cache) it prints the size of the data
>>>>>> in the node as 0. This works with NodeCache
>>>>>>
>>>>>> Curator libraries are 2.10 and zookeeper version 3.4.6.
>>>>>>
>>>>>> Ideally i would like to use TreeCache but it gave me NPE too. My use
>>>>>> case is setting a watch on the entire znode in the cluster and be notified
>>>>>> about it. Thanks for replying to the mail.
>>>>>>
>>>>>>     private static void list(PathChildrenCache cache)
>>>>>>     {
>>>>>>         if ( cache.getCurrentData().size() == 0 )
>>>>>>         {
>>>>>>             System.out.println("* empty *");
>>>>>>         }
>>>>>>         else
>>>>>>         {
>>>>>>             for ( ChildData data : cache.getCurrentData() )
>>>>>>             {
>>>>>>                 System.out.println(data.getPath() + " = " + new
>>>>>> String(data.getData()));
>>>>>>             }
>>>>>>         }
>>>>>>     }
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Wed, Mar 9, 2016 at 9:44 AM, Jordan Zimmerman <
>>>>>> jordan@jordanzimmerman.com> wrote:
>>>>>>
>>>>>>> Moving this to Curator’s list…
>>>>>>>
>>>>>>> Where do you get the NPE? Please send the stacktrace.
>>>>>>>
>>>>>>> -Jordan
>>>>>>>
>>>>>>> > On Mar 8, 2016, at 8:27 PM, s influxdb <el...@gmail.com>
>>>>>>> wrote:
>>>>>>> >
>>>>>>> > I am trying to run the path cahce and keep java NPE
>>>>>>> >
>>>>>>> > Running curator 2.9.0 libraries against a zookeeper 3.4.6 cluster
>>>>>>> > Even
>>>>>>> >
>>>>>>> > The samples are taken from the curator examples .
>>>>>>> >
>>>>>>> >
>>>>>>> >
>>>>>>> >  public void run () throws Exception
>>>>>>> >       {
>>>>>>> >             try {
>>>>>>> >
>>>>>>> >                pcache = new PathChildrenCache(client, PATH, true);
>>>>>>> >             pcache.start();
>>>>>>> >
>>>>>>> >                addListener(cache);
>>>>>>> >
>>>>>>> >           //    list(pcache);
>>>>>>> >
>>>>>>> >               pcache.close();
>>>>>>> >            }
>>>>>>> >             finally {
>>>>>>> >                CloseableUtils.closeQuietly(cache);
>>>>>>> >             }
>>>>>>> >        }
>>>>>>> >
>>>>>>> >
>>>>>>> >      private static void addListener(PathChildrenCache cache)
>>>>>>> >      {
>>>>>>> >          // a PathChildrenCacheListener is optional. Here, it's
>>>>>>> used just
>>>>>>> > to log changes
>>>>>>> >          PathChildrenCacheListener listener = new
>>>>>>> > PathChildrenCacheListener()
>>>>>>> >          {
>>>>>>> >              @Override
>>>>>>> >              public void childEvent(CuratorFramework client,
>>>>>>> > PathChildrenCacheEvent event) throws Exception
>>>>>>> >              {
>>>>>>> >                  switch ( event.getType() )
>>>>>>> >                  {
>>>>>>> >                      case CHILD_ADDED:
>>>>>>> >                      {
>>>>>>> >                          System.out.println("Node added: " +
>>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>>>>> >                          break;
>>>>>>> >                      }
>>>>>>> >
>>>>>>> >                      case CHILD_UPDATED:
>>>>>>> >                      {
>>>>>>> >                          System.out.println("Node changed: " +
>>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>>>>> >                          break;
>>>>>>> >                      }
>>>>>>> >
>>>>>>> >                      case CHILD_REMOVED:
>>>>>>> >                      {
>>>>>>> >                          System.out.println("Node removed: " +
>>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>>>>> >                          break;
>>>>>>> >                      }
>>>>>>> >                  }
>>>>>>> >              }
>>>>>>> >          };
>>>>>>> >          cache.getListenable().addListener(listener);
>>>>>>> >      }
>>>>>>> >
>>>>>>> >
>>>>>>> > Here running a list returns empty size all the time
>>>>>>> >
>>>>>>> >      private static void list(PathChildrenCache cache)
>>>>>>> >        {
>>>>>>> >
>>>>>>> >            if ( cache.getCurrentData().size() == 0 )
>>>>>>> >            {
>>>>>>> >                System.out.println("* empty *");
>>>>>>> >            }
>>>>>>> >            else
>>>>>>> >            {
>>>>>>> >                for ( ChildData data : cache.getCurrentData() )
>>>>>>> >                {
>>>>>>> >                    System.out.println(data.getPath() + " = " + new
>>>>>>> > String(data.getData()));
>>>>>>> >                }
>>>>>>> >            }
>>>>>>> >        }
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>

Re: curator pathcache

Posted by Cameron McKenzie <mc...@gmail.com>.
Can you try running the PathCacheExample unmodified? It uses a testing ZK
server. But can you just confirm that this much works for you? Then maybe
try and modify the sample so that it connects to your real ZK instance?

On Thu, Mar 10, 2016 at 9:53 AM, s influxdb <el...@gmail.com> wrote:

> i did try adding a sleep and got the same result
>      cache.start();
>             Thread.sleep(5000);
>             list(cache);
>
> I am using curator libraries version 2.10 and zookeeper version 3..4.6
>
> On Wed, Mar 9, 2016 at 2:19 PM, Cameron McKenzie <mc...@gmail.com>
> wrote:
>
>> I think that you have a race condition between calling start() on your
>> cache and calling list(). Calling list() just checks the current state of
>> the cache. If it hasn't communicated with ZK yet, it won't have any data.
>> Try putting in a sleep after the cache.start() call, before you call list().
>>
>> On Thu, Mar 10, 2016 at 9:16 AM, s influxdb <el...@gmail.com>
>> wrote:
>>
>>> sure
>>>
>>> main class
>>>     RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
>>>             client = CuratorFrameworkFactory.newClient("10.x.x.x",
>>> retryPolicy);
>>>             client.start();
>>>             SyncData sd = new SyncData(client);
>>>             sd.run();
>>>
>>> the class that calls cache
>>>
>>> private static final String PATH = "/zktest";
>>>
>>>     public void run () throws Exception
>>>        {
>>>         try {
>>>
>>>             cache = new PathChildrenCache(client, PATH, true);
>>>             cache.start();
>>>
>>>             list(cache);
>>>
>>>
>>>                 for(;;) {
>>>                     try {
>>>                         Thread.sleep(50000);
>>>                     } catch(InterruptedException e) {
>>>                     }
>>>                 }
>>>
>>>             }
>>>              finally {
>>>                 CloseableUtils.closeQuietly(cache);
>>>              }
>>>         }
>>>
>>> On Wed, Mar 9, 2016 at 1:30 PM, Cameron McKenzie <mckenzie.cam@gmail.com
>>> > wrote:
>>>
>>>> I just tried running the example and it seems to work fine for me. I
>>>> assume that you modified the code in some way for it to run against a
>>>> proper ZK instance? Can you post it somewhere?
>>>>
>>>> On Thu, Mar 10, 2016 at 5:53 AM, s influxdb <el...@gmail.com>
>>>> wrote:
>>>>
>>>>>
>>>>> ---------- Forwarded message ----------
>>>>> From: s influxdb <el...@gmail.com>
>>>>> Date: Wed, Mar 9, 2016 at 10:36 AM
>>>>> Subject: Re: curator pathcache
>>>>> To: Jordan Zimmerman <jo...@jordanzimmerman.com>
>>>>> Cc: user@curator.apache.org
>>>>>
>>>>>
>>>>> Sorry for posting this in a wrong forum the first time.
>>>>>
>>>>> I recreated a new project and was running the example code here for
>>>>> cache : http://curator.apache.org/curator-examples/index.html
>>>>>
>>>>>
>>>>> Today when i  try to replicathe NPE i am unable to do that .
>>>>> However when i call the  list(cache) it prints the size of the data in
>>>>> the node as 0. This works with NodeCache
>>>>>
>>>>> Curator libraries are 2.10 and zookeeper version 3.4.6.
>>>>>
>>>>> Ideally i would like to use TreeCache but it gave me NPE too. My use
>>>>> case is setting a watch on the entire znode in the cluster and be notified
>>>>> about it. Thanks for replying to the mail.
>>>>>
>>>>>     private static void list(PathChildrenCache cache)
>>>>>     {
>>>>>         if ( cache.getCurrentData().size() == 0 )
>>>>>         {
>>>>>             System.out.println("* empty *");
>>>>>         }
>>>>>         else
>>>>>         {
>>>>>             for ( ChildData data : cache.getCurrentData() )
>>>>>             {
>>>>>                 System.out.println(data.getPath() + " = " + new
>>>>> String(data.getData()));
>>>>>             }
>>>>>         }
>>>>>     }
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Wed, Mar 9, 2016 at 9:44 AM, Jordan Zimmerman <
>>>>> jordan@jordanzimmerman.com> wrote:
>>>>>
>>>>>> Moving this to Curator’s list…
>>>>>>
>>>>>> Where do you get the NPE? Please send the stacktrace.
>>>>>>
>>>>>> -Jordan
>>>>>>
>>>>>> > On Mar 8, 2016, at 8:27 PM, s influxdb <el...@gmail.com>
>>>>>> wrote:
>>>>>> >
>>>>>> > I am trying to run the path cahce and keep java NPE
>>>>>> >
>>>>>> > Running curator 2.9.0 libraries against a zookeeper 3.4.6 cluster
>>>>>> > Even
>>>>>> >
>>>>>> > The samples are taken from the curator examples .
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> >  public void run () throws Exception
>>>>>> >       {
>>>>>> >             try {
>>>>>> >
>>>>>> >                pcache = new PathChildrenCache(client, PATH, true);
>>>>>> >             pcache.start();
>>>>>> >
>>>>>> >                addListener(cache);
>>>>>> >
>>>>>> >           //    list(pcache);
>>>>>> >
>>>>>> >               pcache.close();
>>>>>> >            }
>>>>>> >             finally {
>>>>>> >                CloseableUtils.closeQuietly(cache);
>>>>>> >             }
>>>>>> >        }
>>>>>> >
>>>>>> >
>>>>>> >      private static void addListener(PathChildrenCache cache)
>>>>>> >      {
>>>>>> >          // a PathChildrenCacheListener is optional. Here, it's
>>>>>> used just
>>>>>> > to log changes
>>>>>> >          PathChildrenCacheListener listener = new
>>>>>> > PathChildrenCacheListener()
>>>>>> >          {
>>>>>> >              @Override
>>>>>> >              public void childEvent(CuratorFramework client,
>>>>>> > PathChildrenCacheEvent event) throws Exception
>>>>>> >              {
>>>>>> >                  switch ( event.getType() )
>>>>>> >                  {
>>>>>> >                      case CHILD_ADDED:
>>>>>> >                      {
>>>>>> >                          System.out.println("Node added: " +
>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>>>> >                          break;
>>>>>> >                      }
>>>>>> >
>>>>>> >                      case CHILD_UPDATED:
>>>>>> >                      {
>>>>>> >                          System.out.println("Node changed: " +
>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>>>> >                          break;
>>>>>> >                      }
>>>>>> >
>>>>>> >                      case CHILD_REMOVED:
>>>>>> >                      {
>>>>>> >                          System.out.println("Node removed: " +
>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>>>> >                          break;
>>>>>> >                      }
>>>>>> >                  }
>>>>>> >              }
>>>>>> >          };
>>>>>> >          cache.getListenable().addListener(listener);
>>>>>> >      }
>>>>>> >
>>>>>> >
>>>>>> > Here running a list returns empty size all the time
>>>>>> >
>>>>>> >      private static void list(PathChildrenCache cache)
>>>>>> >        {
>>>>>> >
>>>>>> >            if ( cache.getCurrentData().size() == 0 )
>>>>>> >            {
>>>>>> >                System.out.println("* empty *");
>>>>>> >            }
>>>>>> >            else
>>>>>> >            {
>>>>>> >                for ( ChildData data : cache.getCurrentData() )
>>>>>> >                {
>>>>>> >                    System.out.println(data.getPath() + " = " + new
>>>>>> > String(data.getData()));
>>>>>> >                }
>>>>>> >            }
>>>>>> >        }
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>

Re: curator pathcache

Posted by s influxdb <el...@gmail.com>.
i did try adding a sleep and got the same result
     cache.start();
            Thread.sleep(5000);
            list(cache);

I am using curator libraries version 2.10 and zookeeper version 3..4.6

On Wed, Mar 9, 2016 at 2:19 PM, Cameron McKenzie <mc...@gmail.com>
wrote:

> I think that you have a race condition between calling start() on your
> cache and calling list(). Calling list() just checks the current state of
> the cache. If it hasn't communicated with ZK yet, it won't have any data.
> Try putting in a sleep after the cache.start() call, before you call list().
>
> On Thu, Mar 10, 2016 at 9:16 AM, s influxdb <el...@gmail.com> wrote:
>
>> sure
>>
>> main class
>>     RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
>>             client = CuratorFrameworkFactory.newClient("10.x.x.x",
>> retryPolicy);
>>             client.start();
>>             SyncData sd = new SyncData(client);
>>             sd.run();
>>
>> the class that calls cache
>>
>> private static final String PATH = "/zktest";
>>
>>     public void run () throws Exception
>>        {
>>         try {
>>
>>             cache = new PathChildrenCache(client, PATH, true);
>>             cache.start();
>>
>>             list(cache);
>>
>>
>>                 for(;;) {
>>                     try {
>>                         Thread.sleep(50000);
>>                     } catch(InterruptedException e) {
>>                     }
>>                 }
>>
>>             }
>>              finally {
>>                 CloseableUtils.closeQuietly(cache);
>>              }
>>         }
>>
>> On Wed, Mar 9, 2016 at 1:30 PM, Cameron McKenzie <mc...@gmail.com>
>> wrote:
>>
>>> I just tried running the example and it seems to work fine for me. I
>>> assume that you modified the code in some way for it to run against a
>>> proper ZK instance? Can you post it somewhere?
>>>
>>> On Thu, Mar 10, 2016 at 5:53 AM, s influxdb <el...@gmail.com>
>>> wrote:
>>>
>>>>
>>>> ---------- Forwarded message ----------
>>>> From: s influxdb <el...@gmail.com>
>>>> Date: Wed, Mar 9, 2016 at 10:36 AM
>>>> Subject: Re: curator pathcache
>>>> To: Jordan Zimmerman <jo...@jordanzimmerman.com>
>>>> Cc: user@curator.apache.org
>>>>
>>>>
>>>> Sorry for posting this in a wrong forum the first time.
>>>>
>>>> I recreated a new project and was running the example code here for
>>>> cache : http://curator.apache.org/curator-examples/index.html
>>>>
>>>>
>>>> Today when i  try to replicathe NPE i am unable to do that .
>>>> However when i call the  list(cache) it prints the size of the data in
>>>> the node as 0. This works with NodeCache
>>>>
>>>> Curator libraries are 2.10 and zookeeper version 3.4.6.
>>>>
>>>> Ideally i would like to use TreeCache but it gave me NPE too. My use
>>>> case is setting a watch on the entire znode in the cluster and be notified
>>>> about it. Thanks for replying to the mail.
>>>>
>>>>     private static void list(PathChildrenCache cache)
>>>>     {
>>>>         if ( cache.getCurrentData().size() == 0 )
>>>>         {
>>>>             System.out.println("* empty *");
>>>>         }
>>>>         else
>>>>         {
>>>>             for ( ChildData data : cache.getCurrentData() )
>>>>             {
>>>>                 System.out.println(data.getPath() + " = " + new
>>>> String(data.getData()));
>>>>             }
>>>>         }
>>>>     }
>>>>
>>>>
>>>>
>>>>
>>>> On Wed, Mar 9, 2016 at 9:44 AM, Jordan Zimmerman <
>>>> jordan@jordanzimmerman.com> wrote:
>>>>
>>>>> Moving this to Curator’s list…
>>>>>
>>>>> Where do you get the NPE? Please send the stacktrace.
>>>>>
>>>>> -Jordan
>>>>>
>>>>> > On Mar 8, 2016, at 8:27 PM, s influxdb <el...@gmail.com>
>>>>> wrote:
>>>>> >
>>>>> > I am trying to run the path cahce and keep java NPE
>>>>> >
>>>>> > Running curator 2.9.0 libraries against a zookeeper 3.4.6 cluster
>>>>> > Even
>>>>> >
>>>>> > The samples are taken from the curator examples .
>>>>> >
>>>>> >
>>>>> >
>>>>> >  public void run () throws Exception
>>>>> >       {
>>>>> >             try {
>>>>> >
>>>>> >                pcache = new PathChildrenCache(client, PATH, true);
>>>>> >             pcache.start();
>>>>> >
>>>>> >                addListener(cache);
>>>>> >
>>>>> >           //    list(pcache);
>>>>> >
>>>>> >               pcache.close();
>>>>> >            }
>>>>> >             finally {
>>>>> >                CloseableUtils.closeQuietly(cache);
>>>>> >             }
>>>>> >        }
>>>>> >
>>>>> >
>>>>> >      private static void addListener(PathChildrenCache cache)
>>>>> >      {
>>>>> >          // a PathChildrenCacheListener is optional. Here, it's used
>>>>> just
>>>>> > to log changes
>>>>> >          PathChildrenCacheListener listener = new
>>>>> > PathChildrenCacheListener()
>>>>> >          {
>>>>> >              @Override
>>>>> >              public void childEvent(CuratorFramework client,
>>>>> > PathChildrenCacheEvent event) throws Exception
>>>>> >              {
>>>>> >                  switch ( event.getType() )
>>>>> >                  {
>>>>> >                      case CHILD_ADDED:
>>>>> >                      {
>>>>> >                          System.out.println("Node added: " +
>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>>> >                          break;
>>>>> >                      }
>>>>> >
>>>>> >                      case CHILD_UPDATED:
>>>>> >                      {
>>>>> >                          System.out.println("Node changed: " +
>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>>> >                          break;
>>>>> >                      }
>>>>> >
>>>>> >                      case CHILD_REMOVED:
>>>>> >                      {
>>>>> >                          System.out.println("Node removed: " +
>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>>> >                          break;
>>>>> >                      }
>>>>> >                  }
>>>>> >              }
>>>>> >          };
>>>>> >          cache.getListenable().addListener(listener);
>>>>> >      }
>>>>> >
>>>>> >
>>>>> > Here running a list returns empty size all the time
>>>>> >
>>>>> >      private static void list(PathChildrenCache cache)
>>>>> >        {
>>>>> >
>>>>> >            if ( cache.getCurrentData().size() == 0 )
>>>>> >            {
>>>>> >                System.out.println("* empty *");
>>>>> >            }
>>>>> >            else
>>>>> >            {
>>>>> >                for ( ChildData data : cache.getCurrentData() )
>>>>> >                {
>>>>> >                    System.out.println(data.getPath() + " = " + new
>>>>> > String(data.getData()));
>>>>> >                }
>>>>> >            }
>>>>> >        }
>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>

Re: curator pathcache

Posted by Cameron McKenzie <mc...@gmail.com>.
I think that you have a race condition between calling start() on your
cache and calling list(). Calling list() just checks the current state of
the cache. If it hasn't communicated with ZK yet, it won't have any data.
Try putting in a sleep after the cache.start() call, before you call list().

On Thu, Mar 10, 2016 at 9:16 AM, s influxdb <el...@gmail.com> wrote:

> sure
>
> main class
>     RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
>             client = CuratorFrameworkFactory.newClient("10.x.x.x",
> retryPolicy);
>             client.start();
>             SyncData sd = new SyncData(client);
>             sd.run();
>
> the class that calls cache
>
> private static final String PATH = "/zktest";
>
>     public void run () throws Exception
>        {
>         try {
>
>             cache = new PathChildrenCache(client, PATH, true);
>             cache.start();
>
>             list(cache);
>
>
>                 for(;;) {
>                     try {
>                         Thread.sleep(50000);
>                     } catch(InterruptedException e) {
>                     }
>                 }
>
>             }
>              finally {
>                 CloseableUtils.closeQuietly(cache);
>              }
>         }
>
> On Wed, Mar 9, 2016 at 1:30 PM, Cameron McKenzie <mc...@gmail.com>
> wrote:
>
>> I just tried running the example and it seems to work fine for me. I
>> assume that you modified the code in some way for it to run against a
>> proper ZK instance? Can you post it somewhere?
>>
>> On Thu, Mar 10, 2016 at 5:53 AM, s influxdb <el...@gmail.com>
>> wrote:
>>
>>>
>>> ---------- Forwarded message ----------
>>> From: s influxdb <el...@gmail.com>
>>> Date: Wed, Mar 9, 2016 at 10:36 AM
>>> Subject: Re: curator pathcache
>>> To: Jordan Zimmerman <jo...@jordanzimmerman.com>
>>> Cc: user@curator.apache.org
>>>
>>>
>>> Sorry for posting this in a wrong forum the first time.
>>>
>>> I recreated a new project and was running the example code here for
>>> cache : http://curator.apache.org/curator-examples/index.html
>>>
>>>
>>> Today when i  try to replicathe NPE i am unable to do that .
>>> However when i call the  list(cache) it prints the size of the data in
>>> the node as 0. This works with NodeCache
>>>
>>> Curator libraries are 2.10 and zookeeper version 3.4.6.
>>>
>>> Ideally i would like to use TreeCache but it gave me NPE too. My use
>>> case is setting a watch on the entire znode in the cluster and be notified
>>> about it. Thanks for replying to the mail.
>>>
>>>     private static void list(PathChildrenCache cache)
>>>     {
>>>         if ( cache.getCurrentData().size() == 0 )
>>>         {
>>>             System.out.println("* empty *");
>>>         }
>>>         else
>>>         {
>>>             for ( ChildData data : cache.getCurrentData() )
>>>             {
>>>                 System.out.println(data.getPath() + " = " + new
>>> String(data.getData()));
>>>             }
>>>         }
>>>     }
>>>
>>>
>>>
>>>
>>> On Wed, Mar 9, 2016 at 9:44 AM, Jordan Zimmerman <
>>> jordan@jordanzimmerman.com> wrote:
>>>
>>>> Moving this to Curator’s list…
>>>>
>>>> Where do you get the NPE? Please send the stacktrace.
>>>>
>>>> -Jordan
>>>>
>>>> > On Mar 8, 2016, at 8:27 PM, s influxdb <el...@gmail.com> wrote:
>>>> >
>>>> > I am trying to run the path cahce and keep java NPE
>>>> >
>>>> > Running curator 2.9.0 libraries against a zookeeper 3.4.6 cluster
>>>> > Even
>>>> >
>>>> > The samples are taken from the curator examples .
>>>> >
>>>> >
>>>> >
>>>> >  public void run () throws Exception
>>>> >       {
>>>> >             try {
>>>> >
>>>> >                pcache = new PathChildrenCache(client, PATH, true);
>>>> >             pcache.start();
>>>> >
>>>> >                addListener(cache);
>>>> >
>>>> >           //    list(pcache);
>>>> >
>>>> >               pcache.close();
>>>> >            }
>>>> >             finally {
>>>> >                CloseableUtils.closeQuietly(cache);
>>>> >             }
>>>> >        }
>>>> >
>>>> >
>>>> >      private static void addListener(PathChildrenCache cache)
>>>> >      {
>>>> >          // a PathChildrenCacheListener is optional. Here, it's used
>>>> just
>>>> > to log changes
>>>> >          PathChildrenCacheListener listener = new
>>>> > PathChildrenCacheListener()
>>>> >          {
>>>> >              @Override
>>>> >              public void childEvent(CuratorFramework client,
>>>> > PathChildrenCacheEvent event) throws Exception
>>>> >              {
>>>> >                  switch ( event.getType() )
>>>> >                  {
>>>> >                      case CHILD_ADDED:
>>>> >                      {
>>>> >                          System.out.println("Node added: " +
>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>> >                          break;
>>>> >                      }
>>>> >
>>>> >                      case CHILD_UPDATED:
>>>> >                      {
>>>> >                          System.out.println("Node changed: " +
>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>> >                          break;
>>>> >                      }
>>>> >
>>>> >                      case CHILD_REMOVED:
>>>> >                      {
>>>> >                          System.out.println("Node removed: " +
>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>> >                          break;
>>>> >                      }
>>>> >                  }
>>>> >              }
>>>> >          };
>>>> >          cache.getListenable().addListener(listener);
>>>> >      }
>>>> >
>>>> >
>>>> > Here running a list returns empty size all the time
>>>> >
>>>> >      private static void list(PathChildrenCache cache)
>>>> >        {
>>>> >
>>>> >            if ( cache.getCurrentData().size() == 0 )
>>>> >            {
>>>> >                System.out.println("* empty *");
>>>> >            }
>>>> >            else
>>>> >            {
>>>> >                for ( ChildData data : cache.getCurrentData() )
>>>> >                {
>>>> >                    System.out.println(data.getPath() + " = " + new
>>>> > String(data.getData()));
>>>> >                }
>>>> >            }
>>>> >        }
>>>>
>>>>
>>>
>>>
>>
>

Re: curator pathcache

Posted by s influxdb <el...@gmail.com>.
sure

main class
    RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
            client = CuratorFrameworkFactory.newClient("10.x.x.x",
retryPolicy);
            client.start();
            SyncData sd = new SyncData(client);
            sd.run();

the class that calls cache

private static final String PATH = "/zktest";

    public void run () throws Exception
       {
        try {

            cache = new PathChildrenCache(client, PATH, true);
            cache.start();

            list(cache);


                for(;;) {
                    try {
                        Thread.sleep(50000);
                    } catch(InterruptedException e) {
                    }
                }

            }
             finally {
                CloseableUtils.closeQuietly(cache);
             }
        }

On Wed, Mar 9, 2016 at 1:30 PM, Cameron McKenzie <mc...@gmail.com>
wrote:

> I just tried running the example and it seems to work fine for me. I
> assume that you modified the code in some way for it to run against a
> proper ZK instance? Can you post it somewhere?
>
> On Thu, Mar 10, 2016 at 5:53 AM, s influxdb <el...@gmail.com> wrote:
>
>>
>> ---------- Forwarded message ----------
>> From: s influxdb <el...@gmail.com>
>> Date: Wed, Mar 9, 2016 at 10:36 AM
>> Subject: Re: curator pathcache
>> To: Jordan Zimmerman <jo...@jordanzimmerman.com>
>> Cc: user@curator.apache.org
>>
>>
>> Sorry for posting this in a wrong forum the first time.
>>
>> I recreated a new project and was running the example code here for cache
>> : http://curator.apache.org/curator-examples/index.html
>>
>>
>> Today when i  try to replicathe NPE i am unable to do that .
>> However when i call the  list(cache) it prints the size of the data in
>> the node as 0. This works with NodeCache
>>
>> Curator libraries are 2.10 and zookeeper version 3.4.6.
>>
>> Ideally i would like to use TreeCache but it gave me NPE too. My use case
>> is setting a watch on the entire znode in the cluster and be notified about
>> it. Thanks for replying to the mail.
>>
>>     private static void list(PathChildrenCache cache)
>>     {
>>         if ( cache.getCurrentData().size() == 0 )
>>         {
>>             System.out.println("* empty *");
>>         }
>>         else
>>         {
>>             for ( ChildData data : cache.getCurrentData() )
>>             {
>>                 System.out.println(data.getPath() + " = " + new
>> String(data.getData()));
>>             }
>>         }
>>     }
>>
>>
>>
>>
>> On Wed, Mar 9, 2016 at 9:44 AM, Jordan Zimmerman <
>> jordan@jordanzimmerman.com> wrote:
>>
>>> Moving this to Curator’s list…
>>>
>>> Where do you get the NPE? Please send the stacktrace.
>>>
>>> -Jordan
>>>
>>> > On Mar 8, 2016, at 8:27 PM, s influxdb <el...@gmail.com> wrote:
>>> >
>>> > I am trying to run the path cahce and keep java NPE
>>> >
>>> > Running curator 2.9.0 libraries against a zookeeper 3.4.6 cluster
>>> > Even
>>> >
>>> > The samples are taken from the curator examples .
>>> >
>>> >
>>> >
>>> >  public void run () throws Exception
>>> >       {
>>> >             try {
>>> >
>>> >                pcache = new PathChildrenCache(client, PATH, true);
>>> >             pcache.start();
>>> >
>>> >                addListener(cache);
>>> >
>>> >           //    list(pcache);
>>> >
>>> >               pcache.close();
>>> >            }
>>> >             finally {
>>> >                CloseableUtils.closeQuietly(cache);
>>> >             }
>>> >        }
>>> >
>>> >
>>> >      private static void addListener(PathChildrenCache cache)
>>> >      {
>>> >          // a PathChildrenCacheListener is optional. Here, it's used
>>> just
>>> > to log changes
>>> >          PathChildrenCacheListener listener = new
>>> > PathChildrenCacheListener()
>>> >          {
>>> >              @Override
>>> >              public void childEvent(CuratorFramework client,
>>> > PathChildrenCacheEvent event) throws Exception
>>> >              {
>>> >                  switch ( event.getType() )
>>> >                  {
>>> >                      case CHILD_ADDED:
>>> >                      {
>>> >                          System.out.println("Node added: " +
>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>> >                          break;
>>> >                      }
>>> >
>>> >                      case CHILD_UPDATED:
>>> >                      {
>>> >                          System.out.println("Node changed: " +
>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>> >                          break;
>>> >                      }
>>> >
>>> >                      case CHILD_REMOVED:
>>> >                      {
>>> >                          System.out.println("Node removed: " +
>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>> >                          break;
>>> >                      }
>>> >                  }
>>> >              }
>>> >          };
>>> >          cache.getListenable().addListener(listener);
>>> >      }
>>> >
>>> >
>>> > Here running a list returns empty size all the time
>>> >
>>> >      private static void list(PathChildrenCache cache)
>>> >        {
>>> >
>>> >            if ( cache.getCurrentData().size() == 0 )
>>> >            {
>>> >                System.out.println("* empty *");
>>> >            }
>>> >            else
>>> >            {
>>> >                for ( ChildData data : cache.getCurrentData() )
>>> >                {
>>> >                    System.out.println(data.getPath() + " = " + new
>>> > String(data.getData()));
>>> >                }
>>> >            }
>>> >        }
>>>
>>>
>>
>>
>

Re: curator pathcache

Posted by Cameron McKenzie <mc...@gmail.com>.
I just tried running the example and it seems to work fine for me. I assume
that you modified the code in some way for it to run against a proper ZK
instance? Can you post it somewhere?

On Thu, Mar 10, 2016 at 5:53 AM, s influxdb <el...@gmail.com> wrote:

>
> ---------- Forwarded message ----------
> From: s influxdb <el...@gmail.com>
> Date: Wed, Mar 9, 2016 at 10:36 AM
> Subject: Re: curator pathcache
> To: Jordan Zimmerman <jo...@jordanzimmerman.com>
> Cc: user@curator.apache.org
>
>
> Sorry for posting this in a wrong forum the first time.
>
> I recreated a new project and was running the example code here for cache
> : http://curator.apache.org/curator-examples/index.html
>
>
> Today when i  try to replicathe NPE i am unable to do that .
> However when i call the  list(cache) it prints the size of the data in the
> node as 0. This works with NodeCache
>
> Curator libraries are 2.10 and zookeeper version 3.4.6.
>
> Ideally i would like to use TreeCache but it gave me NPE too. My use case
> is setting a watch on the entire znode in the cluster and be notified about
> it. Thanks for replying to the mail.
>
>     private static void list(PathChildrenCache cache)
>     {
>         if ( cache.getCurrentData().size() == 0 )
>         {
>             System.out.println("* empty *");
>         }
>         else
>         {
>             for ( ChildData data : cache.getCurrentData() )
>             {
>                 System.out.println(data.getPath() + " = " + new
> String(data.getData()));
>             }
>         }
>     }
>
>
>
>
> On Wed, Mar 9, 2016 at 9:44 AM, Jordan Zimmerman <
> jordan@jordanzimmerman.com> wrote:
>
>> Moving this to Curator’s list…
>>
>> Where do you get the NPE? Please send the stacktrace.
>>
>> -Jordan
>>
>> > On Mar 8, 2016, at 8:27 PM, s influxdb <el...@gmail.com> wrote:
>> >
>> > I am trying to run the path cahce and keep java NPE
>> >
>> > Running curator 2.9.0 libraries against a zookeeper 3.4.6 cluster
>> > Even
>> >
>> > The samples are taken from the curator examples .
>> >
>> >
>> >
>> >  public void run () throws Exception
>> >       {
>> >             try {
>> >
>> >                pcache = new PathChildrenCache(client, PATH, true);
>> >             pcache.start();
>> >
>> >                addListener(cache);
>> >
>> >           //    list(pcache);
>> >
>> >               pcache.close();
>> >            }
>> >             finally {
>> >                CloseableUtils.closeQuietly(cache);
>> >             }
>> >        }
>> >
>> >
>> >      private static void addListener(PathChildrenCache cache)
>> >      {
>> >          // a PathChildrenCacheListener is optional. Here, it's used
>> just
>> > to log changes
>> >          PathChildrenCacheListener listener = new
>> > PathChildrenCacheListener()
>> >          {
>> >              @Override
>> >              public void childEvent(CuratorFramework client,
>> > PathChildrenCacheEvent event) throws Exception
>> >              {
>> >                  switch ( event.getType() )
>> >                  {
>> >                      case CHILD_ADDED:
>> >                      {
>> >                          System.out.println("Node added: " +
>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>> >                          break;
>> >                      }
>> >
>> >                      case CHILD_UPDATED:
>> >                      {
>> >                          System.out.println("Node changed: " +
>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>> >                          break;
>> >                      }
>> >
>> >                      case CHILD_REMOVED:
>> >                      {
>> >                          System.out.println("Node removed: " +
>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>> >                          break;
>> >                      }
>> >                  }
>> >              }
>> >          };
>> >          cache.getListenable().addListener(listener);
>> >      }
>> >
>> >
>> > Here running a list returns empty size all the time
>> >
>> >      private static void list(PathChildrenCache cache)
>> >        {
>> >
>> >            if ( cache.getCurrentData().size() == 0 )
>> >            {
>> >                System.out.println("* empty *");
>> >            }
>> >            else
>> >            {
>> >                for ( ChildData data : cache.getCurrentData() )
>> >                {
>> >                    System.out.println(data.getPath() + " = " + new
>> > String(data.getData()));
>> >                }
>> >            }
>> >        }
>>
>>
>
>

Fwd: curator pathcache

Posted by s influxdb <el...@gmail.com>.
---------- Forwarded message ----------
From: s influxdb <el...@gmail.com>
Date: Wed, Mar 9, 2016 at 10:36 AM
Subject: Re: curator pathcache
To: Jordan Zimmerman <jo...@jordanzimmerman.com>
Cc: user@curator.apache.org


Sorry for posting this in a wrong forum the first time.

I recreated a new project and was running the example code here for cache :
http://curator.apache.org/curator-examples/index.html


Today when i  try to replicathe NPE i am unable to do that .
However when i call the  list(cache) it prints the size of the data in the
node as 0. This works with NodeCache

Curator libraries are 2.10 and zookeeper version 3.4.6.

Ideally i would like to use TreeCache but it gave me NPE too. My use case
is setting a watch on the entire znode in the cluster and be notified about
it. Thanks for replying to the mail.

    private static void list(PathChildrenCache cache)
    {
        if ( cache.getCurrentData().size() == 0 )
        {
            System.out.println("* empty *");
        }
        else
        {
            for ( ChildData data : cache.getCurrentData() )
            {
                System.out.println(data.getPath() + " = " + new
String(data.getData()));
            }
        }
    }




On Wed, Mar 9, 2016 at 9:44 AM, Jordan Zimmerman <jordan@jordanzimmerman.com
> wrote:

> Moving this to Curator’s list…
>
> Where do you get the NPE? Please send the stacktrace.
>
> -Jordan
>
> > On Mar 8, 2016, at 8:27 PM, s influxdb <el...@gmail.com> wrote:
> >
> > I am trying to run the path cahce and keep java NPE
> >
> > Running curator 2.9.0 libraries against a zookeeper 3.4.6 cluster
> > Even
> >
> > The samples are taken from the curator examples .
> >
> >
> >
> >  public void run () throws Exception
> >       {
> >             try {
> >
> >                pcache = new PathChildrenCache(client, PATH, true);
> >             pcache.start();
> >
> >                addListener(cache);
> >
> >           //    list(pcache);
> >
> >               pcache.close();
> >            }
> >             finally {
> >                CloseableUtils.closeQuietly(cache);
> >             }
> >        }
> >
> >
> >      private static void addListener(PathChildrenCache cache)
> >      {
> >          // a PathChildrenCacheListener is optional. Here, it's used just
> > to log changes
> >          PathChildrenCacheListener listener = new
> > PathChildrenCacheListener()
> >          {
> >              @Override
> >              public void childEvent(CuratorFramework client,
> > PathChildrenCacheEvent event) throws Exception
> >              {
> >                  switch ( event.getType() )
> >                  {
> >                      case CHILD_ADDED:
> >                      {
> >                          System.out.println("Node added: " +
> > ZKPaths.getNodeFromPath(event.getData().getPath()));
> >                          break;
> >                      }
> >
> >                      case CHILD_UPDATED:
> >                      {
> >                          System.out.println("Node changed: " +
> > ZKPaths.getNodeFromPath(event.getData().getPath()));
> >                          break;
> >                      }
> >
> >                      case CHILD_REMOVED:
> >                      {
> >                          System.out.println("Node removed: " +
> > ZKPaths.getNodeFromPath(event.getData().getPath()));
> >                          break;
> >                      }
> >                  }
> >              }
> >          };
> >          cache.getListenable().addListener(listener);
> >      }
> >
> >
> > Here running a list returns empty size all the time
> >
> >      private static void list(PathChildrenCache cache)
> >        {
> >
> >            if ( cache.getCurrentData().size() == 0 )
> >            {
> >                System.out.println("* empty *");
> >            }
> >            else
> >            {
> >                for ( ChildData data : cache.getCurrentData() )
> >                {
> >                    System.out.println(data.getPath() + " = " + new
> > String(data.getData()));
> >                }
> >            }
> >        }
>
>