From de19fe2956d5a4b3817834191c51989664f8c47c Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Mon, 03 Sep 2007 20:36:20 +0000
Subject: [PATCH] Fix issue 1443: Admin framework: improve error logging in server
---
opends/src/server/org/opends/server/admin/DefinitionDecodingException.java | 111 ++++++++++++++++++++++++++++++-------------------------
1 files changed, 61 insertions(+), 50 deletions(-)
diff --git a/opends/src/server/org/opends/server/admin/DefinitionDecodingException.java b/opends/src/server/org/opends/server/admin/DefinitionDecodingException.java
index 7644f99..3f60689 100644
--- a/opends/src/server/org/opends/server/admin/DefinitionDecodingException.java
+++ b/opends/src/server/org/opends/server/admin/DefinitionDecodingException.java
@@ -26,9 +26,15 @@
*/
package org.opends.server.admin;
+
+
+
+import static org.opends.messages.AdminMessages.*;
+
import org.opends.messages.Message;
+
/**
* The requested managed object was found but its type could not be
* determined.
@@ -36,55 +42,54 @@
public class DefinitionDecodingException extends DecodingException {
/**
+ * An enumeration defining the reasons why the definition could not
+ * be resolved.
+ */
+ public static enum Reason {
+ /**
+ * The managed object could be found but its type resolved to an
+ * abstract managed object definition.
+ */
+ ABSTRACT_TYPE_INFORMATION(),
+
+ /**
+ * The managed object could be found but did not contain any type
+ * information (eg missing object classes in LDAP).
+ */
+ NO_TYPE_INFORMATION(),
+
+ /**
+ * The managed object could be found but did not contain the
+ * expected type information (eg incorrect object classes in
+ * LDAP).
+ */
+ WRONG_TYPE_INFORMATION();
+
+ }
+
+ /**
* Version ID required by serializable classes.
*/
private static final long serialVersionUID = 3459033551415663416L;
- /**
- * An enumeration defining the reasons why the definition could not be
- * resolved.
- */
- public static enum Reason {
- /**
- * The managed object could be found but did not contain any type
- * information (eg missing object classes in LDAP).
- */
- NO_TYPE_INFORMATION(Message.raw( // TODO: i18n?
- "The managed object could be found but did not contain any"
- + " type information (e.g. missing object classes in LDAP).")),
-
- /**
- * The managed object could be found but did not contain the expected type
- * information (eg incorrect object classes in LDAP).
- */
- WRONG_TYPE_INFORMATION(Message.raw( // TODO: i18n?
- "The managed object could be found but did not contain the"
- + " expected type information (e.g. incorrect object"
- + " classes in LDAP).")),
-
- /**
- * The managed object could be found but its type resolved to an abstract
- * managed object definition.
- */
- ABSTRACT_TYPE_INFORMATION(Message.raw( // TODO: i18n?
- "The managed object could be found but its type resolved to an"
- + " abstract managed object definition."));
-
- // Simple description of this reason for debugging.
- private Message msg;
-
-
-
- // Private constructor.
- private Reason(Message msg) {
- this.msg = msg;
+ // Create the message.
+ private static Message createMessage(AbstractManagedObjectDefinition<?, ?> d,
+ Reason reason) {
+ Message ufn = d.getUserFriendlyName();
+ switch (reason) {
+ case NO_TYPE_INFORMATION:
+ return ERR_DECODING_EXCEPTION_NO_TYPE_INFO.get(ufn);
+ case WRONG_TYPE_INFORMATION:
+ return ERR_DECODING_EXCEPTION_WRONG_TYPE_INFO.get(ufn);
+ default:
+ return ERR_DECODING_EXCEPTION_ABSTRACT_TYPE_INFO.get(ufn);
}
-
}
-
+ // The expected type of managed object.
+ private final AbstractManagedObjectDefinition<?, ?> d;
// The reason why the definition could not be determined.
private final Reason reason;
@@ -94,32 +99,38 @@
/**
* Create a new definition decoding exception.
*
+ * @param d
+ * The expected type of managed object.
* @param reason
* The reason why the definition could not be determined.
*/
- public DefinitionDecodingException(Reason reason) {
+ public DefinitionDecodingException(AbstractManagedObjectDefinition<?, ?> d,
+ Reason reason) {
+ super(createMessage(d, reason));
+ this.d = d;
this.reason = reason;
}
/**
- * Get the reason why the definition could not be determined.
+ * Gets the expected managed object definition.
*
- * @return Returns the reason why the definition could not be determined.
+ * @return Returns the expected managed object definition.
*/
- public Reason getReason() {
- return reason;
+ public AbstractManagedObjectDefinition<?, ?> getManagedObjectDefinition() {
+ return d;
}
/**
- * {@inheritDoc}
+ * Gets the reason why the definition could not be determined.
+ *
+ * @return Returns the reason why the definition could not be
+ * determined.
*/
- @Override
- public Message getMessageObject() {
- return reason.msg;
+ public Reason getReason() {
+ return reason;
}
-
}
--
Gitblit v1.10.0