You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Apache <ap...@ss78.shared.server-system.net> on 2006/02/14 11:42:05 UTC
ConcurrentModificationException
Hi!
I got a page with a list of objects and a listener for deleting a object. After deleting a obejct I get the following exception:
--------------------------------------------------
org.apache.hivemind.ApplicationRuntimeException
location:
java.util.ConcurrentModificationException
* java.util.AbstractList$Itr.checkForComodification(AbstractList.java:449)
* java.util.AbstractList$Itr.next(AbstractList.java:420)
* org.apache.tapestry.components.Foreach.renderComponent(Foreach.java:99)
* org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:617)
* org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:434)
* org.apache.tapestry.form.FormSupportImpl.rewind(FormSupportImpl.java:564)
* org.apache.tapestry.form.Form.renderComponent(Form.java:226)
* org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:617)
* org.apache.tapestry.form.Form.rewind(Form.java:327)
* org.apache.tapestry.engine.RequestCycle.rewindForm(RequestCycle.java:439)
* org.apache.tapestry.form.Form.trigger(Form.java:338)
* org.apache.tapestry.engine.DirectService.triggerComponent(DirectService.java:146)
* org.apache.tapestry.engine.DirectService.service(DirectService.java:132)
* $IEngineService_10967f5b166.service($IEngineService_10967f5b166.java)
* org.apache.tapestry.services.impl.EngineServiceOuterProxy.service(EngineServiceOuterProxy.java:66)
* org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:248)
* org.apache.tapestry.services.impl.InvokeEngineTerminator.service(InvokeEngineTerminator.java:60)
* $WebRequestServicer_10967f5b144.service($WebRequestServicer_10967f5b144.java)
* $WebRequestServicer_10967f5b140.service($WebRequestServicer_10967f5b140.java)
* org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service(WebRequestServicerPipelineBridge.java:56)
* $ServletRequestServicer_10967f5b124.service($ServletRequestServicer_10967f5b124.java)
* org.apache.tapestry.request.DecodedRequestInjector.service(DecodedRequestInjector.java:55)
* $ServletRequestServicerFilter_10967f5b120.service($ServletRequestServicerFilter_10967f5b120.java)
* $ServletRequestServicer_10967f5b126.service($ServletRequestServicer_10967f5b126.java)
* org.apache.tapestry.multipart.MultipartDecoderFilter.service(MultipartDecoderFilter.java:52)
* $ServletRequestServicerFilter_10967f5b11e.service($ServletRequestServicerFilter_10967f5b11e.java)
* $ServletRequestServicer_10967f5b126.service($ServletRequestServicer_10967f5b126.java)
* org.apache.tapestry.services.impl.SetupRequestEncoding.service(SetupRequestEncoding.java:53)
* $ServletRequestServicerFilter_10967f5b122.service($ServletRequestServicerFilter_10967f5b122.java)
* $ServletRequestServicer_10967f5b126.service($ServletRequestServicer_10967f5b126.java)
* $ServletRequestServicer_10967f5b118.service($ServletRequestServicer_10967f5b118.java)
* org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:123)
* org.apache.tapestry.ApplicationServlet.doPost(ApplicationServlet.java:168)
* javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
* javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
* org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
* org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
* org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
* org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
* org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
* org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
* org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
* org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
* org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
* org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
* org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
* org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
* org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
* org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
* org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
* org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
* org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
* java.lang.Thread.run(Thread.java:595)
--------------------------------------------------
My code for deleting is:
--------------------------------------------------
public void deleteAktion(Integer aktionPK1, Integer gewichtPK2) {
log.debug("deleting AktionPK1="+ aktionPK1 +" GewichtPK2="+ gewichtPK2);
Aktion temp = null;
boolean found = false;
for(int i = 0; i < aktionen.size() && !found; i++) {
temp = aktionen.get(i);
if(temp.getAktionPK1().equals(aktionPK1) &&
temp.getGewichtPK2().equals(gewichtPK2)) {
found = true;
aktionen.remove(i);
}
}
Aktion dbAktion = this.getDAO().getAktion(aktionPK1, gewichtPK2);
if(dbAktion != null) this.getDAO().deleteAktion(dbAktion);
}
--------------------------------------------------
Does anybody know what the problem is?
Alex.
-------------------- m2f --------------------
Sent from www.TapestryForums.com
Read this topic online here: <<topic_link>>
http://www.tapestryforums.com/viewtopic.php?p=14413#14413
-------------------- m2f --------------------
Re: ConcurrentModificationException
Posted by Ron Piterman <rp...@gmx.net>.
you can not change a collection from inside an iteration of the same.
use action parameters instead of listener, that will usually do the
trick ( you have to pass a parameter though...)
Cheers,
Ron
Apache wrote:
> Hi!
>
> I got a page with a list of objects and a listener for deleting a object. After deleting a obejct I get the following exception:
>
> --------------------------------------------------
> org.apache.hivemind.ApplicationRuntimeException
> location:
> java.util.ConcurrentModificationException
> * java.util.AbstractList$Itr.checkForComodification(AbstractList.java:449)
> * java.util.AbstractList$Itr.next(AbstractList.java:420)
> * org.apache.tapestry.components.Foreach.renderComponent(Foreach.java:99)
> * org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:617)
> * org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:434)
> * org.apache.tapestry.form.FormSupportImpl.rewind(FormSupportImpl.java:564)
> * org.apache.tapestry.form.Form.renderComponent(Form.java:226)
> * org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:617)
> * org.apache.tapestry.form.Form.rewind(Form.java:327)
> * org.apache.tapestry.engine.RequestCycle.rewindForm(RequestCycle.java:439)
> * org.apache.tapestry.form.Form.trigger(Form.java:338)
> * org.apache.tapestry.engine.DirectService.triggerComponent(DirectService.java:146)
> * org.apache.tapestry.engine.DirectService.service(DirectService.java:132)
> * $IEngineService_10967f5b166.service($IEngineService_10967f5b166.java)
> * org.apache.tapestry.services.impl.EngineServiceOuterProxy.service(EngineServiceOuterProxy.java:66)
> * org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:248)
> * org.apache.tapestry.services.impl.InvokeEngineTerminator.service(InvokeEngineTerminator.java:60)
> * $WebRequestServicer_10967f5b144.service($WebRequestServicer_10967f5b144.java)
> * $WebRequestServicer_10967f5b140.service($WebRequestServicer_10967f5b140.java)
> * org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service(WebRequestServicerPipelineBridge.java:56)
> * $ServletRequestServicer_10967f5b124.service($ServletRequestServicer_10967f5b124.java)
> * org.apache.tapestry.request.DecodedRequestInjector.service(DecodedRequestInjector.java:55)
> * $ServletRequestServicerFilter_10967f5b120.service($ServletRequestServicerFilter_10967f5b120.java)
> * $ServletRequestServicer_10967f5b126.service($ServletRequestServicer_10967f5b126.java)
> * org.apache.tapestry.multipart.MultipartDecoderFilter.service(MultipartDecoderFilter.java:52)
> * $ServletRequestServicerFilter_10967f5b11e.service($ServletRequestServicerFilter_10967f5b11e.java)
> * $ServletRequestServicer_10967f5b126.service($ServletRequestServicer_10967f5b126.java)
> * org.apache.tapestry.services.impl.SetupRequestEncoding.service(SetupRequestEncoding.java:53)
> * $ServletRequestServicerFilter_10967f5b122.service($ServletRequestServicerFilter_10967f5b122.java)
> * $ServletRequestServicer_10967f5b126.service($ServletRequestServicer_10967f5b126.java)
> * $ServletRequestServicer_10967f5b118.service($ServletRequestServicer_10967f5b118.java)
> * org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:123)
> * org.apache.tapestry.ApplicationServlet.doPost(ApplicationServlet.java:168)
> * javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
> * javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> * org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> * org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> * org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
> * org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> * org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> * org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> * org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
> * org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
> * org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> * org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> * org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
> * org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
> * org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
> * org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
> * org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
> * org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
> * org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> * java.lang.Thread.run(Thread.java:595)
> --------------------------------------------------
>
> My code for deleting is:
> --------------------------------------------------
> public void deleteAktion(Integer aktionPK1, Integer gewichtPK2) {
> log.debug("deleting AktionPK1="+ aktionPK1 +" GewichtPK2="+ gewichtPK2);
> Aktion temp = null;
> boolean found = false;
> for(int i = 0; i < aktionen.size() && !found; i++) {
> temp = aktionen.get(i);
> if(temp.getAktionPK1().equals(aktionPK1) &&
> temp.getGewichtPK2().equals(gewichtPK2)) {
> found = true;
> aktionen.remove(i);
> }
> }
> Aktion dbAktion = this.getDAO().getAktion(aktionPK1, gewichtPK2);
> if(dbAktion != null) this.getDAO().deleteAktion(dbAktion);
> }
> --------------------------------------------------
>
> Does anybody know what the problem is?
>
>
> Alex.
>
>
> -------------------- m2f --------------------
>
> Sent from www.TapestryForums.com
>
> Read this topic online here: <<topic_link>>
>
> http://www.tapestryforums.com/viewtopic.php?p=14413#14413
>
> -------------------- m2f --------------------
>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-user-help@jakarta.apache.org