Class JvmBugs


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

      Constructors 
      Constructor Description
      JvmBugs()  
    • 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.
        Returns:
        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