From 526e259b6bd83ccdb58edb1b22c207f8f3e7d672 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Thu, 28 Sep 2023 15:06:30 +0200 Subject: [PATCH] [jOOQ/jOOQ#15650] DefaultConfiguration doesn't serialize AuditProvider or TransformProvider --- .../org/jooq/impl/DefaultConfiguration.java | 59 ++++++------------- 1 file changed, 19 insertions(+), 40 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultConfiguration.java b/jOOQ/src/main/java/org/jooq/impl/DefaultConfiguration.java index 8f316bd3b9..e43873bce2 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultConfiguration.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultConfiguration.java @@ -2127,31 +2127,14 @@ public class DefaultConfiguration extends AbstractConfiguration { oos.defaultWriteObject(); // Allow these objects to be non-serializable - oos.writeObject(connectionProvider instanceof Serializable - ? connectionProvider - : null); - oos.writeObject(interpreterConnectionProvider instanceof Serializable - ? interpreterConnectionProvider - : null); - oos.writeObject(systemConnectionProvider instanceof Serializable - ? systemConnectionProvider - : null); - oos.writeObject(metaProvider instanceof Serializable - ? metaProvider - : null); - oos.writeObject(commitProvider instanceof Serializable - ? commitProvider - : null); - oos.writeObject(transactionProvider instanceof Serializable - ? transactionProvider - : null); - oos.writeObject(recordMapperProvider instanceof Serializable - ? recordMapperProvider - : null); - oos.writeObject(recordUnmapperProvider instanceof Serializable - ? recordUnmapperProvider - : null); - + oos.writeObject(serializableOrNull(connectionProvider)); + oos.writeObject(serializableOrNull(interpreterConnectionProvider)); + oos.writeObject(serializableOrNull(systemConnectionProvider)); + oos.writeObject(serializableOrNull(metaProvider)); + oos.writeObject(serializableOrNull(commitProvider)); + oos.writeObject(serializableOrNull(transactionProvider)); + oos.writeObject(serializableOrNull(recordMapperProvider)); + oos.writeObject(serializableOrNull(recordUnmapperProvider)); oos.writeObject(cloneSerializables(executeListenerProviders)); oos.writeObject(cloneSerializables(recordListenerProviders)); oos.writeObject(cloneSerializables(visitListenerProviders)); @@ -2162,21 +2145,11 @@ public class DefaultConfiguration extends AbstractConfiguration { - oos.writeObject(unwrapperProvider instanceof Serializable - ? unwrapperProvider - : null); - oos.writeObject(charsetProvider instanceof Serializable - ? charsetProvider - : null); - - oos.writeObject(converterProvider instanceof Serializable - ? converterProvider - : null); - - oos.writeObject(formattingProvider instanceof Serializable - ? formattingProvider - : null); + oos.writeObject(serializableOrNull(unwrapperProvider)); + oos.writeObject(serializableOrNull(charsetProvider)); + oos.writeObject(serializableOrNull(converterProvider)); + oos.writeObject(serializableOrNull(formattingProvider)); // [#7062] Exclude reflection cache from serialisation for (Entry entry : data.entrySet()) { @@ -2193,7 +2166,11 @@ public class DefaultConfiguration extends AbstractConfiguration { private static final String END_OF_MAP_MARKER = "EOM"; - private E[] cloneSerializables(E[] array) { + private final Serializable serializableOrNull(Object o) { + return o instanceof Serializable s ? s : null; + } + + private final E[] cloneSerializables(E[] array) { E[] clone = array.clone(); for (int i = 0; i < clone.length; i++) @@ -2223,6 +2200,8 @@ public class DefaultConfiguration extends AbstractConfiguration { + + unwrapperProvider = (UnwrapperProvider) ois.readObject(); charsetProvider = (CharsetProvider) ois.readObject(); converterProvider = (ConverterProvider) ois.readObject();