本文整理了Java中io.vertx.core.Future.recover()
方法的一些代码示例,展示了Future.recover()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Future.recover()
方法的具体详情如下:
包路径:io.vertx.core.Future
类名称:Future
方法名:recover
[英]Handles a failure of this Future by returning the result of another Future. If the mapper fails, then the returned future will be failed with this failure.
[中]通过返回另一个未来的结果来处理此未来的失败。如果映射程序失败,则返回的未来将因此失败而失败。
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testRecoverFailureWithSuccess() {
Future<String> f = Future.future();
Future<String> r = f.recover(t -> Future.succeededFuture(t.getMessage()));
Checker<String> checker = new Checker<>(r);
checker.assertNotCompleted();
f.fail("recovered");
checker.assertSucceeded("recovered");
}
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testRecoverFailureWithFailure() {
Throwable cause = new Throwable();
Future<String> f = Future.future();
Future<String> r = f.recover(t -> Future.failedFuture(cause));
Checker<String> checker = new Checker<>(r);
checker.assertNotCompleted();
f.fail("recovered");
checker.assertFailed(cause);
}
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testRecoverFailureFails() {
RuntimeException cause = new RuntimeException("throw");
Future<String> f = Future.future();
Future<String> r = f.recover(t -> {
throw cause;
});
Checker<String> checker = new Checker<>(r);
checker.assertNotCompleted();
f.fail("recovered");
checker.assertFailed(cause);
}
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testFailedFutureRecover() {
Future<String> f = Future.future();
Future<String> r = f.recover(t -> Future.succeededFuture(t.getMessage()));
f.fail("recovered");
assertTrue(r.succeeded());
assertEquals(r.result(), "recovered");
}
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testFailedMapperFutureRecover() {
Future<String> f = Future.future();
Future<String> r = f.recover(t -> {
throw new RuntimeException("throw");
});
f.fail("recovered");
assertTrue(r.failed());
assertEquals(r.cause().getMessage(), "throw");
}
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testRecoverWithNullFunction() {
Future<Integer> fut = Future.future();
try {
fut.recover(null);
fail();
} catch (NullPointerException ignore) {
}
}
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testSucceededFutureRecover() {
Future<String> f = Future.future();
Future<String> r = f.recover(t -> Future.succeededFuture(t.getMessage()));
f.complete("yeah");
assertTrue(r.succeeded());
assertEquals(r.result(), "yeah");
}
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testRecoverSuccessWithSuccess() {
AtomicBoolean called = new AtomicBoolean();
Future<String> f = Future.future();
Future<String> r = f.recover(t -> {
called.set(true);
throw new AssertionError();
});
Checker<String> checker = new Checker<>(r);
checker.assertNotCompleted();
f.complete("yeah");
assertTrue(r.succeeded());
checker.assertSucceeded("yeah");
assertFalse(called.get());
}
代码示例来源:origin: io.vertx/vertx-core
@Test
public void testRecoverFailureWithSuccess() {
Future<String> f = Future.future();
Future<String> r = f.recover(t -> Future.succeededFuture(t.getMessage()));
Checker<String> checker = new Checker<>(r);
checker.assertNotCompleted();
f.fail("recovered");
checker.assertSucceeded("recovered");
}
代码示例来源:origin: io.vertx/vertx-core
@Test
public void testRecoverFailureWithFailure() {
Throwable cause = new Throwable();
Future<String> f = Future.future();
Future<String> r = f.recover(t -> Future.failedFuture(cause));
Checker<String> checker = new Checker<>(r);
checker.assertNotCompleted();
f.fail("recovered");
checker.assertFailed(cause);
}
代码示例来源:origin: io.vertx/vertx-core
@Test
public void testFailedMapperFutureRecover() {
Future<String> f = Future.future();
Future<String> r = f.recover(t -> {
throw new RuntimeException("throw");
});
f.fail("recovered");
assertTrue(r.failed());
assertEquals(r.cause().getMessage(), "throw");
}
代码示例来源:origin: io.vertx/vertx-core
@Test
public void testRecoverFailureFails() {
RuntimeException cause = new RuntimeException("throw");
Future<String> f = Future.future();
Future<String> r = f.recover(t -> {
throw cause;
});
Checker<String> checker = new Checker<>(r);
checker.assertNotCompleted();
f.fail("recovered");
checker.assertFailed(cause);
}
代码示例来源:origin: io.vertx/vertx-core
@Test
public void testSucceededFutureRecover() {
Future<String> f = Future.future();
Future<String> r = f.recover(t -> Future.succeededFuture(t.getMessage()));
f.complete("yeah");
assertTrue(r.succeeded());
assertEquals(r.result(), "yeah");
}
代码示例来源:origin: io.vertx/vertx-core
@Test
public void testFailedFutureRecover() {
Future<String> f = Future.future();
Future<String> r = f.recover(t -> Future.succeededFuture(t.getMessage()));
f.fail("recovered");
assertTrue(r.succeeded());
assertEquals(r.result(), "recovered");
}
代码示例来源:origin: io.vertx/vertx-core
@Test
public void testRecoverWithNullFunction() {
Future<Integer> fut = Future.future();
try {
fut.recover(null);
fail();
} catch (NullPointerException ignore) {
}
}
代码示例来源:origin: io.vertx/vertx-core
@Test
public void testRecoverSuccessWithSuccess() {
AtomicBoolean called = new AtomicBoolean();
Future<String> f = Future.future();
Future<String> r = f.recover(t -> {
called.set(true);
throw new AssertionError();
});
Checker<String> checker = new Checker<>(r);
checker.assertNotCompleted();
f.complete("yeah");
assertTrue(r.succeeded());
checker.assertSucceeded("yeah");
assertFalse(called.get());
}
代码示例来源:origin: eclipse/hono
/**
* {@inheritDoc}
*/
@Override
protected Future<Void> onPublishedMessage(final MqttContext ctx) {
return mapTopic(ctx)
.recover(t -> {
LOG.debug("discarding message [topic: {}] from device: {}", ctx.message().topicName(), t.getMessage());
return Future.failedFuture(t);
}).compose(targetAddress -> uploadMessage(ctx, targetAddress, ctx.message()));
}
代码示例来源:origin: org.eclipse.hono/hono-adapter-kura
/**
* {@inheritDoc}
*/
@Override
protected Future<Void> onPublishedMessage(final MqttContext ctx) {
return mapTopic(ctx)
.recover(t -> {
LOG.debug("discarding message [topic: {}] from device: {}", ctx.message().topicName(), t.getMessage());
return Future.failedFuture(t);
}).compose(targetAddress -> uploadMessage(ctx, targetAddress, ctx.message()));
}
代码示例来源:origin: eclipse/hono
Future<Void> loadTenantData() {
if (getConfig().getFilename() == null) {
return Future.succeededFuture();
} else {
final Future<Buffer> readResult = Future.future();
vertx.fileSystem().readFile(getConfig().getFilename(), readResult.completer());
return readResult.compose(buffer -> {
return addAll(buffer);
}).recover(t -> {
log.debug("cannot load tenants from file [{}]: {}", getConfig().getFilename(), t.getMessage());
return Future.succeededFuture();
});
}
}
代码示例来源:origin: eclipse/hono
Future<Void> loadRegistrationData() {
if (getConfig().getFilename() == null) {
return Future.succeededFuture();
} else {
final Future<Buffer> readResult = Future.future();
vertx.fileSystem().readFile(getConfig().getFilename(), readResult.completer());
return readResult.compose(buffer -> {
return addAll(buffer);
}).recover(t -> {
log.debug("cannot load device identities from file [{}]: {}", getConfig().getFilename(), t.getMessage());
return Future.succeededFuture();
});
}
}
内容来源于网络,如有侵权,请联系作者删除!