From 3360705577c8bb82d31e593cc5890aebeca063c1 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Wed, 05 Sep 2007 22:57:40 +0000
Subject: [PATCH] Improvements to the server-side constraint violation APIs. Now there are just two server-side constraint enforcement call-backs: isUsable and isDeleteAllowed. The first is invoked whenever a managed object is decoded (except in the case where it's about to be deleted). The second is invoked whenever a managed object is about to be deleted. With this change we will now detect constraint violations during server initialization, not just when config change/add/delete events occur.

---
 opends/src/server/org/opends/server/admin/server/ServerManagementContext.java |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/opends/src/server/org/opends/server/admin/server/ServerManagementContext.java b/opends/src/server/org/opends/server/admin/server/ServerManagementContext.java
index a8d3391..d663430 100644
--- a/opends/src/server/org/opends/server/admin/server/ServerManagementContext.java
+++ b/opends/src/server/org/opends/server/admin/server/ServerManagementContext.java
@@ -456,13 +456,22 @@
     DN targetDN = DNBuilder.create(path);
     ConfigEntry configEntry = getManagedObjectConfigEntry(targetDN);
     try {
-      return decode(path, configEntry);
+      ServerManagedObject<? extends S> managedObject;
+      managedObject = decode(path, configEntry);
+
+      // Enforce any constraints.
+      managedObject.ensureIsUsable();
+
+      return managedObject;
     } catch (DefinitionDecodingException e) {
       throw ConfigExceptionFactory.getInstance()
           .createDecodingExceptionAdaptor(targetDN, e);
     } catch (ServerManagedObjectDecodingException e) {
       throw ConfigExceptionFactory.getInstance()
           .createDecodingExceptionAdaptor(e);
+    } catch (ConstraintViolationException e) {
+      throw ConfigExceptionFactory.getInstance()
+          .createDecodingExceptionAdaptor(e);
     }
   }
 

--
Gitblit v1.10.0