Skip to content

Commit 1da58cb

Browse files
committed
Fix getConfigurersInInitializing Semantics
A getter should not mutate state. This removes getConfigurersInInitializing in favor of inline code since this is just used once. Issue gh-17020 gh-17011 Signed-off-by: Rob Winch <[email protected]>
1 parent 3ffd2a3 commit 1da58cb

File tree

1 file changed

+4
-8
lines changed

1 file changed

+4
-8
lines changed

config/src/main/java/org/springframework/security/config/annotation/AbstractConfiguredSecurityBuilder.java

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public abstract class AbstractConfiguredSecurityBuilder<O, B extends SecurityBui
5959

6060
private final LinkedHashMap<Class<? extends SecurityConfigurer<O, B>>, List<SecurityConfigurer<O, B>>> configurers = new LinkedHashMap<>();
6161

62-
private final List<SecurityConfigurer<O, B>> configurersAddedInInitializing = new ArrayList<>();
62+
private List<SecurityConfigurer<O, B>> configurersAddedInInitializing = new ArrayList<>();
6363

6464
private final Map<Class<?>, Object> sharedObjects = new HashMap<>();
6565

@@ -366,7 +366,9 @@ private void init() throws Exception {
366366
configurer.init((B) this);
367367
}
368368
while (!this.configurersAddedInInitializing.isEmpty()) {
369-
for (SecurityConfigurer<O, B> configurer : getConfigurersInInitializing()) {
369+
List<SecurityConfigurer<O, B>> toInit = this.configurersAddedInInitializing;
370+
this.configurersAddedInInitializing = new ArrayList<>();
371+
for (SecurityConfigurer<O, B> configurer : toInit) {
370372
configurer.init((B) this);
371373
}
372374
}
@@ -388,12 +390,6 @@ private Collection<SecurityConfigurer<O, B>> getConfigurers() {
388390
return result;
389391
}
390392

391-
private List<SecurityConfigurer<O, B>> getConfigurersInInitializing() {
392-
List<SecurityConfigurer<O, B>> result = new ArrayList<>(this.configurersAddedInInitializing);
393-
this.configurersAddedInInitializing.clear();
394-
return result;
395-
}
396-
397393
/**
398394
* Determines if the object is unbuilt.
399395
* @return true, if unbuilt else false

0 commit comments

Comments
 (0)