#1096 new
Daniel Dekany

Uploads belonging to await(...)-ing request may be deleted too early

Reported by Daniel Dekany | September 4th, 2011 @ 01:01 PM

Framework version: 1.2.3
Platform you're using: Win7 64 bit, Java 1.6.0_24-b07 64 bit

Reproduction steps:

  1. Submit a form with a file upload
  2. In the target action, call await(whateverFuture)
  3. While await is till waiting, visit a page (in another browser window). This will possibly cause the uploaded file (inside tmp\uploads) to be deleted.
  4. When await returns, there's a good chance that the upload file is already deleted. That is, if the suspended action had a File parameter, it points to an existing file before await, but maybe not after await.


When the action continues after await, one would expect that the uploaded file is still there, because the processing of the HTTP request wasn't finished yet. I suppose the uploaded file is meant to be deleted only when the request processing was ended. If this deletion is still deliberate, then this behavior should be documented, and the file should be deleted immediately when await is called. Without the last, bugs that expect the file to be still there will most certainly pass testing, and will cause random failures in production environment.

Comments and changes to this ticket

Please Sign in or create a free account to add a new ticket.

With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.

New-ticket Create new ticket

Create your profile

Help contribute to this project by taking a few moments to create your personal profile. Create your profile »

<h2>Play framework</h2>

Play makes it easier to build Web applications with Java. It is a clean alternative to bloated Enterprise Java stacks. It focuses on developer productivity and targets RESTful architectures. Learn more on the <a href="http://www.playframework.org">http://www.playframework.org</a> website.<br><br>

<h2>Source code is hosted on github</h2>Check out our repository at <a href="http://github.com/playframework/play">http://github.com/playframework/play</a><br><br>

<h2>Contributing, creating a patch</h2> Please read the <a href="http://play.lighthouseapp.com/projects/57987/contributor-guide">contributor guide</a><br><br>

<h2>Reporting Security Vulnerabilities</h2> Since all bug reports are public, please report any security vulnerability directly to <em>guillaume dot bort at gmail dot com</em>.<br><br>

<h2>Creating a bug report</h2> Bug reports are incredibly helpful, so take time to report bugs and request features in our ticket tracker. We’re always grateful for patches to Play’s code. Indeed, bug reports with attached patches will get fixed far quickly than those without any.<br><br>

Please include as much relevant information as possible including the exact framework version you're using and a code snippet that reproduces the problem.<br><br>

Don't have too much expectations. Unless the bug is really a serious "everything is broken" thing, you're creating a ticket to start a discussion. Having a patch (or a branch on Github we can pull from) is better, but then again we'll only pull high quality branches that make sense to be in the core of Play.

People watching this ticket