directory-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Carsten Kaiser" <carsten.kai...@valtech.de>
Subject Problem with sorting of ldif files on Linux
Date Tue, 28 Sep 2010 09:48:19 GMT
Hi there,

we are using ApacheDS respectively the Maven ApacheDS Plugin to run our 
integration tests against a clean LDAP server instance and therefore 
populate
it with the according schema information and setup data on test startup. 
We have different ldif files for schema and setup data especially named in 
alphabetical order
to ensure, that the schema information is loaded before the setup data. 
Although this works fine for e.g. on MacOSX it does not work on Linux due 
to the following
Code Snippet from class org.apache.directory.server.configuration.ApacheDS

> else
> 436        {
> 437            // get all the ldif files within the directory (should be 
> sorted alphabetically)
> 438            File[] ldifFiles = ldifDirectory.listFiles( new 
> FileFilter()
> 439            {
> 440                public boolean accept( File pathname )
> 441                {
> 442                    boolean isLdif = 
> pathname.getName().toLowerCase().endsWith( ".ldif" );
> 443                    return pathname.isFile() && pathname.canRead() &&

> isLdif;
> 444                }
> 445            } );

According to Javadoc of class java.io.File

Returns an array of abstract pathnames denoting the files in the directory 
denoted by this abstract pathname.
If this abstract pathname does not denote a directory, then this method 
returns null. Otherwise an array of File objects is returned, one for each 
file or directory in the directory. Pathnames denoting the directory 
itself and the directory's parent directory are not included in the 
result. Each resulting abstract pathname is constructed from this abstract 
pathname using the File(File, String) constructor. Therefore if this 
pathname is absolute then each resulting pathname is absolute; if this 
pathname is relative then each resulting pathname will be relative to the 
same directory.

-> There is no guarantee that the name strings in the resulting array will 
appear in any specific order; they are not, in particular, guaranteed to 
appear in alphabetical order.

the assumption stated in the code snippet above is not valid and depends 
on the platform resp. Java implementation.

In order to be platform independent the retrieved array of ldif files 
should be sorted in alphabetical order explicitly after retrieval.

Since I'm not a committer could someone please provide a patch for this 
problem?

When will the next version of the maven ApacheDS plugin be available 
depending on the most current ApacheDS version (hopefully including a fix 
for this problem)? Currently it refers to 1.5.5...

Kind regards,
CAK

-- 
Carsten Kaiser
Principal Consultant
mailto:carsten.kaiser@valtech.de
Mobile: +49 170 5270206

Valtech GmbH
Werner-Heisenberg-Straße 2
63263 Neu-Isenburg
Germany

Phone: +49 6102 88468-0
Fax: +49 6102 88468-28

http://www.valtech.de

Geschäftsführer: Ingo Kriescher
Amtsgericht Düsseldorf HRB48672

Mime
View raw message