This issue has been created
There are 4 updates, 2 comments.
 
 
XWiki Platform / cid:jira-generated-image-avatar-bde122dc-1dca-4476-91b6-d6f3a353a84a XWIKI-23136 Open

Unable to save a page as an original version during realtime session on it creation

 
View issue   ยท   Add comment
 

Issue created

 
cid:jira-generated-image-avatar-93b3ae9c-8fab-426f-9dba-2df2209d6f96 Nikita Petrenko created this issue on 24/Apr/25 09:42
 
Summary: Unable to save a page as an original version during realtime session on it
Issue Type: cid:jira-generated-image-avatar-bde122dc-1dca-4476-91b6-d6f3a353a84a Bug
Affects Versions: 17.3.0-rc-1
Assignee: Unassigned
Components: Realtime
Created: 24/Apr/25 09:42
Priority: cid:jira-generated-image-static-major-c4b2950d-8d66-4aa5-8ad6-3a98a0fb8c6f Major
Reporter: Nikita Petrenko
Description:

Steps to reproduce:

  1. Logging in as an XWiki admin and initiate the creation of the page on XWiki
  2. Specify a dummy title
  3. In the realtime toolbar (at the bottom of the page), select "Summarize & Done" from the drop-down menu
  4. Provide the summary as "Initial version"
  5. Click Done

Actual result

After this, you will not finish creating the page; however, the changes will be recorded if you click the history icon, the text will be marked as "Saved", and the history of changes from version 1.1 and others will be displayed if you try to save the page a second time.

The browser prints this error log

  Uncaught (in promise) TypeError: Cannot set properties of null (setting 'checked') toolbar.js:200
    at r._saveChangeSummary (toolbar.js:200:7)
    at HTMLButtonElement.<anonymous> (toolbar.js:137:14)
    at HTMLButtonElement.dispatch (jquery.min.js?r=1:2:40035)
    at v.handle (jquery.min.js?r=1:2:38006)

Tomcat contains this error log

2025-04-24 10:26:52,783 [http-nio-7635-exec-8 - http://localhost:7635/xwiki/bin/edit/Sandbox/Page%20for%20checking%20new%20collaboration%20feature/] ERROR c.x.x.a.XWiki                  - Failed to access revision [undefined] of document xwiki:Sandbox.Page for checking new collaboration feature.WebHome()
org.suigeneris.jrcs.rcs.InvalidVersionNumberException: undefined
        at org.suigeneris.jrcs.rcs.Version.<init>(Version.java:120)
        at com.xpn.xwiki.store.XWikiHibernateVersioningStore.loadXWikiDoc(XWikiHibernateVersioningStore.java:250)
        at com.xpn.xwiki.internal.doc.DatabaseDocumentRevisionProvider.loadRevision(DatabaseDocumentRevisionProvider.java:95)
        at com.xpn.xwiki.internal.doc.DatabaseDocumentRevisionProvider.getRevision(DatabaseDocumentRevisionProvider.java:78)
        at com.xpn.xwiki.internal.doc.DatabaseDocumentRevisionProvider.getRevision(DatabaseDocumentRevisionProvider.java:61)
        at com.xpn.xwiki.internal.doc.DefaultDocumentRevisionProvider.getRevision(DefaultDocumentRevisionProvider.java:103)
        at com.xpn.xwiki.api.XWiki.getDocument(XWiki.java:678)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:571)
        at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:554)
        at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:221)
        at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:368)
        at org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:704)
        at org.apache.velocity.runtime.parser.node.ASTExpression.value(ASTExpression.java:75)
        at org.apache.velocity.runtime.parser.node.ASTSetDirective.render(ASTSetDirective.java:242)
        at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
        at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:439)
        at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:190)
        at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:439)
        at org.apache.velocity.Template.merge(Template.java:358)
        at org.apache.velocity.Template.merge(Template.java:262)
        at org.xwiki.velocity.internal.InternalVelocityEngine.evaluate(InternalVelocityEngine.java:233)
        at com.xpn.xwiki.internal.template.VelocityTemplateEvaluator.evaluateContent(VelocityTemplateEvaluator.java:107)
        at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.evaluateContent(TemplateAsyncRenderer.java:219)
        at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.renderVelocity(TemplateAsyncRenderer.java:174)
        at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.render(TemplateAsyncRenderer.java:135)
        at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.render(TemplateAsyncRenderer.java:54)
        at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.lambda$syncRender$0(DefaultAsyncRendererExecutor.java:284)
        at com.xpn.xwiki.internal.security.authorization.DefaultAuthorExecutor.call(DefaultAuthorExecutor.java:98)
        at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.syncRender(DefaultAsyncRendererExecutor.java:284)
        at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.render(DefaultAsyncRendererExecutor.java:267)
        at org.xwiki.rendering.async.internal.block.DefaultBlockAsyncRendererExecutor.render(DefaultBlockAsyncRendererExecutor.java:154)
        at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:904)
        at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:866)
        at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:846)
        at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:832)
        at com.xpn.xwiki.internal.template.DefaultTemplateManager.render(DefaultTemplateManager.java:91)
        at com.xpn.xwiki.internal.template.DefaultTemplateManager.render(DefaultTemplateManager.java:85)
        at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:2570)
        at com.xpn.xwiki.web.Utils.parseTemplate(Utils.java:180)
        at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:650)
        at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:338)
        at com.xpn.xwiki.web.LegacyActionServlet.service(LegacyActionServlet.java:111)
        at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
        at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:123)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
        at org.xwiki.wysiwyg.filter.ConversionFilter.doFilter(ConversionFilter.java:65)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
        at org.xwiki.container.servlet.filters.internal.SetHTTPHeaderFilter.doFilter(SetHTTPHeaderFilter.java:66)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
        at org.xwiki.resource.servlet.RoutingFilter.doFilter(RoutingFilter.java:135)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
        at org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:211)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
        at org.xwiki.container.servlet.filters.internal.SafeRedirectFilter.doFilter(SafeRedirectFilter.java:106)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
        at org.xwiki.container.servlet.filters.internal.ResolveRelativeRedirectFilter.doFilter(ResolveRelativeRedirectFilter.java:129)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
        at org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:120)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
        at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:663)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344)
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397)
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
        at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
        at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
        at java.base/java.lang.Thread.run(Thread.java:1583)

Expected result

Page is created with history reversion v1.1 and provided summary.

 
 

4 updates

 
cid:jira-generated-image-avatar-93b3ae9c-8fab-426f-9dba-2df2209d6f96 Changes by Nikita Petrenko on 24/Apr/25 09:49
 
Summary: Unable to save a page as an original version during realtime session on it creation
Attachment: reproduced steps.mp4
Priority: Major Blocker
Labels: regression
 
 

2 comments

 
cid:jira-generated-image-avatar-93b3ae9c-8fab-426f-9dba-2df2209d6f96 Nikita Petrenko on 24/Apr/25 09:47
 

and the history of changes from version 1.1 and others will be displayed if you try to save the page a second time.

During recording video I couldn't reprodice this part of result that I had before recording

 
cid:jira-generated-image-avatar-93b3ae9c-8fab-426f-9dba-2df2209d6f96 Nikita Petrenko on 24/Apr/25 09:47
 
{quote}and the history of changes from version 1.1 and others will be displayed if you try to save the page a second time. {quote}

During recording video I couldn't
reprodice reproduce this part of result that I had before recording
{quote}