> From: Marziou, Gael [mailto:[EMAIL PROTECTED] > Subject: Multi processor issue > > We have recently switched a stable web application from JRun > 4 to Tomcat 5.5.20 on Windows 2003 + Sun's JRE 1.5.0_08, > running some testing for months, but when we moved to > production environment we immediately experienced errors > IllegalStateException: No modifications are allowed > to a locked ParameterMap. > > We made code reviews of our application code and Tomcat's code and did > not find any thread safety issues.
Look again. > So, I don't believe it's a Tomcat, I would rather think to an H/W, or > JRE or OS issue. Welcome to the world of multi-processors (which I've been working with since the 1960s.) The problem is almost undoubtedly in your application - we run Tomcat on 16x and 32x systems without any such issues. Within Tomcat, request objects are normally processed by a single thread at a time, yet you note that two threads are accessing this particular request - where did the second one come from? Is your app starting extra threads? (Perhaps unknowingly, by using some third-party package.) Since requests are typically handled by a single thread, there is little or no synchronization done during manipulation of references associated with them, such as the parameter map. If your app is using multiple threads to handle a request, it needs to provide its own synchronization when calling methods of the request that manipulate data associated with the request - even when just reading, since the other thread may be changing it concurrently. - Chuck THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers. --------------------------------------------------------------------- To start a new topic, e-mail: [email protected] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
