mirror of
https://github.com/lightbend/config.git
synced 2025-02-05 17:10:09 +08:00
Merge pull request #701 from lightbend/fix-stack-overflow-in-resolve-context
Remove unmodifiable collection wrappers in ResolveContext
This commit is contained in:
commit
001e6c3b82
@ -32,8 +32,12 @@ final class ResolveContext {
|
||||
this.memos = memos;
|
||||
this.options = options;
|
||||
this.restrictToChild = restrictToChild;
|
||||
this.resolveStack = Collections.unmodifiableList(resolveStack);
|
||||
this.cycleMarkers = Collections.unmodifiableSet(cycleMarkers);
|
||||
// we don't defensively copy/wrap these because Collections.unmodifiableList etc.
|
||||
// nest infinitely in a way that causes stack overflow (they don't check to avoid
|
||||
// multiple wrappers). But they should be treated as immutable because they end
|
||||
// up shared between multiple ResolveContext.
|
||||
this.resolveStack = resolveStack;
|
||||
this.cycleMarkers = cycleMarkers;
|
||||
}
|
||||
|
||||
private static Set<AbstractConfigValue> newCycleMarkers() {
|
||||
|
Loading…
Reference in New Issue
Block a user