[#3915] Calls to Configuration.derive() create a Configuration that indirectly references the previous Configuration instance
This commit is contained in:
parent
dd8d3c76f3
commit
13be6d76a7
@ -578,10 +578,7 @@ public class DefaultConfiguration implements Configuration {
|
||||
*/
|
||||
@Override
|
||||
public final Configuration set(RecordMapperProvider newRecordMapperProvider) {
|
||||
this.recordMapperProvider = newRecordMapperProvider != null
|
||||
? newRecordMapperProvider
|
||||
: new DefaultRecordMapperProvider(this);
|
||||
|
||||
this.recordMapperProvider = newRecordMapperProvider;
|
||||
return this;
|
||||
}
|
||||
|
||||
@ -762,7 +759,12 @@ public class DefaultConfiguration implements Configuration {
|
||||
*/
|
||||
@Override
|
||||
public final RecordMapperProvider recordMapperProvider() {
|
||||
return recordMapperProvider;
|
||||
|
||||
// [#3915] Avoid permanently referencing such a DefaultRecordMapperProvider from this
|
||||
// DefaultConfiguration to prevent memory leaks.
|
||||
return recordMapperProvider != null
|
||||
? recordMapperProvider
|
||||
: new DefaultRecordMapperProvider(this);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Loading…
Reference in New Issue
Block a user