melaquias 01/03/23 14:51:13 Modified: src/share/org/apache/tomcat/util/res StringManager.java Log: Fix bug in getString() that throws nullpointerexception if args==null. Revision Changes Path 1.3 +28 -23 jakarta-tomcat/src/share/org/apache/tomcat/util/res/StringManager.java Index: StringManager.java =================================================================== RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/util/res/StringManager.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- StringManager.java 2001/03/23 21:55:55 1.2 +++ StringManager.java 2001/03/23 22:51:13 1.3 @@ -1,5 +1,5 @@ /* - * $Id: StringManager.java,v 1.2 2001/03/23 21:55:55 melaquias Exp $ + * $Id: StringManager.java,v 1.3 2001/03/23 22:51:13 melaquias Exp $ * ==================================================================== * * The Apache Software License, Version 1.1 @@ -82,7 +82,7 @@ * <p>Please see the documentation for java.util.ResourceBundle for * more information. * - * @version $Revision: 1.2 $ $Date: 2001/03/23 21:55:55 $ + * @version $Revision: 1.3 $ $Date: 2001/03/23 22:51:13 $ * * @author James Duncan Davidson [[EMAIL PROTECTED]] * @author James Todd [[EMAIL PROTECTED]] @@ -172,33 +172,38 @@ */ public String getString(String key, Object[] args) { - String iString = null; + String iString = null; String value = getString(key); - // this check for the runtime exception is some pre 1.1.6 - // VM's don't do an automatic toString() on the passed in - // objects and barf out + // this check for the runtime exception is some pre 1.1.6 + // VM's don't do an automatic toString() on the passed in + // objects and barf out - try { + try { // ensure the arguments are not null so pre 1.2 VM's don't barf - Object nonNullArgs[] = args; + if(args==null){ + args = new Object[1]; + } + + Object[] nonNullArgs = args; for (int i=0; i<args.length; i++) { - if (args[i] == null) { - if (nonNullArgs==args) nonNullArgs=(Object[])args.clone(); - nonNullArgs[i] = "null"; - } - } - + if (args[i] == null) { + if (nonNullArgs==args){ + nonNullArgs=(Object[])args.clone(); + } + nonNullArgs[i] = "null"; + } + } iString = MessageFormat.format(value, nonNullArgs); - } catch (IllegalArgumentException iae) { - StringBuffer buf = new StringBuffer(); - buf.append(value); - for (int i = 0; i < args.length; i++) { - buf.append(" arg[" + i + "]=" + args[i]); - } - iString = buf.toString(); - } - return iString; + } catch (IllegalArgumentException iae) { + StringBuffer buf = new StringBuffer(); + buf.append(value); + for (int i = 0; i < args.length; i++) { + buf.append(" arg[" + i + "]=" + args[i]); + } + iString = buf.toString(); + } + return iString; } /**