From 8ad64526ae23f5b3992dab4e8c7a96b5e8376d2f Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Tue, 15 Jan 2008 14:25:18 +0000
Subject: [PATCH] Fix issue 2827: Messages constructed from a MessageBuilder should have a sensible category and severity.
---
opends/tests/unit-tests-testng/src/server/org/opends/messages/MessageBuilderTest.java | 41 ++++++++++++++++++++
opends/src/messages/src/org/opends/messages/MessageBuilder.java | 21 ++++++++--
2 files changed, 57 insertions(+), 5 deletions(-)
diff --git a/opends/src/messages/src/org/opends/messages/MessageBuilder.java b/opends/src/messages/src/org/opends/messages/MessageBuilder.java
index e462f2d..5e44f69 100644
--- a/opends/src/messages/src/org/opends/messages/MessageBuilder.java
+++ b/opends/src/messages/src/org/opends/messages/MessageBuilder.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Portions Copyright 2007 Sun Microsystems, Inc.
+ * Portions Copyright 2007-2008 Sun Microsystems, Inc.
*/
package org.opends.messages;
@@ -259,8 +259,13 @@
}
/**
- * Returns a raw message representation of the appended
- * content.
+ * Returns a raw message representation of the appended content.
+ * <p>
+ * If the first object appended to this <code>MessageBuilder</code>
+ * was a <code>Message</code> then the returned message will
+ * inherit its category and severity. Otherwise the returned message
+ * will have category {@link Category#USER_DEFINED} and severity
+ * {@link Severity#INFORMATION}.
*
* @return Message raw message representing builder content
*/
@@ -269,7 +274,15 @@
for (int i = 0; i < messages.size(); i++) {
fmtString.append("%s");
}
- return Message.raw(fmtString, messages.toArray());
+
+ if (messages.isEmpty()) {
+ return Message.raw(fmtString, messages.toArray());
+ } else {
+ // Inherit the category and severity of the first message.
+ MessageDescriptor md = messages.get(0).getDescriptor();
+ return Message.raw(md.getCategory(), md.getSeverity(), fmtString,
+ messages.toArray());
+ }
}
/**
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/messages/MessageBuilderTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/messages/MessageBuilderTest.java
index a9a85af..e22ff1b 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/messages/MessageBuilderTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/messages/MessageBuilderTest.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Portions Copyright 2007 Sun Microsystems, Inc.
+ * Portions Copyright 2007-2008 Sun Microsystems, Inc.
*/
package org.opends.messages;
@@ -201,4 +201,43 @@
assertTrue(result.equals(m.toString(locale)));
}
+
+
+ @DataProvider(name = "toMessageData2")
+ public Object[][] toMessageData2() {
+ return new Object[][] {
+ {
+ CoreMessages.ERR_ADD_CANNOT_ADD_ROOT_DSE.get(),
+ CoreMessages.ERR_ABANDON_OP_NO_SUCH_OPERATION.get(1),
+ CoreMessages.ERR_ADD_CANNOT_ADD_ROOT_DSE.getCategory(),
+ CoreMessages.ERR_ADD_CANNOT_ADD_ROOT_DSE.getSeverity()
+ },
+ {
+ Message.raw(Category.JEB, Severity.FATAL_ERROR, "test message"),
+ CoreMessages.ERR_ABANDON_OP_NO_SUCH_OPERATION.get(1),
+ Category.JEB,
+ Severity.FATAL_ERROR
+ },
+ {
+ Message.raw("test message"),
+ CoreMessages.ERR_ABANDON_OP_NO_SUCH_OPERATION.get(1),
+ Category.USER_DEFINED,
+ Severity.INFORMATION
+ }
+ };
+ }
+
+
+
+ @Test(dataProvider = "toMessageData2")
+ public void testToMessage2(Message m1, Message m2, Category c, Severity s) {
+ MessageBuilder mb = new MessageBuilder();
+
+ mb.append(m1);
+ mb.append(m2);
+ Message m = mb.toMessage();
+
+ assertEquals(m.getDescriptor().getCategory(), c);
+ assertEquals(m.getDescriptor().getSeverity(), s);
+ }
}
--
Gitblit v1.10.0