From 661eff4df519487a6430627900ec07dbea5625b0 Mon Sep 17 00:00:00 2001 From: Denis Bondarenko Date: Wed, 3 Oct 2012 11:54:47 +0300 Subject: [PATCH] Fixed possible NPE on deserialization --- jOOQ/src/main/java/org/jooq/SchemaMapping.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) 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; }