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

Calling services.wysiwyg.fromAnnotatedXHTML from jobMacro crash with npe

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • Major
    • None
    • 17.4.2, 17.6.0
    • Scripting
    • None
    • Unknown

    Description

      Step to reproduce:

      • Install the job-macro extension
      • create a page with this content:
      {{job groupId="testAnnotated" id="testAnnotated" start="true"}}
      {{groovy}}
      logger = services.logging.getLogger(doc.fullName);
      services.logging.setLevel(doc.fullName, org.xwiki.logging.LogLevel.INFO);
      logger.info("calling")
      try {
        def x = services.wysiwyg.fromAnnotatedXHTML("<p>Hello</p>", 'xwiki/2.1')
        logger.info("OK")
      } catch (Exception e) {
        logger.error('Unhandled exception', e)
      }
      {{/groovy}}
      {{/job}}
      

      Expected: the macro work and log "OK"

      Currently: it fail with this error:

      Cannot invoke "org.xwiki.container.servlet.ServletSession.getSession()" because the return value of "org.xwiki.container.Container.getSession()" is null
      class java.lang.NullPointerException: Cannot invoke "org.xwiki.container.servlet.ServletSession.getSession()" because the return value of "org.xwiki.container.Container.getSession()" is null
          at org.xwiki.store.filesystem.internal.DefaultTemporaryAttachmentSessionsManager.getSession(DefaultTemporaryAttachmentSessionsManager.java:78)
          at org.xwiki.store.filesystem.internal.DefaultTemporaryAttachmentSessionsManager.getOrCreateSession(DefaultTemporaryAttachmentSessionsManager.java:84)
          at org.xwiki.store.filesystem.internal.DefaultTemporaryAttachmentSessionsManager.getUploadedAttachments(DefaultTemporaryAttachmentSessionsManager.java:162)
          at org.xwiki.wysiwyg.script.WysiwygEditorScriptService.injectTemoraryAttachments(WysiwygEditorScriptService.java:422)
          at org.xwiki.wysiwyg.script.WysiwygEditorScriptService.createSecurityDocument(WysiwygEditorScriptService.java:415)
          at org.xwiki.wysiwyg.script.WysiwygEditorScriptService.fromAnnotatedXHTML(WysiwygEditorScriptService.java:376)
          at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
          at Script59.run(Script59.groovy:5)
          at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:331)
          at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:161)
          at org.xwiki.rendering.macro.script.AbstractJSR223ScriptMacro.eval(AbstractJSR223ScriptMacro.java:338)
          at org.xwiki.rendering.macro.script.AbstractJSR223ScriptMacro.evaluateBlock(AbstractJSR223ScriptMacro.java:238)
          at org.xwiki.rendering.macro.script.AbstractJSR223ScriptMacro.evaluateBlock(AbstractJSR223ScriptMacro.java:193)
          at org.xwiki.rendering.macro.script.AbstractJSR223ScriptMacro.evaluateBlock(AbstractJSR223ScriptMacro.java:56)
          at org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:182)
          at org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:58)
          at org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transform(MacroTransformation.java:441)
          at org.xwiki.rendering.internal.transformation.DefaultRenderingContext.transformInContext(DefaultRenderingContext.java:183)
          at org.xwiki.rendering.internal.macro.DefaultMacroContentParser.performTransformation(DefaultMacroContentParser.java:212)
          at org.xwiki.rendering.internal.macro.DefaultMacroContentParser.createXDOM(DefaultMacroContentParser.java:170)
          at org.xwiki.rendering.internal.macro.DefaultMacroContentParser.parse(DefaultMacroContentParser.java:117)
          at org.xwiki.rendering.internal.macro.DefaultMacroContentParser.parse(DefaultMacroContentParser.java:94)
          at org.xwiki.rendering.internal.macro.DefaultMacroContentParser.parse(DefaultMacroContentParser.java:87)
          at wiki:xwiki//org.xwiki.contrib.jobmacro.internal.JobMacroJob.runInternal(JobMacroJob.java:154)
          at org.xwiki.job.AbstractJob.runInContext(AbstractJob.java:246)
          at wiki:xwiki//org.xwiki.contrib.jobmacro.internal.JobMacroJob.run(JobMacroJob.java:120)
          at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
          at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
          at java.base/java.lang.Thread.run(Thread.java:840)
      

      Note, calling from a page this way work:

      {{groovy}}
      services.wysiwyg.fromAnnotatedXHTML("<p>Hello</p>", 'xwiki/2.1')
      {{/groovy}}
      

      So the issue is probably related to the context in the job-macro.

      Attachments

        Activity

          People

            josue Josué Tille
            josue Josué Tille
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: