https://bz.apache.org/bugzilla/show_bug.cgi?id=59768
Bug ID: 59768
Summary: Accessing ServletRequest in parallel throws exception
Product: Tomcat 7
Version: 7.0.69
Hardware: PC
OS: Windows NT
Status: NEW
Severity: normal
Priority: P2
Component: Servlet & JSP API
Assignee: [email protected]
Reporter: [email protected]
Created attachment 33994
--> https://bz.apache.org/bugzilla/attachment.cgi?id=33994&action=edit
Stacktrace of the problem
When calling org.apache.catalina.core.ApplicationHttpRequest.getParameter in
two different threads at the same time then the following exception accurs:
java.lang.IllegalStateException: No modifications are allowed to a locked
ParameterMap
at org.apache.catalina.util.ParameterMap.put(ParameterMap.java:164)
at java.util.HashMap.putAll(HashMap.java:643)
at org.apache.catalina.util.ParameterMap.putAll(ParameterMap.java:186)
at
org.apache.catalina.core.ApplicationHttpRequest.parseParameters(ApplicationHttpRequest.java:739)
at
org.apache.catalina.core.ApplicationHttpRequest.getParameter(ApplicationHttpRequest.java:376)
(Full stack trace in attachment)
Reason is that parseParameters() is called in parallel.
I looked at the javadoc of javax.servlet.ServletRequest and
javax.servlet.ServletRequestWrapper and didn't see any mentioning that the
access to this objects should be sequential.
I could not find the javadoc for
org.apache.catalina.core.ApplicationHttpRequest. But I think that is because it
is an internal class.
Either the parallel access to the ServletRequest should be possible or the
classes should be better documented.
Oracle Java version:
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
The tomcat runs behind a Apache2 with mod_proxy connector.
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]