Issue :
We recently moved and upgraded our JDK from Oracle JDK 8 to RedHat OpenJDK 17. Post this we started facing the below issue for report execution.
An unexpected error occurred: java.lang.InternalError: java.lang.reflect.InvocationTargetException
2024-04-17T12:29:17,911 ERROR QuartzScheduler_Worker-1 sailpoint.api.TaskManager:1007 - Exception: [java.lang.reflect.InvocationTargetException]
java.lang.InternalError: java.lang.reflect.InvocationTargetException
at sun.font.FontManagerFactory$1.run(FontManagerFactory.java:87) ~[?:?]
at java.security.AccessController.doPrivileged(AccessController.java:318) ~[?:?]
at sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:75) ~[?:?]
at sun.java2d.SunGraphicsEnvironment.getFontManagerForSGE(SunGraphicsEnvironment.java:137) ~[?:?]
at sun.java2d.SunGraphicsEnvironment.getAvailableFontFamilyNames(SunGraphicsEnvironment.java:171) ~[?:?]
at sun.java2d.SunGraphicsEnvironment.getAvailableFontFamilyNames(SunGraphicsEnvironment.java:199) ~[?:?]
at sun.java2d.HeadlessGraphicsEnvironment.getAvailableFontFamilyNames(HeadlessGraphicsEnvironment.java:80) ~[?:?]
at net.sf.jasperreports.engine.util.JRGraphEnvInitializer.initializeGraphEnv(JRGraphEnvInitializer.java:58) ~[jasperreports-javaflow-6.19.1.jar:6.19.1-867c00bf88cd4d784d404379d6c05e1b419e8a4c]
at net.sf.jasperreports.engine.fill.BaseReportFiller.<init>(BaseReportFiller.java:136) ~[jasperreports-javaflow-6.19.1.jar:6.19.1-867c00bf88cd4d784d404379d6c05e1b419e8a4c]
at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:272) ~[jasperreports-javaflow-6.19.1.jar:6.19.1-867c00bf88cd4d784d404379d6c05e1b419e8a4c]
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:82) ~[jasperreports-javaflow-6.19.1.jar:6.19.1-867c00bf88cd4d784d404379d6c05e1b419e8a4c]
at net.sf.jasperreports.engine.fill.JRFiller.createBandReportFiller(JRFiller.java:251) ~[jasperreports-javaflow-6.19.1.jar:6.19.1-867c00bf88cd4d784d404379d6c05e1b419e8a4c]
at net.sf.jasperreports.engine.fill.JRFiller.createReportFiller(JRFiller.java:272) ~[jasperreports-javaflow-6.19.1.jar:6.19.1-867c00bf88cd4d784d404379d6c05e1b419e8a4c]
at net.sf.jasperreports.engine.fill.BaseFillHandle.<init>(BaseFillHandle.java:86) ~[jasperreports-javaflow-6.19.1.jar:6.19.1-867c00bf88cd4d784d404379d6c05e1b419e8a4c]
at net.sf.jasperreports.engine.fill.AsynchronousFillHandle.<init>(AsynchronousFillHandle.java:120) ~[jasperreports-javaflow-6.19.1.jar:6.19.1-867c00bf88cd4d784d404379d6c05e1b419e8a4c]
at net.sf.jasperreports.engine.fill.AsynchronousFillHandle.<init>(AsynchronousFillHandle.java:107) ~[jasperreports-javaflow-6.19.1.jar:6.19.1-867c00bf88cd4d784d404379d6c05e1b419e8a4c]
at net.sf.jasperreports.engine.fill.AsynchronousFillHandle.<init>(AsynchronousFillHandle.java:77) ~[jasperreports-javaflow-6.19.1.jar:6.19.1-867c00bf88cd4d784d404379d6c05e1b419e8a4c]
at sailpoint.reporting.SailPointAsynchronousFiller.<init>(SailPointAsynchronousFiller.java:38) ~[identityiq.jar:8.4p1 Build e243e6f4783-20240325-035201]
at sailpoint.reporting.JasperExecutor.fillAsync(JasperExecutor.java:698) ~[identityiq.jar:8.4p1 Build e243e6f4783-20240325-035201]
at sailpoint.reporting.JasperExecutor.fill(JasperExecutor.java:670) ~[identityiq.jar:8.4p1 Build e243e6f4783-20240325-035201]
at sailpoint.reporting.JasperExecutor.buildResult(JasperExecutor.java:379) ~[identityiq.jar:8.4p1 Build e243e6f4783-20240325-035201]
at sailpoint.reporting.LiveReportExecutor.execute(LiveReportExecutor.java:285) ~[identityiq.jar:8.4p1 Build e243e6f4783-20240325-035201]
at sailpoint.api.TaskManager.runSync(TaskManager.java:981) [identityiq.jar:8.4p1 Build e243e6f4783-20240325-035201]
at sailpoint.api.TaskManager.runSync(TaskManager.java:764) [identityiq.jar:8.4p1 Build e243e6f4783-20240325-035201]
at sailpoint.scheduler.JobAdapter.execute(JobAdapter.java:128) [identityiq.jar:8.4p1 Build e243e6f4783-20240325-035201]
at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [quartz-2.3.2.jar:?]
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) [quartz-2.3.2.jar:?]
Caused by: java.lang.reflect.InvocationTargetException
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77) ~[?:?]
at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]
at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?]
at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?]
at sun.font.FontManagerFactory$1.run(FontManagerFactory.java:85) ~[?:?]
... 26 more
**Caused by: java.lang.RuntimeException: Fontconfig head is null, check your fonts or fonts configuration**
at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1271) ~[?:?]
at sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:224) ~[?:?]
at sun.awt.FontConfiguration.init(FontConfiguration.java:106) ~[?:?]
at sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:706) ~[?:?]
at sun.font.SunFontManager$2.run(SunFontManager.java:358) ~[?:?]
at sun.font.SunFontManager$2.run(SunFontManager.java:315) ~[?:?]
at java.security.AccessController.doPrivileged(AccessController.java:318) ~[?:?]
at sun.font.SunFontManager.<init>(SunFontManager.java:315) ~[?:?]
at sun.awt.FcFontManager.<init>(FcFontManager.java:35) ~[?:?]
at sun.awt.X11FontManager.<init>(X11FontManager.java:56) ~[?:?]
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77) ~[?:?]
at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]
at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?]
at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?]
at sun.font.FontManagerFactory$1.run(FontManagerFactory.java:85) ~[?:?]
... 26 more
Fix :
Execute the below command on your linux system and restart the application server.
- yum install fontconfig
Prefer to run it using root access.