From a8133a9917744ed656189dd7f553a7b1acfa1129 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Sat, 7 Aug 2010 16:52:05 +0000 Subject: [PATCH] ignore empty statements (SPR-7363) --- .../init/ResourceDatabasePopulator.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/org.springframework.jdbc/src/main/java/org/springframework/jdbc/datasource/init/ResourceDatabasePopulator.java b/org.springframework.jdbc/src/main/java/org/springframework/jdbc/datasource/init/ResourceDatabasePopulator.java index f9151ef90c..966424f562 100644 --- a/org.springframework.jdbc/src/main/java/org/springframework/jdbc/datasource/init/ResourceDatabasePopulator.java +++ b/org.springframework.jdbc/src/main/java/org/springframework/jdbc/datasource/init/ResourceDatabasePopulator.java @@ -239,10 +239,10 @@ public class ResourceDatabasePopulator implements DatabasePopulator { } /** - * Split an SQL script into separate statements delimited with the provided delimiter character. Each individual - * statement will be added to the provided List. + * Split an SQL script into separate statements delimited with the provided delimiter character. + * Each individual statement will be added to the provided List. * @param script the SQL script - * @param delim character delimiting each statement - typically a ';' character + * @param delim character delimiting each statement (typically a ';' character) * @param statements the List that will contain the individual statements */ private void splitSqlScript(String script, char delim, List statements) { @@ -250,20 +250,21 @@ public class ResourceDatabasePopulator implements DatabasePopulator { boolean inLiteral = false; char[] content = script.toCharArray(); for (int i = 0; i < script.length(); i++) { - if (content[i] == '\'') { + char c = content[i]; + if (c == '\'') { inLiteral = !inLiteral; } - if (content[i] == delim && !inLiteral) { + if ((c == delim || c == '\n') && !inLiteral) { if (sb.length() > 0) { statements.add(sb.toString()); sb = new StringBuilder(); } } else { - sb.append(content[i]); + sb.append(c); } } - if (sb.length() > 0) { + if (StringUtils.hasText(sb)) { statements.add(sb.toString()); } }