List of usage examples for org.apache.zookeeper KeeperException create
public static KeeperException create(Code code)
From source file:org.apache.curator.x.async.details.AsyncResultImpl.java
License:Apache License
@Override public void checkError() { checkException();/* www .j a v a 2s . c o m*/ if (code != KeeperException.Code.OK) { throw new RuntimeException(KeeperException.create(code)); } }
From source file:org.apache.distributedlog.bk.SimpleLedgerAllocator.java
License:Apache License
private static CompletableFuture<Versioned<byte[]>> createAllocationData(final String allocatePath, final ZooKeeperClient zkc) { try {//from w w w . ja v a2 s . c o m final CompletableFuture<Versioned<byte[]>> promise = new CompletableFuture<Versioned<byte[]>>(); zkc.get().create(allocatePath, DistributedLogConstants.EMPTY_BYTES, zkc.getDefaultACL(), CreateMode.PERSISTENT, new org.apache.zookeeper.AsyncCallback.Create2Callback() { @Override public void processResult(int rc, String path, Object ctx, String name, Stat stat) { if (KeeperException.Code.OK.intValue() == rc) { promise.complete(new Versioned<byte[]>(DistributedLogConstants.EMPTY_BYTES, new LongVersion(stat.getVersion()))); } else if (KeeperException.Code.NODEEXISTS.intValue() == rc) { FutureUtils.proxyTo(Utils.zkGetData(zkc, allocatePath, false), promise); } else { promise.completeExceptionally(Utils.zkException( KeeperException.create(KeeperException.Code.get(rc)), allocatePath)); } } }, null); return promise; } catch (ZooKeeperClient.ZooKeeperConnectionException e) { return FutureUtils.exception(Utils.zkException(e, allocatePath)); } catch (InterruptedException e) { return FutureUtils.exception(Utils.zkException(e, allocatePath)); } }
From source file:org.apache.distributedlog.impl.acl.ZKAccessControl.java
License:Apache License
public CompletableFuture<ZKAccessControl> create(ZooKeeperClient zkc) { final CompletableFuture<ZKAccessControl> promise = new CompletableFuture<ZKAccessControl>(); try {//from w w w.j av a 2s . c o m zkc.get().create(zkPath, serialize(accessControlEntry), zkc.getDefaultACL(), CreateMode.PERSISTENT, new AsyncCallback.StringCallback() { @Override public void processResult(int rc, String path, Object ctx, String name) { if (KeeperException.Code.OK.intValue() == rc) { ZKAccessControl.this.zkVersion = 0; promise.complete(ZKAccessControl.this); } else { promise.completeExceptionally(KeeperException.create(KeeperException.Code.get(rc))); } } }, null); } catch (ZooKeeperClient.ZooKeeperConnectionException e) { promise.completeExceptionally(e); } catch (InterruptedException e) { promise.completeExceptionally(e); } catch (IOException e) { promise.completeExceptionally(e); } return promise; }
From source file:org.apache.distributedlog.impl.acl.ZKAccessControl.java
License:Apache License
public CompletableFuture<ZKAccessControl> update(ZooKeeperClient zkc) { final CompletableFuture<ZKAccessControl> promise = new CompletableFuture<ZKAccessControl>(); try {/*from w w w .ja v a2 s . com*/ zkc.get().setData(zkPath, serialize(accessControlEntry), zkVersion, new AsyncCallback.StatCallback() { @Override public void processResult(int rc, String path, Object ctx, Stat stat) { if (KeeperException.Code.OK.intValue() == rc) { ZKAccessControl.this.zkVersion = stat.getVersion(); promise.complete(ZKAccessControl.this); } else { promise.completeExceptionally(KeeperException.create(KeeperException.Code.get(rc))); } } }, null); } catch (ZooKeeperClient.ZooKeeperConnectionException e) { promise.completeExceptionally(e); } catch (InterruptedException e) { promise.completeExceptionally(e); } catch (IOException e) { promise.completeExceptionally(e); } return promise; }
From source file:org.apache.distributedlog.impl.acl.ZKAccessControl.java
License:Apache License
public static CompletableFuture<ZKAccessControl> read(final ZooKeeperClient zkc, final String zkPath, Watcher watcher) {/* w ww .j a v a 2 s . c om*/ final CompletableFuture<ZKAccessControl> promise = new CompletableFuture<ZKAccessControl>(); try { zkc.get().getData(zkPath, watcher, new AsyncCallback.DataCallback() { @Override public void processResult(int rc, String path, Object ctx, byte[] data, Stat stat) { if (KeeperException.Code.OK.intValue() == rc) { try { AccessControlEntry ace = deserialize(zkPath, data); promise.complete(new ZKAccessControl(ace, zkPath, stat.getVersion())); } catch (IOException ioe) { promise.completeExceptionally(ioe); } } else { promise.completeExceptionally(KeeperException.create(KeeperException.Code.get(rc))); } } }, null); } catch (ZooKeeperClient.ZooKeeperConnectionException e) { promise.completeExceptionally(e); } catch (InterruptedException e) { promise.completeExceptionally(e); } return promise; }
From source file:org.apache.distributedlog.impl.acl.ZKAccessControl.java
License:Apache License
public static CompletableFuture<Void> delete(final ZooKeeperClient zkc, final String zkPath) { final CompletableFuture<Void> promise = new CompletableFuture<Void>(); try {/* w ww . ja v a 2s.c om*/ zkc.get().delete(zkPath, -1, new AsyncCallback.VoidCallback() { @Override public void processResult(int rc, String path, Object ctx) { if (KeeperException.Code.OK.intValue() == rc || KeeperException.Code.NONODE.intValue() == rc) { promise.complete(null); } else { promise.completeExceptionally(KeeperException.create(KeeperException.Code.get(rc))); } } }, null); } catch (ZooKeeperClient.ZooKeeperConnectionException e) { promise.completeExceptionally(e); } catch (InterruptedException e) { promise.completeExceptionally(e); } return promise; }
From source file:org.apache.distributedlog.impl.acl.ZKAccessControlManager.java
License:Apache License
private void fetchAccessControlEntries(final CompletableFuture<Void> promise) { try {/*from w w w .ja va 2s .c o m*/ zkc.get().getChildren(zkRootPath, this, new AsyncCallback.Children2Callback() { @Override public void processResult(int rc, String path, Object ctx, List<String> children, Stat stat) { if (KeeperException.Code.OK.intValue() != rc) { promise.completeExceptionally(KeeperException.create(KeeperException.Code.get(rc))); return; } Set<String> streamsReceived = new HashSet<String>(); streamsReceived.addAll(children); Set<String> streamsCached = streamEntries.keySet(); Set<String> streamsRemoved = Sets.difference(streamsCached, streamsReceived).immutableCopy(); for (String s : streamsRemoved) { ZKAccessControl accessControl = streamEntries.remove(s); if (null != accessControl) { logger.info("Removed Access Control Entry for stream {} : {}", s, accessControl.getAccessControlEntry()); } } if (streamsReceived.isEmpty()) { promise.complete(null); return; } final AtomicInteger numPendings = new AtomicInteger(streamsReceived.size()); final AtomicInteger numFailures = new AtomicInteger(0); for (String s : streamsReceived) { final String streamName = s; ZKAccessControl.read(zkc, zkRootPath + "/" + streamName, null) .whenComplete(new FutureEventListener<ZKAccessControl>() { @Override public void onSuccess(ZKAccessControl accessControl) { streamEntries.put(streamName, accessControl); logger.info("Added overrided access control for stream {} : {}", streamName, accessControl.getAccessControlEntry()); complete(); } @Override public void onFailure(Throwable cause) { if (cause instanceof KeeperException.NoNodeException) { streamEntries.remove(streamName); } else if (cause instanceof ZKAccessControl.CorruptedAccessControlException) { logger.warn( "Access control is corrupted for stream {} @ {},skipped it ...", new Object[] { streamName, zkRootPath, cause }); streamEntries.remove(streamName); } else { if (1 == numFailures.incrementAndGet()) { promise.completeExceptionally(cause); } } complete(); } private void complete() { if (0 == numPendings.decrementAndGet() && numFailures.get() == 0) { promise.complete(null); } } }); } } }, null); } catch (ZooKeeperClient.ZooKeeperConnectionException e) { promise.completeExceptionally(e); } catch (InterruptedException e) { promise.completeExceptionally(e); } }
From source file:org.apache.distributedlog.impl.acl.ZKAccessControlManager.java
License:Apache License
private void createDefaultAccessControlEntryIfNeeded(final CompletableFuture<ZKAccessControl> promise) { ZooKeeper zk;/*from w ww .ja v a2s.c o m*/ try { zk = zkc.get(); } catch (ZooKeeperClient.ZooKeeperConnectionException e) { promise.completeExceptionally(e); return; } catch (InterruptedException e) { promise.completeExceptionally(e); return; } ZkUtils.asyncCreateFullPathOptimistic(zk, zkRootPath, new byte[0], zkc.getDefaultACL(), CreateMode.PERSISTENT, new AsyncCallback.StringCallback() { @Override public void processResult(int rc, String path, Object ctx, String name) { if (KeeperException.Code.OK.intValue() == rc) { logger.info("Created zk path {} for default ACL.", zkRootPath); fetchDefaultAccessControlEntry(promise); } else { promise.completeExceptionally(KeeperException.create(KeeperException.Code.get(rc))); } } }, null); }
From source file:org.apache.distributedlog.impl.federated.FederatedZKLogMetadataStore.java
License:Apache License
CompletableFuture<Set<URI>> fetchSubNamespaces(final Watcher watcher) { final CompletableFuture<Set<URI>> promise = new CompletableFuture<Set<URI>>(); try {//from ww w . ja v a 2s . co m zkc.get().sync(this.zkSubnamespacesPath, new AsyncCallback.VoidCallback() { @Override public void processResult(int rc, String path, Object ctx) { if (Code.OK.intValue() == rc) { fetchSubNamespaces(watcher, promise); } else { promise.completeExceptionally(KeeperException.create(Code.get(rc))); } } }, null); } catch (ZooKeeperClient.ZooKeeperConnectionException e) { promise.completeExceptionally(e); } catch (InterruptedException e) { promise.completeExceptionally(e); } return promise; }
From source file:org.apache.distributedlog.impl.federated.FederatedZKLogMetadataStore.java
License:Apache License
CompletableFuture<URI> createSubNamespace() { final CompletableFuture<URI> promise = new CompletableFuture<URI>(); final String nsPath = namespace.getPath() + "/" + ZNODE_SUB_NAMESPACES + "/" + SUB_NAMESPACE_PREFIX; try {//w ww.j a v a 2 s . co m zkc.get().create(nsPath, new byte[0], zkc.getDefaultACL(), CreateMode.PERSISTENT_SEQUENTIAL, new AsyncCallback.StringCallback() { @Override public void processResult(int rc, String path, Object ctx, String name) { if (Code.OK.intValue() == rc) { try { URI newUri = getSubNamespaceURI(getNamespaceFromZkPath(name)); logger.info("Created sub namespace {}", newUri); promise.complete(newUri); } catch (UnexpectedException ue) { promise.completeExceptionally(ue); } catch (URISyntaxException e) { promise.completeExceptionally( new UnexpectedException("Invalid namespace " + name + " is created.")); } } else { promise.completeExceptionally(KeeperException.create(Code.get(rc))); } } }, null); } catch (ZooKeeperClient.ZooKeeperConnectionException e) { promise.completeExceptionally(e); } catch (InterruptedException e) { promise.completeExceptionally(e); } return promise; }