[
https://issues.apache.org/jira/browse/DERBY-4854?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12922482#action_12922482
]
Knut Anders Hatlen commented on DERBY-4854:
-------------------------------------------
The problem seems to be that Locale.getDefault().getCountry() returns "8859_1"
in this locale, and that value confuses Derby. The javadoc for
Locale.getCountry() says that it should return an empty string or a two-letter
uppercase country code, so I think it's a bug that getCountry() returns
"8859_1".
I've filed a bug report against java.util.Locale. The bug report will be
available on this URL: http://bugs.sun.com/view_bug.do?bug_id=6993042 (it
usually takes a day or so before it turns up).
> Derby fails to start if the current locale is set to 'iso_8859_1' (no
> language and country codes specified) on Solaris
> ----------------------------------------------------------------------------------------------------------------------
>
> Key: DERBY-4854
> URL: https://issues.apache.org/jira/browse/DERBY-4854
> Project: Derby
> Issue Type: Bug
> Components: Services
> Affects Versions: 10.5.3.0
> Environment: Solaris
> $ uname -a
> SunOS tstsn24s 5.9 Generic_118558-34 sun4u sparc SUNW,Sun-Blade-2500
> Reporter: Konstantin Buzdin
> Priority: Critical
> Attachments: derby.log
>
>
> org.apache.derby.tools.sysinfo output:
> ------------------ Java Information ------------------
> Java Version: 1.6.0_16
> Java Vendor: Sun Microsystems Inc.
> Java home: /space/testing/kw/9.2/9.2.0.5474/server/_jvm
> Java classpath: /space/testing/kw/9.2/9.2.0.5474/server/class/derby.jar
> OS name: SunOS
> OS architecture: sparc
> OS version: 5.9
> Java user name: buzdin
> Java user home: /home/buzdin
> Java user dir: /home/buzdin
> java.specification.name: Java Platform API Specification
> java.specification.version: 1.6
> --------- Derby Information --------
> JRE - JDBC: Java SE 6 - JDBC 4.0
> [/space/testing/kw/9.2/9.2.0.5474/server/class/derby.jar] 10.5.3.0 - (802917)
> ------------------------------------------------------
> ----------------- Locale Information -----------------
> ------------------------------------------------------
> Derby fails to start as an embedded service with the following locale
> settings:
> $ locale
> LANG=C
> LC_CTYPE=iso_8859_1
> LC_NUMERIC="C"
> LC_TIME="C"
> LC_COLLATE="C"
> LC_MONETARY="C"
> LC_MESSAGES="C"
> LC_ALL=
> $ locale -a
> POSIX
> C
> iso_8859_15
> iso_8859_1
> en_CA
> en_CA.ISO8859-1
> en_US
> en_US.ISO8859-1
> en_US.ISO8859-15
> en_us.iso8859...@euro
> es
> es_MX
> es_MX.ISO8859-1
> fr
> fr_CA
> fr_CA.ISO8859-1
> en
> $ locale charmap
> ISO8859-1
> The derby.log contains the following error:
> java.sql.SQLException: Failed to create database
> 'directory:/tmp/pr/permissions_data', see the next exception for details.
> at
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown
> Source)
> at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
> at org.apache.derby.impl.jdbc.Util.seeNextException(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(Unknown
> Source)
> at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedConnection30.<init>(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedConnection40.<init>(Unknown Source)
> at org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Unknown Source)
> at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
> at org.apache.derby.jdbc.AutoloadedDriver.connect(Unknown Source)
> at java.sql.DriverManager.getConnection(Unknown Source)
> at java.sql.DriverManager.getConnection(Unknown Source)
> at com.klocwork.permissions.server.database.DBManager.<init>(Unknown
> Source)
> at
> com.klocwork.permissions.server.database.DBManager.getInstance(Unknown Source)
> at
> com.klocwork.build.server.ProjectServerCore.initializeDBManager(Unknown
> Source)
> at com.klocwork.build.server.ProjectServerCore.<init>(Unknown Source)
> at com.klocwork.build.server.ProjectServerCore.getInstance(Unknown
> Source)
> at com.klocwork.build.server.ProjectServerManagerImpl.<init>(Unknown
> Source)
> at com.klocwork.rmimanager.ServerControllerImpl.createModules(Unknown
> Source)
> at com.klocwork.rmimanager.ServerControllerImpl.<init>(Unknown Source)
> at com.klocwork.rmimanager.ServerControllerImpl.getInstance(Unknown
> Source)
> at com.klocwork.server.web.ProjectServiceServlet.init(Unknown Source)
> at javax.servlet.GenericServlet.init(GenericServlet.java:211)
> at
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1105)
> at
> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:932)
> at
> org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3917)
> at
> org.apache.catalina.core.StandardContext.start(StandardContext.java:4201)
> at
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
> at
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
> at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
> at
> org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:608)
> at
> org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:535)
> at
> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
> at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)
> at
> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
> at
> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
> at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
> at
> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
> at
> org.apache.catalina.core.StandardService.start(StandardService.java:450)
> at
> org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
> at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
> Caused by: java.sql.SQLException: Failed to create database
> 'directory:/tmp/pr/permissions_data', see the next exception for details.
> at
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
> at
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown
> Source)
> ... 49 more
> Caused by: java.sql.SQLException: Supplied territory description 'en_8859_1'
> is invalid, expecting ln[_CO[_variant]]
> ln=lower-case two-letter ISO-639 language code, CO=upper-case two-letter
> ISO-3166 country codes, see java.util.Locale.
> at
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
> at
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown
> Source)
> at
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown
> Source)
> at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown
> Source)
> at
> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown
> Source)
> at
> org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown
> Source)
> at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown
> Source)
> ... 46 more
> Caused by: ERROR XBM0X: Supplied territory description 'en_8859_1' is
> invalid, expecting ln[_CO[_variant]]
> ln=lower-case two-letter ISO-639 language code, CO=upper-case two-letter
> ISO-3166 country codes, see java.util.Locale.
> at org.apache.derby.iapi.error.StandardException.newException(Unknown
> Source)
> at
> org.apache.derby.impl.services.monitor.BaseMonitor.staticGetLocaleFromString(Unknown
> Source)
> at org.apache.derby.impl.services.monitor.BaseMonitor.setLocale(Unknown
> Source)
> at org.apache.derby.impl.db.BasicDatabase.boot(Unknown Source)
> at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown
> Source)
> at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown
> Source)
> at
> org.apache.derby.impl.services.monitor.BaseMonitor.bootService(Unknown Source)
> at
> org.apache.derby.impl.services.monitor.BaseMonitor.createPersistentService(Unknown
> Source)
> at
> org.apache.derby.iapi.services.monitor.Monitor.createPersistentService(Unknown
> Source)
> ... 46 more
> The workaround is to set LC_CTYPE to "C":
> export LC_CTYPE=C
> or to specify the language/country:
> export LC_CTYPE=en_US.ISO8859-1
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.