Skip to content

Commit 096a204

Browse files
author
Andrew Snare
committed
Ensure all tests close the database reader when finished.
1 parent a69181e commit 096a204

File tree

2 files changed

+55
-27
lines changed

2 files changed

+55
-27
lines changed

src/test/java/com/maxmind/db/MultiThreadedTest.java

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,11 @@ public JsonNode call() throws UnknownHostException, IOException,
3333
"/maxmind-db/test-data/MaxMind-DB-test-decoder.mmdb")
3434
.toURI();
3535
final Reader reader = new Reader(new File(file));
36-
return reader.get(InetAddress.getByName("::1.1.1.0"));
36+
try {
37+
return reader.get(InetAddress.getByName("::1.1.1.0"));
38+
} finally {
39+
reader.close();
40+
}
3741
}
3842
};
3943
MultiThreadedTest.runThreads(task);
@@ -45,7 +49,11 @@ public void streamThreadTest() throws IOException, InterruptedException,
4549
final Reader reader = new Reader(ReaderTest.class.getResource(
4650
"/maxmind-db/test-data/MaxMind-DB-test-decoder.mmdb")
4751
.openStream());
48-
MultiThreadedTest.threadTest(reader);
52+
try {
53+
MultiThreadedTest.threadTest(reader);
54+
} finally {
55+
reader.close();
56+
}
4957
}
5058

5159
@Test
@@ -54,7 +62,11 @@ public void mmapThreadTest() throws IOException, InterruptedException,
5462
URI file = ReaderTest.class.getResource(
5563
"/maxmind-db/test-data/MaxMind-DB-test-decoder.mmdb").toURI();
5664
final Reader reader = new Reader(new File(file));
57-
MultiThreadedTest.threadTest(reader);
65+
try {
66+
MultiThreadedTest.threadTest(reader);
67+
} finally {
68+
reader.close();
69+
}
5870
}
5971

6072
private static void threadTest(final Reader reader) throws InterruptedException,

src/test/java/com/maxmind/db/ReaderTest.java

Lines changed: 40 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
import java.util.HashMap;
1717
import java.util.Map;
1818

19+
import org.junit.After;
20+
import org.junit.Before;
1921
import org.junit.Rule;
2022
import org.junit.Test;
2123
import org.junit.rules.ExpectedException;
@@ -27,6 +29,20 @@
2729
public class ReaderTest {
2830
private final ObjectMapper om = new ObjectMapper();
2931

32+
private Reader testReader;
33+
34+
@Before
35+
public void setupReader() {
36+
testReader = null;
37+
}
38+
39+
@After
40+
public void teardownReader() throws IOException {
41+
if (testReader != null) {
42+
testReader.close();
43+
}
44+
}
45+
3046
@Test
3147
public void test() throws IOException, URISyntaxException {
3248
for (long recordSize : new long[] { 24, 28, 32 }) {
@@ -56,8 +72,8 @@ public void testNoIpV4SearchTreeFile() throws IOException,
5672
"/maxmind-db/test-data/MaxMind-DB-no-ipv4-search-tree.mmdb")
5773
.toURI();
5874

59-
Reader reader = new Reader(new File(file));
60-
this.testNoIpV4SearchTree(reader);
75+
testReader = new Reader(new File(file));
76+
this.testNoIpV4SearchTree(testReader);
6177
}
6278

6379
@Test
@@ -66,8 +82,8 @@ public void testNoIpV4SearchTreeURL() throws IOException,
6682
InputStream stream = ReaderTest.class.getResource(
6783
"/maxmind-db/test-data/MaxMind-DB-no-ipv4-search-tree.mmdb")
6884
.openStream();
69-
Reader reader = new Reader(stream);
70-
this.testNoIpV4SearchTree(reader);
85+
testReader = new Reader(stream);
86+
this.testNoIpV4SearchTree(testReader);
7187
}
7288

7389
private void testNoIpV4SearchTree(Reader reader) throws IOException,
@@ -84,8 +100,8 @@ public void testDecodingTypesFile() throws URISyntaxException, IOException {
84100
URI file = ReaderTest.class.getResource(
85101
"/maxmind-db/test-data/MaxMind-DB-test-decoder.mmdb").toURI();
86102

87-
Reader reader = new Reader(new File(file));
88-
this.testDecodingTypes(reader);
103+
testReader = new Reader(new File(file));
104+
this.testDecodingTypes(testReader);
89105
}
90106

91107
@Test
@@ -94,8 +110,8 @@ public void testDecodingTypesURL() throws URISyntaxException, IOException {
94110
"/maxmind-db/test-data/MaxMind-DB-test-decoder.mmdb")
95111
.openStream();
96112

97-
Reader reader = new Reader(stream);
98-
this.testDecodingTypes(reader);
113+
testReader = new Reader(stream);
114+
this.testDecodingTypes(testReader);
99115
}
100116

101117
private void testDecodingTypes(Reader reader) throws URISyntaxException,
@@ -147,8 +163,8 @@ public void testZerosFile() throws URISyntaxException, IOException {
147163
URI file = ReaderTest.class.getResource(
148164
"/maxmind-db/test-data/MaxMind-DB-test-decoder.mmdb").toURI();
149165

150-
Reader reader = new Reader(new File(file));
151-
this.testZeros(reader);
166+
testReader = new Reader(new File(file));
167+
this.testZeros(testReader);
152168
}
153169

154170
@Test
@@ -157,8 +173,8 @@ public void testZerosURL() throws URISyntaxException, IOException {
157173
"/maxmind-db/test-data/MaxMind-DB-test-decoder.mmdb")
158174
.openStream();
159175

160-
Reader reader = new Reader(stream);
161-
this.testZeros(reader);
176+
testReader = new Reader(stream);
177+
this.testZeros(testReader);
162178
}
163179

164180
private void testZeros(Reader reader) throws URISyntaxException,
@@ -196,8 +212,8 @@ public void testBrokenDatabaseFile() throws URISyntaxException, IOException {
196212
"/maxmind-db/test-data/GeoIP2-City-Test-Broken-Double-Format.mmdb")
197213
.toURI();
198214

199-
Reader reader = new Reader(new File(file));
200-
this.testBrokenDatabase(reader);
215+
testReader = new Reader(new File(file));
216+
this.testBrokenDatabase(testReader);
201217
}
202218

203219
@Test
@@ -207,8 +223,8 @@ public void testBrokenDatabaseURL() throws URISyntaxException, IOException {
207223
"/maxmind-db/test-data/GeoIP2-City-Test-Broken-Double-Format.mmdb")
208224
.openStream();
209225

210-
Reader reader = new Reader(stream);
211-
this.testBrokenDatabase(reader);
226+
testReader = new Reader(stream);
227+
this.testBrokenDatabase(testReader);
212228
}
213229

214230
private void testBrokenDatabase(Reader reader) throws URISyntaxException,
@@ -229,8 +245,8 @@ public void testBrokenSearchTreePointerFile() throws URISyntaxException,
229245
"/maxmind-db/test-data/MaxMind-DB-test-broken-pointers-24.mmdb")
230246
.toURI();
231247

232-
Reader reader = new Reader(new File(file));
233-
this.testBrokenSearchTreePointer(reader);
248+
testReader = new Reader(new File(file));
249+
this.testBrokenSearchTreePointer(testReader);
234250
}
235251

236252
@Test
@@ -241,8 +257,8 @@ public void testBrokenSearchTreePointerURL() throws URISyntaxException,
241257
"/maxmind-db/test-data/MaxMind-DB-test-broken-pointers-24.mmdb")
242258
.openStream();
243259

244-
Reader reader = new Reader(stream);
245-
this.testBrokenSearchTreePointer(reader);
260+
testReader = new Reader(stream);
261+
this.testBrokenSearchTreePointer(testReader);
246262
}
247263

248264
private void testBrokenSearchTreePointer(Reader reader)
@@ -263,8 +279,8 @@ public void testBrokenDataPointerFile() throws IOException,
263279
"/maxmind-db/test-data/MaxMind-DB-test-broken-pointers-24.mmdb")
264280
.toURI();
265281

266-
Reader reader = new Reader(new File(file));
267-
this.testBrokenDataPointer(reader);
282+
testReader = new Reader(new File(file));
283+
this.testBrokenDataPointer(testReader);
268284
}
269285

270286
@Test
@@ -275,8 +291,8 @@ public void testBrokenDataPointerURL() throws IOException,
275291
"/maxmind-db/test-data/MaxMind-DB-test-broken-pointers-24.mmdb")
276292
.openStream();
277293

278-
Reader reader = new Reader(stream);
279-
this.testBrokenDataPointer(reader);
294+
testReader = new Reader(stream);
295+
this.testBrokenDataPointer(testReader);
280296
}
281297

282298
private void testBrokenDataPointer(Reader reader) throws IOException,

0 commit comments

Comments
 (0)