curator-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From s influxdb <elastic....@gmail.com>
Subject Re: curator pathcache
Date Wed, 09 Mar 2016 22:53:29 GMT
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 <elastic.l.k@gmail.com>
>>>> Date: Wed, Mar 9, 2016 at 10:36 AM
>>>> Subject: Re: curator pathcache
>>>> To: Jordan Zimmerman <jordan@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()));
>>>>> >                }
>>>>> >            }
>>>>> >        }
>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>

Mime
View raw message