From e913111a8e2745f2fbbf6f6d3eac6e8a3acabe1d Mon Sep 17 00:00:00 2001 From: Joerg Schoenfisch Date: Wed, 20 Feb 2013 13:55:29 +0100 Subject: [PATCH 1/2] Prevent an IndexOutOfBoundsException if the SQL-String ends with a single line comment without a newline. --- jOOQ/src/main/java/org/jooq/impl/Utils.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/Utils.java b/jOOQ/src/main/java/org/jooq/impl/Utils.java index 94f5ecec52..92bd18d804 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Utils.java +++ b/jOOQ/src/main/java/org/jooq/impl/Utils.java @@ -733,7 +733,7 @@ final class Utils { if (peek(sqlChars, i, "--")) { // Consume the complete comment - for (; sqlChars[i] != '\r' && sqlChars[i] != '\n'; render.sql(sqlChars[i++])); + for (; i < sqlChars.length && sqlChars[i] != '\r' && sqlChars[i] != '\n'; render.sql(sqlChars[i++])); // Consume the newline character render.sql(sqlChars[i]); @@ -1739,7 +1739,7 @@ final class Utils { return (T) wasNull(rs, Boolean.valueOf(rs.getBoolean(index))); } else if (type == BigInteger.class) { - // The SQLite JDBC driver doesn't support BigDecimals + // The SQLite JDBC driver doesn't support BigDecimals if (ctx.getDialect() == SQLDialect.SQLITE) { return Convert.convert(rs.getString(index), (Class) BigInteger.class); } From 8f7a70f4a0135a6f9206ae1328702fcb71249840 Mon Sep 17 00:00:00 2001 From: Joerg Schoenfisch Date: Wed, 20 Feb 2013 14:43:00 +0100 Subject: [PATCH 2/2] i could still have been out of bounds if there is only a single newline character(Linux) and not two(Windows). --- jOOQ/src/main/java/org/jooq/impl/Utils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/Utils.java b/jOOQ/src/main/java/org/jooq/impl/Utils.java index 92bd18d804..26b34cc08d 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Utils.java +++ b/jOOQ/src/main/java/org/jooq/impl/Utils.java @@ -736,7 +736,7 @@ final class Utils { for (; i < sqlChars.length && sqlChars[i] != '\r' && sqlChars[i] != '\n'; render.sql(sqlChars[i++])); // Consume the newline character - render.sql(sqlChars[i]); + if (i < sqlChars.length) render.sql(sqlChars[i]); } // [#1797] Skip content inside of multi-line comments, e.g.