|
7 | 7 |
|
8 | 8 | import java.io.StringWriter;
|
9 | 9 |
|
10 |
| -public class ParserPrecisionLoss733Test extends BaseTest { |
11 |
| - final JsonFactory JSON_F = newStreamFactory(); |
| 10 | +// [jackson-core#730] |
| 11 | +public class ParserPrecisionLoss730Test extends BaseTest |
| 12 | +{ |
| 13 | + private final JsonFactory JSON_F = newStreamFactory(); |
12 | 14 |
|
| 15 | + // [jackson-core#730] |
13 | 16 | /**
|
14 | 17 | * Attempt to pass a BigDecimal value through without losing precision,
|
15 | 18 | * e.g. for pretty printing a file.
|
16 | 19 | */
|
17 | 20 | public void testCopyCurrentEventBigDecimal() throws Exception {
|
18 | 21 | String input = "1e999";
|
19 |
| - JsonParser parser = JSON_F.createParser(input); |
20 |
| - parser.nextToken(); |
21 | 22 | StringWriter stringWriter = new StringWriter();
|
22 |
| - JsonGenerator generator = JSON_F.createGenerator(stringWriter); |
23 |
| - generator.copyCurrentEvent(parser); |
24 |
| - parser.close(); |
25 |
| - generator.close(); |
26 |
| - String actual = stringWriter.toString(); |
27 |
| - assertEquals(input, actual); |
| 23 | + |
| 24 | + try (JsonParser parser = JSON_F.createParser(input)) { |
| 25 | + parser.nextToken(); |
| 26 | + try (JsonGenerator generator = JSON_F.createGenerator(stringWriter)) { |
| 27 | + generator.copyCurrentEvent(parser); |
| 28 | + } |
| 29 | + } |
| 30 | + assertEquals(input, stringWriter.toString()); |
28 | 31 | }
|
29 | 32 |
|
| 33 | + // [jackson-core#730] |
30 | 34 | /**
|
31 | 35 | * Same as {@link #testCopyCurrentEventBigDecimal()} using copyCurrentStructure instead.
|
32 | 36 | */
|
33 | 37 | public void testCopyCurrentStructureBigDecimal() throws Exception {
|
34 | 38 | String input = "[1e999]";
|
35 |
| - JsonParser parser = JSON_F.createParser(input); |
36 |
| - parser.nextToken(); |
37 | 39 | StringWriter stringWriter = new StringWriter();
|
38 |
| - JsonGenerator generator = JSON_F.createGenerator(stringWriter); |
39 |
| - generator.copyCurrentStructure(parser); |
40 |
| - parser.close(); |
41 |
| - generator.close(); |
42 |
| - String actual = stringWriter.toString(); |
43 |
| - assertEquals(input, actual); |
| 40 | + try (JsonParser parser = JSON_F.createParser(input)) { |
| 41 | + parser.nextToken(); |
| 42 | + try (JsonGenerator generator = JSON_F.createGenerator(stringWriter)) { |
| 43 | + generator.copyCurrentStructure(parser); |
| 44 | + } |
| 45 | + } |
| 46 | + assertEquals(input, stringWriter.toString()); |
44 | 47 | }
|
45 |
| - |
46 | 48 | }
|
0 commit comments