/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.concurrent.CompletableFuture;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
runTasks(2);
runTasks(0);
}
private static void runTasks(int i) {
System.
out.
printf("-- input: %s --%n", i
); CompletableFuture
.supplyAsync(() -> {
return 16 / i;
})
.supplyAsync(() -> {
System.
out.
println("I WAS HERE"); System.
err.
println("I WAS HERE"); return i;
})
.whenComplete((input, exception) -> {
if (exception != null) {
System.
out.
println("exception occurs"); System.
err.
println(exception
); } else {
System.
out.
println("no exception, got result: " + input
); }
})
.thenApply(input -> input * 3)
.
thenAccept(System.
out::println
);
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwuKjsKaW1wb3J0IGphdmEubGFuZy4qOwppbXBvcnQgamF2YS5pby4qOwoKaW1wb3J0IGphdmEudXRpbC5jb25jdXJyZW50LkNvbXBsZXRhYmxlRnV0dXJlOwoKLyogTmFtZSBvZiB0aGUgY2xhc3MgaGFzIHRvIGJlICJNYWluIiBvbmx5IGlmIHRoZSBjbGFzcyBpcyBwdWJsaWMuICovCmNsYXNzIElkZW9uZQp7CgkgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CiAgICAgIHJ1blRhc2tzKDIpOwogICAgICBydW5UYXNrcygwKTsKICB9CgogIHByaXZhdGUgc3RhdGljIHZvaWQgcnVuVGFza3MoaW50IGkpIHsKICAgICAgU3lzdGVtLm91dC5wcmludGYoIi0tIGlucHV0OiAlcyAtLSVuIiwgaSk7CiAgICAgIENvbXBsZXRhYmxlRnV0dXJlCiAgICAgICAgICAgICAgLnN1cHBseUFzeW5jKCgpIC0+IHsKICAgICAgICAgICAgICAgICAgcmV0dXJuIDE2IC8gaTsKICAgICAgICAgICAgICB9KQoJCQkgIC5zdXBwbHlBc3luYygoKSAtPiB7CiAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiSSBXQVMgSEVSRSIpOwoJCQkJU3lzdGVtLmVyci5wcmludGxuKCJJIFdBUyBIRVJFIik7CgkJCQkgIHJldHVybiBpOwogICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgLndoZW5Db21wbGV0ZSgoaW5wdXQsIGV4Y2VwdGlvbikgLT4gewogICAgICAgICAgICAgICAgICBpZiAoZXhjZXB0aW9uICE9IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZXhjZXB0aW9uIG9jY3VycyIpOwogICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKGV4Y2VwdGlvbik7CiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIm5vIGV4Y2VwdGlvbiwgZ290IHJlc3VsdDogIiArIGlucHV0KTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgLnRoZW5BcHBseShpbnB1dCAtPiBpbnB1dCAqIDMpCiAgICAgICAgICAgICAgLnRoZW5BY2NlcHQoU3lzdGVtLm91dDo6cHJpbnRsbik7CgogIH0KfQo=