377323 Request#getParts() throws ServletException when it should be throwing IllegalStateException
This commit is contained in:
parent
8c61e36b45
commit
7da85a2719
|
@ -1943,7 +1943,7 @@ public class Request implements HttpServletRequest
|
||||||
public Part getPart(String name) throws IOException, ServletException
|
public Part getPart(String name) throws IOException, ServletException
|
||||||
{
|
{
|
||||||
if (getContentType() == null || !getContentType().startsWith("multipart/form-data"))
|
if (getContentType() == null || !getContentType().startsWith("multipart/form-data"))
|
||||||
return null;
|
throw new ServletException("Content-Type != multipart/form-data");
|
||||||
|
|
||||||
if (_multiPartInputStream == null)
|
if (_multiPartInputStream == null)
|
||||||
{
|
{
|
||||||
|
@ -1974,7 +1974,7 @@ public class Request implements HttpServletRequest
|
||||||
public Collection<Part> getParts() throws IOException, ServletException
|
public Collection<Part> getParts() throws IOException, ServletException
|
||||||
{
|
{
|
||||||
if (getContentType() == null || !getContentType().startsWith("multipart/form-data"))
|
if (getContentType() == null || !getContentType().startsWith("multipart/form-data"))
|
||||||
return Collections.emptyList();
|
throw new ServletException("Content-Type != multipart/form-data");
|
||||||
|
|
||||||
if (_multiPartInputStream == null)
|
if (_multiPartInputStream == null)
|
||||||
{
|
{
|
||||||
|
|
|
@ -83,7 +83,7 @@ public class MultiPartInputStream
|
||||||
|
|
||||||
|
|
||||||
protected void open()
|
protected void open()
|
||||||
throws FileNotFoundException, IOException
|
throws IOException
|
||||||
{
|
{
|
||||||
//We will either be writing to a file, if it has a filename on the content-disposition
|
//We will either be writing to a file, if it has a filename on the content-disposition
|
||||||
//and otherwise a byte-array-input-stream, OR if we exceed the getFileSizeThreshold, we
|
//and otherwise a byte-array-input-stream, OR if we exceed the getFileSizeThreshold, we
|
||||||
|
@ -108,10 +108,10 @@ public class MultiPartInputStream
|
||||||
|
|
||||||
|
|
||||||
protected void write (int b)
|
protected void write (int b)
|
||||||
throws IOException, ServletException
|
throws IOException
|
||||||
{
|
{
|
||||||
if (MultiPartInputStream.this._config.getMaxFileSize() > 0 && _size + 1 > MultiPartInputStream.this._config.getMaxFileSize())
|
if (MultiPartInputStream.this._config.getMaxFileSize() > 0 && _size + 1 > MultiPartInputStream.this._config.getMaxFileSize())
|
||||||
throw new ServletException ("Multipart Mime part "+_name+" exceeds max filesize");
|
throw new IllegalStateException ("Multipart Mime part "+_name+" exceeds max filesize");
|
||||||
|
|
||||||
if (MultiPartInputStream.this._config.getFileSizeThreshold() > 0 && _size + 1 > MultiPartInputStream.this._config.getFileSizeThreshold() && _file==null)
|
if (MultiPartInputStream.this._config.getFileSizeThreshold() > 0 && _size + 1 > MultiPartInputStream.this._config.getFileSizeThreshold() && _file==null)
|
||||||
createFile();
|
createFile();
|
||||||
|
@ -120,10 +120,10 @@ public class MultiPartInputStream
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void write (byte[] bytes, int offset, int length)
|
protected void write (byte[] bytes, int offset, int length)
|
||||||
throws IOException, ServletException
|
throws IOException
|
||||||
{
|
{
|
||||||
if (MultiPartInputStream.this._config.getMaxFileSize() > 0 && _size + length > MultiPartInputStream.this._config.getMaxFileSize())
|
if (MultiPartInputStream.this._config.getMaxFileSize() > 0 && _size + length > MultiPartInputStream.this._config.getMaxFileSize())
|
||||||
throw new ServletException ("Multipart Mime part "+_name+" exceeds max filesize");
|
throw new IllegalStateException ("Multipart Mime part "+_name+" exceeds max filesize");
|
||||||
|
|
||||||
if (MultiPartInputStream.this._config.getFileSizeThreshold() > 0 && _size + length > MultiPartInputStream.this._config.getFileSizeThreshold() && _file==null)
|
if (MultiPartInputStream.this._config.getFileSizeThreshold() > 0 && _size + length > MultiPartInputStream.this._config.getFileSizeThreshold() && _file==null)
|
||||||
createFile();
|
createFile();
|
||||||
|
@ -402,7 +402,7 @@ public class MultiPartInputStream
|
||||||
|
|
||||||
total += bytes.length;
|
total += bytes.length;
|
||||||
if (_config.getMaxRequestSize() > 0 && total > _config.getMaxRequestSize())
|
if (_config.getMaxRequestSize() > 0 && total > _config.getMaxRequestSize())
|
||||||
throw new ServletException ("Request exceeds maxRequestSize ("+_config.getMaxRequestSize()+")");
|
throw new IllegalStateException ("Request exceeds maxRequestSize ("+_config.getMaxRequestSize()+")");
|
||||||
|
|
||||||
line=new String(bytes,"UTF-8");
|
line=new String(bytes,"UTF-8");
|
||||||
|
|
||||||
|
@ -513,7 +513,7 @@ public class MultiPartInputStream
|
||||||
{
|
{
|
||||||
total ++;
|
total ++;
|
||||||
if (_config.getMaxRequestSize() > 0 && total > _config.getMaxRequestSize())
|
if (_config.getMaxRequestSize() > 0 && total > _config.getMaxRequestSize())
|
||||||
throw new ServletException("Request exceeds maxRequestSize ("+_config.getMaxRequestSize()+")");
|
throw new IllegalStateException("Request exceeds maxRequestSize ("+_config.getMaxRequestSize()+")");
|
||||||
|
|
||||||
state=-2;
|
state=-2;
|
||||||
// look for CR and/or LF
|
// look for CR and/or LF
|
||||||
|
|
|
@ -85,7 +85,7 @@ public class MultiPartInputStreamTest extends TestCase
|
||||||
mpis.getParts();
|
mpis.getParts();
|
||||||
fail("Request should have exceeded maxRequestSize");
|
fail("Request should have exceeded maxRequestSize");
|
||||||
}
|
}
|
||||||
catch (ServletException e)
|
catch (IllegalStateException e)
|
||||||
{
|
{
|
||||||
assertTrue(e.getMessage().startsWith("Request exceeds maxRequestSize"));
|
assertTrue(e.getMessage().startsWith("Request exceeds maxRequestSize"));
|
||||||
}
|
}
|
||||||
|
@ -105,7 +105,7 @@ public class MultiPartInputStreamTest extends TestCase
|
||||||
mpis.getParts();
|
mpis.getParts();
|
||||||
fail("stuff.txt should have been larger than maxFileSize");
|
fail("stuff.txt should have been larger than maxFileSize");
|
||||||
}
|
}
|
||||||
catch (ServletException e)
|
catch (IllegalStateException e)
|
||||||
{
|
{
|
||||||
assertTrue(e.getMessage().startsWith("Multipart Mime part"));
|
assertTrue(e.getMessage().startsWith("Multipart Mime part"));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue