You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ce...@apache.org on 2018/04/02 17:16:01 UTC

svn commit: r1828178 - in /poi/trunk/src: ooxml/java/org/apache/poi/poifs/crypt/dsig/services/ ooxml/testcases/org/apache/poi/extractor/ ooxml/testcases/org/apache/poi/openxml4j/util/ ooxml/testcases/org/apache/poi/poifs/crypt/ ooxml/testcases/org/apac...

Author: centic
Date: Mon Apr  2 17:16:01 2018
New Revision: 1828178

URL: http://svn.apache.org/viewvc?rev=1828178&view=rev
Log:
Close resources in tests and in case of Exceptions and use try-with-resources. Close the socket-connection during encrpyting/decrypting as soon as it is not needed any more.

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

Modified: poi/trunk/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/services/TSPTimeStampService.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/services/TSPTimeStampService.java?rev=1828178&r1=1828177&r2=1828178&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/services/TSPTimeStampService.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/services/TSPTimeStampService.java Mon Apr  2 17:16:01 2018
@@ -124,48 +124,53 @@ public class TSPTimeStampService impleme
             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");
+
+            OutputStream hucOut = huc.getOutputStream();
+            hucOut.write(encodedRequest);
 
-        // HTTP input validation
-        String contentType = huc.getHeaderField("Content-Type");
-        if (null == contentType) {
-            throw new RuntimeException("missing Content-Type header");
+            // 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"

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/extractor/TestExtractorFactory.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/extractor/TestExtractorFactory.java?rev=1828178&r1=1828177&r2=1828178&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/extractor/TestExtractorFactory.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/extractor/TestExtractorFactory.java Mon Apr  2 17:16:01 2018
@@ -806,6 +806,7 @@ public class TestExtractorFactory {
                 ExtractorFactory.createExtractor(xlsEmb);
         embeds = ExtractorFactory.getEmbededDocsTextExtractors(ext);
         assertNotNull(embeds);
+        ext.close();
 
         // Excel
         ext = (POIOLE2TextExtractor)

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/util/TestZipSecureFile.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/util/TestZipSecureFile.java?rev=1828178&r1=1828177&r2=1828178&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/util/TestZipSecureFile.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/util/TestZipSecureFile.java Mon Apr  2 17:16:01 2018
@@ -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"));
+        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();
 
-        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);
+                    InputStream inputStream = secureFile.getInputStream(entry);
+                    assertTrue(inputStream.available() > 0);
+                }
+            }
         }
     }
 }

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/poifs/crypt/TestSignatureInfo.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/poifs/crypt/TestSignatureInfo.java?rev=1828178&r1=1828177&r2=1828178&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/poifs/crypt/TestSignatureInfo.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/poifs/crypt/TestSignatureInfo.java Mon Apr  2 17:16:01 2018
@@ -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

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestSXSSFBugs.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestSXSSFBugs.java?rev=1828178&r1=1828177&r2=1828178&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestSXSSFBugs.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestSXSSFBugs.java Mon Apr  2 17:16:01 2018
@@ -113,8 +113,8 @@ public final class TestSXSSFBugs extends
         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

Modified: poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/HWPFTestDataSamples.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/HWPFTestDataSamples.java?rev=1828178&r1=1828177&r2=1828178&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/HWPFTestDataSamples.java (original)
+++ poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/HWPFTestDataSamples.java Mon Apr  2 17:16:01 2018
@@ -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 )
         {



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org