After some more researching I discovered that the following code snippet
seems to be the culprit. I have to call this to get the "title" of the
indexed html page. And this is called 10 times as my I display 10 results on
a page.
Any Suggestions on how to achieve this without the OOME issue.
File f = new File(htmlFileName);
FileInputStream fis = new FileInputStream(f);
HTMLParser parser = new HTMLParser(fis);
String title = parser.getTitle();
/* following was added to for my sanity :) */
parser = null;
fis.close();
fis = null;
f = null;
/* till here */
return title;
Chetan Shah wrote:
>
> I am initiating a simple search and after profiling the my application
> using NetBeans. I see a constant heap consumption and eventually a server
> (tomcat) crash due to "out of memory" error. The thread count also keeps
> on increasing and most of the threads in "wait" state.
>
> Please let me know what am I doing wrong here so that I can avoid server
> crash. I am using Lucene 2.4.0.
>
>
> IndexSearcher indexSearcher =
> IndexSearcherFactory.getInstance().getIndexSearcher();
>
>
> //Create the query and search
> QueryParser queryParser = new QueryParser("contents",
> new
> StandardAnalyzer());
> Query query = queryParser.parse(searchCriteria);
>
>
> TermsFilter categoryFilter = null;
>
> // Create the filter if it is needed.
> if (filter != null) {
> Term aTerm = new
> Term(Constants.WATCH_LIST_TYPE_TERM);
> categoryFilter = new TermsFilter();
> for (int i = 0; i < filter.length; i++) {
>
> aTerm = aTerm.createTerm(filter[i]);
> categoryFilter.addTerm(aTerm);
> }
> }
>
> // Create sort criteria
> SortField [] sortFields = new SortField[2];
> SortField watchList = new
> SortField(Constants.WATCH_LIST_TYPE_TERM,
> SortField.STRING);
> SortField score = SortField.FIELD_SCORE;
> if (sortByWatchList) {
> sortFields[0] = watchList;
> sortFields[1] = score;
> } else {
> sortFields[1] = watchList;
> sortFields[0] = score;
>
> }
> Sort sort = new Sort(sortFields);
>
> // Collect results
> TopDocs topDocs = indexSearcher.search(query,
> categoryFilter,
> Constants.MAX_HITS, sort);
> ScoreDoc scoreDoc[] = topDocs.scoreDocs;
> int numDocs = scoreDoc.length;
> if (numDocs > 0) results = scoreDoc;
>
>
--
View this message in context:
http://www.nabble.com/Memory-Leak--tp22663917p22685294.html
Sent from the Lucene - Java Users mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]