Hi Natalia, I had the issue on 2 Vistas and 1 XP, all running Java 1.6.0_16
Output on on Vista: C:\Users\feri>java -version java version "1.6.0_16" Java(TM) SE Runtime Environment (build 1.6.0_16-b01) Java HotSpot(TM) Client VM (build 14.2-b01, mixed mode, sharing) let me know how can I help more Ferenc On Fri, Oct 23, 2009 at 13:50, Natalia Shilenkova <nshilenk...@gmail.com>wrote: > Ferenc, > > Thank you for reporting the problem. Could you please let me know what > OS and JVM version you use to run Xindice (please include all the > information "java -version" reports)? > > I'll investigate the problem. > > Regards, > Natalia > > 2009/10/21 Ferenc Pápai <fpa...@gmail.com>: > > > > > > Hi > > > > I think I discovered a memory leak while an XPath query is executed using > > Xindice 1.2 dev svn revision number 821662. > > > > I only had to run a query that generated a sufficiently large number of > > results. > > > > After some debugging I discovered that in class > XPathQueryResolver.ResultSet > > the XPathResolverContext member variable is cached now as opposed to as > it > > was in its previous version. > > This is probably for performance reasons. > > > > This class XPathResolverContext has internally a DTMManager > implementation. > > As ResultSet.prepareNextNode method is called many times (while one query > is > > executed), the DTMManager instance will grow and grow in size until JVM > > runs out of memory. > > > > Calling XPathResolverContext .reset() in ResultSet.prepareNextNode would > > solve this problem but it would be against the intent of optimizing the > > code. > > > > > > I am not familiar yet with Xalan's DTM API to provide a proper solution. > So > > i am just speculating here: > > Internally DTMManager caches DTM objects generated while it executed the > > query on a given context. These DTMs consume the memory. > > I think these are cached to be reused by the two-way iterators provided > by > > DTMManager. > > However in Xindice, the Collection API provides the NodeSet as forward > only > > iterator, thus no DTM caching is need for Xindice. ? > > > > > > regards, > > Ferenc > > > > > > > > > > > > > > > > > > >