Details
-
Type: Bug
-
Status: Closed
-
Priority: 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.
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.
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.