Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
My job is running fine with tFileOutputExcel_1 with checkbox " Write excel 2007 file format(xlsx)" enabled and running on job server with java version 1.8. Now on upgrade the job server to java 17. My tFileOutputExcel_1 with checkbox " Write excel 2007 file format(xlsx)" enabled start throwing the error. If I disable this checkbox then it stop throwing the error. Any solution to this.
Exception in thread "main" java.lang.InternalError: java.lang.reflect.InvocationTargetException
at java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:87)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
at java.desktop/sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:75)
at java.desktop/java.awt.Font.getFont2D(Font.java:526)
at java.desktop/java.awt.Font.canDisplayUpTo(Font.java:2282)
at java.desktop/java.awt.font.TextLayout.singleFont(TextLayout.java:469)
at java.desktop/java.awt.font.TextLayout.<init>(TextLayout.java:530)
at org.apache.poi.ss.util.SheetUtil.getDefaultCharWidth(SheetUtil.java:273)
at org.apache.poi.xssf.streaming.AutoSizeColumnTracker.<init>(AutoSizeColumnTracker.java:117)
at org.apache.poi.xssf.streaming.SXSSFSheet.<init>(SXSSFSheet.java:82)
at org.apache.poi.xssf.streaming.SXSSFWorkbook.createAndRegisterSXSSFSheet(SXSSFWorkbook.java:684)
at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:705)
at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:88)
at org.talend.ExcelTool.prepareXlsxFile(ExcelTool.java:139)
at crosscountryconsulting.copy_of_sf_testjob_0_1.Copy_of_SF_TESTJOB.tRowGenerator_1Process(Copy_of_SF_TESTJOB.java:1229)
at crosscountryconsulting.copy_of_sf_testjob_0_1.Copy_of_SF_TESTJOB.runJobInTOS(Copy_of_SF_TESTJOB.java:2774)
at crosscountryconsulting.copy_of_sf_testjob_0_1.Copy_of_SF_TESTJOB.main(Copy_of_SF_TESTJOB.java:2366)
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
at java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:85)
... 16 more
Caused by: java.lang.RuntimeException: Fontconfig head is null, check your fonts or fonts configuration
at java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1269)
at java.desktop/sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:224)
at java.desktop/sun.awt.FontConfiguration.init(FontConfiguration.java:106)
at java.desktop/sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:706)
at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:358)
at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:315)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
at java.desktop/sun.font.SunFontManager.<init>(SunFontManager.java:315)
at java.desktop/sun.awt.FcFontManager.<init>(FcFontManager.java:35)
at java.desktop/sun.awt.X11FontManager.<init>(X11FontManager.java:56)
... 22 more
Hi
This document although related to application servers for Data-Catalogue it calls out requirements on Linux servers that would also be applicable if your jobserver is running on a a headless linux, this is due to the lighter packaging of the headless JRE for Java11 and above.
About Headless Linux:
Recent versions Java Runtime Environment (JRE) such as 11 no longer bundle any fonts, and therefore rely on the underlying operating system fonts. Most bare Linux configurations bundle a minimum set of fonts, including all bare Linux VM offered on most cloud companies. However, when using an extremely bare minimum true headless Linux configuration, fontconfig and libfontconfig1 must be installed and configured on the system. Otherwise, the JRE cannot access the fonts needed.
Please accept the answer if this helps you resolve the issue.
Thanks
Juli
Hi
This document although related to application servers for Data-Catalogue it calls out requirements on Linux servers that would also be applicable if your jobserver is running on a a headless linux, this is due to the lighter packaging of the headless JRE for Java11 and above.
About Headless Linux:
Recent versions Java Runtime Environment (JRE) such as 11 no longer bundle any fonts, and therefore rely on the underlying operating system fonts. Most bare Linux configurations bundle a minimum set of fonts, including all bare Linux VM offered on most cloud companies. However, when using an extremely bare minimum true headless Linux configuration, fontconfig and libfontconfig1 must be installed and configured on the system. Otherwise, the JRE cannot access the fonts needed.
Please accept the answer if this helps you resolve the issue.
Thanks
Juli