ICEpdf
  1. ICEpdf
  2. PDF-1085

PageViewComponentImpl simplification and improvements

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 6.1.3
    • Fix Version/s: 6.2
    • Component/s: Core/Parsing, Viewer RI
    • Labels:
      None
    • Environment:
      any

      Description

      The multiple page views and supporting classes were introduced in version 2.5. Overall the initial release was well received but there was a few complaints about paint flicker and memory usage.

      Over the last few weeks I've been prototyping a a new lighter weight page view component. This component has a drastically simplified thread setup and address a three long running bugs with the original implementation.

      The first major bug with the old design was the occasional and intermittent blank page. The missing content happened in three possible ways. The first way was the page's buffered image store was memory collected and the triggers to recreate the buffer didn't file. The second was related to a synchronization issue encrypted streams which caused the content stream to fail to paint. And the last major bug related to flicker was do to how we managed the back buffer between repaints.



        Activity

        Hide
        Patrick Corless added a comment -

        During the development process a few bugs where exposed because of the simplified threading model. The occasional missing annotation has now been fixed as well as issue with text selection page locking and a slow memory leak related to annotation components. One major change which will likely mean code changes for end users is the bubbling up of InterruptedException from Page initialization and painting. These code changes come at a great benefit to the core API as a long running page initialization or paint can now be interrupted as needed. Some users of the core api may need to add a catch for InterruptedException.

        Show
        Patrick Corless added a comment - During the development process a few bugs where exposed because of the simplified threading model. The occasional missing annotation has now been fixed as well as issue with text selection page locking and a slow memory leak related to annotation components. One major change which will likely mean code changes for end users is the bubbling up of InterruptedException from Page initialization and painting. These code changes come at a great benefit to the core API as a long running page initialization or paint can now be interrupted as needed. Some users of the core api may need to add a catch for InterruptedException.
        Hide
        Patrick Corless added a comment -

        Marking as fixed.

        Show
        Patrick Corless added a comment - Marking as fixed.

          People

          • Assignee:
            Patrick Corless
            Reporter:
            Patrick Corless
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: