mirror of
https://github.com/apache/poi.git
synced 2025-02-07 18:48:20 +00:00
Fix handling missing font libraries to again not throw on some types of exception
The previous change broke this handling by always re-throwing "Fatal" exceptions. git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1915482 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
e696053e23
commit
209e8fc659
@ -353,8 +353,18 @@ public class SheetUtil {
|
|||||||
TextLayout layout = new TextLayout(str.getIterator(), fontRenderContext);
|
TextLayout layout = new TextLayout(str.getIterator(), fontRenderContext);
|
||||||
return layout.getAdvance();
|
return layout.getAdvance();
|
||||||
} catch (Throwable t) {
|
} catch (Throwable t) {
|
||||||
// fatal exceptions will always be rethrown
|
// ignore exception and return a default char width if
|
||||||
if (!ExceptionUtil.isFatal(t) && ignoreMissingFontSystem) {
|
// the ignore-feature is enabled and the exception indicates that
|
||||||
|
// the underlying font system is not available
|
||||||
|
if (ignoreMissingFontSystem && (
|
||||||
|
// the three types of exception usually indicate here that the font
|
||||||
|
// system is not fully installed, i.e. system libraries missing or
|
||||||
|
// some JDK classes cannot be loaded
|
||||||
|
t instanceof UnsatisfiedLinkError ||
|
||||||
|
t instanceof NoClassDefFoundError ||
|
||||||
|
t instanceof InternalError ||
|
||||||
|
// other fatal exceptions will always be rethrown
|
||||||
|
!ExceptionUtil.isFatal(t))) {
|
||||||
return DEFAULT_CHAR_WIDTH;
|
return DEFAULT_CHAR_WIDTH;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user