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