Uploaded image for project: 'FOP'
  1. FOP
  2. FOP-2030

Assertion failure in o.a.f.complexscripts.fonts.GlyphCoverageTable with fonts having out of order or duplicate glyph indexes

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Resolution: Fixed
    • 2.5
    • None
    • font/unqualified
    • None
    • Operating System: All
      Platform: PC
    • 52873

    Description

      This is reproduced by running FOP junit tests with font PT Sans Narrow Bold.

      Output:
      .......
      Mar 9, 2012 4:06:29 PM org.apache.fop.fonts.truetype.TTFFile checkTTC
      INFO: PT Sans Narrow Bold
      Mar 9, 2012 4:06:29 PM org.apache.fop.complexscripts.fonts.GlyphCoverageTable$MappedCoverageTable populate
      INFO: ignoring out of order or duplicate glyph index: 202
      Mar 9, 2012 4:06:29 PM org.apache.fop.complexscripts.fonts.GlyphCoverageTable$MappedCoverageTable populate
      INFO: ignoring out of order or duplicate glyph index: 218
      Mar 9, 2012 4:06:29 PM org.apache.fop.complexscripts.fonts.GlyphCoverageTable$MappedCoverageTable populate
      INFO: ignoring out of order or duplicate glyph index: 224
      Mar 9, 2012 4:06:29 PM org.apache.fop.complexscripts.fonts.GlyphCoverageTable$MappedCoverageTable populate
      INFO: ignoring out of order or duplicate glyph index: 225
      Mar 9, 2012 4:06:29 PM org.apache.fop.complexscripts.fonts.GlyphCoverageTable$MappedCoverageTable populate
      INFO: ignoring out of order or duplicate glyph index: 234
      Mar 9, 2012 4:06:29 PM org.apache.fop.complexscripts.fonts.GlyphCoverageTable$MappedCoverageTable populate
      INFO: ignoring out of order or duplicate glyph index: 266

      and it fails with

      junit] Testcase: testUserConfig(org.apache.fop.config.FontsAutoDetectTestCase): FAILED
      [junit] null
      [junit] junit.framework.AssertionFailedError
      [junit] at org.apache.fop.complexscripts.fonts.GlyphCoverageTable$MappedCoverageTable.populate(GlyphCoverageTable.java:199)
      [junit] at org.apache.fop.complexscripts.fonts.GlyphCoverageTable$MappedCoverageTable.<init>(GlyphCoverageTable.java:145)
      [junit] at org.apache.fop.complexscripts.fonts.GlyphCoverageTable.createCoverageTable(GlyphCoverageTable.java:90)
      [junit] at org.apache.fop.complexscripts.fonts.OTFAdvancedTypographicTableReader.readCoverageTableFormat1(OTFAdvancedTypographicTableReader.java:568)
      [junit] at org.apache.fop.complexscripts.fonts.OTFAdvancedTypographicTableReader.readCoverageTable(OTFAdvancedTypographicTableReader.java:601)
      [junit] at org.apache.fop.complexscripts.fonts.OTFAdvancedTypographicTableReader.readChainedContextualSubTableFormat3(OTFAdvancedTypographicTableReader.java:1457)
      [junit] at org.apache.fop.complexscripts.fonts.OTFAdvancedTypographicTableReader.readChainedContextualSubTable(OTFAdvancedTypographicTableReader.java:1512)
      [junit] at org.apache.fop.complexscripts.fonts.OTFAdvancedTypographicTableReader.readGSUBSubtable(OTFAdvancedTypographicTableReader.java:1657)
      [junit] at org.apache.fop.complexscripts.fonts.OTFAdvancedTypographicTableReader.readLookupTable(OTFAdvancedTypographicTableReader.java:3193)
      [junit] at org.apache.fop.complexscripts.fonts.OTFAdvancedTypographicTableReader.readLookupList(OTFAdvancedTypographicTableReader.java:3222)
      [junit] at org.apache.fop.complexscripts.fonts.OTFAdvancedTypographicTableReader.readCommonLayoutTables(OTFAdvancedTypographicTableReader.java:3243)
      [junit] at org.apache.fop.complexscripts.fonts.OTFAdvancedTypographicTableReader.readGSUB(OTFAdvancedTypographicTableReader.java:3466)
      [junit] at org.apache.fop.complexscripts.fonts.OTFAdvancedTypographicTableReader.readAll(OTFAdvancedTypographicTableReader.java:84)
      [junit] at org.apache.fop.fonts.truetype.TTFFile.readFont(TTFFile.java:640)
      [junit] at org.apache.fop.fonts.truetype.TTFFontLoader.read(TTFFontLoader.java:101)
      [junit] at org.apache.fop.fonts.truetype.TTFFontLoader.read(TTFFontLoader.java:87)
      [junit] at org.apache.fop.fonts.FontLoader.getFont(FontLoader.java:197)
      [junit] at org.apache.fop.fonts.autodetect.FontInfoFinder.find(FontInfoFinder.java:227)
      [junit] at org.apache.fop.fonts.FontAdder.add(FontAdder.java:58)
      [junit] at org.apache.fop.fonts.FontDetector.detect(FontDetector.java:95)
      [junit] at org.apache.fop.fonts.FontInfoConfigurator.configure(FontInfoConfigurator.java:94)
      [junit] at org.apache.fop.render.PrintRendererConfigurator.buildFontList(PrintRendererConfigurator.java:109)
      [junit] at org.apache.fop.render.PrintRendererConfigurator.setupFontInfo(PrintRendererConfigurator.java:132)
      [junit] at org.apache.fop.render.intermediate.IFUtil.setupFonts(IFUtil.java:167)
      [junit] at org.apache.fop.render.intermediate.IFRenderer.setupFontInfo(IFRenderer.java:188)
      [junit] at org.apache.fop.area.RenderPagesModel.<init>(RenderPagesModel.java:75)
      [junit] at org.apache.fop.area.AreaTreeHandler.setupModel(AreaTreeHandler.java:135)
      [junit] at org.apache.fop.area.AreaTreeHandler.<init>(AreaTreeHandler.java:105)
      [junit] at org.apache.fop.render.RendererFactory.createFOEventHandler(RendererFactory.java:358)
      [junit] at org.apache.fop.fo.FOTreeBuilder.<init>(FOTreeBuilder.java:105)
      [junit] at org.apache.fop.apps.Fop.createDefaultHandler(Fop.java:100)
      [junit] at org.apache.fop.apps.Fop.<init>(Fop.java:78)
      [junit] at org.apache.fop.apps.FopFactory.newFop(FopFactory.java:297)
      [junit] at org.apache.fop.render.pdf.BasePDFTest.convertFO(BasePDFTest.java:83)
      [junit] at org.apache.fop.config.BaseUserConfigTest.convertFO(BaseUserConfigTest.java:64)
      [junit] at org.apache.fop.config.BaseConstructiveUserConfigTest.testUserConfig(BaseConstructiveUserConfigTest.java:39)

      Attachments

        Activity

          People

            fop-dev@xmlgraphics.apache.org fop-dev
            alex.giotis Alexios Giotis
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: