I have a structure similar to the code block below. Somehow I get nullpointerException in CompletableFuture.allOf method:
What could be the problem here?
Thanks..
List<CompletableFuture<String>> completableFutures = new ArrayList<>();
for(Classx list : request.getlist()) {
switch (list.getCases()) {
case 1:
completableFutures.add(asyncProcess(list));
break;
case 2:
completableFutures.add(asyncProcess2(list));
break;
}
}
CompletableFuture<Void> allFutures = CompletableFuture.allOf(completableFutures.toArray(new CompletableFuture[0]));
@Async
public CompletableFuture<String> asyncProcess(Classx list) {
try{
//..some codes
} catch(Exception e){
//..some codes
}
return CompletableFuture.completedFuture(x.getX());
}
@Async
public CompletableFuture<String> asyncProcess2(Classx list) {
try{
//..some codes
} catch(Exception e){
//..some codes
}
return CompletableFuture.completedFuture(x.getX());
}
error message is :
java.lang.NullPointerException
at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1306)
at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1303)
at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1305)
at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1305)
at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1303)
at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1305)
at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1303)
at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1305)
at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1305)
at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1303)
at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1303)
at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1303)
at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1303)
at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1305)
at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1303)
at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1303)
at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1305)
at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1303)
at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1303)
at java.util.concurrent.CompletableFuture.allOf(CompletableFuture.java:2225)
When I change the code as follows, it throws the same error.
CompletableFuture allFutures = CompletableFuture.allOf(completableFutures.toArray(new CompletableFuture[completableFuture.size()]));