@ -239,10 +239,10 @@ public class ResourceDatabasePopulator implements DatabasePopulator {
@@ -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 < code > List < / code > .
* Split an SQL script into separate statements delimited with the provided delimiter character .
* Each individual statement will be added to the provided < code > List < / code > .
* @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 < String > statements ) {
@ -250,20 +250,21 @@ public class ResourceDatabasePopulator implements DatabasePopulator {
@@ -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 ( ) ) ;
}
}