CsvReader - close() 後の読込み操作で IOException がスローされず NullPointerException がスローされる不具合を修正
@@ -3,6 +3,13 @@ | ||
3 | 3 | http://orangesignal.sourceforge.jp/csv/ |
4 | 4 | |
5 | 5 | |
6 | +バージョン 1.3.1 | |
7 | +---------------- | |
8 | + | |
9 | +パッケージ jp.sf.orangesignal.csv | |
10 | +* CsvReader - close() 後の読込み操作で IOException がスローされず NullPointerException がスローされる不具合を修正 | |
11 | + | |
12 | + | |
6 | 13 | バージョン 1.3.0 |
7 | 14 | ---------------- |
8 | 15 |
@@ -534,13 +534,15 @@ | ||
534 | 534 | } |
535 | 535 | } |
536 | 536 | |
537 | -/* | |
538 | - @Test(expected = IOException.class) | |
537 | + @Test | |
539 | 538 | public void testClosed() throws IOException { |
539 | + // Arrange | |
540 | + exception.expect(IOException.class); | |
541 | + exception.expectMessage("Stream closed"); | |
540 | 542 | final CsvReader reader = new CsvReader(new StringReader(""), new CsvConfig()); |
541 | 543 | reader.close(); |
544 | + // Act | |
542 | 545 | reader.readValues(); |
543 | 546 | } |
544 | -*/ | |
545 | 547 | |
546 | 548 | } |
@@ -268,7 +268,7 @@ | ||
268 | 268 | * @throws IOException 入出力エラーが発生した場合 |
269 | 269 | */ |
270 | 270 | private int read() throws IOException { |
271 | - synchronized (in) { | |
271 | + synchronized (this) { | |
272 | 272 | ensureOpen(); |
273 | 273 | if (endOfFile) { |
274 | 274 | return -1; |
@@ -309,7 +309,7 @@ | ||
309 | 309 | * @throws IOException 入出力エラーが発生した場合 |
310 | 310 | */ |
311 | 311 | public List<CsvToken> readTokens() throws IOException { |
312 | - synchronized (in) { | |
312 | + synchronized (this) { | |
313 | 313 | ensureOpen(); |
314 | 314 | if (endOfFile) { |
315 | 315 | return null; |
@@ -608,7 +608,7 @@ | ||
608 | 608 | |
609 | 609 | @Override |
610 | 610 | public void close() throws IOException { |
611 | - synchronized (in) { | |
611 | + synchronized (this) { | |
612 | 612 | in.close(); |
613 | 613 | in = null; |
614 | 614 | cfg = null; |