From b40081ea28c38f045bdab225936a5f5ffedcc6f9 Mon Sep 17 00:00:00 2001
From: Ludovic Poitou <ludovic.poitou@forgerock.com>
Date: Mon, 02 Dec 2013 16:37:03 +0000
Subject: [PATCH] Fix for OPENDJ-1228, Concatenated schema may contain more than valid schema, possibly leading to further issues. Make sure we only consider *.ldif files when handling schemas under config/schema

---
 opendj-sdk/opends/src/server/org/opends/server/core/SchemaConfigManager.java |    2 +-
 opendj-sdk/opends/src/server/org/opends/server/types/Schema.java             |   13 +++++--------
 2 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/SchemaConfigManager.java b/opendj-sdk/opends/src/server/org/opends/server/core/SchemaConfigManager.java
index 2730418..bbe8d63 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/SchemaConfigManager.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/SchemaConfigManager.java
@@ -161,7 +161,7 @@
   /**
    * Filter implementation that accepts only ldif files.
    */
-  private static class SchemaFileFilter implements FilenameFilter
+  public static class SchemaFileFilter implements FilenameFilter
   {
     /**
      * {@inheritDoc}
diff --git a/opendj-sdk/opends/src/server/org/opends/server/types/Schema.java b/opendj-sdk/opends/src/server/org/opends/server/types/Schema.java
index 3f7c76f..918a1ff 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/types/Schema.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/types/Schema.java
@@ -29,12 +29,7 @@
 
 
 
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
+import java.io.*;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
@@ -3576,7 +3571,9 @@
     TreeSet<File> schemaFiles = new TreeSet<File>();
     String schemaDirectory =
       SchemaConfigManager.getSchemaDirectoryPath();
-    for (File f : new File(schemaDirectory).listFiles())
+
+    final FilenameFilter filter = new SchemaConfigManager.SchemaFileFilter();
+    for (File f : new File(schemaDirectory).listFiles(filter))
     {
       if (f.isFile())
       {
@@ -3621,7 +3618,7 @@
 
 
       // Iterate through each line in the list.  Find the colon and
-      // get the attribute name at the beginning.  If it's someting
+      // get the attribute name at the beginning.  If it's something
       // that we don't recognize, then skip it.  Otherwise, add the
       // X-SCHEMA-FILE extension and add it to the appropriate schema
       // element list.

--
Gitblit v1.10.0