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.memos = memos;
|
||||||
this.options = options;
|
this.options = options;
|
||||||
this.restrictToChild = restrictToChild;
|
this.restrictToChild = restrictToChild;
|
||||||
this.resolveStack = Collections.unmodifiableList(resolveStack);
|
// we don't defensively copy/wrap these because Collections.unmodifiableList etc.
|
||||||
this.cycleMarkers = Collections.unmodifiableSet(cycleMarkers);
|
// 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() {
|
private static Set<AbstractConfigValue> newCycleMarkers() {
|
||||||
|
Loading…
Reference in New Issue
Block a user