We're updating the issue view to help you get more done. 

quick click on repeat fields in form view caused error

Description

Reproduzierung

1. In MIR anmelden
2. Dokumente einreichen / Publizieren
3. Innerhalb des Formulars bei einem Repeat Feld (z.B Autor) mehrfach schnell hintereinander auf den "+" Button klicken
4. Stack trace wird im Browser ausgegeben, verschiedene Fehler in den Logs zu finden
5. Beim klick auf zurück wird nun innerhalb des Formulars der Fehler direkt beim klick auf "+" "-" erneut ausgegeben

Um nun das Formular fehlerfrei bearbeiten zu können, muss der Vorgang abgebrochen werden und wieder per Dokumente einreichen / Publizieren ein neuer Formularvorgang gestartet werden

Stacktrace

2016-07-20T14:33:34,163 ERROR MCRErrorServlet: /mir/servlets/XEditor: Error 500 occured. The following message was given: Index: 0, Size: 0
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(ArrayList.java:653)
at java.util.ArrayList.get(ArrayList.java:429)
at org.mycore.frontend.xeditor.MCRBinding.getBoundNode(MCRBinding.java:141)
at org.mycore.frontend.xeditor.MCRBinding.setValue(MCRBinding.java:215)
at org.mycore.frontend.xeditor.MCREditorSubmission.emptyNotResubmittedNodes(MCREditorSubmission.java:66)
at org.mycore.frontend.xeditor.MCREditorSubmission.setSubmittedValues(MCREditorSubmission.java:109)
at org.mycore.frontend.xeditor.target.MCRRepeaterControl.handleSubmission(MCRRepeaterControl.java:37)
at org.mycore.frontend.xeditor.MCRXEditorServlet.sendToTarget(MCRXEditorServlet.java:84)
at org.mycore.frontend.xeditor.MCRXEditorServlet.doGetPost(MCRXEditorServlet.java:60)
at org.mycore.frontend.servlets.MCRServlet.doPost(MCRServlet.java:190)
at org.mycore.frontend.servlets.MCRServlet.render(MCRServlet.java:448)
at org.mycore.frontend.servlets.MCRServlet.processRenderingPhase(MCRServlet.java:416)
at org.mycore.frontend.servlets.MCRServlet.doGetPost(MCRServlet.java:308)
at org.mycore.frontend.servlets.MCRServlet.doPost(MCRServlet.java:183)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.mycore.frontend.filter.MCRWebAppBaseFilter.doFilter(MCRWebAppBaseFilter.java:46)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.mycore.frontend.filter.MCRRequestAuthenticationFilter.doFilter(MCRRequestAuthenticationFilter.java:42)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.mycore.frontend.filter.MCRRequestDebugFilter.doFilter(MCRRequestDebugFilter.java:60)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log4jServletFilter.java:71)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1502)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1458)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)

Bzw.

2016-07-20T14:37:16,253 ERROR MCRErrorServlet: /mir/servlets/XEditor: Error 500 occured. The following message was given: Lost processing instruction for undo, not found: xed-tracker-98-
org.mycore.common.MCRException: Lost processing instruction for undo, not found: xed-tracker-98-
at org.mycore.frontend.xeditor.tracker.MCRChangeTracker.findLastChange(MCRChangeTracker.java:67)
at org.mycore.frontend.xeditor.tracker.MCRChangeTracker.undoLastChange(MCRChangeTracker.java:49)
at org.mycore.frontend.xeditor.tracker.MCRChangeTracker.undoChanges(MCRChangeTracker.java:36)
at org.mycore.frontend.xeditor.MCRXEditorServlet.doGetPost(MCRXEditorServlet.java:58)
at org.mycore.frontend.servlets.MCRServlet.doPost(MCRServlet.java:190)
at org.mycore.frontend.servlets.MCRServlet.render(MCRServlet.java:448)
at org.mycore.frontend.servlets.MCRServlet.processRenderingPhase(MCRServlet.java:416)
at org.mycore.frontend.servlets.MCRServlet.doGetPost(MCRServlet.java:308)
at org.mycore.frontend.servlets.MCRServlet.doPost(MCRServlet.java:183)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.mycore.frontend.filter.MCRWebAppBaseFilter.doFilter(MCRWebAppBaseFilter.java:46)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.mycore.frontend.filter.MCRRequestAuthenticationFilter.doFilter(MCRRequestAuthenticationFilter.java:42)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.mycore.frontend.filter.MCRRequestDebugFilter.doFilter(MCRRequestDebugFilter.java:60)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log4jServletFilter.java:71)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1502)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1458)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)

Environment

None

Status

Assignee

Frank Lützenkirchen

Reporter

Paul Rochowski

Labels

None

External issue ID

None

External issue ID

None

External issue ID

None

URL

None

External issue ID

None

External issue ID

None

Fix versions

Affects versions

0.4

Priority

Medium