hi Julian,<br>I have just started working on the XMLA task with the intention of creating that Olap4j Servlet user guide but I found that the latest build of mondrian (from changelist 14503) no longer works with my "locale" which I think it's UK.<br>
<br>The exception I get is<br><br>2011-08-03 11:51:56,843 ERROR [mondrian.xmla.XmlaServlet] - <Errors when handling XML/A message><br>mondrian.xmla.XmlaException: Mondrian Error:XMLA SOAP Body processing error<br> at mondrian.xmla.impl.DefaultXmlaServlet.handleSoapBody(DefaultXmlaServlet.java:561)<br>
at mondrian.xmla.XmlaServlet.doPost(XmlaServlet.java:315)<br> at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)<br> at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)<br> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)<br>
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)<br> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)<br> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)<br>
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)<br> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)<br> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)<br>
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)<br> at org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:883)<br> at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:721)<br>
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:2258)<br> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)<br> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)<br>
at java.lang.Thread.run(Thread.java:662)<br>Caused by: java.lang.RuntimeException: Unknown LCID 2057<br> at mondrian.olap.Util.lcidToLocale(Util.java:1755)<br> at mondrian.xmla.Rowset.setProperty(Rowset.java:155)<br>
at mondrian.xmla.RowsetDefinition$DiscoverDatasourcesRowset.setProperty(RowsetDefinition.java:1629)<br> at mondrian.xmla.Rowset.<init>(Rowset.java:119)<br> at mondrian.xmla.RowsetDefinition$DiscoverDatasourcesRowset.<init>(RowsetDefinition.java:1573)<br>
at mondrian.xmla.RowsetDefinition$1.getRowset(RowsetDefinition.java:83)<br> at mondrian.xmla.XmlaHandler.discover(XmlaHandler.java:2767)<br> at mondrian.xmla.XmlaHandler.process(XmlaHandler.java:608)<br>
at mondrian.xmla.impl.DefaultXmlaServlet.handleSoapBody(DefaultXmlaServlet.java:557)<br> ... 17 more<br><br><br>It's caused by the method below which only supports US_EN (open\mondrian\src\main\mondrian\olap\Util.java)<br>
<br> /**<br> * Converts a locale identifier (LCID) as used by Windows into a Java<br> * locale.<br> *<br> * <p>For example, {@code lcidToLocale(1033)} returns "en_US", because<br> * 1033 (hex 0409) is US english.</p><br>
*<br> * @param lcid Locale identifier<br> * @return Locale<br> * @throws RuntimeException if locale id is unkown<br> */<br> public static Locale lcidToLocale(short lcid) {<br> switch (lcid) {<br>
case 0x0409: // 1033<br> return Locale.US;<br> // TODO: fill out this list<br> default:<br> throw new RuntimeException("Unknown LCID " + lcid);<br> }<br> }<br>
<br><br>Could we default to Locale.US instead of throwing the exception if the specified locale is not found in that list?<br><br><br>This is a total blocker for me :)<br><br>thanks,<br>Michele<br><br>