[jOOQ/jOOQ#18078] DiagnosticsListener::duplicateStatements event isn't
triggered for DiagnosticsConnection.ON setting
This commit is contained in:
parent
8ddf0fecd4
commit
bbb6c53f2d
@ -37,6 +37,7 @@
|
||||
*/
|
||||
package org.jooq.impl;
|
||||
|
||||
import static java.lang.Boolean.FALSE;
|
||||
import static java.lang.Boolean.TRUE;
|
||||
// ...
|
||||
import static org.jooq.conf.SettingsTools.renderLocale;
|
||||
@ -352,7 +353,7 @@ class DefaultExecuteContext implements ExecuteContext {
|
||||
// [#7569] The original configuration is attached to Record and Result instances
|
||||
this.creationTime = configuration.clock().instant();
|
||||
this.connectionProvider = configuration.connectionProvider();
|
||||
this.originalConfiguration = configuration;
|
||||
this.originalConfiguration = initCaches(configuration);
|
||||
this.derivedConfiguration = configuration.derive(new ExecuteContextConnectionProvider());
|
||||
this.data = new DataMap();
|
||||
this.batchMode = batchMode;
|
||||
@ -368,6 +369,20 @@ class DefaultExecuteContext implements ExecuteContext {
|
||||
clean();
|
||||
}
|
||||
|
||||
/**
|
||||
* [#18078] Some caches may have to be initialised in the global
|
||||
* configuration, prior to creating the per-execution derived configuration.
|
||||
*/
|
||||
private static Configuration initCaches(Configuration configuration) {
|
||||
if (configuration.settings().getDiagnosticsConnection() == DiagnosticsConnection.ON) {
|
||||
if (!FALSE.equals(configuration.settings().isDiagnosticsDuplicateStatements())) {
|
||||
org.jooq.impl.DiagnosticsConnection.duplicateSql0(configuration);
|
||||
}
|
||||
}
|
||||
|
||||
return configuration;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final ConverterContext converterContext() {
|
||||
return converterContext;
|
||||
|
||||
@ -206,8 +206,12 @@ final class DiagnosticsConnection extends DefaultConnection {
|
||||
return DiagnosticsListeners.check(configuration.settings(), test);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
final Map<String, Set<String>> duplicateSql() {
|
||||
return duplicateSql0(configuration);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
static final Map<String, Set<String>> duplicateSql0(Configuration configuration) {
|
||||
return (Map<String, Set<String>>) configuration.data().computeIfAbsent(
|
||||
"org.jooq.diagnostics.duplicate-sql",
|
||||
k -> synchronizedMap(new LRU<>(LRU_SIZE_GLOBAL))
|
||||
|
||||
Loading…
Reference in New Issue
Block a user