From commits-return-14148-archive-asf-public=cust-asf.ponee.io@pdfbox.apache.org Thu Jan 31 07:36:56 2019 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 E6763180648 for ; Thu, 31 Jan 2019 08:36:55 +0100 (CET) Received: (qmail 98765 invoked by uid 500); 31 Jan 2019 07:36:54 -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 98751 invoked by uid 99); 31 Jan 2019 07:36:54 -0000 Received: from Unknown (HELO svn01-us-west.apache.org) (209.188.14.144) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 31 Jan 2019 07:36: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 147543A0101 for ; Thu, 31 Jan 2019 07:36:53 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1852573 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPageTree.java Date: Thu, 31 Jan 2019 07:36:53 -0000 To: commits@pdfbox.apache.org From: tilman@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20190131073654.147543A0101@svn01-us-west.apache.org> Author: tilman Date: Thu Jan 31 07:36:53 2019 New Revision: 1852573 URL: http://svn.apache.org/viewvc?rev=1852573&view=rev Log: PDFBOX-4452: avoid ClassCastException Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPageTree.java Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPageTree.java URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPageTree.java?rev=1852573&r1=1852572&r2=1852573&view=diff ============================================================================== --- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPageTree.java (original) +++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPageTree.java Thu Jan 31 07:36:53 2019 @@ -29,6 +29,8 @@ import org.apache.pdfbox.pdmodel.common. import java.util.ArrayList; import java.util.List; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; /** * The page tree, which defines the ordering of pages in the document in an efficient manner. @@ -37,6 +39,7 @@ import java.util.List; */ public class PDPageTree implements COSObjectable, Iterable { + private static final Log LOG = LogFactory.getLog(PDPageTree.class); private final COSDictionary root; private final PDDocument document; // optional @@ -132,7 +135,7 @@ public class PDPageTree implements COSOb { List result = new ArrayList<>(); - COSArray kids = (COSArray)node.getDictionaryObject(COSName.KIDS); + COSArray kids = node.getCOSArray(COSName.KIDS); if (kids == null) { // probably a malformed PDF @@ -141,7 +144,15 @@ public class PDPageTree implements COSOb for (int i = 0, size = kids.size(); i < size; i++) { - result.add((COSDictionary)kids.getObject(i)); + COSBase base = kids.getObject(i); + if (base instanceof COSDictionary) + { + result.add((COSDictionary) base); + } + else + { + LOG.warn("COSDictionary expected, but got " + base.getClass().getSimpleName()); + } } return result;