JETTY-1112 Response fails if header exceeds buffer size
git-svn-id: svn+ssh://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/jetty/trunk@907 7e9141cc-0065-0410-87d8-b60c137991c4
This commit is contained in:
parent
b01763dc9a
commit
96c4c1ee7f
|
@ -6,8 +6,9 @@ jetty-7.0.1-SNAPSHOT
|
||||||
+ 289027 deobfuscate HttpClient SSL passwords
|
+ 289027 deobfuscate HttpClient SSL passwords
|
||||||
|
|
||||||
jetty-7.0.0.RC6-SNAPSHOT
|
jetty-7.0.0.RC6-SNAPSHOT
|
||||||
+ JETTY-936 274251 Improved servlet matching and optimized'
|
+ JETTY-719 Document state machine of jetty http client
|
||||||
+ JETTY-780 CNFE during startup of webapp with spring-context >= 2.5.1
|
+ JETTY-780 CNFE during startup of webapp with spring-context >= 2.5.1
|
||||||
|
+ JETTY-936 274251 Improved servlet matching and optimized'
|
||||||
+ JETTY-1080 modify previous fix to work on windows
|
+ JETTY-1080 modify previous fix to work on windows
|
||||||
+ JETTY-1084 HEAD command not setting content-type in response under certain circumstances
|
+ JETTY-1084 HEAD command not setting content-type in response under certain circumstances
|
||||||
+ JETTY-1086 Use UncheckedPrintWriter
|
+ JETTY-1086 Use UncheckedPrintWriter
|
||||||
|
@ -18,6 +19,7 @@ jetty-7.0.0.RC6-SNAPSHOT
|
||||||
+ JETTY-1101 Updated servlet3 continuation constructor
|
+ JETTY-1101 Updated servlet3 continuation constructor
|
||||||
+ JETTY-1105 Custom error pages aren't working
|
+ JETTY-1105 Custom error pages aren't working
|
||||||
+ JETTY-1108 SSL EOF detection
|
+ JETTY-1108 SSL EOF detection
|
||||||
|
+ JETTY-1112 Response fails if header exceeds buffer size
|
||||||
+ 280723 Add non blocking statistics handler
|
+ 280723 Add non blocking statistics handler
|
||||||
+ 282543 HttpClient SSL buffer size fix
|
+ 282543 HttpClient SSL buffer size fix
|
||||||
+ 283357 org.eclipse.jetty.server.HttpConnectionTest exceptions
|
+ 283357 org.eclipse.jetty.server.HttpConnectionTest exceptions
|
||||||
|
@ -29,7 +31,6 @@ jetty-7.0.0.RC6-SNAPSHOT
|
||||||
+ 289146 formalize reload policy functionality
|
+ 289146 formalize reload policy functionality
|
||||||
+ 289156 jetty-client: no longer throw runtime exception for bad authn details
|
+ 289156 jetty-client: no longer throw runtime exception for bad authn details
|
||||||
+ 288182 PUT request fails during retry
|
+ 288182 PUT request fails during retry
|
||||||
+ JETTY-719 Document state machine of jetty http client
|
|
||||||
+ 289221 HttpExchange does not timeout when using blocking connector
|
+ 289221 HttpExchange does not timeout when using blocking connector
|
||||||
|
|
||||||
jetty-6.1.20 27 August 2009
|
jetty-6.1.20 27 August 2009
|
||||||
|
|
|
@ -668,6 +668,7 @@ public class HttpConnection implements Connection
|
||||||
_generator.reset(true);
|
_generator.reset(true);
|
||||||
_generator.setResponse(HttpStatus.INTERNAL_SERVER_ERROR_500,null);
|
_generator.setResponse(HttpStatus.INTERNAL_SERVER_ERROR_500,null);
|
||||||
_generator.completeHeader(_responseFields,HttpGenerator.LAST);
|
_generator.completeHeader(_responseFields,HttpGenerator.LAST);
|
||||||
|
_generator.complete();
|
||||||
throw new HttpException(HttpStatus.INTERNAL_SERVER_ERROR_500);
|
throw new HttpException(HttpStatus.INTERNAL_SERVER_ERROR_500);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -699,6 +700,7 @@ public class HttpConnection implements Connection
|
||||||
_generator.reset(true);
|
_generator.reset(true);
|
||||||
_generator.setResponse(HttpStatus.INTERNAL_SERVER_ERROR_500,null);
|
_generator.setResponse(HttpStatus.INTERNAL_SERVER_ERROR_500,null);
|
||||||
_generator.completeHeader(_responseFields,HttpGenerator.LAST);
|
_generator.completeHeader(_responseFields,HttpGenerator.LAST);
|
||||||
|
_generator.complete();
|
||||||
throw new HttpException(HttpStatus.INTERNAL_SERVER_ERROR_500);
|
throw new HttpException(HttpStatus.INTERNAL_SERVER_ERROR_500);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,16 @@
|
||||||
*/
|
*/
|
||||||
package org.eclipse.jetty.server;
|
package org.eclipse.jetty.server;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.PrintWriter;
|
||||||
|
|
||||||
|
import javax.servlet.ServletException;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
|
import org.eclipse.jetty.http.HttpHeaders;
|
||||||
|
import org.eclipse.jetty.http.MimeTypes;
|
||||||
|
|
||||||
import junit.framework.TestCase;
|
import junit.framework.TestCase;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -288,6 +298,52 @@ public class HttpConnectionTest extends TestCase
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void testOversizedResponse ()
|
||||||
|
throws Exception
|
||||||
|
{
|
||||||
|
String str = "thisisastringthatshouldreachover1kbytes";
|
||||||
|
for (int i=0;i<400;i++)
|
||||||
|
str+="xxxxxxxxxxxx";
|
||||||
|
final String longstr = str;
|
||||||
|
String response = null;
|
||||||
|
server.stop();
|
||||||
|
server.setHandler(new DumpHandler()
|
||||||
|
{
|
||||||
|
public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
|
||||||
|
{
|
||||||
|
baseRequest.setHandled(true);
|
||||||
|
response.setHeader(HttpHeaders.CONTENT_TYPE,MimeTypes.TEXT_HTML);
|
||||||
|
response.setHeader("LongStr", longstr);
|
||||||
|
PrintWriter writer = response.getWriter();
|
||||||
|
writer.write("<html><h1>FOO</h1></html>");
|
||||||
|
writer.flush();
|
||||||
|
writer.close();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
server.start();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
int offset = 0;
|
||||||
|
|
||||||
|
response = connector.getResponses("GET / HTTP/1.1\n"+
|
||||||
|
"Host: localhost\n" +
|
||||||
|
"\015\012"
|
||||||
|
);
|
||||||
|
|
||||||
|
offset = checkContains(response, offset, "HTTP/1.1 500");
|
||||||
|
}
|
||||||
|
catch(Exception e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
if(response != null)
|
||||||
|
System.err.println(response);
|
||||||
|
fail("Exception");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void testAsterisk()
|
public void testAsterisk()
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue