lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Terence Lai <>
Subject OutOfMemoryError
Date Tue, 17 Aug 2004 22:30:19 GMT
Hi All,

I am getting a OutOfMemoryError when I deploy my EJB application. To debug the problem, I
wrote the following test program:

    public static void main(String[] args) {
        try {
            Query query = getQuery();

            for (int i=0; i<1000; i++) {
                if ( i%50 == 0 ) {
                    System.out.println("Wake up!");
        } catch (Exception e) {

    private static void search(Query query) throws IOException {
        FSDirectory fsDir = null;
        IndexSearcher is = null;
        Hits hits = null;
        try {
            fsDir = FSDirectory.getDirectory("C:\\index, false);
            is = new IndexSearcher(fsDir);
            SortField sortField = new SortField("profile_modify_date",
                SortField.STRING, true);

            hits =, new Sort(sortField));
        } finally {
            if (is != null) {
                try {
                } catch (Exception ex) {
            if (fsDir != null) {
                try {
                } catch (Exception ex) {

In the test program, I wrote a loop to keep calling the search method. Everytime it enters
the search method, I would instantiate the IndexSearcher. Before I exit the method, I close
the IndexSearcher and FSDirectory. I also made the Thread sleep for 5 seconds in every 50
searches. Hopefully, this will give some time for the java to do the Garbage Collection. Unfortunately,
when I observe the memory usage of my process, it keeps increasing until I got the java.lang.OutOfMemoryError.

Note that I invoke the query, Sort sort) to process the search.
If I don't specify the Sort field(i.e. using, I don't have this
problem, and the memory usage keeps at a very static level.

Does anyone experience a similar problem? Did I do something wrong in the test program. I
throught by closing the IndexSearcher and the FSDirectory, the memory will be able to release
during the Garbage Collection.


Get your free email account from
          Your Internet Virtual Desktop!

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message