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 <362503+rwinch@users.noreply.github.com>
This commit is contained in:
Rob Winch 2025-07-21 09:01:48 -05:00
parent ea9dd2728e
commit fca704e61f
No known key found for this signature in database
1 changed files with 4 additions and 8 deletions

View File

@ -60,7 +60,7 @@ public abstract class AbstractConfiguredSecurityBuilder<O, B extends SecurityBui
private final LinkedHashMap<Class<? extends SecurityConfigurer<O, B>>, List<SecurityConfigurer<O, B>>> configurers = new LinkedHashMap<>();
private final List<SecurityConfigurer<O, B>> configurersAddedInInitializing = new ArrayList<>();
private List<SecurityConfigurer<O, B>> configurersAddedInInitializing = new ArrayList<>();
private final Map<Class<?>, Object> sharedObjects = new HashMap<>();
@ -388,7 +388,9 @@ public abstract class AbstractConfiguredSecurityBuilder<O, B extends SecurityBui
configurer.init((B) this);
}
while (!this.configurersAddedInInitializing.isEmpty()) {
for (SecurityConfigurer<O, B> configurer : getConfigurersInInitializing()) {
List<SecurityConfigurer<O, B>> toInit = this.configurersAddedInInitializing;
this.configurersAddedInInitializing = new ArrayList<>();
for (SecurityConfigurer<O, B> configurer : toInit) {
configurer.init((B) this);
}
}
@ -410,12 +412,6 @@ public abstract class AbstractConfiguredSecurityBuilder<O, B extends SecurityBui
return result;
}
private List<SecurityConfigurer<O, B>> getConfigurersInInitializing() {
List<SecurityConfigurer<O, B>> result = new ArrayList<>(this.configurersAddedInInitializing);
this.configurersAddedInInitializing.clear();
return result;
}
/**
* Determines if the object is unbuilt.
* @return true, if unbuilt else false