mirror of https://github.com/apache/archiva.git
[MRM-1356] handle chunked / unknown length requests correctly
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@919307 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
cf3593554a
commit
e521a959c5
|
@ -303,13 +303,16 @@ public class ArchivaDavResource
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: a bad deployment shouldn't delete an existing file - do we need to write to a temporary location first?
|
// TODO: a bad deployment shouldn't delete an existing file - do we need to write to a temporary location first?
|
||||||
if ( inputContext.getContentLength() != localFile.length() )
|
long expectedContentLength = inputContext.getContentLength();
|
||||||
|
long actualContentLength = localFile.length();
|
||||||
|
// length of -1 is given for a chunked request or unknown length, in which case we accept what was uploaded
|
||||||
|
if ( expectedContentLength >= 0 && expectedContentLength != actualContentLength )
|
||||||
{
|
{
|
||||||
FileUtils.deleteQuietly( localFile );
|
|
||||||
|
|
||||||
String msg =
|
String msg =
|
||||||
"Content Header length was " + inputContext.getContentLength() + " but was " + localFile.length();
|
"Content Header length was " + expectedContentLength + " but was " + actualContentLength;
|
||||||
log.debug( "Upload failed: " + msg );
|
log.debug( "Upload failed: " + msg );
|
||||||
|
|
||||||
|
FileUtils.deleteQuietly( localFile );
|
||||||
throw new DavException( HttpServletResponse.SC_BAD_REQUEST, msg );
|
throw new DavException( HttpServletResponse.SC_BAD_REQUEST, msg );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue