From ec81970c2c2061e073a6c4083c94875ebf4cc082 Mon Sep 17 00:00:00 2001
From: Violette Roche-Montane <violette.roche-montane@forgerock.com>
Date: Fri, 06 Dec 2013 15:15:39 +0000
Subject: [PATCH] CR-2675 OPENDJ-1241 Server does not start after upgrade - Part II - fixed upgrade (removed white spaces in upgrade tasks, added Filter instead of LDAPFilter, added matcher and setting schema default matching rule/syntax.)

---
 opendj-sdk/opends/src/server/org/opends/server/tools/upgrade/UpgradeUtils.java |   23 +++++++++++++++--------
 1 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/tools/upgrade/UpgradeUtils.java b/opendj-sdk/opends/src/server/org/opends/server/tools/upgrade/UpgradeUtils.java
index 221b30b..fe32003 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tools/upgrade/UpgradeUtils.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tools/upgrade/UpgradeUtils.java
@@ -37,9 +37,9 @@
 import org.forgerock.opendj.ldap.requests.ModifyRequest;
 import org.forgerock.opendj.ldap.requests.Requests;
 import org.forgerock.opendj.ldap.requests.SearchRequest;
+import org.forgerock.opendj.ldap.schema.CoreSchema;
 import org.forgerock.opendj.ldap.schema.Schema;
 import org.forgerock.opendj.ldap.schema.SchemaBuilder;
-import org.forgerock.opendj.ldap.schema.SchemaValidationPolicy;
 import org.forgerock.opendj.ldap.schema.UnknownSchemaElementException;
 import org.forgerock.opendj.ldif.EntryReader;
 import org.forgerock.opendj.ldif.LDIF;
@@ -47,7 +47,6 @@
 import org.forgerock.opendj.ldif.LDIFEntryWriter;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.SchemaConfigManager;
-import org.opends.server.protocols.ldap.LDAPFilter;
 import org.opends.server.util.ChangeOperationType;
 import org.opends.server.util.SetupUtils;
 import org.opends.server.util.StaticUtils;
@@ -450,7 +449,7 @@
    * @return The changes number that have occurred.
    */
   static int updateConfigFile(final String configPath,
-      final LDAPFilter filter, final ChangeOperationType changeType,
+      final Filter filter, final ChangeOperationType changeType,
       final String... lines) throws IOException
   {
     final File original = new File(configPath);
@@ -462,8 +461,15 @@
     LDIFEntryWriter writer = null;
     try
     {
-      entryReader = new LDIFEntryReader(new FileInputStream(configPath));
-      entryReader.setSchemaValidationPolicy(SchemaValidationPolicy.ignoreAll());
+      Schema schema =
+          new SchemaBuilder(Schema.getCoreSchema()).defaultMatchingRule(
+              CoreSchema.getCaseExactMatchingRule()).defaultSyntax(
+              CoreSchema.getDirectoryStringSyntax()).toSchema()
+              .asNonStrictSchema();
+
+      entryReader =
+          new LDIFEntryReader(new FileInputStream(configPath))
+              .setSchema(schema);
 
       writer = new LDIFEntryWriter(new FileOutputStream(copyConfig));
       writer.setWrapColumn(80);
@@ -479,13 +485,14 @@
         // For an Add, the first line should start with dn:
         dn = lines[0].replaceFirst("dn: ","");
       }
+      final Matcher matcher =
+          filter != null ? filter.matcher(schema) : Filter.alwaysFalse()
+              .matcher(schema);
       while (entryReader.hasNext())
       {
         Entry entry = entryReader.readEntry();
         // Searching for the related entries
-        if (filter != null
-            && Filter.valueOf(filter.toString()).matches(entry)
-              == ConditionResult.TRUE)
+        if (matcher.matches(entry) == ConditionResult.TRUE)
         {
           try
           {

--
Gitblit v1.10.0