Skip to content

Commit 6de96b2

Browse files
Align filter pipeline with main filter chain and harden immutability
1 parent abed9f6 commit 6de96b2

2 files changed

Lines changed: 12 additions & 1 deletion

File tree

src/main/java/org/example/server/ConfigurableFilterPipeline.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,25 @@
88
import java.util.ArrayList;
99
import java.util.Comparator;
1010
import java.util.List;
11+
import java.util.Objects;
1112
import java.util.function.BiConsumer;
1213

1314
public class ConfigurableFilterPipeline {
1415

1516
private final List<FilterRegistration> registrations;
1617

1718
public ConfigurableFilterPipeline(List<FilterRegistration> registrations) {
18-
this.registrations = registrations;
19+
this.registrations = List.copyOf(
20+
Objects.requireNonNull(registrations, "registrations must not be null")
21+
);
1922
}
2023

2124
public HttpResponseBuilder execute(HttpRequest request,
2225
BiConsumer<HttpRequest, HttpResponseBuilder> terminalHandler) {
2326

27+
Objects.requireNonNull(request, "request must not be null");
28+
Objects.requireNonNull(terminalHandler, "terminalHandler must not be null");
29+
2430
List<FilterRegistration> globalRegs = new ArrayList<>();
2531
List<FilterRegistration> routeRegs = new ArrayList<>();
2632

src/main/java/org/example/server/FilterRegistration.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,17 @@
33
import org.example.filter.Filter;
44

55
import java.util.List;
6+
import java.util.Objects;
67

78
public record FilterRegistration(
89
Filter filter,
910
int order,
1011
List<String> routePatterns
1112
) {
13+
public FilterRegistration {
14+
filter = Objects.requireNonNull(filter, "filter must not be null");
15+
routePatterns = routePatterns == null ? null : List.copyOf(routePatterns);
16+
}
1217

1318
public boolean isGlobal() {
1419
return routePatterns == null || routePatterns.isEmpty();

0 commit comments

Comments
 (0)