Spent considerable time yesterday and today watching and analyzing output from the lsof command, which showed a mess of open assettstore files that never seemed to close.
After repeated writings to the Dspace-tech community, I finally received this from Richard Rogers
I took a quick look through the code, and did note one oddity:
a file stream used in thumbnail generation is not explicitly closed.
It shouldn’t matter, since locally scoped file pointers ought to get
closed when garbage collected. But not knowing the details of how
objects are cached in Tomcat, I can’t say with 100% certainty it’s not a
leak. You could – if you felt adventurous – add the line:
a file stream used in thumbnail generation is not explicitly closed.
It shouldn’t matter, since locally scoped file pointers ought to get
closed when garbage collected. But not knowing the details of how
objects are cached in Tomcat, I can’t say with 100% certainty it’s not a
leak. You could – if you felt adventurous – add the line:
is.close();
after the line:
buf = ImageIO.read(is);
in the ‘getScalingAttr’ method in
org.dspace.app.webui.jsptag.ItemListTag.java
My investigations yesterday also lead me to ItemListTag.java , but I focused on getThumbMarkup and didn’t see the ImageIO.read . Then again, even if I did, my reading level of Java wouldn’t have been sufficient to fix it.
Sure enough, problem fixed.