Missing libfontconfig1 dependency for openjdk-11-jre-headless (compared to openjdk-8)

Bug #1780151 reported by Stefan Huehner
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
openjdk-lts (Ubuntu)
Fix Released
Undecided
Unassigned
Bionic
Fix Released
Undecided
Unassigned
Cosmic
Fix Released
Undecided
Unassigned

Bug Description

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

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package openjdk-lts - 10.0.2+13-1ubuntu1

---------------
openjdk-lts (10.0.2+13-1ubuntu1) cosmic; urgency=medium

  * Sync packages with 10.0.2+13-1:
    - 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-native-debug-symbols=internal.
    - 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

Changed in openjdk-lts (Ubuntu Cosmic):
status: New → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package openjdk-lts - 10.0.2+13-1ubuntu0.18.04.1

---------------
openjdk-lts (10.0.2+13-1ubuntu0.18.04.1) bionic-security; urgency=medium

  * Backport from Cosmic. Update to 10.0.2+13. LP: #1776332.
  * debian/control: regenerated for Bionic, add testng and libguava-java as
    build dependencies (guava is necessary due to a testng bug).
  * debian/control.in: add testng and libguava-java as build dependencies.
  * debian/rules:
    - copy accessibility files to conf/ (thanks to Samuel Thibault).
    - update test rules, set output to jtreg-test-output/ as test/ belongs
      to openjdk source, add jaxp and nashorn, use ProblemList.txt from
      each testsuite as the exclude list for jtreg, update regex to include
      into the tarball failed jcstress tests in the Test.java#id123 format,
      create a tarball with the JTreport directory, add guava jar file to
      the test classpath.
    - configure with --with-native-debug-symbols=external as this is closer
      to the old debug/strip code and strips libjvm.so before jlink'ing it
      into java.base.jmod. Closes: #905575.
  * debian/excludelist.jdk.jtx, excludelist.langtools.jtx: removed, tests
    now rely on the ProblemList.txt exclusion list that is included in-tree
    and maintained upstream.

openjdk-lts (10.0.2+13-1ubuntu1) cosmic; urgency=medium

  * Sync packages with 10.0.2+13-1:
    - 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-native-debug-symbols=internal.
    - OpenJDK 10.0.1+10 also addressed CVE-2018-2825 and CVE-2018-2826.

 -- Tiago Stürmer Daitx <email address hidden> Fri, 03 Aug 2018 01:53:46 +0000

Changed in openjdk-lts (Ubuntu Bionic):
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.