Class JvmBugs

  • public class JvmBugs
    extends java.lang.Object
    • Constructor Summary

      Constructor Description
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static boolean hasLineBreakMeasurerBug()
      The LineBreakMeasurer is used for calculating text bounds.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • JvmBugs

        public JvmBugs()
    • Method Detail

      • hasLineBreakMeasurerBug

        public static boolean hasLineBreakMeasurerBug()
        The LineBreakMeasurer is used for calculating text bounds. The last official JDK 6 version (1.6.0_45) and also JDK 7 (1.7.0_21) for Windows are affected. For JDK 7 - update to a more recent version. For JDK 6 - replace the fontmanager.dll with the previous release (1.6.0_43). For performance reasons, this method only checks for a windows jvm with version 1.6.0_45 and 1.7.0_21. Set system property "org.apache.poi.JvmBugs.LineBreakMeasurer.ignore" to "true" to bypass this check and use the normal fonts.
        true, if jvm is bugged, caller code should use Lucida Sans instead of Calibri and Lucida Bright instead of Cambria
        See Also:
        Workaround for XSLF, Workaround for XSSF and HSSF, POI Bug #54904, JDK Bug #6501991, JDK Bug #8013716, LineBreakMeasurerTest