problem with File.list() method

Moses DeJong dejong at cs.umn.edu
Sat Aug 28 03:30:41 PDT 1999


Hi all.

I have been running into some problems with the current CVS version of
Kaffe so I thought I would bounce what I have found so far off folks
on the list so that I might get some help.



Here is a example class that fails with the current CVS build
of Kaffe on my system (RedHat 5.2 Intel system with kernel 2.2.9).
The problem is with the File.list() method, it just returns null.


import java.io.File;

public class ListTest {
    public static void main(String[] argv) {
        File f = new File("/");
        if (! f.isDirectory()) {
            throw new RuntimeException("\"" + f + "\" is not a directory");
        }

        String[] dirListing = f.list();

        if (dirListing == null) {
            throw new RuntimeException("dirListing is null");
        } else {
            System.out.println("dirListing files are as follows :");
            for (int i = 0; i < dirListing.length ; i++) {
                System.out.println(dirListing[i]);
            }
        }
    }
}



JDK 1.1.7 from Blackdown

% java ListTest
dirListing files are as follows :
lost+found
home
share
...


Kaffe from the CVS

% kaffe ListTest
java.lang.RuntimeException: dirListing is null






The problem seems to be in the java.io.File
native implementation.



libraries/clib/io/File.c : Line 222

/*
 * Get a directory listing.
 */
HArrayOfObject* /* [Ljava.lang.String; */
java_io_File_list0(struct Hjava_io_File* this)
{
#if defined(DIR) /* Windows hack - XXX */
	char path[MAXPATHLEN];

...

#else
	return (0);
#endif
}



The problem seems to be that this DIR symbol is not defined
and that means the code in the method never compiles.


The configure script seems to have found the definition for DIR.


checking for dirent.h that defines DIR... (cached) yes




More information about the kaffe mailing list