Leopard’s Java 10.5 Update 2 breaks Quartz pipeline font rendering

30 Sep 2008

If you experience missing text in some applications, like one using Batik and native Mac’s Quartz Java pipeline, seek no more for an answer this is a bug introduced in 10.5 Update.

Mac Java Quartz rendering bug

Here goes a copy of my bugreport to Apple #6256562

Summary

Apple Java for OS X 10.5 Update 2 Java update for Leopard breaks font rendering using Quartz pipeline apple.awt.graphics.UseQuartz=true in some applications such as Batik, a SVG rendered used by many other Java applications.

Steps to Reproduce

  1. Download and unzip batik-1.7.zip from Apache

  2. Open terminal at batik-1.7 folder

  3. Run Batik reference SVG viewer with sample fonts rendering using Leopard’s Java Sun default pipeline

     $ java -jar batik-squiggle.jar samples/tests/spec/text/textStyles.svg
    
  4. Run Batik reference SVG viewer with Quartz pipeline:

     $ java -Dapple.awt.graphics.UseQuartz=true -jar batik-squiggle.jar samples/tests/spec/text/textStyles.svg
    

Expected Results

In both (3) & (4) cases we shall see all text rendered properly. While Quartz (4) should support also LCD subpixel text smoothing.

Actual Results

In (3) we see all text rendered properly by Sun pipeline, in (4) most of the text is not rendered at all by Quartz pipeline. (Of course standard widgets and windows have the text) This is tested in both 1.5.0_16 and 1.6.0_07 from 10.5 Update 2.

Regression

Using previous Java version 1.5.0_13 on machine that has not the Leopard 10.5 Update 2, text is rendered properly with Quartz pipeline in point (4). So the 10.5 Update 2 broke Quartz pipeline.

Notes

I’m aware that now Sun’s pipeline is default for Leopard, however Quartz even being discredited has important merits of being faster in some cases as antialiased shapes and text rendering and support of LCD subpixel text smoothing.

I work with several Java applications such as XMLMind XML Editor that uses Batik. In XXE case I use Quartz, because with Sun’s pipeline all text is blurry on my MBP, so I need to use LCD subpixel smoothing for a sake of my eyes, however just after the latest update all my drawings inside XXE have no text anymore, just because of the problem described above.

I got a problem since there’s no official procedure to rollback Java 10.5 Update 2, and I need to live with this bug now.

Posted in Java, Mac