diff --git a/jOOQ/src/main/java/org/jooq/SchemaMapping.java b/jOOQ/src/main/java/org/jooq/SchemaMapping.java index f87d30ee14..b9981bfc20 100644 --- a/jOOQ/src/main/java/org/jooq/SchemaMapping.java +++ b/jOOQ/src/main/java/org/jooq/SchemaMapping.java @@ -100,8 +100,8 @@ public class SchemaMapping implements Serializable { private final RenderMapping mapping; private final boolean ignoreMapping; private final boolean renderSchema; - private transient Map schemata = new HashMap(); - private transient Map> tables = new HashMap>(); + private volatile transient Map schemata; + private volatile transient Map> tables; /** * Construct an empty mapping @@ -424,10 +424,24 @@ public class SchemaMapping implements Serializable { } private final Map getSchemata() { + if (schemata == null) { + synchronized (this) { + if (schemata == null) { + schemata = new HashMap(); + } + } + } return schemata; } private final Map> getTables() { + if (tables == null) { + synchronized (this) { + if (tables == null) { + tables = new HashMap>(); + } + } + } return tables; }