StackOverflowアップグレード時のロケールに関するエラー

問題

  • アップグレードの過程で、 StackOverflowError を受け取る問題に遭遇するかもしれません:
    ERROR [main][ROOT:56] bundle com.liferay.portal.verify.extender:7.0.24 (1063)[com.liferay.portal.verify.extender.internal.osgi.commands.VerifyProcessTrackerOSGiCommands(5021)] : The activate method has thrown an exception
    java.lang.StackOverflowError: null
    at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:936) ~[?:?]
    at com.liferay.portal.language.LanguageResources._getMapHolder(LanguageResources.java:140) ~[portal-impl.jar:?]
    at com.liferay.portal.language.LanguageResources.getMessage(LanguageResources.java:76) ~[portal-impl.jar:?]
    at com.liferay.portal.language.LanguageResources.getMessage(LanguageResources.java:83) ~[portal-impl.jar:?]
    at com.liferay.portal.language.LanguageResources.getMessage(LanguageResources.java:83) ~[portal-impl.jar:?]
    at com.liferay.portal.language.LanguageResources.getMessage(LanguageResources.java:83) ~[portal-impl.jar:?]
    at com.liferay.portal.language.LanguageResources.getMessage(LanguageResources.java:83) ~[portal-impl.jar:?]
    at com.liferay.portal.language.LanguageResources.getMessage(LanguageResources.java:83) ~[portal-impl.jar:?]
    at com.liferay.portal.language.LanguageResources.getMessage(LanguageResources.java:83) ~[portal-impl.jar:?]
    at com.liferay.portal.language.LanguageResources.getMessage(LanguageResources.java:83) ~[portal-impl.jar:?]
    at com.liferay.portal.language.LanguageResources.getMessage(LanguageResources.java:83) ~[portal-impl.jar:?]
    ...
  • これは、ロケールとスーパーロケールが互いにぶつかり合い、無限ループを引き起こしている場合に起こる。

Environment

  • Liferay DXP 7.4+

解決策

  • 例えば portal-upgrade-ext.properties で localeslocales.enabled プロパティを必ず設定してください:
    locales=de_DE,en_US,en_GB,en_IN,fr_FR,pt_BR,pt_PT,tr_TR,ja_JP,es_ES,es_MX,ru_RU,sl_SI
    locales.enabled=de_DE,en_US,en_GB,en_IN,fr_FR,pt_BR,pt_PT,tr_TR,ja_JP,es_ES,es_MX,ru_RU,sl_SI

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています