Skip to content

Commit f521e7d

Browse files
authored
fix: add @nonnull value type annotations on collection-based signals (#23557)
In a @NullMarked package, type parameters are implicitly @nullable, making peek() return @nullable for ListSignal, SharedListSignal, and SharedMapSignal even though their collection values are never null. Add @nonnull to the type arguments to correctly express this contract.
1 parent 00710af commit f521e7d

File tree

3 files changed

+8
-3
lines changed

3 files changed

+8
-3
lines changed

flow-server/src/main/java/com/vaadin/flow/signals/local/ListSignal.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
import java.util.List;
2121
import java.util.Objects;
2222

23+
import org.jspecify.annotations.NonNull;
24+
2325
/**
2426
* A local list signal that holds a list of writable signals, enabling per-entry
2527
* reactivity.
@@ -36,7 +38,8 @@
3638
* @param <T>
3739
* the element type
3840
*/
39-
public class ListSignal<T> extends AbstractLocalSignal<List<ValueSignal<T>>> {
41+
public class ListSignal<T>
42+
extends AbstractLocalSignal<@NonNull List<ValueSignal<T>>> {
4043

4144
/**
4245
* Creates a new empty list signal.

flow-server/src/main/java/com/vaadin/flow/signals/shared/SharedListSignal.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import java.util.Objects;
2222
import java.util.stream.Collectors;
2323

24+
import org.jspecify.annotations.NonNull;
2425
import org.jspecify.annotations.Nullable;
2526
import org.slf4j.LoggerFactory;
2627

@@ -46,7 +47,7 @@
4647
* the element type
4748
*/
4849
public class SharedListSignal<T>
49-
extends AbstractSignal<List<SharedValueSignal<T>>> {
50+
extends AbstractSignal<@NonNull List<SharedValueSignal<T>>> {
5051

5152
/**
5253
* A list insertion position before and/or after the referenced entries. If

flow-server/src/main/java/com/vaadin/flow/signals/shared/SharedMapSignal.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import java.util.Objects;
2424
import java.util.stream.Collectors;
2525

26+
import org.jspecify.annotations.NonNull;
2627
import org.jspecify.annotations.Nullable;
2728
import org.slf4j.LoggerFactory;
2829

@@ -49,7 +50,7 @@
4950
* the element type
5051
*/
5152
public class SharedMapSignal<T>
52-
extends AbstractSignal<Map<String, SharedValueSignal<T>>> {
53+
extends AbstractSignal<@NonNull Map<String, SharedValueSignal<T>>> {
5354

5455
private Class<T> elementType;
5556

0 commit comments

Comments
 (0)