From 2b4abee87c20a9083004559d407f4abc0cc2ea4e Mon Sep 17 00:00:00 2001 From: lukaseder Date: Tue, 29 Mar 2016 08:07:35 +0200 Subject: [PATCH] [#5167] Possible NPE when calling InsertImpl.set(Field, Select) with a null Select --- jOOQ/src/main/java/org/jooq/impl/DSL.java | 5 ++++- jOOQ/src/main/java/org/jooq/impl/InsertImpl.java | 5 ++++- jOOQ/src/main/java/org/jooq/impl/MergeImpl.java | 5 ++++- jOOQ/src/main/java/org/jooq/impl/UpdateImpl.java | 5 ++++- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/DSL.java b/jOOQ/src/main/java/org/jooq/impl/DSL.java index 12d7362cdf..b61656ee6a 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DSL.java +++ b/jOOQ/src/main/java/org/jooq/impl/DSL.java @@ -8327,7 +8327,10 @@ public class DSL { */ @Support public static Field field(Select> select) { - return select.asField(); + if (select == null) + return (Field) NULL(); + else + return select.asField(); } /** diff --git a/jOOQ/src/main/java/org/jooq/impl/InsertImpl.java b/jOOQ/src/main/java/org/jooq/impl/InsertImpl.java index af851be93f..f4efdc9320 100644 --- a/jOOQ/src/main/java/org/jooq/impl/InsertImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/InsertImpl.java @@ -613,7 +613,10 @@ final class InsertImpl InsertImpl set(Field field, Select> value) { - return set(field, value.asField()); + if (value == null) + return set(field, (T) null); + else + return set(field, value.asField()); } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/MergeImpl.java b/jOOQ/src/main/java/org/jooq/impl/MergeImpl.java index 60294e9c41..7ab82b56f7 100644 --- a/jOOQ/src/main/java/org/jooq/impl/MergeImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/MergeImpl.java @@ -941,7 +941,10 @@ implements @Override public final MergeImpl set(Field field, Select> value) { - return set(field, value.asField()); + if (value == null) + return set(field, (T) null); + else + return set(field, value.asField()); } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/UpdateImpl.java b/jOOQ/src/main/java/org/jooq/impl/UpdateImpl.java index 9d2a53aaf0..c1cf6d1962 100644 --- a/jOOQ/src/main/java/org/jooq/impl/UpdateImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/UpdateImpl.java @@ -154,7 +154,10 @@ final class UpdateImpl @Override public final UpdateImpl set(Field field, Select> value) { - return set(field, value.asField()); + if (value == null) + return set(field, (T) null); + else + return set(field, value.asField()); } @Override