From 13be6d76a73865cd928a41a7d5c1084afccfdc45 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Fri, 9 Jan 2015 13:17:04 +0100 Subject: [PATCH] [#3915] Calls to Configuration.derive() create a Configuration that indirectly references the previous Configuration instance --- .../java/org/jooq/impl/DefaultConfiguration.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultConfiguration.java b/jOOQ/src/main/java/org/jooq/impl/DefaultConfiguration.java index c5214297b6..931312e220 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultConfiguration.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultConfiguration.java @@ -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); } /**