From 43ba6d721185f9a810761720fcb05103b31d17b7 Mon Sep 17 00:00:00 2001
From: chebrard <chebrard@localhost>
Date: Wed, 29 Oct 2008 10:39:44 +0000
Subject: [PATCH] Fix 3534: Provide native Solaris packages (fix also 3533: upgrade fails starting server adding entry ds-cfg-key-id)

---
 opends/src/server/org/opends/server/tasks/AddSchemaFileTask.java |   19 ++++++++++++++-----
 1 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/opends/src/server/org/opends/server/tasks/AddSchemaFileTask.java b/opends/src/server/org/opends/server/tasks/AddSchemaFileTask.java
index cd60148..6c82691 100644
--- a/opends/src/server/org/opends/server/tasks/AddSchemaFileTask.java
+++ b/opends/src/server/org/opends/server/tasks/AddSchemaFileTask.java
@@ -127,7 +127,10 @@
 
     // Get the name(s) of the schema files to add and make sure they exist in
     // the schema directory.
-    String schemaDirectory = SchemaConfigManager.getSchemaDirectoryPath();
+    String schemaInstallDirectory  =
+      SchemaConfigManager.getSchemaDirectoryPath(false);
+    String schemaInstanceDirectory =
+      SchemaConfigManager.getSchemaDirectoryPath(true);
     filesToAdd = new TreeSet<String>();
     for (Attribute a : attrList)
     {
@@ -138,14 +141,19 @@
 
         try
         {
-          File schemaFile = new File(schemaDirectory, filename);
+          File schemaFile = new File(schemaInstallDirectory, filename);
           if ((! schemaFile.exists()) ||
-              (! schemaFile.getParent().equals(schemaDirectory)))
+              (! schemaFile.getParent().equals(schemaInstallDirectory)))
           {
+            // try in the instance
+            schemaFile = new File(schemaInstanceDirectory, filename);
+            if (! schemaFile.exists())
+            {
             Message message = ERR_TASK_ADDSCHEMAFILE_NO_SUCH_FILE.get(
-                filename, schemaDirectory);
+                filename, schemaInstallDirectory, schemaInstanceDirectory);
             throw new DirectoryException(ResultCode.CONSTRAINT_VIOLATION,
                                          message);
+            }
           }
         }
         catch (Exception e)
@@ -156,7 +164,8 @@
           }
 
           Message message = ERR_TASK_ADDSCHEMAFILE_ERROR_CHECKING_FOR_FILE.get(
-              filename, schemaDirectory, getExceptionMessage(e));
+              filename, schemaInstallDirectory, schemaInstanceDirectory,
+              getExceptionMessage(e));
           throw new DirectoryException(ResultCode.CONSTRAINT_VIOLATION,
                                        message, e);
         }

--
Gitblit v1.10.0