Using openjdk-11-jdk-headless (with -Djava.awt.headless=true)
To render a jasperreport to a pdf fails while trying to find font files.
Installing libfontconfig1 (which is not pulled in via dependency or listed in recommends) fixes the problem.
Comparing dependency for the -jre-headless packages shows that it was present until and including openjdk-8-jre-headless but no longer for 9,10,11
We could probably create a standalone reproducer if that is required.
Same topic seems to have been found by different person in March here but apparently not reported to ubuntu nor debian:
https://stackoverflow.com/questions/49196022/nullpointerexception-when-running-in-gitlab-ci-cd
2018-07-04 18:59:03,404 [ajp-nio-127.0.0.1-8009-exec-8] ERROR org.openbravo.dal.core.ThreadHandler - Exception thrown java.lang.reflect.InvocationTargetEx
org.openbravo.base.exception.OBException: Exception thrown java.lang.reflect.InvocationTargetException
at org.openbravo.dal.core.ThreadHandler.run(ThreadHandler.java:63)
at org.openbravo.client.kernel.KernelFilter.doFilter(KernelFilter.java:71)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.openbravo.dal.core.DalRequestFilter$1.doAction(DalRequestFilter.java:83)
at org.openbravo.dal.core.ThreadHandler.run(ThreadHandler.java:46)
at org.openbravo.dal.core.DalRequestFilter.doFilter(DalRequestFilter.java:105)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:487)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1460)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: java.lang.InternalError: java.lang.reflect.InvocationTargetException
at java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:86)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.desktop/sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:74)
at java.desktop/sun.java2d.SunGraphicsEnvironment.getFontManagerForSGE(SunGraphicsEnvironment.java:203)
at java.desktop/sun.java2d.SunGraphicsEnvironment.getAvailableFontFamilyNames(SunGraphicsEnvironment.java:237)
at java.desktop/sun.java2d.SunGraphicsEnvironment.getAvailableFontFamilyNames(SunGraphicsEnvironment.java:265)
at java.desktop/sun.java2d.HeadlessGraphicsEnvironment.getAvailableFontFamilyNames(HeadlessGraphicsEnvironment.java:75)
at net.sf.jasperreports.engine.util.JRGraphEnvInitializer.initializeGraphEnv(JRGraphEnvInitializer.java:57)
at net.sf.jasperreports.engine.fill.BaseReportFiller.<init>(BaseReportFiller.java:122)
at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:229)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:74)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:62)
at net.sf.jasperreports.engine.fill.JRFiller.createBandReportFiller(JRFiller.java:187)
at net.sf.jasperreports.engine.fill.JRFiller.createReportFiller(JRFiller.java:202)
at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:83)
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:457)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:864)
at org.openbravo.client.application.report.ReportFiller.fill(ReportFiller.java:130)
at org.openbravo.client.application.report.ReportFiller.fill(ReportFiller.java:104)
at org.openbravo.client.application.report.ReportFiller.fillReport(ReportFiller.java:93)
at org.openbravo.client.application.report.ReportingUtils.generateJasperPrint(ReportingUtils.java:991)
at org.openbravo.erpCommon.utility.reporting.ReportManager.processReport(ReportManager.java:113)
at org.openbravo.erpCommon.utility.reporting.printing.PrintController.post(PrintController.java:222)
at org.openbravo.erpCommon.utility.reporting.printing.PrintOrders.doPost(PrintOrders.java:54)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
at org.openbravo.base.HttpBaseServlet.serviceInitialized(HttpBaseServlet.java:221)
at org.openbravo.base.secureApp.HttpSecureAppServlet.service(HttpSecureAppServlet.java:457)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.openbravo.utils.SessionExpirationFilter.doFilter(SessionExpirationFilter.java:66)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.openbravo.utils.CharsetFilter.doFilter(CharsetFilter.java:35)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.openbravo.client.kernel.KernelFilter$1.doAction(KernelFilter.java:62)
at org.openbravo.dal.core.ThreadHandler.run(ThreadHandler.java:46)
... 24 more
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:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488)
at java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:84)
... 64 more
Caused by: java.lang.NullPointerException
at java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1288)
at java.desktop/sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:225)
at java.desktop/sun.awt.FontConfiguration.init(FontConfiguration.java:107)
at java.desktop/sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:765)
at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:440)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.desktop/sun.font.SunFontManager.<init>(SunFontManager.java:385)
at java.desktop/sun.awt.FcFontManager.<init>(FcFontManager.java:35)
at java.desktop/sun.awt.X11FontManager.<init>(X11FontManager.java:56)
... 69 more
This bug was fixed in the package openjdk-lts - 10.0.2+13-1ubuntu1
--------------- 13-1ubuntu1) cosmic; urgency=medium
openjdk-lts (10.0.2+
* Sync packages with 10.0.2+13-1: native- debug-symbols= internal.
- OpenJDK 10.0.2+13 release.
- CVE-2018-2972, S8200332: Improve GCM counting.
- CVE-2018-2952, S8199547: Exception to Pattern Syntax.
- S8191239: Improve desktop file usage.
- S8193419: Better Internet address support.
- S8197925: Better stack walking.
- S8200666: Improve LDAP support.
- Explicitly build-depend on libfontconfig1-dev, explicitly depend
on libfontconfig1. LP: #1780151. See #793210.
- Build using GCC 8.
- Configure with --with-
- OpenJDK 10.0.1+10 also addressed CVE-2018-2825 and CVE-2018-2826.
-- Matthias Klose <email address hidden> Wed, 18 Jul 2018 21:13:26 +0200