From 3fb9559ba7255f13c774e20c58c15de13ca95e1a Mon Sep 17 00:00:00 2001 From: moparisthebest Date: Fri, 11 May 2018 00:14:58 -0400 Subject: [PATCH] Fix generated code causing warnings --- .../jdbc/codegen/CompileTimeResultSetMapper.java | 16 ++++++++++++---- pom.xml | 5 +++++ 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/jdbcmapper/src/main/java/com/moparisthebest/jdbc/codegen/CompileTimeResultSetMapper.java b/jdbcmapper/src/main/java/com/moparisthebest/jdbc/codegen/CompileTimeResultSetMapper.java index c6dbbd7..7e8e6ea 100644 --- a/jdbcmapper/src/main/java/com/moparisthebest/jdbc/codegen/CompileTimeResultSetMapper.java +++ b/jdbcmapper/src/main/java/com/moparisthebest/jdbc/codegen/CompileTimeResultSetMapper.java @@ -254,11 +254,19 @@ public class CompileTimeResultSetMapper { public void toArray(final Writer w, final String[] keys, final TypeMirror componentTypeMirror, MaxRows maxRows, String cal, final String cleaner, final ReflectionFields reflectionFields) throws IOException, ClassNotFoundException { final String returnTypeString = componentTypeMirror.toString(); writeCollection(w, keys, "java.util.List<" + returnTypeString + ">", "java.util.ArrayList", componentTypeMirror, maxRows, cal, cleaner, reflectionFields); - w.write("\t\t\treturn _colret.toArray(new "); - // have to strip generics to avoid "generic array creation" compilation failure + // have to strip generics to avoid "generic array creation" compilation failure final int indexOfGeneric = returnTypeString.indexOf('<'); - w.write(indexOfGeneric < 0 ? returnTypeString : returnTypeString.substring(0, indexOfGeneric)); - w.write("[_colret.size()]);\n"); + if(indexOfGeneric < 0) { + w.write("\t\t\treturn _colret.toArray(new "); + w.write(returnTypeString); + w.write("[_colret.size()]);\n"); + } else { + w.write("\t\t\t@SuppressWarnings(\"unchecked\")\n"); + w.append("\t\t\tfinal ").append(returnTypeString).append("[] _warnret = _colret.toArray(new "); + w.write(returnTypeString.substring(0, indexOfGeneric)); + w.write("[_colret.size()]);\n"); + w.write("\t\t\treturn _warnret;\n"); + } } public void toListIterator(final Writer w, final String[] keys, final TypeMirror componentTypeMirror, MaxRows maxRows, String cal, final String cleaner, final ReflectionFields reflectionFields) throws IOException, ClassNotFoundException { diff --git a/pom.xml b/pom.xml index 271e658..38b3a44 100644 --- a/pom.xml +++ b/pom.xml @@ -268,6 +268,10 @@ **/PrestoPersonDAOTest.java **/PrestoSQLParserTest.java + + -Xlint:unchecked + -XDignore.symbol.file + testCompile @@ -324,6 +328,7 @@ -parameters -Xlint:unchecked + -XDignore.symbol.file