[jOOQ/jOOQ#15650] DefaultConfiguration doesn't serialize AuditProvider or TransformProvider

This commit is contained in:
Lukas Eder 2023-09-28 15:06:30 +02:00
parent af4324acbe
commit 526e259b6b

View File

@ -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<Object, Object> entry : data.entrySet()) {
@ -2193,7 +2166,11 @@ public class DefaultConfiguration extends AbstractConfiguration {
private static final String END_OF_MAP_MARKER = "EOM";
private <E> E[] cloneSerializables(E[] array) {
private final Serializable serializableOrNull(Object o) {
return o instanceof Serializable s ? s : null;
}
private final <E> 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();