Reputation: 1143
I have taken the memory dump, analysed it with memory analyzer. It showing 73% of memory taken by java.lang.ref.finalizer object. I went to see what is inside this very big object. I found it looks like recursive trail of objects. which looks like below
Finalizer
|__ Finalizer (recursive)
|__ java.io.FileInputStream or org.eclipse.jetty.util.resource.FileResource
Inside the FileResource i found path to extract of war file, but could not find what is inside FileInputStream object.
Also screenshots can be found here. https://lh4.googleusercontent.com/-uZTZ031DlqI/UD33kMskuZI/AAAAAAAABYo/eOrqw65k_Mw/s1179/summary.png
https://lh6.googleusercontent.com/-yWBPUV_71js/UD33kAYYDEI/AAAAAAAABYk/J9fF_WwOeO4/s1074/details.png
Please let me know.
Upvotes: 4
Views: 1406
Reputation: 5784
That is not a leak per se. Please read this: http://www.oracle.com/technetwork/articles/javase/finalization-137655.html about finalisation mechanism in JVM.
Finalizers can become a problem, if too many finalazble objects are created, in your case FileInputStream. You can try to decrease your heap size somewhat in order for Garbage Collector to run more frequently and dispose of them faster.
Or, better if possible, decrease your usage of FileInputStreams.
Upvotes: 2