Search the FirstSpirit Knowledge Base
Hallo zusammen,
wir haben FirstSpirit aktuell auf unserer Testumgebung auf Java 11 upgedated (Maiversion FirstSpirit). Seitdem tritt eine Fehlermeldung auf, wenn wir eine *.war-Datei herunterladen wollen, die GenericConfig Version 2.8.0 verwendet.
Client Version: 5.2.200508.79058
Java Version: 11.0.6 AdoptOpenJDK
FSVersion=5.2.200508.79058#3509;JDK=11.0.6 64bit AdoptOpenJDK;OS=Windows Server 2016 10.0 amd64;Date=10.08.2020 11:38:53
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.font.SunFontManager.getInstance(SunFontManager.java:249)
at java.desktop/sun.font.FontDesignMetrics.getMetrics(FontDesignMetrics.java:265)
at java.desktop/sun.swing.SwingUtilities2.getFontMetrics(SwingUtilities2.java:1243)
at java.desktop/javax.swing.JComponent.getFontMetrics(JComponent.java:1646)
at java.desktop/javax.swing.text.PlainView.calculateLongestLine(PlainView.java:783)
at java.desktop/javax.swing.text.PlainView.updateMetrics(PlainView.java:332)
at java.desktop/javax.swing.text.PlainView.updateDamage(PlainView.java:670)
at java.desktop/javax.swing.text.PlainView.insertUpdate(PlainView.java:591)
at java.desktop/javax.swing.text.FieldView.insertUpdate(FieldView.java:294)
at java.desktop/javax.swing.plaf.basic.BasicTextUI$RootView.insertUpdate(BasicTextUI.java:1706)
at java.desktop/javax.swing.plaf.basic.BasicTextUI$UpdateHandler.insertUpdate(BasicTextUI.java:1965)
at java.desktop/javax.swing.text.AbstractDocument.fireInsertUpdate(AbstractDocument.java:203)
at java.desktop/javax.swing.text.AbstractDocument.handleInsertString(AbstractDocument.java:757)
at java.desktop/javax.swing.text.AbstractDocument.insertString(AbstractDocument.java:716)
at java.desktop/javax.swing.text.PlainDocument.insertString(PlainDocument.java:131)
at java.desktop/javax.swing.text.AbstractDocument.replace(AbstractDocument.java:675)
at java.desktop/javax.swing.text.JTextComponent.setText(JTextComponent.java:1729)
at com.espirit.ps.psci.genericconfiguration.GenericConfigPanel$ConfigGuiBuilder$ValueInfo.setValue(GenericConfigPanel.java:652)
at com.espirit.ps.psci.genericconfiguration.GenericConfigPanel$ConfigGuiBuilder$ValueInfo.addToLayout(GenericConfigPanel.java:567)
at com.espirit.ps.psci.genericconfiguration.GenericConfigPanel$ConfigGuiBuilder$ValueInfo.access$700(GenericConfigPanel.java:461)
at com.espirit.ps.psci.genericconfiguration.GenericConfigPanel$ConfigGuiBuilder.build(GenericConfigPanel.java:356)
at com.espirit.ps.psci.genericconfiguration.GenericConfigPanel$ConfigGuiBuilder.access$300(GenericConfigPanel.java:235)
at com.espirit.ps.psci.genericconfiguration.GenericConfigPanel.init(GenericConfigPanel.java:130)
at de.espirit.firstspirit.module.WebApplicationXmlMerge.loadConfiguration(WebApplicationXmlMerge.java:232)
at de.espirit.firstspirit.module.WebApplicationXmlMerge.processWebXml(WebApplicationXmlMerge.java:207)
at de.espirit.firstspirit.module.WebApplicationXmlMerge.loadWebXml(WebApplicationXmlMerge.java:186)
at de.espirit.firstspirit.module.WebApplicationXmlMerge.getDocuments(WebApplicationXmlMerge.java:172)
at de.espirit.firstspirit.module.WebApplicationXmlMerge.mergeWebXmls(WebApplicationXmlMerge.java:267)
at de.espirit.firstspirit.module.WebApplicationXmlMerge.mergeWebXmls(WebApplicationXmlMerge.java:164)
at de.espirit.firstspirit.server.module.WebServerManagerImpl.createWarFileUsingAdditionalWebComponent(WebServerManagerImpl.java:1865)
at de.espirit.firstspirit.server.module.WebServerManagerImpl.createWarFileUsingCoreComponents(WebServerManagerImpl.java:465)
at de.espirit.firstspirit.server.module.WebServerManagerImpl.createWar(WebServerManagerImpl.java:367)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at de.espirit.firstspirit.io.DefaultServerHandler.callManager(DefaultServerHandler.java:67)
at de.espirit.firstspirit.server.io.handler.ManagerCall.doCall(ManagerCall.java:141)
at de.espirit.firstspirit.server.io.handler.CompactCall.handle(CompactCall.java:73)
at de.espirit.firstspirit.server.io.MessageWorker.run(MessageWorker.java:50)
at de.espirit.firstspirit.server.ExecutionManagerImpl$RunnableWrapper.call(ExecutionManagerImpl.java:627)
at de.espirit.firstspirit.server.ExecutionManagerImpl$ExtendedCallable.call(ExecutionManagerImpl.java:592)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at de.espirit.common.util.BoundedExecutorService$RunnableWrapper.run(BoundedExecutorService.java:436)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
at de.espirit.common.util.SuspendableThread.run(SuspendableThread.java:56)
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:490)
at java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:84)
... 52 more
Caused by: java.lang.NullPointerException
at java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1262)
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:719)
at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:379)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.desktop/sun.font.SunFontManager.<init>(SunFontManager.java:324)
at java.desktop/sun.awt.FcFontManager.<init>(FcFontManager.java:35)
at java.desktop/sun.awt.X11FontManager.<init>(X11FontManager.java:56)
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:490)
at java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:84)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.desktop/sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:74)
at java.desktop/sun.font.SunFontManager.getInstance(SunFontManager.java:249)
at java.desktop/sun.font.FontDesignMetrics.getMetrics(FontDesignMetrics.java:265)
at java.desktop/sun.swing.SwingUtilities2.getFontMetrics(SwingUtilities2.java:1243)
at java.desktop/javax.swing.JComponent.getFontMetrics(JComponent.java:1646)
at java.desktop/javax.swing.text.PlainView.calculateLongestLine(PlainView.java:783)
at java.desktop/javax.swing.text.PlainView.updateMetrics(PlainView.java:332)
at java.desktop/javax.swing.text.PlainView.updateDamage(PlainView.java:670)
at java.desktop/javax.swing.text.PlainView.insertUpdate(PlainView.java:591)
at java.desktop/javax.swing.text.FieldView.insertUpdate(FieldView.java:294)
at java.desktop/javax.swing.plaf.basic.BasicTextUI$RootView.insertUpdate(BasicTextUI.java:1706)
at java.desktop/javax.swing.plaf.basic.BasicTextUI$UpdateHandler.insertUpdate(BasicTextUI.java:1965)
at java.desktop/javax.swing.text.AbstractDocument.fireInsertUpdate(AbstractDocument.java:203)
at java.desktop/javax.swing.text.AbstractDocument.handleInsertString(AbstractDocument.java:757)
at java.desktop/javax.swing.text.AbstractDocument.insertString(AbstractDocument.java:716)
at java.desktop/javax.swing.text.PlainDocument.insertString(PlainDocument.java:131)
at java.desktop/javax.swing.text.AbstractDocument.replace(AbstractDocument.java:675)
at java.desktop/javax.swing.text.JTextComponent.setText(JTextComponent.java:1729)
at com.espirit.ps.psci.genericconfiguration.GenericConfigPanel$ConfigGuiBuilder$ValueInfo.setValue(GenericConfigPanel.java:652)
at com.espirit.ps.psci.genericconfiguration.GenericConfigPanel$ConfigGuiBuilder$ValueInfo.addToLayout(GenericConfigPanel.java:567)
at com.espirit.ps.psci.genericconfiguration.GenericConfigPanel$ConfigGuiBuilder$ValueInfo.access$700(GenericConfigPanel.java:461)
at com.espirit.ps.psci.genericconfiguration.GenericConfigPanel$ConfigGuiBuilder.build(GenericConfigPanel.java:356)
at com.espirit.ps.psci.genericconfiguration.GenericConfigPanel$ConfigGuiBuilder.access$300(GenericConfigPanel.java:235)
at com.espirit.ps.psci.genericconfiguration.GenericConfigPanel.init(GenericConfigPanel.java:130)
at de.espirit.firstspirit.module.WebApplicationXmlMerge.loadConfiguration(WebApplicationXmlMerge.java:232)
at de.espirit.firstspirit.module.WebApplicationXmlMerge.processWebXml(WebApplicationXmlMerge.java:207)
at de.espirit.firstspirit.module.WebApplicationXmlMerge.loadWebXml(WebApplicationXmlMerge.java:186)
at de.espirit.firstspirit.module.WebApplicationXmlMerge.getDocuments(WebApplicationXmlMerge.java:172)
at de.espirit.firstspirit.module.WebApplicationXmlMerge.mergeWebXmls(WebApplicationXmlMerge.java:267)
at de.espirit.firstspirit.module.WebApplicationXmlMerge.mergeWebXmls(WebApplicationXmlMerge.java:164)
at de.espirit.firstspirit.server.module.WebServerManagerImpl.createWarFileUsingAdditionalWebComponent(WebServerManagerImpl.java:1865)
at de.espirit.firstspirit.server.module.WebServerManagerImpl.createWarFileUsingCoreComponents(WebServerManagerImpl.java:465)
at de.espirit.firstspirit.server.module.WebServerManagerImpl.createWar(WebServerManagerImpl.java:367)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at de.espirit.firstspirit.io.DefaultServerHandler.callManager(DefaultServerHandler.java:67)
at de.espirit.firstspirit.server.io.handler.ManagerCall.doCall(ManagerCall.java:141)
at de.espirit.firstspirit.server.io.handler.CompactCall.handle(CompactCall.java:73)
at de.espirit.firstspirit.server.io.MessageWorker.run(MessageWorker.java:50)
at de.espirit.firstspirit.server.ExecutionManagerImpl$RunnableWrapper.call(ExecutionManagerImpl.java:627)
at de.espirit.firstspirit.server.ExecutionManagerImpl$ExtendedCallable.call(ExecutionManagerImpl.java:592)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at de.espirit.common.util.BoundedExecutorService$RunnableWrapper.run(BoundedExecutorService.java:436)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at de.espirit.firstspirit.client.io.ServerCaller.callManager(ServerCaller.java:565)
at de.espirit.firstspirit.io.DefaultClientHandler.callManager(DefaultClientHandler.java:58)
at de.espirit.firstspirit.client.io.RemoteManagerCaller.invoke(RemoteManagerCaller.java:53)
at com.sun.proxy.$Proxy30.createWar(Unknown Source)
at de.espirit.firstspirit.manager.WebServerManagerProxy.createWar(WebServerManagerProxy.java:102)
at de.espirit.firstspirit.admin.gui.projectpanels.ApplicationsWebScopePanel$ApplicationListPaneWeb$3$2.createWarFile(ApplicationsWebScopePanel.java:737)
Gibt es vielleicht schon eine neuere Version speziell für Java 11?
Oder gibt es einen andere Lösung für das Problem?
mit freundlichen Grüßen
Martin Middendorf
Hallo Martin,
auch wenn die "GenericConfig" nicht "offiziell" supported wird, kann ich mal versuchen zu helfen. Tritt der Fehler wirklich NUR beim Herunterladen als .war auf (d.h. beim Klick auf den Button), d.h. sonst funktioniert(e) alles?
War die einzige Änderung das Update auf Java 11 oder habt ihr parallel auf FS 2015-05 geupdated?
Viele Grüße
Michael
Hallo Michael,
FS 2020-05 hatten wir bereits vorher auf dem Testsystem.
Das Herunterladen funktioniert nicht und das Aktualisieren der Preview läuft und läuft und wird nie fertig.
Diesen FontManagerFactory-Fehler hatte ich bei einem meiner Module ebenfalls gesehen, welches FontAwesome zur Darstellung von Icons in Swing verwendet.
Dieses Feature musste ich deaktivieren/auskommentieren.
Auch hier tritt der Fehler nur auf dem Testsystem unter FS 2020-05 auf.
Wir fragen uns, ob das FS Update 2020-08 vielleicht das Problem behebt, da es wohl ein Fehler ist, der auch an anderer Stelle auftritt?
Der Fehler ist insofern ein Problem, da wir aktuell den Rest der Funktionalitäten unter Java 11 nicht testen können, da weder die Preview funktioniert, noch ein Download möglich ist, um es auf dem Webserver zu testen.
Jede Hilfe wäre willkommen.
Mit freundlichen Grüßen
Martin
Zur Info:
Wir haben inzwischen herausgefunden, das es an der fehlenden "fontconfig" gelegen hat, die bei den Linux Installationspaketen von Adopt OpenJDK nicht dabei ist. Bei den Windows Paketen besteht das Problem nicht, weshalb es bei meiner lokalen FS Dev Installation von Anfang an funktionierte. Sobald man das "fontconfig" Paket nachinstalliert (z.B. „sudo yum install fontconfig dejavu-sans-fonts dejavu-serif-fonts“), verschwinden auch die Fehler am Linux FS Server und es können wieder WAR Dateien herunter geladen werden.
Falls jemand, wie ich gerade heute, nochmal danach sucht. Hier ist eine sehr gute Beschreibung dazu: https://blog.adoptopenjdk.net/2021/01/prerequisites-for-font-support-in-adoptopenjdk/