github / github/codeql

Java: Nullness: LGTM.com - false positive

Aperta
#3,176 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
false-positive Java
Lingua principale
CodeQL
Stelle
10.1k
Fork
2.1k
Merge medio
2g 15h
PR unite (30g)
141

Descrizione

**Description of the false positive**

```java
if (!channel.isActive()) {
CompletableFuture currentFuture;
synchronized (channelPool) {
currentFuture = channelPool.get(offset);
if (currentFuture == finalFuture) { // final future is not null since it is used also before
channelPool.set(offset, null);
} else if (currentFuture == null) {
currentFuture = factory.apply(address); // <== assigned here
currentFuture.whenComplete(this::logConnection); // <== used here
channelPool.set(offset, currentFuture);
}
}

if (currentFuture == finalFuture) {
getChannel(address, messageType)
.whenComplete(
(recursiveResult, recursiveError) -> {
completeFuture(future, recursiveResult, recursiveError);
});
} else {
currentFuture.whenComplete( // <== can't be null here
```

We can see that if currentFuture is null then it is assigned a new value, which is used directly afterwards, which means it cant be null later.
**URL to the alert on the project page on LGTM.com**
https://lgtm.com/projects/g/zeebe-io/zeebe/snapshot/e722021d676bdbeee3366fa1c10a915f031bbf0c/files/atomix/cluster/src/main/java/io/atomix/cluster/messaging/impl/ChannelPool.java?sort=name&dir=ASC&mode=heatmap#xa937c5d4af2d26c1:1

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.