Uploaded image for project: 'Publication Workflow Application'
  1. Publication Workflow Application
  2. XAWORKFLOW-4

Merge error when publishing documents with FS attachments on 5.4.5

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • 1.4
    • 1.3
    • None
    • XWiki Enterprise 5.4.5 with Filesystem attachments enabled

    Description

      Steps to reproduce:

      • Install a local XWiki 5.4.5 with filesystem attachments
      • Install the workflow extension 1.3 and create a new workflow
      • Create a draft document and add an attachment
      • Switch the draft though all the workflow states

      Result: at the last publish step the script is listing a merge error:

      org.xwiki.rendering.macro.MacroExecutionException: Failed to evaluate Velocity Macro for content [
      #macro(getUsersFromGroup $target, $wiki)
        #set($baseRef = $services.model.createDocumentReference($wiki, 'Main', 'WebHome'))
        #set($targetDocRef = $services.model.resolveDocument($target, 'explicit', $baseRef))
        #set($targetDoc = $xwiki.getDocument($targetDocRef))
        #set($groups = $targetDoc.getObjects('XWiki.XWikiGroups'))
        #set($users = $targetDoc.getObjects('XWiki.XWikiUsers'))
        #foreach($user in $users)
          #set($mail = $user.getProperty("email").value)
          #if($!mail != '')
            #if($recipients && $recipients != "")
              #set($recipients = "$recipients, $mail")
            #else
              #set($recipients = $mail)
            #end
          #end
        #end
        #foreach($group in $groups)
          #set($person = $group.getProperty('member').value)  
          #if($person && $!person != '')
            #getUsersFromGroup("$person", $targetDoc.getWiki())
          #end
        #end
      #end
      
      #set($defaultMail = $xwiki.getXWikiPreference('admin_email', 'mailer@xwiki.localdomain.com'))
      #set($action = "$!request.action")
      #set($workflowdoc = "$!request.workflowdoc")
      ## get the document to which to redirect after the action is done
      #set($redirectdoc = "$!request.redirectdoc")
      #if ($redirectdoc == '')
        ## if none specified, redirect to the workflowdoc
        #set($redirectdoc = $workflowdoc)
      #end
      #if($workflowdoc == "" || $action == "")
        {{info}}$msg.get('workflow.script.notenoughparams'){{/info}}
      #else
        #set($workflowDocRef = $services.model.resolveDocument($workflowdoc))
        #if($request.cancel)  
          $response.sendRedirect($xwiki.getURL($workflowDocRef, 'view', ''))
        #end
        workflow doc ref: $workflowDocRef
        Action : $action
        #if($action == "start")
          #set($targetReference = $services.model.createDocumentReference("", "$!request.space", "$!request.page"))
          #set($workflowConfig = "$request.workflow")
          ##TODO : Check that the target and the existing doc are differents
          #if($targetReference.equals($workflowDocRef))
            $response.sendRedirect($xwiki.getURL($workflowDocRef, 'view', 'same=true'))
          #else
            #set($result = $services.publicationworkflow.startWorkflow($workflowDocRef, $workflowConfig, $targetReference))
          #end
        #elseif($action == 'startastarget')
          #set($workflowConfig = "$!request.workflow")
          #if ($workflowConfig == '')
            $response.sendRedirect($xwiki.getURL($redirectdoc, 'view', 'error=missingparams'))
          #elseif(!$xwiki.exists($workflowDocRef))
            $response.sendRedirect($xwiki.getURL($redirectdoc, 'view', 'error=targetdoesnotexist'))
          #else
            #set($result = $services.publicationworkflow.startWorkflowAsTarget($workflowDocRef, $workflowConfig))
            #if (!$result)
              $response.sendRedirect($xwiki.getURL($redirectdoc, 'view', 'error=invalidpage'))
            #end
          #end
        #elseif ($action == "submitformoderation")
          #set($result = $services.publicationworkflow.submitForModeration($workflowDocRef))
        #elseif ($action == "submitforvalidation")
          #set($result = $services.publicationworkflow.submitForValidation($workflowDocRef))
        #elseif ($action == "validate")
          #set($result = $services.publicationworkflow.validate($workflowDocRef))
        #elseif ($action == "publish")
          #set($result = $services.publicationworkflow.publish($workflowDocRef))
        #elseif ($action == "refusemoderation" && !$request.cancel)
          #set($result = $services.publicationworkflow.refuseModeration($workflowDocRef, "$!request.reason"))
        #elseif ($action == "refusevalidation" && !$request.cancel)
          #set($result = $services.publicationworkflow.refuseValidation($workflowDocRef, "$!request.reason"))
        #elseif ($action == "editDraft")
          #set($result = $services.publicationworkflow.editDraft($workflowDocRef))
        #elseif ($action == "getEditableDraft")
          ## parameter is the target document, check if a draft already exists
          #set($existingDraft = $services.publicationworkflow.getDraftDocument($workflowDocRef))
          #if ($existingDraft)
            #set($result = $services.publicationworkflow.editDraft($existingDraft))
            #set($docToShow = $existingDraft)
          #else
            #set($result = $services.publicationworkflow.createDraftDocument($workflowDocRef))
            #set($docToShow = $result)
          #end
        #elseif ($action == 'unpublish' && !$request.cancel)
          #set($erase = ($request.crush == '1'))
          #set($result = $services.publicationworkflow.unpublish($workflowDocRef, $erase))
        #elseif ($action == 'archive')
          #set($result = $services.publicationworkflow.archive($workflowDocRef))
        #elseif ($action == 'publishfromarchive')
          #set($result = $services.publicationworkflow.publishFromArchive($workflowDocRef))
        #elseif ($action == 'backtodraft' && !$request.cancel)
          #set($result = $services.publicationworkflow.unarchive($workflowDocRef, false))
        #end       
        
        #if ($result)
          #if($action == 'submitformoderation' || $action == 'submitforvalidation' || $action == 'refusemoderation' || $action=='refusevalidation')
            #set($recipients = '')
            #set($document = $xwiki.getDocument($workflowDocRef))
            #set($workflowObj = $document.getObject("PublicationWorkflow.PublicationWorkflowClass"))
            #set($workflow = $workflowObj.getProperty("workflow").value)
            #set($workflowDoc=$xwiki.getDocument($workflow))
            #set($group = $workflowDoc.getObject("PublicationWorkflow.PublicationWorkflowConfigClass"))
      
            #if($action=='submitformoderation' || $action=='refusevalidation')   ##In both cases, we should send a mail to the moderators, if there is any.
              #set($moderators = $group.getProperty('moderator').value)
              #if($moderators != '')
                #getUsersFromGroup($moderators)
              #elseif($action=='submitformoderation')
                #set($webmasters = $group.getProperty('validator').value)
                #getUsersFromGroup($webmasters)
              #else
                #set($contributors = $group.getProperty('contributor').value)
                #getUsersFromGroup($contributors)
              #end
              #if($action=='submitformoderation')
                #set($map={'document':"$xwiki.getDocument($workflowdoc).getDisplayTitle()", 'url':"$xwiki.getDocument($workflowDocRef).getExternalURL()"})
                #set($discard = $xwiki.mailsender.sendMessageFromTemplate($defaultMail, $recipients, $xwiki.null, $xwiki.null, "fr", "PublicationWorkflow.MailTemplate : Demande de validation", $map))
              #else
                #set($map= {'document':"$xwiki.getDocument($workflowdoc).getDisplayTitle()", 'url':"$xwiki.getDocument($workflowDocRef).getExternalURL()", 'reason':"$!request.reason"})
                #set($discard = $xwiki.mailsender.sendMessageFromTemplate($defaultMail, $recipients, $xwiki.null, $xwiki.null, "fr", "PublicationWorkflow.MailTemplate : Refus de publication", $map))
              #end
            #elseif($action == 'submitforvalidation' || $action=='unpublish')
              #set($webmasters = $group.getProperty('validator').value)
              #getUsersFromGroup($webmasters)
              #set($map={'document':"$xwiki.getDocument($workflowdoc).getDisplayTitle()", 'url':"$xwiki.getDocument($workflowDocRef).getExternalURL()"})
              #if($action == 'submitforvalidation')
                #set($discard = $xwiki.mailsender.sendMessageFromTemplate($defaultMail, $recipients, $xwiki.null, $xwiki.null, "fr", "PublicationWorkflow.MailTemplate : Demande de publication", $map))
              #else
                #set($discard = $xwiki.mailsender.sendMessageFromTemplate($defaultMail, $recipients, $xwiki.null, $xwiki.null, "fr", "PublicationWorkflow.MailTemplate : Dépublication", $map))
              #end
            #elseif($action == 'refusemoderation')
              #set($contributors = $group.getProperty('contributor').value)
              #getUsersFromGroup($contributors)
              #set($map={'document':"$xwiki.getDocument($workflowdoc).getDisplayTitle()", 'url':"$xwiki.getDocument($workflowDocRef).getExternalURL()", 'reason':"$!request.reason"})
              #set($discard = $xwiki.mailsender.sendMessageFromTemplate($defaultMail, $recipients, $xwiki.null, $xwiki.null, "fr", "PublicationWorkflow.MailTemplate : Refus de validation", $map))
            #end
          #end
      
          #if($action == 'unpublish' || $action=='backtodraft')          ##If the document is being unpublished or unarchived we redirect to the draft
            #set($draft = $services.publicationworkflow.getDraftDocument($workflowDocRef))
            $response.sendRedirect($xwiki.getURL($draft, 'view', ''))
          #elseif($action == 'publish')        ##If the document is being published we redirect to the final doc
            #set($workflowDoc = $xwiki.getDocument($workflowDocRef))
            #set($workflowObject = $workflowDoc.getObject("PublicationWorkflow.PublicationWorkflowClass"))
            #set($target = $workflowObject.getProperty('target').value)
            $response.sendRedirect($xwiki.getURL($target, 'view', ''))
          #elseif($action == 'getEditableDraft')## if we're starting a new edit session from the target, direct to the draft
            $response.sendRedirect($xwiki.getURL($docToShow, 'view', ''))
          #else
            ## in all other situations redirect to the document specified from the parameters
            $response.sendRedirect($xwiki.getURL($redirectdoc, 'view', ''))
          #end
        #else
          $msg.get('workflow.script.failed')
        #end
      #end]
      	at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:131)
      	at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:50)
      	at org.xwiki.rendering.macro.script.AbstractScriptMacro.evaluateBlock(AbstractScriptMacro.java:302)
      	at org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:198)
      	at org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:59)
      	at org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transformOnce(MacroTransformation.java:191)
      	at org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transform(MacroTransformation.java:132)
      	at org.xwiki.rendering.internal.transformation.DefaultTransformationManager.performTransformations(DefaultTransformationManager.java:87)
      	at org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:252)
      	at org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:125)
      	at org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:55)
      	at org.xwiki.display.internal.DefaultDocumentDisplayer.display(DefaultDocumentDisplayer.java:80)
      	at org.xwiki.display.internal.DefaultDocumentDisplayer.display(DefaultDocumentDisplayer.java:38)
      	at org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:113)
      	at org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:50)
      	at org.xwiki.display.internal.ConfiguredDocumentDisplayer.display(ConfiguredDocumentDisplayer.java:67)
      	at org.xwiki.display.internal.ConfiguredDocumentDisplayer.display(ConfiguredDocumentDisplayer.java:41)
      	at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:997)
      	at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:976)
      	at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:1007)
      	at com.xpn.xwiki.api.Document.getRenderedContent(Document.java:619)
      	at sun.reflect.GeneratedMethodAccessor166.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:606)
      	at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:395)
      	at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:384)
      	at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:173)
      	at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:280)
      	at org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:567)
      	at org.apache.velocity.runtime.parser.node.ASTExpression.value(ASTExpression.java:71)
      	at org.apache.velocity.runtime.parser.node.ASTSetDirective.render(ASTSetDirective.java:142)
      	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
      	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
      	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:106)
      	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
      	at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:228)
      	at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:187)
      	at com.xpn.xwiki.render.XWikiVelocityRenderer.evaluate(XWikiVelocityRenderer.java:105)
      	at com.xpn.xwiki.internal.template.DefaultPrivilegedTemplateRenderer.evaluate(DefaultPrivilegedTemplateRenderer.java:125)
      	at com.xpn.xwiki.internal.template.DefaultPrivilegedTemplateRenderer.evaluateTemplate(DefaultPrivilegedTemplateRenderer.java:75)
      	at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:1687)
      	at com.xpn.xwiki.XWiki.parseTemplate(XWiki.java:1627)
      	at com.xpn.xwiki.api.XWiki.parseTemplate(XWiki.java:918)
      	at sun.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:606)
      	at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:395)
      	at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:384)
      	at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:173)
      	at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:280)
      	at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:369)
      	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
      	at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:216)
      	at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:311)
      	at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:230)
      	at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:207)
      	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
      	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:87)
      	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
      	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
      	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:106)
      	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
      	at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:228)
      	at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:187)
      	at com.xpn.xwiki.render.XWikiVelocityRenderer.evaluate(XWikiVelocityRenderer.java:105)
      	at com.xpn.xwiki.internal.template.DefaultPrivilegedTemplateRenderer.evaluate(DefaultPrivilegedTemplateRenderer.java:125)
      	at com.xpn.xwiki.internal.template.DefaultPrivilegedTemplateRenderer.evaluateTemplate(DefaultPrivilegedTemplateRenderer.java:75)
      	at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:1687)
      	at com.xpn.xwiki.web.Utils.parseTemplate(Utils.java:167)
      	at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:304)
      	at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:129)
      	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:755)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
      	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:669)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1448)
      	at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:121)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
      	at org.xwiki.wysiwyg.server.filter.ConversionFilter.doFilter(ConversionFilter.java:126)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
      	at com.xpn.xwiki.plugin.webdav.XWikiDavFilter.doFilter(XWikiDavFilter.java:66)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
      	at org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:208)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
      	at org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:111)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
      	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455)
      	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
      	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
      	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
      	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075)
      	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384)
      	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
      	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009)
      	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
      	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
      	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
      	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
      	at org.eclipse.jetty.server.Server.handle(Server.java:368)
      	at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:488)
      	at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:943)
      	at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1004)
      	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:861)
      	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
      	at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
      	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628)
      	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
      	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
      	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
      	at java.lang.Thread.run(Thread.java:745)
      Caused by: org.xwiki.velocity.XWikiVelocityException: Failed to evaluate content with id [xwiki:PublicationWorkflow.Script]
      	at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:247)
      	at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:187)
      	at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:124)
      	... 112 more
      Caused by: org.apache.velocity.exception.MethodInvocationException: Invocation of method 'publish' in  class org.xwiki.workflowpublication.internal.PublicationWorkflowService threw exception java.lang.NullPointerException at xwiki:PublicationWorkflow.Script[line 72, column 46]
      	at org.apache.velocity.runtime.parser.node.ASTMethod.handleInvocationException(ASTMethod.java:243)
      	at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:187)
      	at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:280)
      	at org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:567)
      	at org.apache.velocity.runtime.parser.node.ASTExpression.value(ASTExpression.java:71)
      	at org.apache.velocity.runtime.parser.node.ASTSetDirective.render(ASTSetDirective.java:142)
      	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
      	at org.apache.velocity.runtime.parser.node.ASTElseIfStatement.render(ASTElseIfStatement.java:92)
      	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:106)
      	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
      	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
      	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:106)
      	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
      	at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:228)
      	... 114 more
      Caused by: java.lang.NullPointerException
      	at com.xpn.xwiki.doc.XWikiDocument.merge(XWikiDocument.java:8503)
      	at org.xwiki.workflowpublication.internal.DefaultPublicationWorkflow.copyContentsToNewVersion(DefaultPublicationWorkflow.java:959)
      	at org.xwiki.workflowpublication.internal.DefaultPublicationWorkflow.publish(DefaultPublicationWorkflow.java:699)
      	at org.xwiki.workflowpublication.internal.PublicationWorkflowService.publish(PublicationWorkflowService.java:291)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:606)
      	at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:395)
      	at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:384)
      	at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:173)
      	... 126 more
      

      Attachments

        Activity

          People

            lucaa Anca Luca
            oana.tabaranu Elena-Oana Florea
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: