Legacy Knowledge Base
Published Sep. 10, 2025

Error during Liferay startup after updating a config or cfg configuration file in the osgi/configs folder

Written By

Jorge Diaz

How To articles are not official guidelines or officially supported documentation. They are community-contributed content and may not always reflect the latest updates to Liferay DXP. We welcome your feedback to improve How To articles!

While we make every effort to ensure this Knowledge Base is accurate, it may not always reflect the most recent updates or official guidelines.We appreciate your understanding and encourage you to reach out with any feedback or concerns.

Legacy Article

You are viewing an article from our legacy "FastTrack" publication program, made available for informational purposes. Articles in this program were published without a requirement for independent editing or verification and are provided"as is" without guarantee.

Before using any information from this article, independently verify its suitability for your situation and project.

Issue

After editing a config or configuration file in the osgi/configs folder, there are unexpected errors during the startup process, that can prevent Liferay from starting correctly

The errors detected in 7.2 Fixpack 11 and 12 are:

  • After editing the Elasticsearch configuration
2021-03-29 06:49:06.923  ERROR [Start Level: Equinox Container: 8ad2e3a5-ae58-4508-b530-a0a1173287a8][CompanyIdIndexNameBuilder:93] bundle com.liferay.portal.search.elasticsearch6.impl:3.0.83 (637)[com.liferay.portal.search.elasticsearch6.internal.index.CompanyIdIndexNameBuilder(1688)] : The activate method has thrown an exception 
java.lang.RuntimeException: Unable to create snapshot class for interface com.liferay.portal.search.elasticsearch6.configuration.ElasticsearchConfiguration
	at com.liferay.portal.configuration.metatype.bnd.util.ConfigurableUtil._createConfigurableSnapshot(ConfigurableUtil.java:89)
	at com.liferay.portal.configuration.metatype.bnd.util.ConfigurableUtil.createConfigurable(ConfigurableUtil.java:51)
[...]
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) 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 com.liferay.portal.configuration.metatype.bnd.util.ConfigurableUtil._createConfigurableSnapshot(ConfigurableUtil.java:86) ... 47 more Caused by: java.lang.IllegalArgumentException: No enum constant com.liferay.portal.search.elasticsearch6.configuration.OperationMode."REMOTE" at java.base/java.lang.Enum.valueOf(Enum.java:240) at aQute.bnd.annotation.metatype.Configurable$ConfigurableHandler.convert(Configurable.java:179) at aQute.bnd.annotation.metatype.Configurable$ConfigurableHandler.invoke(Configurable.java:103) at com.sun.proxy.$Proxy263.operationMode(Unknown Source) at com.liferay.portal.search.elasticsearch6.configuration.ElasticsearchConfigurationSnapshot.(Unknown Source) ... 52 more
  • After editing the REST services configuration
16-Jul-2021 09:35:29.732 SEVERE [main] org.apache.catalina.core.StandardContext.listenerStart Exception sending context initialized event to listener instance of class [com.liferay.portal.spring.context.PortalContextLoaderListener]
        java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
                at com.liferay.portal.spring.context.PortalContextLoaderListener.contextInitialized(PortalContextLoaderListener.java:308)
                at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4690)
[...]
                at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:474)
        Caused by: java.lang.reflect.InvocationTargetException
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:498)
                at com.liferay.portal.bootstrap.ModuleFrameworkImpl._installConfigs(ModuleFrameworkImpl.java:1295)
                at com.liferay.portal.bootstrap.ModuleFrameworkImpl._setUpInitialBundles(ModuleFrameworkImpl.java:1815)
                at com.liferay.portal.bootstrap.ModuleFrameworkImpl.startFramework(ModuleFrameworkImpl.java:404)
                at com.liferay.portal.module.framework.ModuleFrameworkUtilAdapter.startFramework(ModuleFrameworkUtilAdapter.java:100)
                at com.liferay.portal.spring.context.PortalContextLoaderListener.contextInitialized(PortalContextLoaderListener.java:303)
                ... 41 more
        Caused by: java.lang.IllegalArgumentException: Value must not be null
                at org.apache.felix.cm.impl.CaseInsensitiveDictionary.checkValue(CaseInsensitiveDictionary.java:286)
                at org.apache.felix.cm.impl.CaseInsensitiveDictionary.(CaseInsensitiveDictionary.java:83)
                at org.apache.felix.cm.impl.ConfigurationImpl.update(ConfigurationImpl.java:452)
                at org.apache.felix.cm.impl.ConfigurationAdapter.update(ConfigurationAdapter.java:145)
                at com.liferay.portal.file.install.internal.configuration.ConfigurationFileInstaller.transformURL(ConfigurationFileInstaller.java:141)

 

When we install the fixpack 13 in Liferay DXP 7.2 or the fixpack 2 in Liferay DXP 7.3, the following warning traces are written to the log file:

Detected .config format in .cfg file in line​:
and
Unable to parse config line:

Environment

  • Liferay DXP 7.2

Resolution

  • These errors are produced because you have a .config file that contains lines in the .cfg file format or vice-versa.
  • The osgi/configs folder supports two types of files:
  • Before DXP 7.2 fixpack 11, it was possible to mix the .config and .cfg formats in the same file but as of fixpack 11, Liferay no longer allows it so having a file with the wrong format will cause an error in the log files.
  • To solve your issue, you have to review all your configuration files included in the osgi/configs folder and double-check they contain the correct format.
  • The major difference between both formats is:
    • .cfg file lines are always unquoted, for example:
        • key=value
    • .config file lines are always quoted, and they can have a type, for example:
        • key_string="value"
        • key_boolean=B"false"
  • The official Liferay recommendation is to stop using the old .cfg format and change all the files to the .config one because it allows using typed values and the .cfg will be deprecated in a future Liferay version
  • For more information about the Liferay OSGi configuration files, see Creating Configuration Files

Additional Information

 

 

Did this article resolve your issue ?

Legacy Knowledge Base