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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]