This was fixed in 2.3.0

https://issues.apache.org/jira/browse/CURATOR-19

-JZ

From: Sznajder ForMailingList Sznajder ForMailingList
Reply: [email protected] [email protected]
Date: January 9, 2014 at 11:06:42 AM
To: [email protected] [email protected]
Subject:  Error thrown using the InterprocessSemaphoreV2#getParticipantsNodes() 
 
Hi

When calling the method getParticipantsNodes() from InterprocessSemaphoreV2, we 
systematically get a org.apache.zookeeper.KeeperException$NoNodeException

I created a simple test for showing that..

Benjamin






package counter.semaphore;

import java.util.Collection;

import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.recipes.locks.InterProcessSemaphoreV2;
import org.apache.curator.framework.recipes.locks.Lease;
import org.apache.curator.test.TestingServer;

import com.ibm.hrl.crawler.Utils;

public class SemaphoreErrorTest {
    private static final String PATH = "/semaphore_test_path";

    public static void main(String[] args) {
        TestingServer server;
        try {
            server = new TestingServer();
            String connectString = server.getConnectString();
           
            final CuratorFramework framework = 
Utils.newFramework(connectString);
            framework.start();
           
            // We create a semaphore:
            InterProcessSemaphoreV2 semaphore = new 
InterProcessSemaphoreV2(framework, PATH, 2);
           
            // We acquire the semaphore
            Lease lease = null;
            try {
                lease = semaphore.acquire();
               
                try {
                    Collection<String> participantNodes = 
semaphore.getParticipantNodes();
                    System.out.println("There are " + participantNodes == null 
? 0 : participantNodes.size() + " participant nodes");
                } catch (Exception e) {
                    System.err.println("!! - Error! I got the following 
exception " + e);
                }
               
            } finally {
                if (lease != null) {
                    semaphore.returnLease(lease);
                }
            }
           
           
            framework.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Reply via email to