org.apache.poi.util
Class JvmBugs

java.lang.Object
  extended by org.apache.poi.util.JvmBugs

public class JvmBugs
extends java.lang.Object


Constructor Summary
JvmBugs()
           
 
Method Summary
static boolean hasLineBreakMeasurerBug()
          The LineBreakMeasurer is used for calculating text bounds.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, 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