[ 
https://issues.apache.org/jira/browse/DERBY-6828?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15147759#comment-15147759
 ] 

Knut Anders Hatlen commented on DERBY-6828:
-------------------------------------------

As to the missing fallback to English for the messages that lack translation, 
issuing {{svn rename java/drda/org/apache/derby/loc/drda/messages_en.properties 
java/drda/org/apache/derby/loc/drda/messages.properties}} and rebuilding seems 
to fix it for me:

{noformat}
$ java -Dderby.ui.locale=cs -jar /code/derby/trunk/jars/sane/derbynet.jar start 
Mon Feb 15 20:41:17 CET 2016 : Security manager installed using the Basic 
server security policy.
Mon Feb 15 20:41:17 CET 2016 : Síťový server Apache Derby - 10.13.0.0 alpha - 
(Unversioned directory): spuštěn a připraven přijímat připojení na portu 1527 v 
{3} 
{noformat}

If your locale is cs_CZ, ResourceBundle will look for the message in 
messages_cs_CZ.properties. If it is not found there, it will try with a less 
specific locale and look for it in messages_cs.properties. If it is not found 
there either, it will try with an even less specific locale and look for it in 
messages.properties. If we move the English messages from 
messages_en.properties to messages.properties, they will become fallback for 
messages that lack translation to the requested locale.

The tools messages are already structured like this. There is a 
toolsmessages.properties, but not a toolsmessages_en.properties. Since both the 
tools messages and the drda messages are localized using LocalizedResource, I 
think it makes sense if the message files are structured the same way.

The engine messages don't go through LocalizedResource, so they have a 
different mechanism for falling back to English (using MessageService). We 
could probably copy that logic into LocalizedResource. But since we can get 
this functionality for free from java.util.ResourceBundle by renaming a file, I 
don't see much value in copying the code.

> Network Server don't start in czech localized enviroment due missing key 
> DRDA_MissingNetworkJar.S
> -------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-6828
>                 URL: https://issues.apache.org/jira/browse/DERBY-6828
>             Project: Derby
>          Issue Type: Bug
>          Components: Localization, Network Server
>    Affects Versions: 10.11.1.1
>         Environment: Windows 7 Profesional SP1 64bit (localized CS),
> java version "1.8.0_51"
> Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
> Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)
>            Reporter: David Ježek
>            Priority: Minor
>              Labels: easyfix
>         Attachments: nullGuard.diff
>
>
> Network Server don't start in czech localized enviroment due missing key 
> DRDA_MissingNetworkJar.S in file 
> org/apache/derby/loc/drda/messages_cs.properties
> Exception:
> Thu Jul 23 15:56:24 CEST 2015 : null
> java.lang.NullPointerException
>         at 
> org.apache.derby.iapi.tools.i18n.LocalizedResource.getTextMessage(Unknown 
> Source)
>         at 
> org.apache.derby.impl.drda.NetworkServerControlImpl.localizeMessage(Unknown 
> Source)
>         at 
> org.apache.derby.impl.drda.NetworkServerControlImpl.localizeMessage(Unknown 
> Source)
>         at 
> org.apache.derby.drda.NetworkServerControl.installSecurityManager(Unknown 
> Source)
>         at org.apache.derby.drda.NetworkServerControl.main(Unknown Source)
> Missing key is called in file org.apache.derby.drda.NetworkServerControl.java 
> at line 818.
> Reproduce under windows in console run:
> set DERBY_OPTS=-Duser.language=cs
> startNetworkServer.bat
> Workaround:
> Run derby server under en localization.
> Windows consola run:
> set DERBY_OPTS=-Duser.language=en
> startNetworkServer.bat



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to