Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 357077

Summary: HTTP 500 "Form too large" when submitting large amounts of text from client
Product: [RT] RAP Reporter: Patrick Haun <P.Haun>
Component: RWTAssignee: Project Inbox <rap-inbox>
Status: RESOLVED NOT_ECLIPSE QA Contact:
Severity: normal    
Priority: P3 CC: ruediger.herrmann
Version: unspecifiedFlags: ivan: documentation-
Target Milestone: ---   
Hardware: All   
OS: All   
Whiteboard:

Description Patrick Haun CLA 2011-09-08 08:59:54 EDT
Build Identifier: RAP 1.3

If a text in any text field is to large the application displays a http 500 error.


HTTP ERROR 500

Problem accessing /rap. Reason:

    Form too large200494>200000
Caused by:

java.lang.IllegalStateException: Form too large200494>200000
	at org.mortbay.jetty.Request.extractParameters(Request.java:1561)
	at org.mortbay.jetty.Request.getParameter(Request.java:859)
	at javax.servlet.ServletRequestWrapper.getParameter(ServletRequestWrapper.java:169)
	at org.eclipse.rwt.internal.service.ServiceManager.getCustomHandlerId(ServiceManager.java:130)
	at org.eclipse.rwt.internal.service.ServiceManager.isCustomHandler(ServiceManager.java:114)
	at org.eclipse.rwt.internal.service.ServiceManager$HandlerDispatcher.service(ServiceManager.java:94)
	at org.eclipse.rwt.internal.engine.RWTDelegate.doPost(RWTDelegate.java:60)
	at org.eclipse.rap.ui.internal.servlet.RequestHandler.service(RequestHandler.java:51)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
	at org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
	at org.eclipse.equinox.http.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:28)
	at de.cenit.eb.sm.finca.gui.application.ApplicationNotReadyFilter.doFilter(ApplicationNotReadyFilter.java:56)
	at org.eclipse.equinox.http.registry.internal.FilterManager$FilterWrapper.doFilter(FilterManager.java:173)
	at org.eclipse.equinox.http.servlet.internal.FilterRegistration.doFilter(FilterRegistration.java:71)
	at org.eclipse.equinox.http.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:25)
	at de.cenit.eb.sm.finca.gui.application.RedirectServletFilter.doFilter(RedirectServletFilter.java:53)
	at org.eclipse.equinox.http.registry.internal.FilterManager$FilterWrapper.doFilter(FilterManager.java:173)
	at org.eclipse.equinox.http.servlet.internal.FilterRegistration.doFilter(FilterRegistration.java:71)
	at org.eclipse.equinox.http.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:25)
	at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:130)
	at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:60)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
	at org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet.service(HttpServerManager.java:318)
	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
	at org.mortbay.jetty.Server.handle(Server.java:326)
	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
	at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:939)
	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)
	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)


Reproducible: Always

Steps to Reproduce:
1. Enter a really large text in a multiline text field.
Comment 1 Ivan Furnadjiev CLA 2011-09-08 09:24:56 EDT
We can't do much about this. If you want to accept such a big requests increase the Jetty default maxFormContentSize from 200000 to something bigger by specifing a VM property: -Dorg.mortbay.jetty.Request.maxFormContentSize=12345.
Comment 2 Ivan Furnadjiev CLA 2011-09-08 09:29:00 EDT
...or use jetty.xml configuration file to set this system property. I will close this bug as NOT_ECLIPSE. Please reopen if you disagree.
Comment 3 Ivan Furnadjiev CLA 2011-09-08 09:34:14 EDT
... or limit your Text widgets by setting the textLimit property.
Comment 4 Patrick Haun CLA 2011-09-08 09:35:13 EDT
That will work for me. Nevertheless, is it not possible to split the request?

(In reply to comment #1)
> We can't do much about this. If you want to accept such a big requests increase
> the Jetty default maxFormContentSize from 200000 to something bigger by
> specifing a VM property: -Dorg.mortbay.jetty.Request.maxFormContentSize=12345.
Comment 5 Ivan Furnadjiev CLA 2011-09-08 09:45:36 EDT
This is not possible as we have to transmit the complete text. Otherwize we will break the Text widget functionality.