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

Oracle error ORA-01795 occurs when exporting all wiki pages into a XAR file

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • Major
    • None
    • 16.10.7, 17.3.0
    • Old Core - XAR Export
    • Oracle DB 19.3 Docker XWiki image, XWiki 17.3.0
    • Unknown

    Description

      Prerequisites:

      • Configurated Oracle DB
      • Configurated XWiki instance that uses Oracle DB
      • Main wiki or subwiki with more than 1000 pages

      Steps to reproduce:

      1. Being as XWiki Admin
      2. Visit Wiki Administration → Content → Export
      3. Select filter "Created and modified pages" and make sure to select all
      4. Select with history
      5. (Optional) provide name for archive
      6. Perform Export

      Actual result

      Depending on DocumentTree structure on your XWiki, you'll end with not full exported wiki in XAR (only some of the pages will be included) and XWiki will return error:

      2025-05-14 12:20:13.709 [qtp1514840818-146 - http://laptop-0t4ck53s:8080/xwiki/wiki/testsubwiki/export/XWiki/XWikiPreferences?editor=globaladmin&section=Export] ERROR .i.e.DocumentSelectionResolver - Failed to retrieve the selected documents from wiki [testsubwiki]. 
      org.xwiki.query.QueryException: Exception while executing query. Query statement = [where (doc.fullName not in (?1))]
      	at com.xpn.xwiki.store.hibernate.query.HqlQueryExecutor.execute(HqlQueryExecutor.java:184)
      	at org.xwiki.query.internal.DefaultQueryExecutorManager.execute(DefaultQueryExecutorManager.java:72)
      	at org.xwiki.query.internal.DefaultQuery.execute(DefaultQuery.java:306)
      	at com.xpn.xwiki.internal.export.DocumentSelectionResolver.executeQuery(DocumentSelectionResolver.java:270)
      	at com.xpn.xwiki.internal.export.DocumentSelectionResolver.lambda$getSelectedDocuments$0(DocumentSelectionResolver.java:185)
      	at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
      	at java.base/java.util.Iterator.forEachRemaining(Unknown Source)
      	at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Unknown Source)
      	at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
      	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
      	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source)
      	at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
      	at java.base/java.util.stream.ReferencePipeline.collect(Unknown Source)
      	at com.xpn.xwiki.internal.export.DocumentSelectionResolver.getSelectedDocuments(DocumentSelectionResolver.java:186)
      	at com.xpn.xwiki.internal.export.DocumentSelectionResolver.getSelectedDocuments(DocumentSelectionResolver.java:167)
      	at com.xpn.xwiki.internal.export.DocumentSelectionResolver.getSelectedDocuments(DocumentSelectionResolver.java:143)
      	at com.xpn.xwiki.web.ExportAction.exportXAR(ExportAction.java:264)
      	at com.xpn.xwiki.web.ExportAction.render(ExportAction.java:93)
      	at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:637)
      	at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:339)
      	at com.xpn.xwiki.web.LegacyActionServlet.service(LegacyActionServlet.java:108)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
      	at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:122)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
      	at org.xwiki.wysiwyg.filter.ConversionFilter.doFilter(ConversionFilter.java:61)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
      	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
      	at org.xwiki.container.servlet.filters.internal.SetHTTPHeaderFilter.doFilter(SetHTTPHeaderFilter.java:63)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
      	at org.xwiki.resource.servlet.RoutingFilter.doFilter(RoutingFilter.java:132)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
      	at org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:208)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
      	at org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:111)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
      	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
      	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
      	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
      	at org.apache.catalina.valves.RequestFilterValve.process(RequestFilterValve.java:378)
      	at org.apache.catalina.valves.RemoteAddrValve.invoke(RemoteAddrValve.java:56)
      	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
      	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
      	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
      	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
      	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360)
      	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
      	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
      	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)
      	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743)
      	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
      	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
      	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
      	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
      	at java.base/java.lang.Thread.run(Unknown Source)
      Caused by: com.xpn.xwiki.XWikiException: Error number 0 in 3: Exception while hibernate execute
      	at com.xpn.xwiki.store.XWikiHibernateBaseStore.execute(XWikiHibernateBaseStore.java:835)
      	at com.xpn.xwiki.store.XWikiHibernateBaseStore.executeRead(XWikiHibernateBaseStore.java:902)
      	at com.xpn.xwiki.store.hibernate.query.HqlQueryExecutor.execute(HqlQueryExecutor.java:169)
      	... 63 common frames omitted
      Caused by: javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not extract ResultSet
      	at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:154)
      	at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1626)
      	at com.xpn.xwiki.store.hibernate.query.HqlQueryExecutor.lambda$execute$0(HqlQueryExecutor.java:172)
      	at com.xpn.xwiki.store.XWikiHibernateBaseStore.execute(XWikiHibernateBaseStore.java:826)
      	... 65 common frames omitted
      Caused by: org.hibernate.exception.SQLGrammarException: could not extract ResultSet
      	at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:63)
      	at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:37)
      	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.extract(ResultSetReturnImpl.java:67)
      	at org.hibernate.loader.Loader.getResultSet(Loader.java:2322)
      	at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:2075)
      	at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:2037)
      	at org.hibernate.loader.Loader.doQuery(Loader.java:956)
      	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:357)
      	at org.hibernate.loader.Loader.doList(Loader.java:2868)
      	at org.hibernate.loader.Loader.doList(Loader.java:2850)
      	at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2682)
      	at org.hibernate.loader.Loader.list(Loader.java:2677)
      	at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:540)
      	at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:400)
      	at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:218)
      	at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1459)
      	at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1649)
      	at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1617)
      	... 67 common frames omitted
      Caused by: java.sql.SQLSyntaxErrorException: ORA-01795: maximum number of expressions in a list is 1000
      
      	at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:630)
      	at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:564)
      	at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1151)
      	at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:771)
      	at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:299)
      	at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:498)
      	at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:152)
      	at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:937)
      	at oracle.jdbc.driver.OracleStatement.prepareDefineBufferAndExecute(OracleStatement.java:1172)
      	at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1101)
      	at oracle.jdbc.driver.OracleStatement.executeSQLSelect(OracleStatement.java:1426)
      	at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1309)
      	at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3746)
      	at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3855)
      	at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1098)
      	at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:123)
      	at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:123)
      	at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:123)
      	at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:57)
      	... 82 common frames omitted
      Caused by: oracle.jdbc.OracleDatabaseException: ORA-01795: maximum number of expressions in a list is 1000
      
      	at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:637)
      	... 100 common frames omitted
      

      Expected result

      The export of wiki has been completed and includes all pages.

      Note

      I used this snippet to create dummy pages on main Wiki.

      That requested parameters for Export in URL will be this one:

      filter=pristineInstalledExtensionDocument&history=true&attachment_jrcs=false&optimized=true&name=test&description=&author=XWiki.npetrenko&licence=&version

      The ORA-01795 explains limitation.

      The UI of XAR Export was changed since XWiki 11.10, I only found this release notes.

      Attachments

        Activity

          People

            surli Simon Urli
            npetrenko Nikita Petrenko
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated: