Thanks for your answers. But they weren't helpful. We have tried to explicitly call Runtime.gc() and read entire
http://java.sun.com/javase/technologies ... ing_6.html .
We've inspected garbage collector's behavior using visual gc tool and heap using jmap, visualvm tools. Conclusion is that most of the loaded and created objects are being moved from "eden" space to "old generation" space, which is cleared with less frequency.
But we consider that there are no memory leaks because for example before running such task application consumed ~40MB of memory, then after running for 10 minutes it grows to ~200MB of memory and then after stopping a task consumed memory falls back to ~40MB just in 5-10 seconds. Task is running in a separate thread.