[jOOQ/jOOQ#15966] [jOOQ/jOOQ#15974] Copy default configuration
MiniJAXB doesn't deep clone the appended objects, so we end up using shared mutable state (see [jOOQ/jOOQ#16056]). This must be avoided, otherwise, each execution updates the common shared default configuration, which is certainly not what we want.
This commit is contained in:
parent
ab8b9dff1e
commit
303cfefa99
@ -100,11 +100,15 @@ public class NamedConfiguration {
|
||||
|
||||
void configuration0(Configuration configuration) {
|
||||
if (!unnamed)
|
||||
MiniJAXB.append(this.configuration, project.getExtensions().getByType(CodegenPluginExtension.class).defaultConfiguration().configuration);
|
||||
MiniJAXB.append(this.configuration, copy(project.getExtensions().getByType(CodegenPluginExtension.class).defaultConfiguration().configuration));
|
||||
|
||||
MiniJAXB.append(this.configuration, configuration);
|
||||
}
|
||||
|
||||
static Configuration copy(Configuration configuration) {
|
||||
return MiniJAXB.unmarshal(MiniJAXB.marshal(configuration), Configuration.class);
|
||||
}
|
||||
|
||||
public void configuration(Action<ConfigurationExtension> action) {
|
||||
ConfigurationExtension c = objects.newInstance(ConfigurationExtension.class, objects);
|
||||
action.execute(c);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user