summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew John Hughes <gnu_andrew@member.fsf.org>2012-10-15 11:48:50 +0100
committerAndrew John Hughes <gnu_andrew@member.fsf.org>2012-10-15 11:48:50 +0100
commit9c4e50a3c32083d96e3806b04db8ffde34651ecc (patch)
tree9fc556f8894daf9cd74ceb770d5e877f5fc7a2a6
parentc4937db350faa4451db618531f5a2027c2b7cfcc (diff)
parent3906c7137b7b048ca990af825526e8ba4610235d (diff)
downloadclasspath-9c4e50a3c32083d96e3806b04db8ffde34651ecc.tar.gz
Merge branch 'master' of git.sv.gnu.org:/srv/git/classpath
-rw-r--r--ChangeLog10
-rw-r--r--java/util/Formatter.java21
2 files changed, 28 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index d4b297466..c7fbd5a31 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -8,6 +8,16 @@
2012-03-15 Pekka Enberg <penberg@kernel.org>
+ * java/util/Formatter.java:
+ (icharacterFormat(Object,int,int,int,char):
+ Fix NullPointerException for null characters.
+ (basicIntegralConversion(Object, int, int, int, int, char):
+ Fix NullPointerException for null integers.
+ (format(Locale, String, Object...)):
+ Fix NullPointerException for null object.
+
+2012-03-15 Pekka Enberg <penberg@kernel.org>
+
* java/lang/String.java:
(codePointAt(int))): Fix exception type.
(codePointBefore(int)): Fix exception type.
diff --git a/java/util/Formatter.java b/java/util/Formatter.java
index 62f684562..466fab535 100644
--- a/java/util/Formatter.java
+++ b/java/util/Formatter.java
@@ -678,6 +678,12 @@ public final class Formatter
conversion);
noPrecision(precision);
+ if (arg == null)
+ {
+ genericFormat("null", flags, width, precision);
+ return;
+ }
+
int theChar;
if (arg instanceof Character)
theChar = ((Character) arg).charValue();
@@ -748,6 +754,12 @@ public final class Formatter
int radix, char conversion)
{
assert radix == 8 || radix == 10 || radix == 16;
+
+ if (arg == null)
+ {
+ return new CPStringBuilder("null");
+ }
+
noPrecision(precision);
// Some error checking.
@@ -1353,9 +1365,12 @@ public final class Formatter
argumentIndex = previousArgumentIndex;
// Argument indices start at 1 but array indices at 0.
--argumentIndex;
- if (argumentIndex < 0 || argumentIndex >= args.length)
- throw new MissingFormatArgumentException(format.substring(start, index));
- argument = args[argumentIndex];
+ if (args != null)
+ {
+ if (argumentIndex < 0 || argumentIndex >= args.length)
+ throw new MissingFormatArgumentException(format.substring(start, index));
+ argument = args[argumentIndex];
+ }
}
switch (conversion)