Details
-
Bug
-
Resolution: Solved By
-
Blocker
-
17.10.2
-
Windows 11 Pro, Edge 144, using an instance of XWiki 17.10.2 on PostgreSQL 17, Tomcat 10, Docker, Java 21, reproducible also on Jetty/HSQL demo packaging
-
Unknown
-
N/A
-
N/A
-
Description
Steps to reproduce
- Login as Admin
- Go to Administer Wiki > Content > Localization
- Select another Default Language from the drop-down (e.g. FR)
- Click 'Save'
- Select again EN
- Click 'Save' as well
- Observe the XWiki logs
Other steps on which the issue was reproduced:
- Go to Administer Wiki > Content > Localization
- On Multilingual, select 'Yes'
- Under Supported Languages, select another language (e.g. FR)
- Click 'Save'
Expected results
No errors are displayed in the logs.
Actual results
The following stacktrace is displayed in XWiki console:
2026-01-29 13:27:04,447 [http-nio-8080-exec-3 - http://localhost:1113/bin/saveandcontinue/XWiki/XWikiPreferences] ERROR rIndexAvailableLocalesListener - Failed to handle event [org.xwiki.bridge.event.DocumentUpdatedEvent@bb170136] with source [XWiki.XWikiPreferences] org.apache.solr.client.solrj.SolrServerException: java.lang.RuntimeException: java.lang.IllegalArgumentException: Invalid locale format: stored,indexed,tokenized,omitNorms,indexOptions=DOCS<doclocale:> at org.apache.solr.client.solrj.embedded.EmbeddedSolrServer.request(EmbeddedSolrServer.java:277) at org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:234) at org.apache.solr.client.solrj.SolrClient.getQueryResponse(SolrClient.java:1010) at org.apache.solr.client.solrj.SolrClient.queryAndStreamResponse(SolrClient.java:993) at org.apache.solr.client.solrj.SolrClient.queryAndStreamResponse(SolrClient.java:1031) at org.xwiki.search.solr.internal.AbstractSolrInstance.queryAndStreamResponse(AbstractSolrInstance.java:134) at org.xwiki.search.solr.internal.SolrIndexAvailableLocalesListener.onEvent(SolrIndexAvailableLocalesListener.java:182) at org.xwiki.observation.internal.DefaultObservationManager.notify(DefaultObservationManager.java:338) at org.xwiki.observation.internal.DefaultObservationManager.notify(DefaultObservationManager.java:303) at com.xpn.xwiki.XWiki.afterSave(XWiki.java:2009) at com.xpn.xwiki.XWiki.saveDocument(XWiki.java:2097) at com.xpn.xwiki.web.SaveAction.save(SaveAction.java:309) at com.xpn.xwiki.web.SaveAndContinueAction.doWrappedAction(SaveAndContinueAction.java:114) at com.xpn.xwiki.web.SaveAndContinueAction.action(SaveAndContinueAction.java:156) at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:636) at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:339) at com.xpn.xwiki.web.LegacyActionServlet.service(LegacyActionServlet.java:111) at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:138) at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:123) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:162) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:138) at org.xwiki.wysiwyg.filter.ConversionFilter.doFilter(ConversionFilter.java:71) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:162) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:138) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:162) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:138) at org.xwiki.container.servlet.filters.internal.SetHTTPHeaderFilter.doFilter(SetHTTPHeaderFilter.java:66) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:162) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:138) at org.xwiki.resource.servlet.RoutingFilter.doFilter(RoutingFilter.java:135) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:162) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:138) at org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:212) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:162) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:138) at org.xwiki.container.servlet.filters.internal.SafeRedirectFilter.doFilter(SafeRedirectFilter.java:106) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:162) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:138) at org.xwiki.container.servlet.filters.internal.ResolveRelativeRedirectFilter.doFilter(ResolveRelativeRedirectFilter.java:129) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:162) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:138) at org.xwiki.container.servlet.filters.internal.SourceURLResolverFilter.doFilter(SourceURLResolverFilter.java:177) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:162) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:138) at org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:120) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:162) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:138) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:165) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:88) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:113) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:83) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:654) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:72) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:903) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1774) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:973) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:491) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) at java.base/java.lang.Thread.run(Unknown Source) Caused by: java.lang.RuntimeException: java.lang.IllegalArgumentException: Invalid locale format: stored,indexed,tokenized,omitNorms,indexOptions=DOCS<doclocale:> at org.apache.solr.client.solrj.embedded.EmbeddedSolrServer.request(EmbeddedSolrServer.java:267) ... 66 common frames omitted Caused by: java.lang.IllegalArgumentException: Invalid locale format: stored,indexed,tokenized,omitNorms,indexOptions=DOCS<doclocale:> at org.apache.commons.lang3.LocaleUtils.parseLocale(LocaleUtils.java:294) at org.apache.commons.lang3.LocaleUtils.toLocale(LocaleUtils.java:376) at org.xwiki.search.solr.internal.reference.SolrEntityReferenceResolver.getDocumentReferenceWithLocale(SolrEntityReferenceResolver.java:121) at org.xwiki.search.solr.internal.reference.SolrEntityReferenceResolver.getEntityReference(SolrEntityReferenceResolver.java:72) at org.xwiki.search.solr.internal.reference.SolrEntityReferenceResolver.resolve(SolrEntityReferenceResolver.java:63) at org.xwiki.search.solr.internal.reference.SolrEntityReferenceResolver.resolve(SolrEntityReferenceResolver.java:46) at org.xwiki.search.solr.internal.reference.SolrDocumentReferenceResolver.resolve(SolrDocumentReferenceResolver.java:48) at org.xwiki.search.solr.internal.reference.SolrDocumentReferenceResolver.resolve(SolrDocumentReferenceResolver.java:38) at org.xwiki.search.solr.internal.SolrIndexAvailableLocalesListener$1.streamSolrDocument(SolrIndexAvailableLocalesListener.java:173) at org.apache.solr.client.solrj.embedded.EmbeddedSolrServer$4.writeSolrDocument(EmbeddedSolrServer.java:333) at org.apache.solr.response.BinaryResponseWriter$Resolver.writeResultsBody(BinaryResponseWriter.java:143) at org.apache.solr.client.solrj.embedded.EmbeddedSolrServer$1.writeResults(EmbeddedSolrServer.java:245) at org.apache.solr.response.BinaryResponseWriter$Resolver.resolve(BinaryResponseWriter.java:100) at org.apache.solr.common.util.JavaBinCodec.writeVal(JavaBinCodec.java:267) at org.apache.solr.common.util.JavaBinCodec.writeNamedList(JavaBinCodec.java:252) at org.apache.solr.common.util.JavaBinCodec.writeKnownType(JavaBinCodec.java:360) at org.apache.solr.common.util.JavaBinCodec.writeVal(JavaBinCodec.java:257) at org.apache.solr.common.util.JavaBinCodec.marshal(JavaBinCodec.java:167) at org.apache.solr.client.solrj.embedded.EmbeddedSolrServer.request(EmbeddedSolrServer.java:257) ... 66 common frames omitted
The issue doesn't seem to reproduce on XWiki 16.10.16 or 17.4.8.