ICEpdf
  1. ICEpdf
  2. PDF-535

ArrayIndexOutOfBoundsException thrown from Indexed.init()

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 4.3.4, 4.4, 5.0.0 alpha1
    • Fix Version/s: 4.4.1, 5.0
    • Component/s: Core/Parsing
    • Labels:
      None
    • Environment:
      All
    • Salesforce Case Reference:
    • Workaround Exists:
      Yes
    • Workaround Description:
      Customer is printing them as images from the pdf itself using BullZip to be able to open them in icepdf.

      Description

      The following stack trace is thrown when rendering the provided PDF files:

      java.lang.ArrayIndexOutOfBoundsException: 6
      at org.icepdf.core.pobjects.graphics.Indexed.init(Indexed.java:104)
      at org.icepdf.core.pobjects.Resources.getColorSpace(Resources.java:199)
      at org.icepdf.core.pobjects.Stream.getImage(Stream.java:2209)
      at org.icepdf.core.pobjects.Resources.getImage(Resources.java:252)
      at org.icepdf.core.util.ContentParser.consume_Do(ContentParser.java:2001)
      at org.icepdf.core.util.ContentParser.parse(ContentParser.java:382)
      at org.icepdf.core.pobjects.Page.init(Page.java:372)
      at org.icepdf.core.views.swing.PageViewComponentImpl$PageInitilizer.run(PageViewComponentImpl.java:1072)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      at java.lang.Thread.run(Thread.java:662)

        Activity

        Hide
        Patrick Corless added a comment -

        All the files are using Indexed colour model that specifies the colour lookup table as a stream. In all these cases the parsed stream is a little short and doesn't match m * (hival + 1). So I've added an array copy check to make sure the array is the correct size and padded with zeros if it's a little to short.

        Show
        Patrick Corless added a comment - All the files are using Indexed colour model that specifies the colour lookup table as a stream. In all these cases the parsed stream is a little short and doesn't match m * (hival + 1). So I've added an array copy check to make sure the array is the correct size and padded with zeros if it's a little to short.
        Hide
        Patrick Corless added a comment -

        Will run QA bu the test files are correctly loading now.

        Show
        Patrick Corless added a comment - Will run QA bu the test files are correctly loading now.

          People

          • Assignee:
            Patrick Corless
            Reporter:
            Arran Mccullough
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: