In my multipart form I have one simple form parameter and 3 "file" type
parameters.
When I upload and parse it with Fileupload, 4 files get created.
After I'm done with the request,
I'm calling FileItem.delete() for all of them, but only three files get
deleted: the one that contains the simple form
parameter doesn't get deleted. When I try to delete it manually, I get
"Sharing violation error", which means
that there is another process who has the file open. Only after I
shutdown the JVM I can delete the file.
In order to solve the problem, all I did was to add fis.close() in the
DefaultFileItem.get():
try
{
FileInputStream fis = new FileInputStream(storeLocation);
fis.read(content);
--->fis.close();<---
}
catch (Exception e)
{
content = null;
}
call should be in the finally block, not the try block.