From 604abf100c1cfaa071ec3f001e11b8b6fbbd6b7a Mon Sep 17 00:00:00 2001 From: Amir Behnam Date: Thu, 13 Dec 2018 14:06:31 -0500 Subject: [PATCH 1/3] [#8004] Handle edgecase for kotlin boolean type --- jOOQ/src/main/java/org/jooq/impl/DefaultRecordMapper.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultRecordMapper.java b/jOOQ/src/main/java/org/jooq/impl/DefaultRecordMapper.java index b2a4a07ff1..888a18acc8 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultRecordMapper.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultRecordMapper.java @@ -402,7 +402,9 @@ public class DefaultRecordMapper implements RecordMapperget()); + // [#8004] Clean up kotlin field name for boolean types + String name = parameter.call("getName").get(); + parameterNames.add(getPropertyName(name)); Object typeClassifier = parameter.call("getType").call("getClassifier").get(); parameterTypes[i] = (Class) getJavaClass.invoke(jvmClassMappingKt.get(), typeClassifier); } From 41b5e496b1b6a47b3688f0f7ed6eb3161eb8c0b5 Mon Sep 17 00:00:00 2001 From: Amir Behnam Date: Fri, 14 Dec 2018 16:13:17 -0500 Subject: [PATCH 2/3] Make check for kotlin more specific --- .../java/org/jooq/impl/DefaultRecordMapper.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultRecordMapper.java b/jOOQ/src/main/java/org/jooq/impl/DefaultRecordMapper.java index 888a18acc8..16dae0c1a6 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultRecordMapper.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultRecordMapper.java @@ -402,11 +402,16 @@ public class DefaultRecordMapper implements RecordMapperget(); - parameterNames.add(getPropertyName(name)); Object typeClassifier = parameter.call("getType").call("getClassifier").get(); - parameterTypes[i] = (Class) getJavaClass.invoke(jvmClassMappingKt.get(), typeClassifier); + Class type = (Class) getJavaClass.invoke(jvmClassMappingKt.get(), typeClassifier); + parameterTypes[i] = type; + String name = parameter.call("getName").get(); + + // [#8004] Clean up kotlin field name for boolean types + if ("boolean".equals(type.getTypeName()) && name.startsWith("is")) { + name = getPropertyName(name); + } + parameterNames.add(name); } Constructor javaConstructor = (Constructor) this.type.getConstructor(parameterTypes); From 4d5d8f9f56f37abfa9a7b1947f07a82284bef853 Mon Sep 17 00:00:00 2001 From: Amir Behnam Date: Mon, 17 Dec 2018 09:11:50 -0500 Subject: [PATCH 3/3] Ignore case on compare --- jOOQ/src/main/java/org/jooq/impl/DefaultRecordMapper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultRecordMapper.java b/jOOQ/src/main/java/org/jooq/impl/DefaultRecordMapper.java index 16dae0c1a6..5e1daa3d1b 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultRecordMapper.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultRecordMapper.java @@ -408,7 +408,7 @@ public class DefaultRecordMapper implements RecordMapperget(); // [#8004] Clean up kotlin field name for boolean types - if ("boolean".equals(type.getTypeName()) && name.startsWith("is")) { + if ("boolean".equalsIgnoreCase(type.getTypeName()) && name.startsWith("is")) { name = getPropertyName(name); } parameterNames.add(name);