Example usage for org.apache.zookeeper KeeperException create

List of usage examples for org.apache.zookeeper KeeperException create

Introduction

In this page you can find the example usage for org.apache.zookeeper KeeperException create.

Prototype

public static KeeperException create(Code code) 

Source Link

Document

All non-specific keeper exceptions should be constructed via this factory method in order to guarantee consistency in error codes and such.

Usage

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;
}