{
if (schemaInstallDir == null || ! schemaInstallDir.exists())
{
Message message =
ERR_CONFIG_SCHEMA_NO_SCHEMA_DIR.get(schemaInstallDirPath);
throw new InitializationException(message);
}
if (! schemaInstallDir.isDirectory())
{
Message message =
ERR_CONFIG_SCHEMA_DIR_NOT_DIRECTORY.get(schemaInstallDirPath);
throw new InitializationException(message);
}
if ((schemaInstanceDir == null) || (!schemaInstanceDir.exists())
|| (! schemaInstanceDir.isDirectory()))
{
schemaInstanceDir = null;
}
FilenameFilter filter = new SchemaFileFilter();
File[] schemaInstallDirFiles =
schemaInstallDir.listFiles(filter);
int fileNumber = schemaInstallDirFiles.length;
File[] schemaInstanceDirFiles = null ;
if (schemaInstanceDir != null)
{
schemaInstanceDirFiles =
schemaInstanceDir.listFiles(filter);
fileNumber =+ schemaInstanceDirFiles.length ;
}
ArrayList<String> fileList = new ArrayList<String>(fileNumber);
for (File f : schemaInstallDirFiles)
{
if (f.isFile())
{
fileList.add(f.getName());
}
long modificationTime = f.lastModified();
if ((oldestModificationTime <= 0L) ||
(modificationTime < oldestModificationTime))
{
oldestModificationTime = modificationTime;
}
if ((youngestModificationTime <= 0) ||
(modificationTime > youngestModificationTime))
{
youngestModificationTime = modificationTime;
}
}
if (schemaInstanceDirFiles != null)
{
for (File f : schemaInstanceDirFiles)
{
if (f.isFile())
{
fileList.add(f.getName());
}
long modificationTime = f.lastModified();
if ((oldestModificationTime <= 0L)
|| (modificationTime < oldestModificationTime))
{
oldestModificationTime = modificationTime;
}
if ((youngestModificationTime <= 0)
|| (modificationTime > youngestModificationTime))
{
youngestModificationTime = modificationTime;
}
}
}
fileNames = new String[fileList.size()];
fileList.toArray(fileNames);
Arrays.sort(fileNames);
}
catch (InitializationException ie)
{
if (debugEnabled())
{
TRACER.debugCaught(DebugLogLevel.ERROR, ie);
}
throw ie;
}
catch (Exception e)
{
if (debugEnabled())
{
TRACER.debugCaught(DebugLogLevel.ERROR, e);
}
Message message = ERR_CONFIG_SCHEMA_CANNOT_LIST_FILES.get(
schemaInstallDirPath, schemaInstanceDirPath, getExceptionMessage(e));
throw new InitializationException(message, e);
}
// If the oldest and youngest modification timestamps didn't get set for
// some reason, then set them to the current time.