Hi I don't think the subreport is causing a memory leak. The JVM runs out of memory simply due to the size of the report. To be more specific: your sample produces a 6,900 pages report when the subreport is removed. When the subreport is present and each subreport instance renders 500 rows, empirical tests show that the resulting report would be around 460 times larger, making it around 3 milion pages long. Report virtualization does not guarantee filling of arbitrarily large reports using a constant amount of memory. The required memory is still (directly) proportinal to the report size, because some amount of memory is still consumed by each page of the resulting report (but at a much slower rate than when virtualization is not used). You really need 3 milion pages report, you'll definitely need more than 256M of heap space and you'll also need a huge amount of free space on your disk (and a file system that supports really large files, if you're planning to use the swap file virtualizer). Also, you might revise the parameters for the virtualizer. For example, you set the swap file block size to 100 bytes, which is too small consiudereing that your report pages usually produce 6-7 kbytes of virtual data. HTH, Lucian