Too long to put in a comment, so adding as an answer:
That's a Java application keeping those files open, so yes, this scenario can be avoided by using a proper programming style and using the
//create a Serializable List
List lNucleotide = Arrays.asList(
"adenine", "cytosine", "guanine", "thymine", "sylicine"
//serialize the List
//note the use of abstract base class references
OutputStream file = new FileOutputStream("lNucleotide.ser");
OutputStream buffer = new BufferedOutputStream(file);
ObjectOutput output = new ObjectOutputStream(buffer);
logger.log(Level.SEVERE, "Cannot create Silicon life form.", ex);
By closing the file at an application level you will avoid this problem. So this is not a result of Unix or Linux doing anything wrong but inherent to your application.