You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Othon Reyes Sanchez <ot...@gmail.com> on 2008/02/26 19:39:40 UTC
java.util.ConcurrentModificationException at IteratorComponent
I get the following exception when i do some stress test with jmeter.
> java.util.ConcurrentModificationException
> at java.util.AbstractList$Itr.checkForComodification(Unknown Source)
> at java.util.AbstractList$Itr.next(Unknown Source)
> at org.apache.struts2.components.IteratorComponent.end(
IteratorComponent.java:246)
> at org.apache.struts2.views.jsp.IteratorTag.doAfterBody(
IteratorTag.java:68)
> at
org.apache.jsp.jupiters2.archivo.jsp.expediente.frmPrestamo_jsp._jspx_meth_s_005fiterator_005f0
(frmPrestamo_jsp.java:1595)
> at
org.apache.jsp.jupiters2.archivo.jsp.expediente.frmPrestamo_jsp._jspx_meth_s_005fform_005f0
(frmPrestamo_jsp.java:640)
> at
org.apache.jsp.jupiters2.archivo.jsp.expediente.frmPrestamo_jsp._jspService
(frmPrestamo_jsp.java:186)
> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java
:98)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
> at org.apache.jasper.servlet.JspServletWrapper.service(
JspServletWrapper.java:328)
> at org.apache.jasper.servlet.JspServlet.serviceJspFile(
JspServlet.java:315)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:269)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:188)
> at org.apache.catalina.core.ApplicationDispatcher.invoke(
ApplicationDispatcher.java:691)
> at org.apache.catalina.core.ApplicationDispatcher.processRequest(
ApplicationDispatcher.java:469)
> at org.apache.catalina.core.ApplicationDispatcher.doForward(
ApplicationDispatcher.java:403)
> at org.apache.catalina.core.ApplicationDispatcher.forward(
ApplicationDispatcher.java:301)
> at org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(
ServletDispatcherResult.java:139)
> at org.apache.struts2.dispatcher.StrutsResultSupport.execute(
StrutsResultSupport.java:178)
> at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(
DefaultActionInvocation.java:348)
> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
DefaultActionInvocation.java:253)
> at
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(
DefaultWorkflowInterceptor.java:221)
> at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(
MethodFilterInterceptor.java:86)
> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
DefaultActionInvocation.java:224)
> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
DefaultActionInvocation.java:223)
> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
UtilTimerStack.java:455)
> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
DefaultActionInvocation.java:221)
> at
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(
ValidationInterceptor.java:150)
> at
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept
(AnnotationValidationInterceptor.java:48)
> at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(
MethodFilterInterceptor.java:86)
> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
DefaultActionInvocation.java:224)
> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
DefaultActionInvocation.java:223)
> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
UtilTimerStack.java:455)
> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
DefaultActionInvocation.java:221)
> at
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(
ConversionErrorInterceptor.java:123)
> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
DefaultActionInvocation.java:224)
> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
DefaultActionInvocation.java:223)
> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
UtilTimerStack.java:455)
> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
DefaultActionInvocation.java:221)
> at
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(
ParametersInterceptor.java:167)
> at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(
MethodFilterInterceptor.java:86)
> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
DefaultActionInvocation.java:224)
> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
DefaultActionInvocation.java:223)
> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
UtilTimerStack.java:455)
> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
DefaultActionInvocation.java:221)
> at
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(
StaticParametersInterceptor.java:105)
> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
DefaultActionInvocation.java:224)
> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
DefaultActionInvocation.java:223)
> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
UtilTimerStack.java:455)
> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
DefaultActionInvocation.java:221)
> at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(
CheckboxInterceptor.java:83)
> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
DefaultActionInvocation.java:224)
> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
DefaultActionInvocation.java:223)
> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
UtilTimerStack.java:455)
> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
DefaultActionInvocation.java:221)
> at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(
FileUploadInterceptor.java:207)
> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
DefaultActionInvocation.java:224)
> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
DefaultActionInvocation.java:223)
> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
UtilTimerStack.java:455)
> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
DefaultActionInvocation.java:221)
> at
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(
ModelDrivenInterceptor.java:74)
> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
DefaultActionInvocation.java:224)
> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
DefaultActionInvocation.java:223)
> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
UtilTimerStack.java:455)
> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
DefaultActionInvocation.java:221)
> at
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(
ScopedModelDrivenInterceptor.java:127)
> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
DefaultActionInvocation.java:224)
> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
DefaultActionInvocation.java:223)
> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
UtilTimerStack.java:455)
> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
DefaultActionInvocation.java:221)
> at
org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(
ProfilingActivationInterceptor.java:107)
> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
DefaultActionInvocation.java:224)
> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
DefaultActionInvocation.java:223)
> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
UtilTimerStack.java:455)
> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
DefaultActionInvocation.java:221)
> at
org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(
DebuggingInterceptor.java:206)
> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
DefaultActionInvocation.java:224)
> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
DefaultActionInvocation.java:223)
> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
UtilTimerStack.java:455)
> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
DefaultActionInvocation.java:221)
> at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept
(ChainingInterceptor.java:115)
> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
DefaultActionInvocation.java:224)
> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
DefaultActionInvocation.java:223)
> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
UtilTimerStack.java:455)
> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
DefaultActionInvocation.java:221)
> at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(
I18nInterceptor.java:143)
> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
DefaultActionInvocation.java:224)
> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
DefaultActionInvocation.java:223)
> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
UtilTimerStack.java:455)
> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
DefaultActionInvocation.java:221)
> at
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(
PrepareInterceptor.java:121)
> at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(
MethodFilterInterceptor.java:86)
> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
DefaultActionInvocation.java:224)
> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
DefaultActionInvocation.java:223)
> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
UtilTimerStack.java:455)
> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
DefaultActionInvocation.java:221)
> at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept
(ServletConfigInterceptor.java:170)
> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
DefaultActionInvocation.java:224)
> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
DefaultActionInvocation.java:223)
> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
UtilTimerStack.java:455)
> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
DefaultActionInvocation.java:221)
> at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(
AliasInterceptor.java:123)
> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
DefaultActionInvocation.java:224)
> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
DefaultActionInvocation.java:223)
> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
UtilTimerStack.java:455)
> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
DefaultActionInvocation.java:221)
> at
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(
ExceptionMappingInterceptor.java:176)
> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
DefaultActionInvocation.java:224)
> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
DefaultActionInvocation.java:223)
> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
UtilTimerStack.java:455)
> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
DefaultActionInvocation.java:221)
> at org.apache.struts2.impl.StrutsActionProxy.execute(
StrutsActionProxy.java:50)
> at org.apache.struts2.dispatcher.Dispatcher.serviceAction(
Dispatcher.java:504)
> at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(
FilterDispatcher.java:419)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:215)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:188)
> at org.apache.catalina.core.StandardWrapperValve.invoke(
StandardWrapperValve.java:210)
> at org.apache.catalina.core.StandardContextValve.invoke(
StandardContextValve.java:174)
> at org.apache.catalina.core.StandardHostValve.invoke(
StandardHostValve.java:127)
> at org.apache.catalina.valves.ErrorReportValve.invoke(
ErrorReportValve.java:117)
> at org.apache.catalina.core.StandardEngineValve.invoke(
StandardEngineValve.java:108)
> at org.apache.catalina.connector.CoyoteAdapter.service(
CoyoteAdapter.java:151)
> at org.apache.coyote.http11.Http11Processor.process(
Http11Processor.java:870)
> at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection
(Http11BaseProtocol.java:665)
> at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(
PoolTcpEndpoint.java:528)
> at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(
LeaderFollowerWorkerThread.java:81)
> at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
ThreadPool.java:685)
> at java.lang.Thread.run(Unknown Source)
> I tried with different test plans and with different number of
threads/users in my test but basically i get this exception since 50 users.
> I do the following in my test paln:
> Enter to the page
> Lookup for some data with an autocompleter
> Input another data in a textbox
> insert the previous information in a list that is a property of the action
related to the page( in my code ia have an action per page)
> The list is displayed in a <table> in my page using <s:iterator>
> Delete the item recently added to the list.
> By the way my action is in the session.
> Maybe the problem is my code, so please i want your opinion about this
situation. I have made another stress test in webapps without struts2 and i
never had this exception.
Re: java.util.ConcurrentModificationException at IteratorComponent
Posted by Dave Newton <ne...@yahoo.com>.
No no, I mean that even if you're not modifying the map you can get a
concurrent modification exception by accessing the map via OGNL's []
notation, just in an <s:property.../> tag.
Dave
--- Eduardo Dela Rosa <ed...@gmail.com> wrote:
> You are right there. And I guess the best way to rid this exception then is
> to have the code part in synchronized block, i.e., synchronizing on the
> list
> object itself + get the iterator + invoke either "add" or "remove" inside
> the block. This will hurt the performance a bit BUT will preserve the
> integrity of the content of the list.
>
> On Wed, Feb 27, 2008 at 9:50 AM, Dave Newton <ne...@yahoo.com> wrote:
>
> > --- Eduardo Dela Rosa <ed...@gmail.com> wrote:
> > > Also, you must be removing or updating object directly inside your list
> > > object which is why you're getting this error. Try to get a reference
> to
> > > Iterator from your ArrayList object and invoke "remove" or "add"
> methods
> > > via the Iterator to get away from the ConcurrentModificationException.
> >
> > Strictly speaking I don't believe that's necessarily true; one can get a
> > ConcurrentModificationException depending on how a map object is accessed
> > in
> > the iterator.
> >
> > (Not totally relevant since we're talking about lists, but thought I'd
> > throw
> > that out there.)
> >
> > Dave
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> > For additional commands, e-mail: user-help@struts.apache.org
> >
> >
>
>
> --
> Eduardo Dela Rosa
>
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org
Re: java.util.ConcurrentModificationException at IteratorComponent
Posted by Randy Burgess <RB...@nuvox.com>.
Or just use a Vector instead of an ArrayList, which is synchronized.
Regards,
Randy Burgess
Sr. Web Applications Developer
Nuvox Communications
> From: Eduardo Dela Rosa <ed...@gmail.com>
> Reply-To: Struts Users Mailing List <us...@struts.apache.org>
> Date: Wed, 27 Feb 2008 09:59:25 +1100
> To: Struts Users Mailing List <us...@struts.apache.org>
> Subject: Re: java.util.ConcurrentModificationException at IteratorComponent
>
> You are right there. And I guess the best way to rid this exception then is
> to have the code part in synchronized block, i.e., synchronizing on the list
> object itself + get the iterator + invoke either "add" or "remove" inside
> the block. This will hurt the performance a bit BUT will preserve the
> integrity of the content of the list.
>
> On Wed, Feb 27, 2008 at 9:50 AM, Dave Newton <ne...@yahoo.com> wrote:
>
>> --- Eduardo Dela Rosa <ed...@gmail.com> wrote:
>>> Also, you must be removing or updating object directly inside your list
>>> object which is why you're getting this error. Try to get a reference to
>>> Iterator from your ArrayList object and invoke "remove" or "add" methods
>>> via the Iterator to get away from the ConcurrentModificationException.
>>
>> Strictly speaking I don't believe that's necessarily true; one can get a
>> ConcurrentModificationException depending on how a map object is accessed
>> in
>> the iterator.
>>
>> (Not totally relevant since we're talking about lists, but thought I'd
>> throw
>> that out there.)
>>
>> Dave
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>> For additional commands, e-mail: user-help@struts.apache.org
>>
>>
>
>
> --
> Eduardo Dela Rosa
This email and any attachments ("Message") may contain legally privileged and/or confidential information. If you are not the addressee, or if this Message has been addressed to you in error, you are not authorized to read, copy, or distribute it, and we ask that you please delete it (including all copies) and notify the sender by return email. Delivery of this Message to any person other than the intended recipient(s) shall not be deemed a waiver of confidentiality and/or a privilege.
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org
Re: java.util.ConcurrentModificationException at IteratorComponent
Posted by Eduardo Dela Rosa <ed...@gmail.com>.
You are right there. And I guess the best way to rid this exception then is
to have the code part in synchronized block, i.e., synchronizing on the list
object itself + get the iterator + invoke either "add" or "remove" inside
the block. This will hurt the performance a bit BUT will preserve the
integrity of the content of the list.
On Wed, Feb 27, 2008 at 9:50 AM, Dave Newton <ne...@yahoo.com> wrote:
> --- Eduardo Dela Rosa <ed...@gmail.com> wrote:
> > Also, you must be removing or updating object directly inside your list
> > object which is why you're getting this error. Try to get a reference to
> > Iterator from your ArrayList object and invoke "remove" or "add" methods
> > via the Iterator to get away from the ConcurrentModificationException.
>
> Strictly speaking I don't believe that's necessarily true; one can get a
> ConcurrentModificationException depending on how a map object is accessed
> in
> the iterator.
>
> (Not totally relevant since we're talking about lists, but thought I'd
> throw
> that out there.)
>
> Dave
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
>
--
Eduardo Dela Rosa
Re: java.util.ConcurrentModificationException at IteratorComponent
Posted by Dave Newton <ne...@yahoo.com>.
--- Eduardo Dela Rosa <ed...@gmail.com> wrote:
> Also, you must be removing or updating object directly inside your list
> object which is why you're getting this error. Try to get a reference to
> Iterator from your ArrayList object and invoke "remove" or "add" methods
> via the Iterator to get away from the ConcurrentModificationException.
Strictly speaking I don't believe that's necessarily true; one can get a
ConcurrentModificationException depending on how a map object is accessed in
the iterator.
(Not totally relevant since we're talking about lists, but thought I'd throw
that out there.)
Dave
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org
Re: java.util.ConcurrentModificationException at IteratorComponent
Posted by Eduardo Dela Rosa <ed...@gmail.com>.
You stick to your code. However, update your code part such that when
create your ArrayList, do it as Collections.synchronizedList(new
ArrayList(...)).
Also, you must be removing or updating object directly inside your list
object which is why you're getting this error. Try to get a reference to
Iterator from your ArrayList object and invoke "remove" or "add" methods via
the Iterator to get away from the ConcurrentModificationException.
HTH
Eduardo
On Wed, Feb 27, 2008 at 5:48 AM, Othon Reyes Sanchez <ot...@gmail.com>
wrote:
> do you know a collection that is thread safe?
>
>
> On Tue, Feb 26, 2008 at 12:42 PM, Randy Burgess <RB...@nuvox.com>
> wrote:
>
> > I believe this exception occurs when you try and modify an ArrayList
> while
> > iterating over said list. ArrayList is not thread safe.
> >
> > Regards,
> > Randy Burgess
> > Sr. Web Applications Developer
> > Nuvox Communications
> >
> >
> >
> > > From: Othon Reyes Sanchez <ot...@gmail.com>
> > > Reply-To: Struts Users Mailing List <us...@struts.apache.org>
> > > Date: Tue, 26 Feb 2008 12:39:40 -0600
> > > To: <us...@struts.apache.org>
> > > Subject: java.util.ConcurrentModificationException at
> IteratorComponent
> > >
> > > I get the following exception when i do some stress test with jmeter.
> > >> java.util.ConcurrentModificationException
> > >> at java.util.AbstractList$Itr.checkForComodification(Unknown
> > Source)
> > >> at java.util.AbstractList$Itr.next(Unknown Source)
> > >> at org.apache.struts2.components.IteratorComponent.end(
> > > IteratorComponent.java:246)
> > >> at org.apache.struts2.views.jsp.IteratorTag.doAfterBody(
> > > IteratorTag.java:68)
> > >> at
> > >
> >
> org.apache.jsp.jupiters2.archivo.jsp.expediente.frmPrestamo_jsp._jspx_meth_s_0
> > > 05fiterator_005f0
> > > (frmPrestamo_jsp.java:1595)
> > >> at
> > >
> >
> org.apache.jsp.jupiters2.archivo.jsp.expediente.frmPrestamo_jsp._jspx_meth_s_0
> > > 05fform_005f0
> > > (frmPrestamo_jsp.java:640)
> > >> at
> > >
> >
> org.apache.jsp.jupiters2.archivo.jsp.expediente.frmPrestamo_jsp._jspService
> > > (frmPrestamo_jsp.java:186)
> > >> at org.apache.jasper.runtime.HttpJspBase.service(
> HttpJspBase.java
> > > :98)
> > >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
> > >> at org.apache.jasper.servlet.JspServletWrapper.service(
> > > JspServletWrapper.java:328)
> > >> at org.apache.jasper.servlet.JspServlet.serviceJspFile(
> > > JspServlet.java:315)
> > >> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java
> > :265)
> > >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
> > >> at
> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
> > > ApplicationFilterChain.java:269)
> > >> at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> > > ApplicationFilterChain.java:188)
> > >> at org.apache.catalina.core.ApplicationDispatcher.invoke(
> > > ApplicationDispatcher.java:691)
> > >> at
> org.apache.catalina.core.ApplicationDispatcher.processRequest(
> > > ApplicationDispatcher.java:469)
> > >> at org.apache.catalina.core.ApplicationDispatcher.doForward(
> > > ApplicationDispatcher.java:403)
> > >> at org.apache.catalina.core.ApplicationDispatcher.forward(
> > > ApplicationDispatcher.java:301)
> > >> at
> > org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(
> > > ServletDispatcherResult.java:139)
> > >> at org.apache.struts2.dispatcher.StrutsResultSupport.execute(
> > > StrutsResultSupport.java:178)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation.executeResult(
> > > DefaultActionInvocation.java:348)
> > >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > > DefaultActionInvocation.java:253)
> > >> at
> > >
> >
> com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept
> > (
> > > DefaultWorkflowInterceptor.java:221)
> > >> at
> > > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(
> > > MethodFilterInterceptor.java:86)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > > DefaultActionInvocation.java:224)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > > DefaultActionInvocation.java:223)
> > >> at
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> > > UtilTimerStack.java:455)
> > >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > > DefaultActionInvocation.java:221)
> > >> at
> > > com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(
> > > ValidationInterceptor.java:150)
> > >> at
> > >
> >
> org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIn
> > > tercept
> > > (AnnotationValidationInterceptor.java:48)
> > >> at
> > > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(
> > > MethodFilterInterceptor.java:86)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > > DefaultActionInvocation.java:224)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > > DefaultActionInvocation.java:223)
> > >> at
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> > > UtilTimerStack.java:455)
> > >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > > DefaultActionInvocation.java:221)
> > >> at
> > >
> com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept
> > (
> > > ConversionErrorInterceptor.java:123)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > > DefaultActionInvocation.java:224)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > > DefaultActionInvocation.java:223)
> > >> at
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> > > UtilTimerStack.java:455)
> > >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > > DefaultActionInvocation.java:221)
> > >> at
> > > com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(
> > > ParametersInterceptor.java:167)
> > >> at
> > > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(
> > > MethodFilterInterceptor.java:86)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > > DefaultActionInvocation.java:224)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > > DefaultActionInvocation.java:223)
> > >> at
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> > > UtilTimerStack.java:455)
> > >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > > DefaultActionInvocation.java:221)
> > >> at
> > >
> >
> com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(
> > > StaticParametersInterceptor.java:105)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > > DefaultActionInvocation.java:224)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > > DefaultActionInvocation.java:223)
> > >> at
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> > > UtilTimerStack.java:455)
> > >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > > DefaultActionInvocation.java:221)
> > >> at org.apache.struts2.interceptor.CheckboxInterceptor.intercept
> (
> > > CheckboxInterceptor.java:83)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > > DefaultActionInvocation.java:224)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > > DefaultActionInvocation.java:223)
> > >> at
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> > > UtilTimerStack.java:455)
> > >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > > DefaultActionInvocation.java:221)
> > >> at
> org.apache.struts2.interceptor.FileUploadInterceptor.intercept
> > (
> > > FileUploadInterceptor.java:207)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > > DefaultActionInvocation.java:224)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > > DefaultActionInvocation.java:223)
> > >> at
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> > > UtilTimerStack.java:455)
> > >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > > DefaultActionInvocation.java:221)
> > >> at
> > > com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(
> > > ModelDrivenInterceptor.java:74)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > > DefaultActionInvocation.java:224)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > > DefaultActionInvocation.java:223)
> > >> at
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> > > UtilTimerStack.java:455)
> > >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > > DefaultActionInvocation.java:221)
> > >> at
> > >
> >
> com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept
> > (
> > > ScopedModelDrivenInterceptor.java:127)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > > DefaultActionInvocation.java:224)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > > DefaultActionInvocation.java:223)
> > >> at
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> > > UtilTimerStack.java:455)
> > >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > > DefaultActionInvocation.java:221)
> > >> at
> > >
> org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(
> > > ProfilingActivationInterceptor.java:107)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > > DefaultActionInvocation.java:224)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > > DefaultActionInvocation.java:223)
> > >> at
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> > > UtilTimerStack.java:455)
> > >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > > DefaultActionInvocation.java:221)
> > >> at
> > >
> org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(
> > > DebuggingInterceptor.java:206)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > > DefaultActionInvocation.java:224)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > > DefaultActionInvocation.java:223)
> > >> at
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> > > UtilTimerStack.java:455)
> > >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > > DefaultActionInvocation.java:221)
> > >> at
> > com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept
> > > (ChainingInterceptor.java:115)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > > DefaultActionInvocation.java:224)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > > DefaultActionInvocation.java:223)
> > >> at
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> > > UtilTimerStack.java:455)
> > >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > > DefaultActionInvocation.java:221)
> > >> at
> com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(
> > > I18nInterceptor.java:143)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > > DefaultActionInvocation.java:224)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > > DefaultActionInvocation.java:223)
> > >> at
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> > > UtilTimerStack.java:455)
> > >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > > DefaultActionInvocation.java:221)
> > >> at
> > > com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(
> > > PrepareInterceptor.java:121)
> > >> at
> > > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(
> > > MethodFilterInterceptor.java:86)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > > DefaultActionInvocation.java:224)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > > DefaultActionInvocation.java:223)
> > >> at
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> > > UtilTimerStack.java:455)
> > >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > > DefaultActionInvocation.java:221)
> > >> at
> > org.apache.struts2.interceptor.ServletConfigInterceptor.intercept
> > > (ServletConfigInterceptor.java:170)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > > DefaultActionInvocation.java:224)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > > DefaultActionInvocation.java:223)
> > >> at
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> > > UtilTimerStack.java:455)
> > >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > > DefaultActionInvocation.java:221)
> > >> at
> com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept
> > (
> > > AliasInterceptor.java:123)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > > DefaultActionInvocation.java:224)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > > DefaultActionInvocation.java:223)
> > >> at
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> > > UtilTimerStack.java:455)
> > >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > > DefaultActionInvocation.java:221)
> > >> at
> > >
> >
> com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(
> > > ExceptionMappingInterceptor.java:176)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > > DefaultActionInvocation.java:224)
> > >> at
> com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > > DefaultActionInvocation.java:223)
> > >> at
> com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> > > UtilTimerStack.java:455)
> > >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > > DefaultActionInvocation.java:221)
> > >> at org.apache.struts2.impl.StrutsActionProxy.execute(
> > > StrutsActionProxy.java:50)
> > >> at org.apache.struts2.dispatcher.Dispatcher.serviceAction(
> > > Dispatcher.java:504)
> > >> at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(
> > > FilterDispatcher.java:419)
> > >> at
> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
> > > ApplicationFilterChain.java:215)
> > >> at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> > > ApplicationFilterChain.java:188)
> > >> at org.apache.catalina.core.StandardWrapperValve.invoke(
> > > StandardWrapperValve.java:210)
> > >> at org.apache.catalina.core.StandardContextValve.invoke(
> > > StandardContextValve.java:174)
> > >> at org.apache.catalina.core.StandardHostValve.invoke(
> > > StandardHostValve.java:127)
> > >> at org.apache.catalina.valves.ErrorReportValve.invoke(
> > > ErrorReportValve.java:117)
> > >> at org.apache.catalina.core.StandardEngineValve.invoke(
> > > StandardEngineValve.java:108)
> > >> at org.apache.catalina.connector.CoyoteAdapter.service(
> > > CoyoteAdapter.java:151)
> > >> at org.apache.coyote.http11.Http11Processor.process(
> > > Http11Processor.java:870)
> > >> at
> > >
> >
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processCon
> > > nection
> > > (Http11BaseProtocol.java:665)
> > >> at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(
> > > PoolTcpEndpoint.java:528)
> > >> at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(
> > > LeaderFollowerWorkerThread.java:81)
> > >> at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
> > > ThreadPool.java:685)
> > >> at java.lang.Thread.run(Unknown Source)
> > >> I tried with different test plans and with different number of
> > > threads/users in my test but basically i get this exception since 50
> > users.
> > >> I do the following in my test paln:
> > >> Enter to the page
> > >> Lookup for some data with an autocompleter
> > >> Input another data in a textbox
> > >> insert the previous information in a list that is a property of the
> > action
> > > related to the page( in my code ia have an action per page)
> > >> The list is displayed in a <table> in my page using <s:iterator>
> > >> Delete the item recently added to the list.
> > >> By the way my action is in the session.
> > >> Maybe the problem is my code, so please i want your opinion about
> this
> > > situation. I have made another stress test in webapps without struts2
> > and i
> > > never had this exception.
> >
> >
> >
> > This email and any attachments ("Message") may contain legally
> privileged
> > and/or confidential information. If you are not the addressee, or if
> this
> > Message has been addressed to you in error, you are not authorized to
> read,
> > copy, or distribute it, and we ask that you please delete it (including
> all
> > copies) and notify the sender by return email. Delivery of this Message
> to
> > any person other than the intended recipient(s) shall not be deemed a
> waiver
> > of confidentiality and/or a privilege.
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> > For additional commands, e-mail: user-help@struts.apache.org
> >
> >
>
--
Eduardo Dela Rosa
Re: java.util.ConcurrentModificationException at IteratorComponent
Posted by Dave Newton <ne...@yahoo.com>.
--- Othon Reyes Sanchez <ot...@gmail.com> wrote:
> do you know a collection that is thread safe?
Look in the JavaDocs: not only are there thread-safe collections but there
are utility methods to create them from non-thread-safe collections.
As I said in your JIRA post you should post the action and JSP that's
actually causing the problem.
You also state that your "action is in the session", which would concern me a
little.
Are you actually attempting to modify the collection somewhere, or is it a
display-only list?
Dave
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org
Re: java.util.ConcurrentModificationException at IteratorComponent
Posted by Othon Reyes Sanchez <ot...@gmail.com>.
do you know a collection that is thread safe?
On Tue, Feb 26, 2008 at 12:42 PM, Randy Burgess <RB...@nuvox.com> wrote:
> I believe this exception occurs when you try and modify an ArrayList while
> iterating over said list. ArrayList is not thread safe.
>
> Regards,
> Randy Burgess
> Sr. Web Applications Developer
> Nuvox Communications
>
>
>
> > From: Othon Reyes Sanchez <ot...@gmail.com>
> > Reply-To: Struts Users Mailing List <us...@struts.apache.org>
> > Date: Tue, 26 Feb 2008 12:39:40 -0600
> > To: <us...@struts.apache.org>
> > Subject: java.util.ConcurrentModificationException at IteratorComponent
> >
> > I get the following exception when i do some stress test with jmeter.
> >> java.util.ConcurrentModificationException
> >> at java.util.AbstractList$Itr.checkForComodification(Unknown
> Source)
> >> at java.util.AbstractList$Itr.next(Unknown Source)
> >> at org.apache.struts2.components.IteratorComponent.end(
> > IteratorComponent.java:246)
> >> at org.apache.struts2.views.jsp.IteratorTag.doAfterBody(
> > IteratorTag.java:68)
> >> at
> >
> org.apache.jsp.jupiters2.archivo.jsp.expediente.frmPrestamo_jsp._jspx_meth_s_0
> > 05fiterator_005f0
> > (frmPrestamo_jsp.java:1595)
> >> at
> >
> org.apache.jsp.jupiters2.archivo.jsp.expediente.frmPrestamo_jsp._jspx_meth_s_0
> > 05fform_005f0
> > (frmPrestamo_jsp.java:640)
> >> at
> >
> org.apache.jsp.jupiters2.archivo.jsp.expediente.frmPrestamo_jsp._jspService
> > (frmPrestamo_jsp.java:186)
> >> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java
> > :98)
> >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
> >> at org.apache.jasper.servlet.JspServletWrapper.service(
> > JspServletWrapper.java:328)
> >> at org.apache.jasper.servlet.JspServlet.serviceJspFile(
> > JspServlet.java:315)
> >> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java
> :265)
> >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
> >> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
> > ApplicationFilterChain.java:269)
> >> at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> > ApplicationFilterChain.java:188)
> >> at org.apache.catalina.core.ApplicationDispatcher.invoke(
> > ApplicationDispatcher.java:691)
> >> at org.apache.catalina.core.ApplicationDispatcher.processRequest(
> > ApplicationDispatcher.java:469)
> >> at org.apache.catalina.core.ApplicationDispatcher.doForward(
> > ApplicationDispatcher.java:403)
> >> at org.apache.catalina.core.ApplicationDispatcher.forward(
> > ApplicationDispatcher.java:301)
> >> at
> org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(
> > ServletDispatcherResult.java:139)
> >> at org.apache.struts2.dispatcher.StrutsResultSupport.execute(
> > StrutsResultSupport.java:178)
> >> at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(
> > DefaultActionInvocation.java:348)
> >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > DefaultActionInvocation.java:253)
> >> at
> >
> com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept
> (
> > DefaultWorkflowInterceptor.java:221)
> >> at
> > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(
> > MethodFilterInterceptor.java:86)
> >> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > DefaultActionInvocation.java:224)
> >> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > DefaultActionInvocation.java:223)
> >> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> > UtilTimerStack.java:455)
> >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > DefaultActionInvocation.java:221)
> >> at
> > com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(
> > ValidationInterceptor.java:150)
> >> at
> >
> org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIn
> > tercept
> > (AnnotationValidationInterceptor.java:48)
> >> at
> > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(
> > MethodFilterInterceptor.java:86)
> >> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > DefaultActionInvocation.java:224)
> >> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > DefaultActionInvocation.java:223)
> >> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> > UtilTimerStack.java:455)
> >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > DefaultActionInvocation.java:221)
> >> at
> > com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept
> (
> > ConversionErrorInterceptor.java:123)
> >> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > DefaultActionInvocation.java:224)
> >> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > DefaultActionInvocation.java:223)
> >> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> > UtilTimerStack.java:455)
> >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > DefaultActionInvocation.java:221)
> >> at
> > com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(
> > ParametersInterceptor.java:167)
> >> at
> > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(
> > MethodFilterInterceptor.java:86)
> >> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > DefaultActionInvocation.java:224)
> >> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > DefaultActionInvocation.java:223)
> >> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> > UtilTimerStack.java:455)
> >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > DefaultActionInvocation.java:221)
> >> at
> >
> com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(
> > StaticParametersInterceptor.java:105)
> >> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > DefaultActionInvocation.java:224)
> >> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > DefaultActionInvocation.java:223)
> >> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> > UtilTimerStack.java:455)
> >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > DefaultActionInvocation.java:221)
> >> at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(
> > CheckboxInterceptor.java:83)
> >> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > DefaultActionInvocation.java:224)
> >> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > DefaultActionInvocation.java:223)
> >> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> > UtilTimerStack.java:455)
> >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > DefaultActionInvocation.java:221)
> >> at org.apache.struts2.interceptor.FileUploadInterceptor.intercept
> (
> > FileUploadInterceptor.java:207)
> >> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > DefaultActionInvocation.java:224)
> >> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > DefaultActionInvocation.java:223)
> >> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> > UtilTimerStack.java:455)
> >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > DefaultActionInvocation.java:221)
> >> at
> > com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(
> > ModelDrivenInterceptor.java:74)
> >> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > DefaultActionInvocation.java:224)
> >> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > DefaultActionInvocation.java:223)
> >> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> > UtilTimerStack.java:455)
> >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > DefaultActionInvocation.java:221)
> >> at
> >
> com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept
> (
> > ScopedModelDrivenInterceptor.java:127)
> >> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > DefaultActionInvocation.java:224)
> >> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > DefaultActionInvocation.java:223)
> >> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> > UtilTimerStack.java:455)
> >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > DefaultActionInvocation.java:221)
> >> at
> > org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(
> > ProfilingActivationInterceptor.java:107)
> >> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > DefaultActionInvocation.java:224)
> >> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > DefaultActionInvocation.java:223)
> >> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> > UtilTimerStack.java:455)
> >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > DefaultActionInvocation.java:221)
> >> at
> > org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(
> > DebuggingInterceptor.java:206)
> >> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > DefaultActionInvocation.java:224)
> >> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > DefaultActionInvocation.java:223)
> >> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> > UtilTimerStack.java:455)
> >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > DefaultActionInvocation.java:221)
> >> at
> com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept
> > (ChainingInterceptor.java:115)
> >> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > DefaultActionInvocation.java:224)
> >> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > DefaultActionInvocation.java:223)
> >> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> > UtilTimerStack.java:455)
> >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > DefaultActionInvocation.java:221)
> >> at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(
> > I18nInterceptor.java:143)
> >> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > DefaultActionInvocation.java:224)
> >> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > DefaultActionInvocation.java:223)
> >> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> > UtilTimerStack.java:455)
> >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > DefaultActionInvocation.java:221)
> >> at
> > com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(
> > PrepareInterceptor.java:121)
> >> at
> > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(
> > MethodFilterInterceptor.java:86)
> >> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > DefaultActionInvocation.java:224)
> >> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > DefaultActionInvocation.java:223)
> >> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> > UtilTimerStack.java:455)
> >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > DefaultActionInvocation.java:221)
> >> at
> org.apache.struts2.interceptor.ServletConfigInterceptor.intercept
> > (ServletConfigInterceptor.java:170)
> >> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > DefaultActionInvocation.java:224)
> >> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > DefaultActionInvocation.java:223)
> >> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> > UtilTimerStack.java:455)
> >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > DefaultActionInvocation.java:221)
> >> at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept
> (
> > AliasInterceptor.java:123)
> >> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > DefaultActionInvocation.java:224)
> >> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > DefaultActionInvocation.java:223)
> >> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> > UtilTimerStack.java:455)
> >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > DefaultActionInvocation.java:221)
> >> at
> >
> com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(
> > ExceptionMappingInterceptor.java:176)
> >> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > DefaultActionInvocation.java:224)
> >> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> > DefaultActionInvocation.java:223)
> >> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> > UtilTimerStack.java:455)
> >> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> > DefaultActionInvocation.java:221)
> >> at org.apache.struts2.impl.StrutsActionProxy.execute(
> > StrutsActionProxy.java:50)
> >> at org.apache.struts2.dispatcher.Dispatcher.serviceAction(
> > Dispatcher.java:504)
> >> at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(
> > FilterDispatcher.java:419)
> >> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
> > ApplicationFilterChain.java:215)
> >> at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> > ApplicationFilterChain.java:188)
> >> at org.apache.catalina.core.StandardWrapperValve.invoke(
> > StandardWrapperValve.java:210)
> >> at org.apache.catalina.core.StandardContextValve.invoke(
> > StandardContextValve.java:174)
> >> at org.apache.catalina.core.StandardHostValve.invoke(
> > StandardHostValve.java:127)
> >> at org.apache.catalina.valves.ErrorReportValve.invoke(
> > ErrorReportValve.java:117)
> >> at org.apache.catalina.core.StandardEngineValve.invoke(
> > StandardEngineValve.java:108)
> >> at org.apache.catalina.connector.CoyoteAdapter.service(
> > CoyoteAdapter.java:151)
> >> at org.apache.coyote.http11.Http11Processor.process(
> > Http11Processor.java:870)
> >> at
> >
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processCon
> > nection
> > (Http11BaseProtocol.java:665)
> >> at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(
> > PoolTcpEndpoint.java:528)
> >> at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(
> > LeaderFollowerWorkerThread.java:81)
> >> at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
> > ThreadPool.java:685)
> >> at java.lang.Thread.run(Unknown Source)
> >> I tried with different test plans and with different number of
> > threads/users in my test but basically i get this exception since 50
> users.
> >> I do the following in my test paln:
> >> Enter to the page
> >> Lookup for some data with an autocompleter
> >> Input another data in a textbox
> >> insert the previous information in a list that is a property of the
> action
> > related to the page( in my code ia have an action per page)
> >> The list is displayed in a <table> in my page using <s:iterator>
> >> Delete the item recently added to the list.
> >> By the way my action is in the session.
> >> Maybe the problem is my code, so please i want your opinion about this
> > situation. I have made another stress test in webapps without struts2
> and i
> > never had this exception.
>
>
>
> This email and any attachments ("Message") may contain legally privileged
> and/or confidential information. If you are not the addressee, or if this
> Message has been addressed to you in error, you are not authorized to read,
> copy, or distribute it, and we ask that you please delete it (including all
> copies) and notify the sender by return email. Delivery of this Message to
> any person other than the intended recipient(s) shall not be deemed a waiver
> of confidentiality and/or a privilege.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
>
Re: java.util.ConcurrentModificationException at IteratorComponent
Posted by Randy Burgess <RB...@nuvox.com>.
I believe this exception occurs when you try and modify an ArrayList while
iterating over said list. ArrayList is not thread safe.
Regards,
Randy Burgess
Sr. Web Applications Developer
Nuvox Communications
> From: Othon Reyes Sanchez <ot...@gmail.com>
> Reply-To: Struts Users Mailing List <us...@struts.apache.org>
> Date: Tue, 26 Feb 2008 12:39:40 -0600
> To: <us...@struts.apache.org>
> Subject: java.util.ConcurrentModificationException at IteratorComponent
>
> I get the following exception when i do some stress test with jmeter.
>> java.util.ConcurrentModificationException
>> at java.util.AbstractList$Itr.checkForComodification(Unknown Source)
>> at java.util.AbstractList$Itr.next(Unknown Source)
>> at org.apache.struts2.components.IteratorComponent.end(
> IteratorComponent.java:246)
>> at org.apache.struts2.views.jsp.IteratorTag.doAfterBody(
> IteratorTag.java:68)
>> at
> org.apache.jsp.jupiters2.archivo.jsp.expediente.frmPrestamo_jsp._jspx_meth_s_0
> 05fiterator_005f0
> (frmPrestamo_jsp.java:1595)
>> at
> org.apache.jsp.jupiters2.archivo.jsp.expediente.frmPrestamo_jsp._jspx_meth_s_0
> 05fform_005f0
> (frmPrestamo_jsp.java:640)
>> at
> org.apache.jsp.jupiters2.archivo.jsp.expediente.frmPrestamo_jsp._jspService
> (frmPrestamo_jsp.java:186)
>> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java
> :98)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>> at org.apache.jasper.servlet.JspServletWrapper.service(
> JspServletWrapper.java:328)
>> at org.apache.jasper.servlet.JspServlet.serviceJspFile(
> JspServlet.java:315)
>> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
> ApplicationFilterChain.java:269)
>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:188)
>> at org.apache.catalina.core.ApplicationDispatcher.invoke(
> ApplicationDispatcher.java:691)
>> at org.apache.catalina.core.ApplicationDispatcher.processRequest(
> ApplicationDispatcher.java:469)
>> at org.apache.catalina.core.ApplicationDispatcher.doForward(
> ApplicationDispatcher.java:403)
>> at org.apache.catalina.core.ApplicationDispatcher.forward(
> ApplicationDispatcher.java:301)
>> at org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(
> ServletDispatcherResult.java:139)
>> at org.apache.struts2.dispatcher.StrutsResultSupport.execute(
> StrutsResultSupport.java:178)
>> at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(
> DefaultActionInvocation.java:348)
>> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> DefaultActionInvocation.java:253)
>> at
> com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(
> DefaultWorkflowInterceptor.java:221)
>> at
> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(
> MethodFilterInterceptor.java:86)
>> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> DefaultActionInvocation.java:224)
>> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> DefaultActionInvocation.java:223)
>> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> UtilTimerStack.java:455)
>> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> DefaultActionInvocation.java:221)
>> at
> com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(
> ValidationInterceptor.java:150)
>> at
> org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIn
> tercept
> (AnnotationValidationInterceptor.java:48)
>> at
> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(
> MethodFilterInterceptor.java:86)
>> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> DefaultActionInvocation.java:224)
>> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> DefaultActionInvocation.java:223)
>> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> UtilTimerStack.java:455)
>> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> DefaultActionInvocation.java:221)
>> at
> com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(
> ConversionErrorInterceptor.java:123)
>> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> DefaultActionInvocation.java:224)
>> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> DefaultActionInvocation.java:223)
>> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> UtilTimerStack.java:455)
>> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> DefaultActionInvocation.java:221)
>> at
> com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(
> ParametersInterceptor.java:167)
>> at
> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(
> MethodFilterInterceptor.java:86)
>> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> DefaultActionInvocation.java:224)
>> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> DefaultActionInvocation.java:223)
>> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> UtilTimerStack.java:455)
>> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> DefaultActionInvocation.java:221)
>> at
> com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(
> StaticParametersInterceptor.java:105)
>> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> DefaultActionInvocation.java:224)
>> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> DefaultActionInvocation.java:223)
>> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> UtilTimerStack.java:455)
>> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> DefaultActionInvocation.java:221)
>> at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(
> CheckboxInterceptor.java:83)
>> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> DefaultActionInvocation.java:224)
>> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> DefaultActionInvocation.java:223)
>> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> UtilTimerStack.java:455)
>> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> DefaultActionInvocation.java:221)
>> at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(
> FileUploadInterceptor.java:207)
>> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> DefaultActionInvocation.java:224)
>> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> DefaultActionInvocation.java:223)
>> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> UtilTimerStack.java:455)
>> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> DefaultActionInvocation.java:221)
>> at
> com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(
> ModelDrivenInterceptor.java:74)
>> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> DefaultActionInvocation.java:224)
>> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> DefaultActionInvocation.java:223)
>> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> UtilTimerStack.java:455)
>> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> DefaultActionInvocation.java:221)
>> at
> com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(
> ScopedModelDrivenInterceptor.java:127)
>> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> DefaultActionInvocation.java:224)
>> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> DefaultActionInvocation.java:223)
>> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> UtilTimerStack.java:455)
>> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> DefaultActionInvocation.java:221)
>> at
> org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(
> ProfilingActivationInterceptor.java:107)
>> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> DefaultActionInvocation.java:224)
>> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> DefaultActionInvocation.java:223)
>> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> UtilTimerStack.java:455)
>> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> DefaultActionInvocation.java:221)
>> at
> org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(
> DebuggingInterceptor.java:206)
>> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> DefaultActionInvocation.java:224)
>> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> DefaultActionInvocation.java:223)
>> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> UtilTimerStack.java:455)
>> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> DefaultActionInvocation.java:221)
>> at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept
> (ChainingInterceptor.java:115)
>> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> DefaultActionInvocation.java:224)
>> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> DefaultActionInvocation.java:223)
>> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> UtilTimerStack.java:455)
>> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> DefaultActionInvocation.java:221)
>> at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(
> I18nInterceptor.java:143)
>> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> DefaultActionInvocation.java:224)
>> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> DefaultActionInvocation.java:223)
>> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> UtilTimerStack.java:455)
>> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> DefaultActionInvocation.java:221)
>> at
> com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(
> PrepareInterceptor.java:121)
>> at
> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(
> MethodFilterInterceptor.java:86)
>> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> DefaultActionInvocation.java:224)
>> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> DefaultActionInvocation.java:223)
>> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> UtilTimerStack.java:455)
>> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> DefaultActionInvocation.java:221)
>> at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept
> (ServletConfigInterceptor.java:170)
>> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> DefaultActionInvocation.java:224)
>> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> DefaultActionInvocation.java:223)
>> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> UtilTimerStack.java:455)
>> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> DefaultActionInvocation.java:221)
>> at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(
> AliasInterceptor.java:123)
>> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> DefaultActionInvocation.java:224)
>> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> DefaultActionInvocation.java:223)
>> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> UtilTimerStack.java:455)
>> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> DefaultActionInvocation.java:221)
>> at
> com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(
> ExceptionMappingInterceptor.java:176)
>> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> DefaultActionInvocation.java:224)
>> at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(
> DefaultActionInvocation.java:223)
>> at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(
> UtilTimerStack.java:455)
>> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(
> DefaultActionInvocation.java:221)
>> at org.apache.struts2.impl.StrutsActionProxy.execute(
> StrutsActionProxy.java:50)
>> at org.apache.struts2.dispatcher.Dispatcher.serviceAction(
> Dispatcher.java:504)
>> at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(
> FilterDispatcher.java:419)
>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
> ApplicationFilterChain.java:215)
>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:188)
>> at org.apache.catalina.core.StandardWrapperValve.invoke(
> StandardWrapperValve.java:210)
>> at org.apache.catalina.core.StandardContextValve.invoke(
> StandardContextValve.java:174)
>> at org.apache.catalina.core.StandardHostValve.invoke(
> StandardHostValve.java:127)
>> at org.apache.catalina.valves.ErrorReportValve.invoke(
> ErrorReportValve.java:117)
>> at org.apache.catalina.core.StandardEngineValve.invoke(
> StandardEngineValve.java:108)
>> at org.apache.catalina.connector.CoyoteAdapter.service(
> CoyoteAdapter.java:151)
>> at org.apache.coyote.http11.Http11Processor.process(
> Http11Processor.java:870)
>> at
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processCon
> nection
> (Http11BaseProtocol.java:665)
>> at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(
> PoolTcpEndpoint.java:528)
>> at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(
> LeaderFollowerWorkerThread.java:81)
>> at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
> ThreadPool.java:685)
>> at java.lang.Thread.run(Unknown Source)
>> I tried with different test plans and with different number of
> threads/users in my test but basically i get this exception since 50 users.
>> I do the following in my test paln:
>> Enter to the page
>> Lookup for some data with an autocompleter
>> Input another data in a textbox
>> insert the previous information in a list that is a property of the action
> related to the page( in my code ia have an action per page)
>> The list is displayed in a <table> in my page using <s:iterator>
>> Delete the item recently added to the list.
>> By the way my action is in the session.
>> Maybe the problem is my code, so please i want your opinion about this
> situation. I have made another stress test in webapps without struts2 and i
> never had this exception.
This email and any attachments ("Message") may contain legally privileged and/or confidential information. If you are not the addressee, or if this Message has been addressed to you in error, you are not authorized to read, copy, or distribute it, and we ask that you please delete it (including all copies) and notify the sender by return email. Delivery of this Message to any person other than the intended recipient(s) shall not be deemed a waiver of confidentiality and/or a privilege.
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org