ICEpdf
  1. ICEpdf
  2. PDF-601

Rendering core blocking when more then 10 threads are used.

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 5.0.2
    • Fix Version/s: 5.0.6_P01, 5.0.7
    • Component/s: Font Engine
    • Labels:
      None
    • Environment:
      Pro font engine
    • Salesforce Case Reference:

      Description

      This issue came in though a customer who is using ICEpdf in a Servlet environment. As a request is processed a new document instance is created and the requested image is captured. After closer look the problem looks to be related to the class RandomAccessMultiplex. The class keeps cache of eight recently used font URI's.

      When a font needs to access the URL the getRA() is called and the releaseRA() method is called when the IO work is done. An audit showed that we where not unreleasing an RA when reading TrueType fonts hich was easy to correct.

      The second issue is related the the size of the RA list which is 8 by default. Having a test case with 8 record cash and 8 thread all operating on the same document and all is ok. Increase the thread count and getRA() method will block.

        Issue Links

          Activity

          Hide
          Patrick Corless added a comment -

          I've updated the getRA and releaseRA methods to use the wait()/notify() pattern fix the blocking calls when more then one thread is being used. The rec cache has been kept at 8 for the time being.

          Show
          Patrick Corless added a comment - I've updated the getRA and releaseRA methods to use the wait()/notify() pattern fix the blocking calls when more then one thread is being used. The rec cache has been kept at 8 for the time being.
          Hide
          Patrick Corless added a comment -

          The locking issue appears to be corrected. Closing.

          Show
          Patrick Corless added a comment - The locking issue appears to be corrected. Closing.

            People

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

              Dates

              • Created:
                Updated:
                Resolved: