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

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

Looks like it's the message printed when the security manager is successfully 
installed. Here:

{code}
        // Report success.
        if (securityManager.equals(System.getSecurityManager())) {
            String successMessage = server.localizeMessage(
                    "DRDA_SecurityInstalled.I", null);
{code}

Notice that the second argument to localizeMessage() is {{null}}. It is passed 
further down to LocalizedResource.getTextMessage():

{code}
    public String getTextMessage(String key, Object... objectArr) {
                if (res == null){
                        setResource();
                }
                        try{
                                return MessageFormat.format(res.getString(key), 
objectArr);
                        } catch (Exception e) {
                                        String tmpFormat = key;
                                        for (int i=0; i<objectArr.length; i++)
                                                tmpFormat = tmpFormat + ", <{" 
+ (i) + "}>";
                                        return MessageFormat.format(tmpFormat, 
objectArr);
                        }
        }
{code}

Here, an exception is raised because it cannot find the key in the Czech 
translation. However, the exception handler does not expect {{objectArr}} to be 
{{null}}, and a {{NullPointerException}} is raised.

> 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
>
> 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