2012-03-08 8 views
0

私は非常に奇妙な問題に遭遇しています。私はcommons-fileupload(1.2.1)を使用して私のwebapp(tomcat 7.0.23でホストされ、distributableフラグが設定されています)のファイルアップロードを処理しています。 DiskFileItemFactoryFileCleaningTracker)のDiskFileItemインスタンスを取得したら(FileCleaningTracker)、そのファイルを格納するのにメソッドを使用します(DiskFileItemFactoryがストリーム配信時にファイルを書き込む必要がある場合に使用するように設定されたディレクトリ) 。問題は、この新しいファイル(明示的に作成され、私が指名した)が、要求が処理を終了した後に削除されることです。ご想像のとおり、ファイルに再度アクセスする必要がある場合、これは問題になります。要求が完了したらTomcatはファイルを削除しますか?

彼らは、関連するかもしれないように見えるティドビッツ:

  • ディレクトリ問題のサーブレットコンテキストからデフォルトの一時ディレクトリではありません、またそれは、Tomcatのディレクトリの下にあります。
  • 代替コードパスでは、すぐにそのファイルをコピーします(別の要求ではありません)。THATコピーは削除されません。
  • 要求が完了する前にファイルがchmod a-wになっても、要求が完了すると削除されます。

ありがとうございました。

答えて

0

そして、犯人は? 9年以上前に "クリーンアップ"を行っていた漂流finalizeメソッド。

+1

モラル:finalize()メソッドを記述しないでください! ...そして、必要なときに、最終的な{}ブロックでリソースをクリーンアップしてください。どこでそれが起こっているのかが分かります。 – EJP

+1

@EJPあなたは合唱団に説教しています。私はそのコードを書いていませんでしたが、削除してうれしかったです。 –

関連する問題