下面列出了org.apache.zookeeper.OpResult#ErrorResult ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
protected void abortOpResult(Throwable t,
@Nullable OpResult opResult) {
Throwable cause;
if (null == opResult) {
cause = t;
} else {
assert (opResult instanceof OpResult.ErrorResult);
OpResult.ErrorResult errorResult = (OpResult.ErrorResult) opResult;
if (KeeperException.Code.OK.intValue() == errorResult.getErr()) {
cause = t;
} else {
cause = KeeperException.create(KeeperException.Code.get(errorResult.getErr()));
}
}
if (null != listener) {
listener.onAbort(cause);
}
}
@Test(timeout = 60000)
public void testAbortOpResult() throws Exception {
final AtomicReference<Throwable> exception =
new AtomicReference<Throwable>();
final CountDownLatch latch = new CountDownLatch(1);
ZKVersionedSetOp versionedSetOp =
new ZKVersionedSetOp(mock(Op.class), new Transaction.OpListener<Version>() {
@Override
public void onCommit(Version r) {
// no-op
}
@Override
public void onAbort(Throwable t) {
exception.set(t);
latch.countDown();
}
});
KeeperException ke = KeeperException.create(KeeperException.Code.SESSIONEXPIRED);
OpResult opResult = new OpResult.ErrorResult(KeeperException.Code.NONODE.intValue());
versionedSetOp.abortOpResult(ke, opResult);
latch.await();
assertTrue(exception.get() instanceof KeeperException.NoNodeException);
}
@Override
protected void abortOpResult(Throwable t,
@Nullable OpResult opResult) {
Throwable cause;
if (null == opResult) {
cause = t;
} else {
assert (opResult instanceof OpResult.ErrorResult);
OpResult.ErrorResult errorResult = (OpResult.ErrorResult) opResult;
if (KeeperException.Code.OK.intValue() == errorResult.getErr()) {
cause = t;
} else {
cause = KeeperException.create(KeeperException.Code.get(errorResult.getErr()));
}
}
listener.onAbort(cause);
}
@Test(timeout = 60000)
public void testAbortOpResult() throws Exception {
final AtomicReference<Throwable> exception =
new AtomicReference<Throwable>();
final CountDownLatch latch = new CountDownLatch(1);
ZKVersionedSetOp versionedSetOp =
new ZKVersionedSetOp(mock(Op.class), new Transaction.OpListener<Version>() {
@Override
public void onCommit(Version r) {
// no-op
}
@Override
public void onAbort(Throwable t) {
exception.set(t);
latch.countDown();
}
});
KeeperException ke = KeeperException.create(KeeperException.Code.SESSIONEXPIRED);
OpResult opResult = new OpResult.ErrorResult(KeeperException.Code.NONODE.intValue());
versionedSetOp.abortOpResult(ke, opResult);
latch.await();
assertTrue(exception.get() instanceof KeeperException.NoNodeException);
}
static CuratorTransactionResult makeCuratorResult(CuratorFrameworkImpl client, OpResult opResult, TypeAndPath metadata)
{
String resultPath = null;
Stat resultStat = null;
int error = 0;
switch ( opResult.getType() )
{
default:
{
// NOP
break;
}
case ZooDefs.OpCode.create:
{
OpResult.CreateResult createResult = (OpResult.CreateResult)opResult;
resultPath = client.unfixForNamespace(createResult.getPath());
break;
}
case ZooDefs.OpCode.setData:
{
OpResult.SetDataResult setDataResult = (OpResult.SetDataResult)opResult;
resultStat = setDataResult.getStat();
break;
}
case ZooDefs.OpCode.error:
{
OpResult.ErrorResult errorResult = (OpResult.ErrorResult)opResult;
error = errorResult.getErr();
break;
}
}
return new CuratorTransactionResult(metadata.getType(), metadata.getForPath(), resultPath, resultStat, error);
}