Uploaded image for project: 'XWiki Platform'
  1. XWiki Platform
  2. XWIKI-13402

Error when creating a document on a deep hierarchy or a shallow hierarchy with long document titles

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • Critical
    • None
    • 8.1-rc-1
    • Old Core
    • None
    • Unknown

    Description

      How to reproduce:

      • create three documents in a wiki, one under the other (in the nested documents hierarchy) with the following names:
        • Company Presentation Events
        • Presentation from 10 december 2015 at the Fourth edition of the International Conference for the Environmental Responsibility (ICER 2015)
        • Intervention from the President of the Interdisciplinary Commission for Responsible Development of Alternative Fuels (ICRDA)
      • Upon saving the last document in this hierarchy, an error will be displayed:
        Notice
        A problem occurred while trying to process your request. Please contact the webmaster if this happens again.
        
        
        
        Detailed information:
            Error number 3201 in 3: Exception while saving document englishwiki:Company Presentation Events.Presentation from 10 december 2015 at the Fourth edition of the International Conference for the Environmental Responsibility (ICER 2015).Intervention from the President of the Interdisciplinary Commission for Responsible Development of Alternative Fuels (ICRDA).WebHome
        com.xpn.xwiki.XWikiException: Error number 3201 in 3: Exception while saving document englishwiki:Company Presentation Events.Presentation from 10 december 2015 at the Fourth edition of the International Conference for the Environmental Responsibility (ICER 2015).Intervention from the President of the Interdisciplinary Commission for Responsible Development of Alternative Fuels (ICRDA).WebHome
        	at com.xpn.xwiki.store.XWikiHibernateStore.saveXWikiDoc(XWikiHibernateStore.java:659)
        	at com.xpn.xwiki.store.XWikiCacheStore.saveXWikiDoc(XWikiCacheStore.java:167)
        	at com.xpn.xwiki.store.XWikiCacheStore.saveXWikiDoc(XWikiCacheStore.java:160)
        	at com.xpn.xwiki.XWiki.saveDocument(XWiki.java:1574)
        	at com.xpn.xwiki.web.SaveAction.save(SaveAction.java:181)
        	at com.xpn.xwiki.web.SaveAction.action(SaveAction.java:223)
        	at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:429)
        	at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:191)
        	at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
        	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
        	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
        	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
        	at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
        	at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
        	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
        	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        	at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:115)
        	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        	at org.xwiki.wysiwyg.server.filter.ConversionFilter.doFilter(ConversionFilter.java:127)
        	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        	at org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:208)
        	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        	at org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:111)
        	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:747)
        	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:485)
        	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:410)
        	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:337)
        	at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:105)
        	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        	at org.xwiki.wysiwyg.server.filter.ConversionFilter.doFilter(ConversionFilter.java:124)
        	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        	at org.xwiki.container.servlet.filters.internal.SetHTTPHeaderFilter.doFilter(SetHTTPHeaderFilter.java:63)
        	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        	at org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:208)
        	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        	at org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:111)
        	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        	at org.xwiki.resource.servlet.RoutingFilter.doFilter(RoutingFilter.java:137)
        	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:221)
        	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
        	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
        	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
        	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
        	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
        	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
        	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
        	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
        	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
        	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)
        Caused by: org.hibernate.HibernateException: Failed to commit or rollback transaction. Root cause []
        	at com.xpn.xwiki.store.XWikiHibernateBaseStore.endTransaction(XWikiHibernateBaseStore.java:1022)
        	at com.xpn.xwiki.store.XWikiHibernateStore.saveXWikiDoc(XWikiHibernateStore.java:650)
        	... 70 more
        Caused by: org.hibernate.exception.DataException: Could not execute JDBC batch update
        	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:102)
        	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
        	at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275)
        	at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:114)
        	at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:109)
        	at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:244)
        	at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2411)
        	at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2874)
        	at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:79)
        	at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:273)
        	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:265)
        	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:184)
        	at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
        	at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51)
        	at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1216)
        	at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:383)
        	at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:133)
        	at com.xpn.xwiki.store.XWikiHibernateBaseStore.endTransaction(XWikiHibernateBaseStore.java:1015)
        	... 71 more
        Caused by: java.sql.BatchUpdateException: Data truncation: Data too long for column 'XWD_FULLNAME' at row 1
        	at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:2054)
        	at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1467)
        	at org.apache.commons.dbcp2.DelegatingStatement.executeBatch(DelegatingStatement.java:345)
        	at org.apache.commons.dbcp2.DelegatingStatement.executeBatch(DelegatingStatement.java:345)
        	at org.apache.commons.dbcp2.DelegatingStatement.executeBatch(DelegatingStatement.java:345)
        	at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
        	at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
        	... 86 more
        Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'XWD_FULLNAME' at row 1
        	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4094)
        	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4028)
        	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2490)
        	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2651)
        	at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2734)
        	at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2155)
        	at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2458)
        	at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:2006)
        	... 92 more
        

      This seems to be due to the limit of 255 characters for the fullname column of a document in the database.

      Please note that this is not a new issue, the limit has always been at 255 characters, but with the nested spaces implementation and the fact that the fullname of the document now contains the whole hierarchy up to the root, this limit can be touched much easier than before.
      Note that the issue can be reproduced also with shorter document names, but with deeper hierarchy.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              lucaa Anca Luca
              Votes:
              2 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated: