Uploaded image for project: 'OpenOLAT'
  1. OpenOLAT
  2. OO-4954

RS: rename a filte to the name of deleted but versioned file

    XMLWordPrintable

    Details

      Description

      In a folder course element:

      • Upload a file
      • Add at least a version
      • Delete the file
      • Upload a new file with an other name
      • Rename the file and choose the same name as the file you deleted
        -> Red screen

      The fix works as pre 14.x release, it erases all versions of the deleted file. The new file overwrite completely the deleted one. Perhaps a more complex solution willl be later implemented.

      https://xyz.olat.com/auth/RepositoryEntry/216596486/CourseFolder/0/path%3D~~Kursunterlagen~~kick%20off/0
      Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36
      **RedScreen** commit failed, rollback transaction
      
      <dispatchinfo>
      	<componentinfo>
      		<compname>ffo_main_null</compname>
      		<compclass>org.olat.core.gui.components.form.flexible.impl.FormWrapperContainer</compclass>
      		<extendedinfo>n/a</extendedinfo>
      		<event> </event>
      	</componentinfo>
      	<controllerinfo>
      		<controllername>org.olat.core.commons.modules.bc.meta.MetaInfoFormController</controllername>
      		<controllername>org.olat.core.commons.modules.bc.FolderRunController</controllername>
      		<controllername>org.olat.course.run.CourseRuntimeController</controllername>
      		<controllername>org.olat.core.commons.fullWebApp.BaseFullWebappController</controllername>
      	</controllerinfo>
      </dispatchinfo>
      org.olat.core.logging.DBRuntimeException: commit failed, rollback transaction
       at org.olat.core.commons.persistence.DBImpl.commit(DBImpl.java:573)
       at org.olat.core.gui.components.Window.doDispatchToComponent(Window.java:1258)
       at org.olat.core.gui.components.Window.dispatchRequest(Window.java:429)
       at org.olat.core.gui.components.Window.doDispatchRequest(Window.java:310)
       at org.olat.core.gui.components.AbstractComponent.dispatchRequest(AbstractComponent.java:193)
       at org.olat.dispatcher.AuthenticatedDispatcher.processValidDispatchURI(AuthenticatedDispatcher.java:282)
       at org.olat.dispatcher.AuthenticatedDispatcher.execute(AuthenticatedDispatcher.java:194)
       at org.olat.core.servlets.OpenOLATServlet.executeUserRequest(OpenOLATServlet.java:269)
       at org.olat.core.servlets.OpenOLATServlet.doPost(OpenOLATServlet.java:216)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
       at org.olat.core.servlets.OpenOLATServlet.service(OpenOLATServlet.java:160)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
       at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
       at org.olat.core.servlets.HeadersFilter.doFilter(HeadersFilter.java:97)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
       at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
       at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:479)
       at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
       at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:800)
       at org.apache.tomcat.util.net.Nio2Endpoint$SocketProcessor.doRun(Nio2Endpoint.java:1699)
       at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
       at org.apache.tomcat.util.net.AbstractEndpoint.processSocket(AbstractEndpoint.java:1050)
       at org.apache.tomcat.util.net.Nio2Endpoint$Nio2SocketWrapper$4.completed(Nio2Endpoint.java:630)
       at org.apache.tomcat.util.net.Nio2Endpoint$Nio2SocketWrapper$4.completed(Nio2Endpoint.java:608)
       at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:126)
       at sun.nio.ch.Invoker$2.run(Invoker.java:218)
       at sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
       at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
       at java.lang.Thread.run(Thread.java:748) Caused by: javax.persistence.RollbackException: Error while committing the transaction
       at org.hibernate.internal.ExceptionConverterImpl.convertCommitException(ExceptionConverterImpl.java:81)
       at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:104)
       at org.olat.core.commons.persistence.DBImpl.commit(DBImpl.java:530)
      ... 41 more Caused by: javax.persistence.PersistenceException: org.hibernate.exception.ConstraintViolationException: could not execute statement
       at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:154)
       at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:181)
       at org.hibernate.internal.ExceptionConverterImpl.convertCommitException(ExceptionConverterImpl.java:65) ... 43 more Caused by: org.hibernate.exception.ConstraintViolationException: could not execute statement
       at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:109)
       at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)
       at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113)
       at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:99)
       at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:200)
       at org.hibernate.engine.jdbc.batch.internal.NonBatchingBatch.addToBatch(NonBatchingBatch.java:46)
       at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:3572)
       at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:3832)
       at org.hibernate.action.internal.EntityDeleteAction.execute(EntityDeleteAction.java:124)
       at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:604)
       at org.hibernate.engine.spi.ActionQueue.lambda$executeActions$1(ActionQueue.java:478)
       at java.util.LinkedHashMap.forEach(LinkedHashMap.java:684)
       at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:475)
       at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:348)
       at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:40)
       at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:102)
       at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1363)
       at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:454)
       at org.hibernate.internal.SessionImpl.flushBeforeTransactionCompletion(SessionImpl.java:3213)
       at org.hibernate.internal.SessionImpl.beforeTransactionCompletion(SessionImpl.java:2381)
       at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.beforeTransactionCompletion(JdbcCoordinatorImpl.java:447)
       at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.beforeCompletionCallback(JdbcResourceLocalTransactionCoordinatorImpl.java:183)
       at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.access$300(JdbcResourceLocalTransactionCoordinatorImpl.java:40)
       at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:281)
       at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:101) ... 42 more Caused by: org.postgresql.util.PSQLException: ERROR: update or delete on table "o_vfs_metadata" violates foreign key constraint "fvers_to_meta_idx" on table "o_vfs_revision" Detail: Key (id)=(249744) is still referenced from table "o_vfs_revision".
       at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2440)
       at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2183)
       at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:308)
       at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:441)
       at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:365)
       at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:150)
       at org.postgresql.jdbc.PgPreparedStatement.executeUpdate(PgPreparedStatement.java:127)
       at org.apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:87)
       at org.apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:87)
       at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:197) ... 62 more
      

        Attachments

          Activity

            People

            Assignee:
            srosse Stéphane Rossé
            Reporter:
            srosse Stéphane Rossé
            Tester:
            Mandy Menzel
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: