Fehlerbehebung
Mindestens der LayoutStorage benötigt den SafeHTML-Dienst, wenn ein Layout geparst wird, das in seiner Konfiguration ein Format enthält, das seinerseits diesen Dienst benötigt (z.B. tl:MacroFormat).
Möglicherweise ist es aber besser die Abhängigkeit schon im DynamicComponentService zu deklarieren.
Caused by: com.top_logic.basic.ConfigurationError: Invalid value '<h3 style="text-align:center">Export von {$model} vom {now()}</h3>' for property 'header' (com.top_logic.layout.formeditor.export.pdf.DefaultPDFExportCommand$Config.getHeader()) at layout:com.top_logic.demo/technical/components/selectionComponent/detailsForm.layout.xml line 10 column 102: java.lang.IllegalStateException: com.top_logic.basic.html.SafeHTML module not started..
at com.top_logic.basic.config.ConfigurationErrorProtocol.createFailure(ConfigurationErrorProtocol.java:35)
at com.top_logic.basic.ImmediateFailureProtocol.fatal(ImmediateFailureProtocol.java:45)
at com.top_logic.basic.ImmediateFailureProtocol.error(ImmediateFailureProtocol.java:35)
at com.top_logic.basic.LogAdaptor.error(LogAdaptor.java:21)
...
at com.top_logic.mig.html.layout.LayoutStorage.fetchAvailableLayouts(LayoutStorage.java:1301)
at com.top_logic.mig.html.layout.LayoutStorage.loadLayoutsThemeRecursivly(LayoutStorage.java:1216)
at com.top_logic.mig.html.layout.LayoutStorage.loadLayoutsThemeRecursivly(LayoutStorage.java:1210)
at com.top_logic.mig.html.layout.LayoutStorage.loadLayoutsForDefaultTheme(LayoutStorage.java:1203)
at com.top_logic.mig.html.layout.LayoutStorage.fetchAvailableLayouts(LayoutStorage.java:1173)
at com.top_logic.mig.html.layout.LayoutStorage.initFilesystemCache(LayoutStorage.java:1162)
at com.top_logic.mig.html.layout.LayoutStorage.startUp(LayoutStorage.java:1156)
at com.top_logic.basic.module.ManagedClass.doStart(ManagedClass.java:134)
at com.top_logic.basic.module.BasicRuntimeModule.startUpImplementation(BasicRuntimeModule.java:205)
... 104 more
...
Caused by: java.lang.IllegalStateException: com.top_logic.basic.html.SafeHTML module not started.
at com.top_logic.basic.module.ModuleUtil.invalidStateNotStarted(ModuleUtil.java:1894)
at com.top_logic.basic.module.BasicRuntimeModule.getImplementationInstance(BasicRuntimeModule.java:86)
at com.top_logic.basic.html.SafeHTML.getInstance(SafeHTML.java:239)
at com.top_logic.model.search.expr.config.dom.ExprFactory.checkHtml(ExprFactory.java:1090)
at com.top_logic.model.search.expr.parser.SearchExpressionParser.html(SearchExpressionParser.java:706)
at com.top_logic.model.search.expr.config.MacroFormat.getValueNonEmpty(MacroFormat.java:95)
at com.top_logic.model.search.expr.config.MacroFormat.getValueNonEmpty(MacroFormat.java:34)
at com.top_logic.basic.config.AbstractConfigurationValueProvider.getValue(AbstractConfigurationValueProvider.java:31)
at com.top_logic.basic.config.ConfigurationReader$Handler.parseValue(ConfigurationReader.java:2250)
... 148 more
Test
Kein Test - aufgefallen in einem Build-Lauf. Das Problem scheint aber nur manchmal aufzutreten.