Java garde le verrou sur les fichiers sans raison apparente

En dépit de la fermeture de flux enfin clauses semblent sans cesse de fonctionner dans le nettoyage de problèmes lors de l'utilisation de Java. Fichier.delete() ne parvient pas à supprimer des fichiers, l'Explorateur Windows ne parvient pas trop. Système En Cours D'Exécution.gc() permet parfois mais rien de moins que de mettre fin à la VM contribue de manière cohérente et qui n'est pas une option.

Quelqu'un a d'autres idées que je pourrais essayer? J'utilise la version 1.6 de Java sur Windows XP.

Mise à JOUR: FLAC exemple de code supprimé, le code a fonctionné si je l'isole.

Mise à JOUR:
Plus d'infos, ce qui se passe dans Apache Tomcat, Commons FileUpload est utilisé pour télécharger le fichier et pourrait être le coupable, aussi j'utilise de l'Exécution.exec() pour exécuter la LAME dans un processus séparé pour encoder le fichier, mais cela semble peu probable à cause de ce depuis ProcessExplorer indique clairement que java.exe a un RW verrou sur le fichier et la LAME se termine bien.

Mise à JOUR: je suis en train de travailler avec l'hypothèse qu'il existe un manque close() ou un close() qui n'est pas appelé quelque part dans mon code ou une bibliothèque externe. Je ne peux pas le trouver!

source d'informationauteur Jonas Klemming