@@ -57,54 +57,64 @@ private <T> T deserialize(final Type type, final JsonParser parser, final Deseri
5757
5858 @ Override
5959 public <T > T fromJson (String str , Class <T > type ) throws JsonbException {
60- final JsonParser parser = jsonbContext .getJsonProvider ().createParser (new StringReader (str ));
61- final DeserializationContextImpl unmarshaller = new DeserializationContextImpl (jsonbContext );
62- return deserialize (type , parser , unmarshaller );
60+ try (JsonParser parser = jsonbContext .getJsonProvider ().createParser (new StringReader (str ))) {
61+ final DeserializationContextImpl unmarshaller = new DeserializationContextImpl (jsonbContext );
62+ return deserialize (type , parser , unmarshaller );
63+ }
6364 }
6465
6566 @ Override
6667 public <T > T fromJson (String str , Type type ) throws JsonbException {
67- JsonParser parser = jsonbContext .getJsonProvider ().createParser (new StringReader (str ));
68- DeserializationContextImpl unmarshaller = new DeserializationContextImpl (jsonbContext );
69- return deserialize (type , parser , unmarshaller );
68+ try (JsonParser parser = jsonbContext .getJsonProvider ().createParser (new StringReader (str ))) {
69+ DeserializationContextImpl unmarshaller = new DeserializationContextImpl (jsonbContext );
70+ return deserialize (type , parser , unmarshaller );
71+ }
7072 }
7173
7274 @ Override
7375 public <T > T fromJson (Reader reader , Class <T > type ) throws JsonbException {
74- JsonParser parser = jsonbContext .getJsonProvider ().createParser (reader );
75- DeserializationContextImpl unmarshaller = new DeserializationContextImpl (jsonbContext );
76- return deserialize (type , parser , unmarshaller );
76+ try (JsonParser parser = jsonbContext .getJsonProvider ().createParser (reader )) {
77+ DeserializationContextImpl unmarshaller = new DeserializationContextImpl (jsonbContext );
78+ return deserialize (type , parser , unmarshaller );
79+ }
7780 }
7881
7982 @ Override
8083 public <T > T fromJson (Reader reader , Type type ) throws JsonbException {
81- JsonParser parser = jsonbContext .getJsonProvider ().createParser (reader );
82- DeserializationContextImpl unmarshaller = new DeserializationContextImpl (jsonbContext );
83- return deserialize (type , parser , unmarshaller );
84+ try (JsonParser parser = jsonbContext .getJsonProvider ().createParser (reader )) {
85+ DeserializationContextImpl unmarshaller = new DeserializationContextImpl (jsonbContext );
86+ return deserialize (type , parser , unmarshaller );
87+ }
8488 }
8589
8690 @ Override
8791 public <T > T fromJson (InputStream stream , Class <T > clazz ) throws JsonbException {
8892 DeserializationContextImpl unmarshaller = new DeserializationContextImpl (jsonbContext );
89- return deserialize (clazz , inputStreamParser (stream ), unmarshaller );
93+ try (JsonParser parser = inputStreamParser (stream )) {
94+ return deserialize (clazz , inputStreamParser (stream ), unmarshaller );
95+ }
9096 }
9197
9298 @ Override
9399 public <T > T fromJson (InputStream stream , Type type ) throws JsonbException {
94100 DeserializationContextImpl unmarshaller = new DeserializationContextImpl (jsonbContext );
95- return deserialize (type , inputStreamParser (stream ), unmarshaller );
101+ try (JsonParser parser = inputStreamParser (stream )) {
102+ return deserialize (type , inputStreamParser (stream ), unmarshaller );
103+ }
96104 }
97105
98106 @ Override
99107 public <T > T fromJsonStructure (JsonStructure jsonStructure , Class <T > type ) throws JsonbException {
100- JsonParser parser = new JsonStructureToParserAdapter (jsonStructure );
101- return deserialize (type , parser , new DeserializationContextImpl (jsonbContext ));
108+ try (JsonParser parser = new JsonStructureToParserAdapter (jsonStructure )) {
109+ return deserialize (type , parser , new DeserializationContextImpl (jsonbContext ));
110+ }
102111 }
103112
104113 @ Override
105114 public <T > T fromJsonStructure (JsonStructure jsonStructure , Type runtimeType ) throws JsonbException {
106- JsonParser parser = new JsonStructureToParserAdapter (jsonStructure );
107- return deserialize (runtimeType , parser , new DeserializationContextImpl (jsonbContext ));
115+ try (JsonParser parser = new JsonStructureToParserAdapter (jsonStructure )) {
116+ return deserialize (runtimeType , parser , new DeserializationContextImpl (jsonbContext ));
117+ }
108118 }
109119
110120 private JsonParser inputStreamParser (InputStream stream ) {
@@ -117,29 +127,35 @@ private JsonParser inputStreamParser(InputStream stream) {
117127 @ Override
118128 public String toJson (Object object ) throws JsonbException {
119129 StringWriter writer = new StringWriter ();
120- final JsonGenerator generator = writerGenerator (writer );
121- new SerializationContextImpl (jsonbContext ).marshall (object , generator );
130+ try (JsonGenerator generator = writerGenerator (writer )) {
131+ new SerializationContextImpl (jsonbContext ).marshall (object , generator );
132+ }
122133 return writer .toString ();
123134 }
124135
125136 @ Override
126137 public String toJson (Object object , Type type ) throws JsonbException {
127138 StringWriter writer = new StringWriter ();
128- final JsonGenerator generator = writerGenerator (writer );
129- new SerializationContextImpl (jsonbContext , type ).marshall (object , generator );
139+ try (JsonGenerator generator = writerGenerator (writer )) {
140+ new SerializationContextImpl (jsonbContext , type ).marshall (object , generator );
141+ }
130142 return writer .toString ();
131143 }
132144
133145 @ Override
134146 public void toJson (Object object , Writer writer ) throws JsonbException {
135147 final SerializationContextImpl marshaller = new SerializationContextImpl (jsonbContext );
136- marshaller .marshallWithoutClose (object , writerGenerator (writer ));
148+ try (JsonGenerator generator = writerGenerator (writer )) {
149+ marshaller .marshallWithoutClose (object , generator );
150+ }
137151 }
138152
139153 @ Override
140154 public void toJson (Object object , Type type , Writer writer ) throws JsonbException {
141155 final SerializationContextImpl marshaller = new SerializationContextImpl (jsonbContext , type );
142- marshaller .marshallWithoutClose (object , writerGenerator (writer ));
156+ try (JsonGenerator generator = writerGenerator (writer )) {
157+ marshaller .marshallWithoutClose (object , generator );
158+ }
143159 }
144160
145161 private JsonGenerator writerGenerator (Writer writer ) {
@@ -153,13 +169,17 @@ private JsonGenerator writerGenerator(Writer writer) {
153169 @ Override
154170 public void toJson (Object object , OutputStream stream ) throws JsonbException {
155171 final SerializationContextImpl marshaller = new SerializationContextImpl (jsonbContext );
156- marshaller .marshall (object , streamGenerator (stream ));
172+ try (JsonGenerator generator = streamGenerator (stream )) {
173+ marshaller .marshall (object , generator );
174+ }
157175 }
158176
159177 @ Override
160178 public void toJson (Object object , Type type , OutputStream stream ) throws JsonbException {
161179 final SerializationContextImpl marshaller = new SerializationContextImpl (jsonbContext , type );
162- marshaller .marshall (object , streamGenerator (stream ));
180+ try (JsonGenerator generator = streamGenerator (stream )) {
181+ marshaller .marshall (object , generator );
182+ }
163183 }
164184
165185 @ Override
0 commit comments