This post is to document a problem I had and how I fixed it.
I have a job scheduled to run early every weekday morning that generates RMF reports, which get transferred to my Mac and every morning when I come it I run a script to extract significant information from this report. One thing this script does is generate a graph of CPU usage as an SVG document, and then uses Apache Batik to convert it to PNG. Earlier this week I installed the new security update for Java (that Apple finally released six months after the vulnerabilities were fixed on other platforms) and ever since the PNG was generated without any text.
So this morning I did some googling and found this Apple Support document which gave me the clue that the problem was in the 2D rendering pipeline. Further googling turned up this post on default 2D rendering pipelines on Mac OS X which allowed me to find a solution. I added
-Dapple.awt.graphics.UseQuartz=false
to the Java command line in my script, and the text reappeared. Apparently, at least for me, this security update reverted Java to using the Quartz rendering pipeline by default, and there’s a bug in text rendering in that pipeline (which Apple has supposedly deprecated.)
I’m going to see if I can find a preference file somewhere to switch this back by default, and if I find one I’ll post an update.