Skip to content

Commit 263dd55

Browse files
committed
SimpleJdbcTestUtils executeSqlScript properly closes its LineNumberReader after use (SPR-8872)
1 parent d10f225 commit 263dd55

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

org.springframework.test/src/main/java/org/springframework/test/jdbc/SimpleJdbcTestUtils.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323

2424
import org.apache.commons.logging.Log;
2525
import org.apache.commons.logging.LogFactory;
26+
2627
import org.springframework.core.io.Resource;
2728
import org.springframework.core.io.ResourceLoader;
2829
import org.springframework.core.io.support.EncodedResource;
@@ -134,9 +135,10 @@ public static void executeSqlScript(SimpleJdbcTemplate simpleJdbcTemplate, Encod
134135

135136
long startTime = System.currentTimeMillis();
136137
List<String> statements = new LinkedList<String>();
138+
LineNumberReader reader = null;
137139
try {
138-
LineNumberReader lnr = new LineNumberReader(resource.getReader());
139-
String script = JdbcTestUtils.readScript(lnr);
140+
reader = new LineNumberReader(resource.getReader());
141+
String script = JdbcTestUtils.readScript(reader);
140142
char delimiter = ';';
141143
if (!JdbcTestUtils.containsSqlScriptDelimiters(script, delimiter)) {
142144
delimiter = '\n';
@@ -168,6 +170,17 @@ public static void executeSqlScript(SimpleJdbcTemplate simpleJdbcTemplate, Encod
168170
catch (IOException ex) {
169171
throw new DataAccessResourceFailureException("Failed to open SQL script from " + resource, ex);
170172
}
173+
finally {
174+
try {
175+
if (reader != null) {
176+
reader.close();
177+
}
178+
}
179+
catch (IOException ex) {
180+
// ignore
181+
}
182+
183+
}
171184
}
172185

173186
}

0 commit comments

Comments
 (0)