Author: tilman
Date: Mon Jun 29 12:04:35 2026
New Revision: 1935706

Log:
PDFBOX-5660: use try-with-resources

Modified:
   
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/encryption/TestSymmetricKeyEncryption.java

Modified: 
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/encryption/TestSymmetricKeyEncryption.java
==============================================================================
--- 
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/encryption/TestSymmetricKeyEncryption.java
      Mon Jun 29 10:10:40 2026        (r1935705)
+++ 
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/encryption/TestSymmetricKeyEncryption.java
      Mon Jun 29 12:04:35 2026        (r1935706)
@@ -406,48 +406,47 @@ class TestSymmetricKeyEncryption
             PDDocument doc, String prefix, AccessPermission permission,
             String userpassword, String ownerpassword) throws IOException
     {
-        StandardProtectionPolicy spp = new 
StandardProtectionPolicy(ownerpassword, userpassword,
-                permission);
-        spp.setEncryptionKeyLength(keyLength);
-        spp.setPreferAES(preferAES);
-        
-        // This must have no effect and should only log a warning.
-        doc.setAllSecurityToBeRemoved(true);
-        
-        doc.protect(spp);
-
-        File pdfFile = new File(TESTRESULTSDIR, prefix + keyLength + "-bit-" + 
(preferAES ? "AES" : "RC4") + "-encrypted.pdf");
-
-        doc.save(pdfFile);
-        doc.close();
+        File pdfFile;
+        try (doc)
+        {
+            StandardProtectionPolicy spp = new 
StandardProtectionPolicy(ownerpassword, userpassword,
+                    permission);
+            spp.setEncryptionKeyLength(keyLength);
+            spp.setPreferAES(preferAES);
+            // This must have no effect and should only log a warning.
+            doc.setAllSecurityToBeRemoved(true);
+            doc.protect(spp);
+            pdfFile = new File(TESTRESULTSDIR, prefix + keyLength + "-bit-" + 
(preferAES ? "AES" : "RC4") + "-encrypted.pdf");
+            doc.save(pdfFile);
+        }
         long sizeEncrypted = pdfFile.length();
         assertNotEquals(sizeEncrypted, sizePriorToEncr,
             keyLength + "-bit " + (preferAES ? "AES" : "RC4") + " encrypted 
pdf should not have same size as plain one");
 
         // test with owner password => full permissions
-        PDDocument encryptedDoc = Loader.loadPDF(pdfFile, ownerpassword);
-        assertTrue(encryptedDoc.isEncrypted());
-        
assertTrue(encryptedDoc.getCurrentAccessPermission().isOwnerPermission());
-
-        // Older encryption allows to get the user password when the owner 
password is known
-        PDEncryption encryption = encryptedDoc.getEncryption();
-        int revision = encryption.getRevision();
-        if (revision < 5)
+        try (PDDocument encryptedDoc = Loader.loadPDF(pdfFile, ownerpassword))
         {
-            StandardSecurityHandler standardSecurityHandler = new 
StandardSecurityHandler();
-            int keyLengthInBytes = encryption.getVersion() == 1 ? 5 : 
encryption.getLength() / 8;
-            byte[] computedUserPassword = 
standardSecurityHandler.getUserPassword(
-                    ownerpassword.getBytes(StandardCharsets.ISO_8859_1),
-                    encryption.getOwnerKey(),
-                    revision,
-                    keyLengthInBytes);
-            assertEquals(userpassword.substring(0, 32), new 
String(computedUserPassword, StandardCharsets.ISO_8859_1));
+            assertTrue(encryptedDoc.isEncrypted());
+            
assertTrue(encryptedDoc.getCurrentAccessPermission().isOwnerPermission());
+            
+            // Older encryption allows to get the user password when the owner 
password is known
+            PDEncryption encryption = encryptedDoc.getEncryption();
+            int revision = encryption.getRevision();
+            if (revision < 5)
+            {
+                StandardSecurityHandler standardSecurityHandler = new 
StandardSecurityHandler();
+                int keyLengthInBytes = encryption.getVersion() == 1 ? 5 : 
encryption.getLength() / 8;
+                byte[] computedUserPassword = 
standardSecurityHandler.getUserPassword(
+                        ownerpassword.getBytes(StandardCharsets.ISO_8859_1),
+                        encryption.getOwnerKey(),
+                        revision,
+                        keyLengthInBytes);
+                assertEquals(userpassword.substring(0, 32), new 
String(computedUserPassword, StandardCharsets.ISO_8859_1));
+            }
         }
 
-        encryptedDoc.close();
-
         // test with user password => restricted permissions
-        encryptedDoc = Loader.loadPDF(pdfFile, userpassword);
+        PDDocument encryptedDoc = Loader.loadPDF(pdfFile, userpassword);
         assertTrue(encryptedDoc.isEncrypted());
         
assertFalse(encryptedDoc.getCurrentAccessPermission().isOwnerPermission());
 

Reply via email to