aibolit
aibolit copied to clipboard
Aibolit cyclomatic fail to count for large lambda
Override
@SuppressWarnings("aibolit.P31")
public CompletableFuture<Void> save(final Key key, final Content content) {
return CompletableFuture.supplyAsync(
() -> {
final Path tmp = Paths.get(
this.dir.toString(),
String.format("%s.%s.tmp", key.string(), UUID.randomUUID())
);
tmp.getParent().toFile().mkdirs();
return tmp;
},
this.exec
).thenCompose(
tmp -> new File(tmp).write(
new OneTimePublisher<>(content),
this.exec,
StandardOpenOption.WRITE,
StandardOpenOption.CREATE,
StandardOpenOption.TRUNCATE_EXISTING
).thenCompose(
nothing -> this.move(tmp, this.path(key))
).handleAsync(
(nothing, throwable) -> {
tmp.toFile().delete();
final CompletableFuture<Void> result = new CompletableFuture<>();
if (throwable == null) {
result.complete(null);
} else {
result.completeExceptionally(throwable);
}
return result;
},
this.exec
).thenCompose(Function.identity())
);
}
Aibolit shows 0 Cogc for this method.
It also ignores all if/else
statements inside lambda.