Skip to content

Commit 71180b0

Browse files
committed
SXP: Free resources after reading them
DEVSIX-2314
1 parent 12da629 commit 71180b0

File tree

2 files changed

+20
-18
lines changed

2 files changed

+20
-18
lines changed

styled-xml-parser/src/main/java/com/itextpdf/styledxmlparser/resolver/resource/ResourceResolver.java

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -163,9 +163,13 @@ public InputStream retrieveStyleSheet(String uri) throws IOException {
163163
*/
164164
@Deprecated
165165
public byte[] retrieveStream(String src) {
166-
try {
167-
return StreamUtil.inputStreamToArray(retrieveResourceAsInputStream(src));
168-
}catch(Exception e){
166+
try (InputStream stream = retrieveResourceAsInputStream(src)) {
167+
if (stream != null) {
168+
return StreamUtil.inputStreamToArray(stream);
169+
} else {
170+
return null;
171+
}
172+
} catch (Exception e) {
169173
Logger logger = LoggerFactory.getLogger(ResourceResolver.class);
170174
logger.error(MessageFormatUtil.format(LogMessageConstant.UNABLE_TO_RETRIEVE_STREAM_WITH_GIVEN_BASE_URI, uriResolver.getBaseUri(), src), e);
171175
return null;
@@ -180,20 +184,17 @@ public byte[] retrieveStream(String src) {
180184
* @return byte[] on success, otherwise null.
181185
*/
182186
public byte[] retrieveBytesFromResource(String src) {
183-
InputStream stream = retrieveResourceAsInputStream(src);
184-
if(stream !=null) {
185-
try {
187+
try (InputStream stream = retrieveResourceAsInputStream(src)) {
188+
if (stream != null) {
186189
return StreamUtil.inputStreamToArray(stream);
187-
}catch(IOException ioe){
188-
Logger logger = LoggerFactory.getLogger(ResourceResolver.class);
189-
logger.error(MessageFormatUtil.format(LogMessageConstant.UNABLE_TO_RETRIEVE_STREAM_WITH_GIVEN_BASE_URI, uriResolver.getBaseUri(), src), ioe);
190+
} else {
190191
return null;
191192
}
192-
}else{
193+
} catch (IOException ioe) {
194+
Logger logger = LoggerFactory.getLogger(ResourceResolver.class);
195+
logger.error(MessageFormatUtil.format(LogMessageConstant.UNABLE_TO_RETRIEVE_STREAM_WITH_GIVEN_BASE_URI, uriResolver.getBaseUri(), src), ioe);
193196
return null;
194197
}
195-
196-
197198
}
198199

199200
/**

styled-xml-parser/src/test/java/com/itextpdf/styledxmlparser/resolver/resource/ResourceResolverTest.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,26 +49,27 @@ This file is part of the iText (R) project.
4949
import com.itextpdf.test.annotations.LogMessage;
5050
import com.itextpdf.test.annotations.LogMessages;
5151
import com.itextpdf.test.annotations.type.UnitTest;
52-
import java.io.File;
53-
import java.io.FileInputStream;
54-
import java.io.IOException;
55-
import java.io.InputStream;
56-
import java.nio.file.Files;
5752
import org.junit.Assert;
5853
import org.junit.Ignore;
5954
import org.junit.Rule;
6055
import org.junit.Test;
6156
import org.junit.experimental.categories.Category;
6257
import org.junit.rules.ExpectedException;
6358

59+
import java.io.File;
60+
import java.io.FileInputStream;
61+
import java.io.IOException;
62+
import java.io.InputStream;
63+
import java.nio.file.Files;
64+
6465
@Category(UnitTest.class)
6566
public class ResourceResolverTest extends ExtendedITextTest {
6667
private final String baseUri = "./src/test/resources/com/itextpdf/styledxmlparser/resolver/retrieveStreamTest/";
6768
@Rule
6869
public ExpectedException junitExpectedException = ExpectedException.none();
6970

7071
@Test
71-
@LogMessages(messages = @LogMessage(messageTemplate = LogMessageConstant.UNABLE_TO_RETRIEVE_STREAM_WITH_GIVEN_BASE_URI, count = 2))
72+
@LogMessages(messages = @LogMessage(messageTemplate = LogMessageConstant.UNABLE_TO_RETRIEVE_STREAM_WITH_GIVEN_BASE_URI, count = 1))
7273
public void malformedResourceNameTest() {
7374
String fileName = "resourceResolverTest .png";
7475
ResourceResolver resourceResolver = new ResourceResolver(baseUri);

0 commit comments

Comments
 (0)