From 59ffa4898f12b431cfd954b3466277bea046436a Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Wed, 01 Jun 2011 15:16:31 +0000
Subject: [PATCH] Fix OPENDJ-142: Message.raw() with treats first arg as format string even when there are no format arguments
---
opends/src/messages/src/org/opends/messages/Message.java | 35 ++++++++---------
opends/src/messages/src/org/opends/messages/MessageDescriptor.java | 22 ----------
opends/tests/unit-tests-testng/src/server/org/opends/messages/MessageTest.java | 5 +-
3 files changed, 21 insertions(+), 41 deletions(-)
diff --git a/opends/src/messages/src/org/opends/messages/Message.java b/opends/src/messages/src/org/opends/messages/Message.java
index 20dfa73..72d93ef 100644
--- a/opends/src/messages/src/org/opends/messages/Message.java
+++ b/opends/src/messages/src/org/opends/messages/Message.java
@@ -23,6 +23,7 @@
*
*
* Copyright 2008-2010 Sun Microsystems, Inc.
+ * Portions copyright 2011 ForgeRock AS
*/
package org.opends.messages;
@@ -83,11 +84,7 @@
* null if <code>formatString</code> is null
*/
static public Message raw(CharSequence formatString, Object... args) {
- Message message = null;
- if (formatString != null) {
- message = new MessageDescriptor.Raw(formatString).get(args);
- }
- return message;
+ return raw(Category.USER_DEFINED, Severity.INFORMATION, formatString, args);
}
/**
@@ -116,11 +113,18 @@
CharSequence formatString, Object... args) {
Message message = null;
if (formatString != null) {
- MessageDescriptor.Raw md =
- new MessageDescriptor.Raw(formatString,
- category,
- severity);
- message = md.get(args);
+ if (args == null || args.length == 0)
+ {
+ MessageDescriptor.Raw md = new MessageDescriptor.Raw(
+ "%s", category, severity);
+ message = md.get(formatString);
+ }
+ else
+ {
+ MessageDescriptor.Raw md = new MessageDescriptor.Raw(
+ formatString, category, severity);
+ message = md.get(args);
+ }
}
return message;
}
@@ -135,17 +139,12 @@
* will cause this message to render without argument substitution.
*
* @param object from which the message will be created
- * @param arguments for message
+ * @param args for message
* @return a message object that will render the same in all locales;
* null if <code>object</code> is null
*/
- static public Message fromObject(Object object, Object... arguments) {
- Message message = null;
- if (object != null) {
- CharSequence cs = object.toString();
- message = raw(cs, arguments);
- }
- return message;
+ static public Message fromObject(Object object, Object... args) {
+ return (object != null) ? raw(object.toString(), args) : null;
}
/**
diff --git a/opends/src/messages/src/org/opends/messages/MessageDescriptor.java b/opends/src/messages/src/org/opends/messages/MessageDescriptor.java
index aafd713..2d30795 100644
--- a/opends/src/messages/src/org/opends/messages/MessageDescriptor.java
+++ b/opends/src/messages/src/org/opends/messages/MessageDescriptor.java
@@ -23,6 +23,7 @@
*
*
* Copyright 2008 Sun Microsystems, Inc.
+ * Portions copyright 2011 ForgeRock AS
*/
package org.opends.messages;
@@ -981,14 +982,6 @@
/**
* Creates a parameterized instance.
* @param formatString for created messages
- */
- Raw(CharSequence formatString) {
- this(formatString, Category.USER_DEFINED, Severity.INFORMATION);
- }
-
- /**
- * Creates a parameterized instance.
- * @param formatString for created messages
* @param category for created messages
* @param severity for created messages
*/
@@ -1000,19 +993,6 @@
}
/**
- * Creates a parameterized instance. Created messages will
- * have a category of <code>Category.USER_DEFINED</code>.
- * @param formatString for created messages
- * @param mask for created messages
- * @param severity for created messages
- */
- Raw(CharSequence formatString, int mask, Severity severity) {
- super(null, null, mask, severity, null, null);
- this.formatString = formatString != null ? formatString.toString() : "";
- this.requiresFormatter = this.formatString.matches(".*%.*");
- }
-
- /**
* Creates a message with arguments that will replace format
* specifiers in the assocated format string when the message
* is rendered to string representation.
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/messages/MessageTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/messages/MessageTest.java
index 65f130e..6996050 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/messages/MessageTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/messages/MessageTest.java
@@ -23,6 +23,7 @@
*
*
* Copyright 2006-2008 Sun Microsystems, Inc.
+ * Portions copyright 2011 ForgeRock AS
*/
package org.opends.messages;
@@ -50,8 +51,8 @@
{"Hello %s", "Hello World", new Object[]{"World"}},
{"Hel%nlo %s", "Hel" + EOL + "lo World", new Object[]{"World"}},
{"Hel%%lo %s", "Hel%lo World", new Object[]{"World"}},
- {"Hel%%lo", "Hel%lo", new Object[]{}},
- {"Hel%nlo", "Hel" + EOL + "lo", new Object[]{}},
+ {"Hel%%lo", "Hel%%lo", new Object[]{}},
+ {"Hel%nlo", "Hel%nlo", new Object[]{}},
{"Hel%Dlo", "Hel%Dlo", new Object[]{}},
{"Hel%Dlo", "Hel%Dlo", new Object[]{ "abc"}},
--
Gitblit v1.10.0