]> source.dussan.org Git - poi.git/commitdiff
Close resources in tests and in case of Exceptions and use try-with-resources. Close...
authorDominik Stadler <centic@apache.org>
Mon, 2 Apr 2018 17:16:01 +0000 (17:16 +0000)
committerDominik Stadler <centic@apache.org>
Mon, 2 Apr 2018 17:16:01 +0000 (17:16 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1828178 13f79535-47bb-0310-9956-ffa450edef68

src/ooxml/java/org/apache/poi/poifs/crypt/dsig/services/TSPTimeStampService.java
src/ooxml/testcases/org/apache/poi/extractor/TestExtractorFactory.java
src/ooxml/testcases/org/apache/poi/openxml4j/util/TestZipSecureFile.java
src/ooxml/testcases/org/apache/poi/poifs/crypt/TestSignatureInfo.java
src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestSXSSFBugs.java
src/scratchpad/testcases/org/apache/poi/hwpf/HWPFTestDataSamples.java

index 9330c1948cbfa9d83c44ffc85c0a7b4faadbda80..7066f14cd70fc4fa42aa34f7923901cfa08f6df4 100644 (file)
@@ -124,48 +124,53 @@ public class TSPTimeStampService implements TimeStampService {
             int port = proxyUrl.getPort();
             proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(InetAddress.getByName(host), (port == -1 ? 80 : port)));
         }
-        
+
+        ByteArrayOutputStream bos;
+        String contentType;
         HttpURLConnection huc = (HttpURLConnection)new URL(signatureConfig.getTspUrl()).openConnection(proxy);
-        
-        if (signatureConfig.getTspUser() != null) {
-            String userPassword = signatureConfig.getTspUser() + ":" + signatureConfig.getTspPass();
-            String encoding = DatatypeConverter.printBase64Binary(userPassword.getBytes(StandardCharsets.ISO_8859_1));
-            huc.setRequestProperty("Authorization", "Basic " + encoding);
-        }
+        try {
+            if (signatureConfig.getTspUser() != null) {
+                String userPassword = signatureConfig.getTspUser() + ":" + signatureConfig.getTspPass();
+                String encoding = DatatypeConverter.printBase64Binary(userPassword.getBytes(StandardCharsets.ISO_8859_1));
+                huc.setRequestProperty("Authorization", "Basic " + encoding);
+            }
 
-        huc.setRequestMethod("POST");
-        huc.setConnectTimeout(20000);
-        huc.setReadTimeout(20000);
-        huc.setDoOutput(true); // also sets method to POST.
-        huc.setRequestProperty("User-Agent", signatureConfig.getUserAgent());
-        huc.setRequestProperty("Content-Type", signatureConfig.isTspOldProtocol()
-            ? "application/timestamp-request"
-            : "application/timestamp-query"); // "; charset=ISO-8859-1");
-        
-        OutputStream hucOut = huc.getOutputStream();
-        hucOut.write(encodedRequest);
-        
-        // invoke TSP service
-        huc.connect();
-        
-        int statusCode = huc.getResponseCode();
-        if (statusCode != 200) {
-            LOG.log(POILogger.ERROR, "Error contacting TSP server ", signatureConfig.getTspUrl() +
-                    ", had status code " + statusCode + "/" + huc.getResponseMessage());
-            throw new IOException("Error contacting TSP server " + signatureConfig.getTspUrl() +
-                    ", had status code " + statusCode + "/" + huc.getResponseMessage());
-        }
+            huc.setRequestMethod("POST");
+            huc.setConnectTimeout(20000);
+            huc.setReadTimeout(20000);
+            huc.setDoOutput(true); // also sets method to POST.
+            huc.setRequestProperty("User-Agent", signatureConfig.getUserAgent());
+            huc.setRequestProperty("Content-Type", signatureConfig.isTspOldProtocol()
+                    ? "application/timestamp-request"
+                    : "application/timestamp-query"); // "; charset=ISO-8859-1");
 
-        // HTTP input validation
-        String contentType = huc.getHeaderField("Content-Type");
-        if (null == contentType) {
-            throw new RuntimeException("missing Content-Type header");
+            OutputStream hucOut = huc.getOutputStream();
+            hucOut.write(encodedRequest);
+
+            // invoke TSP service
+            huc.connect();
+
+            int statusCode = huc.getResponseCode();
+            if (statusCode != 200) {
+                LOG.log(POILogger.ERROR, "Error contacting TSP server ", signatureConfig.getTspUrl() +
+                        ", had status code " + statusCode + "/" + huc.getResponseMessage());
+                throw new IOException("Error contacting TSP server " + signatureConfig.getTspUrl() +
+                        ", had status code " + statusCode + "/" + huc.getResponseMessage());
+            }
+
+            // HTTP input validation
+            contentType = huc.getHeaderField("Content-Type");
+            if (null == contentType) {
+                throw new RuntimeException("missing Content-Type header");
+            }
+
+            bos = new ByteArrayOutputStream();
+            IOUtils.copy(huc.getInputStream(), bos);
+            LOG.log(POILogger.DEBUG, "response content: ", HexDump.dump(bos.toByteArray(), 0, 0));
+        } finally {
+            huc.disconnect();
         }
-        
-        ByteArrayOutputStream bos = new ByteArrayOutputStream();
-        IOUtils.copy(huc.getInputStream(), bos);
-        LOG.log(POILogger.DEBUG, "response content: ", HexDump.dump(bos.toByteArray(), 0, 0));
-        
+
         if (!contentType.startsWith(signatureConfig.isTspOldProtocol() 
             ? "application/timestamp-response"
             : "application/timestamp-reply"
index 345762b37140ca01f88ce99ad05e6164be26255b..3670f6fc7a7f7b7f68e65ecf211921885790395d 100644 (file)
@@ -806,6 +806,7 @@ public class TestExtractorFactory {
                 ExtractorFactory.createExtractor(xlsEmb);
         embeds = ExtractorFactory.getEmbededDocsTextExtractors(ext);
         assertNotNull(embeds);
+        ext.close();
 
         // Excel
         ext = (POIOLE2TextExtractor)
index 249ff01dcba4e06f47de29eb4527b2cf133f233d..eb19cecb3ebbafacac41bfbac4e9fa03e69a2f0a 100644 (file)
@@ -33,16 +33,16 @@ public class TestZipSecureFile {
         // ClassCastException in ZipFile now
         // The relevant change in the JDK is http://hg.openjdk.java.net/jdk/jdk10/rev/85ea7e83af30#l5.66
 
-        ZipFile thresholdInputStream = new ZipFile(XSSFTestDataSamples.getSampleFile("template.xlsx"));
-
-        ZipSecureFile secureFile = new ZipSecureFile(XSSFTestDataSamples.getSampleFile("template.xlsx"));
-
-        Enumeration<? extends ZipEntry> entries = thresholdInputStream.entries();
-        while (entries.hasMoreElements()) {
-            ZipEntry entry = entries.nextElement();
-
-            InputStream inputStream = secureFile.getInputStream(entry);
-            assertTrue(inputStream.available() > 0);
+        try (ZipFile thresholdInputStream = new ZipFile(XSSFTestDataSamples.getSampleFile("template.xlsx"))) {
+            try (ZipSecureFile secureFile = new ZipSecureFile(XSSFTestDataSamples.getSampleFile("template.xlsx"))) {
+                Enumeration<? extends ZipEntry> entries = thresholdInputStream.entries();
+                while (entries.hasMoreElements()) {
+                    ZipEntry entry = entries.nextElement();
+
+                    InputStream inputStream = secureFile.getInputStream(entry);
+                    assertTrue(inputStream.available() > 0);
+                }
+            }
         }
     }
 }
index 3db9b4f83704106ed777e7d613d733d1e40f6b65..51b863dce92c891f546e1a35fbeb9517aecaee0a 100644 (file)
@@ -113,7 +113,7 @@ public class TestSignatureInfo {
     }
     
     @BeforeClass
-    public static void initBouncy() throws IOException {
+    public static void initBouncy() {
         CryptoFunctions.registerBouncyCastle();
 
         // Set cal to now ... only set to fixed date for debugging ...
@@ -164,7 +164,7 @@ public class TestSignatureInfo {
         Calendar cal = LocaleUtil.getLocaleCalendar(LocaleUtil.TIMEZONE_UTC);
         cal.clear();
         cal.setTimeZone(LocaleUtil.TIMEZONE_UTC);
-        cal.set(2017, 6, 1);
+        cal.set(2017, Calendar.JULY, 1);
         
         SignatureConfig signatureConfig = prepareConfig("test", "CN=Test", pfxInput);
         signatureConfig.setExecutionTime(cal.getTime());
@@ -440,7 +440,7 @@ public class TestSignatureInfo {
         if (mockTsp) {
             TimeStampService tspService = new TimeStampService(){
                 @Override
-                public byte[] timeStamp(byte[] data, RevocationData revocationData) throws Exception {
+                public byte[] timeStamp(byte[] data, RevocationData revocationData) {
                     revocationData.addCRL(crl);
                     return "time-stamp-token".getBytes(LocaleUtil.CHARSET_1252);                
                 }
@@ -451,14 +451,10 @@ public class TestSignatureInfo {
             };
             signatureConfig.setTspService(tspService);
         } else {
-            TimeStampServiceValidator tspValidator = new TimeStampServiceValidator() {
-                @Override
-                public void validate(List<X509Certificate> validateChain,
-                RevocationData revocationData) throws Exception {
-                    for (X509Certificate certificate : validateChain) {
-                        LOG.log(POILogger.DEBUG, "certificate: " + certificate.getSubjectX500Principal());
-                        LOG.log(POILogger.DEBUG, "validity: " + certificate.getNotBefore() + " - " + certificate.getNotAfter());
-                    }
+            TimeStampServiceValidator tspValidator = (validateChain, revocationData) -> {
+                for (X509Certificate certificate : validateChain) {
+                    LOG.log(POILogger.DEBUG, "certificate: " + certificate.getSubjectX500Principal());
+                    LOG.log(POILogger.DEBUG, "validity: " + certificate.getNotBefore() + " - " + certificate.getNotAfter());
                 }
             };
             signatureConfig.setTspValidator(tspValidator);
@@ -471,12 +467,7 @@ public class TestSignatureInfo {
                 x509, x509, keyPair.getPrivate(), "SHA1withRSA", cal.getTimeInMillis());
         revocationData.addOCSP(ocspResp.getEncoded());
 
-        RevocationDataService revocationDataService = new RevocationDataService(){
-            @Override
-            public RevocationData getRevocationData(List<X509Certificate> revocationChain) {
-                return revocationData;
-            }
-        };
+        RevocationDataService revocationDataService = revocationChain -> revocationData;
         signatureConfig.setRevocationDataService(revocationDataService);
 
         // operate
index bb9a9a6a453a9082123823ad97898f6c67b8d481..3958aa2f6e98f04bf23b733cc1321c62b9f991b1 100644 (file)
@@ -113,8 +113,8 @@ public final class TestSXSSFBugs extends BaseTestBugzillaIssues {
         writeWorkbook(new XSSFWorkbook(), XSSFITestDataProvider.instance);
 
         // does not work
-        try {
-            writeWorkbook(new SXSSFWorkbook(), SXSSFITestDataProvider.instance);
+        try (SXSSFWorkbook wb = new SXSSFWorkbook()) {
+            writeWorkbook(wb, SXSSFITestDataProvider.instance);
             fail("Should catch exception here");
         } catch (RuntimeException e) {
             // this is not implemented yet
index 9978447781bc7da85c1d8d643e2cdf62f6711c8a..8f1e8c12c62458e305c865f529dcc8ff5f02817d 100644 (file)
@@ -37,7 +37,12 @@ public class HWPFTestDataSamples {
     public static HWPFDocument openSampleFile(String sampleFileName) {
         try {
             InputStream is = POIDataSamples.getDocumentInstance().openResourceAsStream(sampleFileName);
-            return new HWPFDocument(is);
+            try {
+                return new HWPFDocument(is);
+            } catch (Throwable e) {
+                is.close();
+                throw e;
+            }
         } catch (IOException e) {
             throw new RuntimeException(e);
         }
@@ -48,42 +53,33 @@ public class HWPFTestDataSamples {
         final long start = System.currentTimeMillis();
         try
         {
-            ZipInputStream is = new ZipInputStream( POIDataSamples
+            try (ZipInputStream is = new ZipInputStream(POIDataSamples
                     .getDocumentInstance()
-                    .openResourceAsStream( sampleFileName ) );
-            try
-            {
+                    .openResourceAsStream(sampleFileName))) {
                 is.getNextEntry();
                 ByteArrayOutputStream baos = new ByteArrayOutputStream();
-                try
-                {
-                    IOUtils.copy( is, baos );
-                }
-                finally
-                {
+                try {
+                    IOUtils.copy(is, baos);
+                } finally {
                     baos.close();
                 }
 
                 final long endUnzip = System.currentTimeMillis();
                 byte[] byteArray = baos.toByteArray();
 
-                logger.log( POILogger.DEBUG, "Unzipped in ",
-                        Long.valueOf( endUnzip - start ), " ms -- ",
-                        Long.valueOf( byteArray.length ), " byte(s)" );
+                logger.log(POILogger.DEBUG, "Unzipped in ",
+                        Long.valueOf(endUnzip - start), " ms -- ",
+                        Long.valueOf(byteArray.length), " byte(s)");
 
-                ByteArrayInputStream bais = new ByteArrayInputStream( byteArray );
-                HWPFDocument doc = new HWPFDocument( bais );
+                ByteArrayInputStream bais = new ByteArrayInputStream(byteArray);
+                HWPFDocument doc = new HWPFDocument(bais);
                 final long endParse = System.currentTimeMillis();
 
-                logger.log( POILogger.DEBUG, "Parsed in ",
-                        Long.valueOf( endParse - start ), " ms" );
+                logger.log(POILogger.DEBUG, "Parsed in ",
+                        Long.valueOf(endParse - start), " ms");
 
                 return doc;
             }
-            finally
-            {
-                is.close();
-            }
         }
         catch ( IOException e )
         {
@@ -105,39 +101,30 @@ public class HWPFTestDataSamples {
         {
                        logger.log(POILogger.DEBUG, "Downloading ", sampleFileUrl, " ...");
 
-            InputStream is = new URL( sampleFileUrl ).openStream();
-            try
-            {
+            try (InputStream is = new URL(sampleFileUrl).openStream()) {
                 ByteArrayOutputStream baos = new ByteArrayOutputStream();
-                try
-                {
-                    IOUtils.copy( is, baos );
-                }
-                finally
-                {
+                try {
+                    IOUtils.copy(is, baos);
+                } finally {
                     baos.close();
                 }
 
                 final long endDownload = System.currentTimeMillis();
                 byte[] byteArray = baos.toByteArray();
 
-                logger.log( POILogger.DEBUG, "Downloaded in ",
-                        Long.valueOf( endDownload - start ), " ms -- ",
-                        Long.valueOf( byteArray.length ), " byte(s)" );
+                logger.log(POILogger.DEBUG, "Downloaded in ",
+                        Long.valueOf(endDownload - start), " ms -- ",
+                        Long.valueOf(byteArray.length), " byte(s)");
 
-                ByteArrayInputStream bais = new ByteArrayInputStream( byteArray );
-                HWPFDocument doc = new HWPFDocument( bais );
+                ByteArrayInputStream bais = new ByteArrayInputStream(byteArray);
+                HWPFDocument doc = new HWPFDocument(bais);
                 final long endParse = System.currentTimeMillis();
 
-                logger.log( POILogger.DEBUG, "Parsed in ",
-                        Long.valueOf( endParse - start ), " ms" );
+                logger.log(POILogger.DEBUG, "Parsed in ",
+                        Long.valueOf(endParse - start), " ms");
 
                 return doc;
             }
-            finally
-            {
-                is.close();
-            }
         }
         catch ( IOException e )
         {