From commits-return-13619-archive-asf-public=cust-asf.ponee.io@pdfbox.apache.org Wed Nov 21 18:46:56 2018 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx-eu-01.ponee.io (Postfix) with SMTP id CB164180668 for ; Wed, 21 Nov 2018 18:46:55 +0100 (CET) Received: (qmail 74061 invoked by uid 500); 21 Nov 2018 17:46:55 -0000 Mailing-List: contact commits-help@pdfbox.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@pdfbox.apache.org Delivered-To: mailing list commits@pdfbox.apache.org Received: (qmail 74046 invoked by uid 99); 21 Nov 2018 17:46:54 -0000 Received: from Unknown (HELO svn01-us-west.apache.org) (209.188.14.144) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 21 Nov 2018 17:46:54 +0000 Received: from svn01-us-west.apache.org (localhost [127.0.0.1]) by svn01-us-west.apache.org (ASF Mail Server at svn01-us-west.apache.org) with ESMTP id 52F5D3A008F for ; Wed, 21 Nov 2018 17:46:54 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1847126 - in /pdfbox/trunk/pdfbox/src: main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java test/java/org/apache/pdfbox/multipdf/PDFMergerUtilityTest.java Date: Wed, 21 Nov 2018 17:46:54 -0000 To: commits@pdfbox.apache.org From: tilman@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20181121174654.52F5D3A008F@svn01-us-west.apache.org> Author: tilman Date: Wed Nov 21 17:46:54 2018 New Revision: 1847126 URL: http://svn.apache.org/viewvc?rev=1847126&view=rev Log: PDFBOX-4383: don't store file as FileInputStream, add "previously failing" test Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/multipdf/PDFMergerUtilityTest.java Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java?rev=1847126&r1=1847125&r2=1847126&view=diff ============================================================================== --- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java (original) +++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java Wed Nov 21 17:46:54 2018 @@ -263,8 +263,7 @@ public class PDFMergerUtility */ public void addSource(File source) throws FileNotFoundException { - FileInputStream stream = new FileInputStream(source); - sources.add(stream); + sources.add(source); } /** Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/multipdf/PDFMergerUtilityTest.java URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/multipdf/PDFMergerUtilityTest.java?rev=1847126&r1=1847125&r2=1847126&view=diff ============================================================================== --- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/multipdf/PDFMergerUtilityTest.java (original) +++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/multipdf/PDFMergerUtilityTest.java Wed Nov 21 17:46:54 2018 @@ -17,7 +17,10 @@ package org.apache.pdfbox.multipdf; import java.awt.image.BufferedImage; import java.io.File; +import java.io.FileOutputStream; import java.io.IOException; +import java.io.OutputStream; +import java.nio.file.Files; import java.util.HashSet; import java.util.Set; @@ -238,6 +241,46 @@ public class PDFMergerUtilityTest extend doc.close(); } + /** + * PDFBOX-4383: Test that file can be deleted after merge. + * + * @throws IOException + */ + public void testFileDeletion() throws IOException + { + File outFile = new File(TARGETTESTDIR, "PDFBOX-4383-result.pdf"); + + File inFile1 = new File(TARGETTESTDIR, "PDFBOX-4383-src1.pdf"); + File inFile2 = new File(TARGETTESTDIR, "PDFBOX-4383-src2.pdf"); + + createSimpleFile(inFile1); + createSimpleFile(inFile2); + + try (OutputStream out = new FileOutputStream(outFile)) + { + PDFMergerUtility merger = new PDFMergerUtility(); + merger.setDestinationStream(out); + + merger.addSource(inFile1); + merger.addSource(inFile2); + + merger.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly()); + } + + Files.delete(inFile1.toPath()); + Files.delete(inFile2.toPath()); + Files.delete(outFile.toPath()); + } + + private void createSimpleFile(File file) throws IOException + { + try (PDDocument doc = new PDDocument()) + { + doc.addPage(new PDPage()); + doc.save(file); + } + } + private class ElementCounter { int cnt = 0;