-
Type:
Bug
-
Status: Closed
-
Resolution: Fixed
-
Affects Version/s: 7.2.X, Master
-
Fix Version/s: 7.2.10 DXP FP12, 7.2.X, 7.3.7 CE GA8, 7.3.10 DXP FP2, 7.3.X, 7.4.0 CE GA1, 7.4.13 DXP GA1, Master
-
Component/s: Portal Configuration
-
Branch Version/s:7.3.x, 7.2.x
-
Backported to Branch:Committed
-
Fix Priority:3
-
Git Pull Request:
Calling to
ResourceBundleUtil.getBundle("content.Language", LocaleThreadLocal.getThemeDisplayLocale(), getClass());
causes a NPE when
LocaleThreadLocal.getThemeDisplayLocale()
is null:
Caused by: java.lang.NullPointerException at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1618) at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1593) at java.base/java.util.ResourceBundle.getBundle(ResourceBundle.java:1509) at com.liferay.portal.kernel.util.ResourceBundleUtil._getBundle(ResourceBundleUtil.java:242) at com.liferay.portal.kernel.util.ResourceBundleUtil.getBundle(ResourceBundleUtil.java:96) at com.liferay.portal.kernel.util.ResourceBundleUtil.getBundle(ResourceBundleUtil.java:88) at com.liferay.organizations.internal.configuration.persistence.listener.OrganizationTypeConfigurationModelListener._getResourceBundle(OrganizationTypeConfigurationModelListener.java:62) at com.liferay.organizations.internal.configuration.persistence.listener.OrganizationTypeConfigurationModelListener._validateUniqueConfiguration(OrganizationTypeConfigurationModelListener.java:100) at com.liferay.organizations.internal.configuration.persistence.listener.OrganizationTypeConfigurationModelListener.onBeforeSave(OrganizationTypeConfigurationModelListener.java:52) ... 69 more
Steps to reproduce
- Make a copy of the file
osgi/configs/com.liferay.organizations.internal.configuration.OrganizationTypeConfiguration-default.config
and rename it. Locate this file out of osgi directory tree. For example:
/tmp/com.liferay.organizations.internal.configuration.OrganizationTypeConfiguration-foo.config
- Start DXP.
- Copy
/tmp/com.liferay.organizations.internal.configuration.OrganizationTypeConfiguration-foo.config
to osgi/configs/ directory.
- Wait some seconds until listener checks the directory.
Observed behavior
2021-03-15 11:23:50.803 ERROR [fileinstall-directory-watcher][DirectoryWatcher:687] Unable to install artifact: /liferay-portal/osgi/configs/com.liferay.organizations.internal.configuration.OrganizationTypeConfiguration-foo.config
com.liferay.portal.configuration.persistence.listener.ConfigurationModelListenerException: The listener com.liferay.organizations.internal.configuration.persistence.listener.OrganizationTypeConfigurationModelListener was unable to save configuration com.liferay.organizations.internal.configuration.OrganizationTypeConfiguration: null
at com.liferay.organizations.internal.configuration.persistence.listener.OrganizationTypeConfigurationModelListener.onBeforeSave(OrganizationTypeConfigurationModelListener.java:56)
at com.liferay.portal.configuration.persistence.internal.ConfigurationPersistenceManager.store(ConfigurationPersistenceManager.java:237)
at org.apache.felix.cm.impl.persistence.PersistenceManagerProxy.store(PersistenceManagerProxy.java:203)
at org.apache.felix.cm.impl.ConfigurationImpl.update(ConfigurationImpl.java:461)
at org.apache.felix.cm.impl.ConfigurationAdapter.update(ConfigurationAdapter.java:145)
at com.liferay.portal.file.install.internal.configuration.ConfigurationFileInstaller.transformURL(ConfigurationFileInstaller.java:141)
at com.liferay.portal.file.install.internal.DirectoryWatcher._install(DirectoryWatcher.java:668)
at com.liferay.portal.file.install.internal.DirectoryWatcher._install(DirectoryWatcher.java:703)
at com.liferay.portal.file.install.internal.DirectoryWatcher._process(DirectoryWatcher.java:998)
at com.liferay.portal.file.install.internal.DirectoryWatcher.run(DirectoryWatcher.java:272)
Caused by: java.lang.NullPointerException
at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:936)
at com.liferay.portal.kernel.resource.bundle.CacheResourceBundleLoader.loadResourceBundle(CacheResourceBundleLoader.java:58)
at com.liferay.portal.kernel.util.ResourceBundleUtil._getBundle(ResourceBundleUtil.java:221)
at com.liferay.portal.kernel.util.ResourceBundleUtil.getBundle(ResourceBundleUtil.java:95)
at com.liferay.portal.kernel.util.ResourceBundleUtil.getBundle(ResourceBundleUtil.java:87)
at com.liferay.organizations.internal.configuration.persistence.listener.OrganizationTypeConfigurationModelListener._getResourceBundle(OrganizationTypeConfigurationModelListener.java:62)
at com.liferay.organizations.internal.configuration.persistence.listener.OrganizationTypeConfigurationModelListener._validateUniqueConfiguration(OrganizationTypeConfigurationModelListener.java:100)
at com.liferay.organizations.internal.configuration.persistence.listener.OrganizationTypeConfigurationModelListener.onBeforeSave(OrganizationTypeConfigurationModelListener.java:52)
... 9 more
Expected behavior
2021-03-15 11:32:10.656 ERROR [fileinstall-directory-watcher][DirectoryWatcher:687] Unable to install artifact: /liferay-portal/osgi/configs/com.liferay.organizations.internal.configuration.OrganizationTypeConfiguration-foo.config com.liferay.portal.configuration.persistence.listener.ConfigurationModelListenerException: The listener com.liferay.organizations.internal.configuration.persistence.listener.OrganizationTypeConfigurationModelListener was unable to save configuration com.liferay.organizations.internal.configuration.OrganizationTypeConfiguration: There is already an organization type with the name: organization. at com.liferay.organizations.internal.configuration.persistence.listener.OrganizationTypeConfigurationModelListener.onBeforeSave(OrganizationTypeConfigurationModelListener.java:56) at com.liferay.portal.configuration.persistence.internal.ConfigurationPersistenceManager.store(ConfigurationPersistenceManager.java:237) at org.apache.felix.cm.impl.persistence.PersistenceManagerProxy.store(PersistenceManagerProxy.java:203) at org.apache.felix.cm.impl.ConfigurationImpl.update(ConfigurationImpl.java:461) at org.apache.felix.cm.impl.ConfigurationAdapter.update(ConfigurationAdapter.java:145) at com.liferay.portal.file.install.internal.configuration.ConfigurationFileInstaller.transformURL(ConfigurationFileInstaller.java:141) at com.liferay.portal.file.install.internal.DirectoryWatcher._install(DirectoryWatcher.java:668) at com.liferay.portal.file.install.internal.DirectoryWatcher._install(DirectoryWatcher.java:703) at com.liferay.portal.file.install.internal.DirectoryWatcher._process(DirectoryWatcher.java:998) at com.liferay.portal.file.install.internal.DirectoryWatcher.run(DirectoryWatcher.java:272) Caused by: java.lang.Exception: There is already an organization type with the name: organization. at com.liferay.organizations.internal.configuration.persistence.listener.OrganizationTypeConfigurationModelListener._validateUniqueConfiguration(OrganizationTypeConfigurationModelListener.java:102) at com.liferay.organizations.internal.configuration.persistence.listener.OrganizationTypeConfigurationModelListener.onBeforeSave(OrganizationTypeConfigurationModelListener.java:52) ... 9 more
- fixes
-
LPS-116358 Provide a supplier with a default locale
- Closed
- is duplicated by
-
LPS-116358 Provide a supplier with a default locale
- Closed
- is related to
-
LPS-114146 Improve exception stack trace for ConfigurationModelListenerException
- Closed