Uploaded image for project: 'Totem Application'
  1. Totem Application
  2. XTOTEM-56

Can't use Totem App when is installed on a XE version with nested spaces

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • Blocker
    • None
    • 1.3

    Description

      Follow the below steps to reproduce the issue:
      1. On XWiki7.3 or XWiki7.4M1 for example install Totem App
      2. Create a new Totem
      3. Add a section to the totem
      4. Click on Save

      A velocity error will be triggered and the totem is not accessible

      org.xwiki.rendering.macro.MacroExecutionException: Failed to evaluate Velocity Macro for content [#set($xwikipanelwidth = 0)
      #set($rightPanelsWidth= 0)
      
      ## set a couple of constants that we want to be able to edit fast.
      ## 1/ class items of the totem
      #set($totemItemClass = 'TotemCode.SimpleTotemItemClass')
      ## 2/ a couple of mappings between the different types of blocks and the items from this totem class that should be used. 
      ## TODO: Normally this should be demanded by the sheet somehow but I don't know exactly how for now :(
      ## NOTE: This approach base is no used for the moment
      #set($sheetFieldsMapping = {'DisplayerCode.ListDisplayerSheet' : ['date', 'doc.title', 'url'],  'DisplayerCode.EvenementDisplayer' : ['image', 'doc.title', 'url']})
      ## 3/ the page where the items to be displayed in totem blocks are held: the page called items in the current space
      #set($totemItemsURL = $xwiki.getURL('Items'))
      ## figure out if we're in edit mode. If we are but the document is loaded for editing in the wysiwyg, then pretend we're in view :) -- this makes include work
      #set($isEdit = ($xcontext.action == "inline" || $xcontext.action == "edit") && "$!request.xpage" != 'wysiwyginput')
      #set($enableEdit = "$!request.showEdit" == "true")
      #if (!$hasEdit)
        ## if user does not have edit right, editing is not enabled
        #set($enableEdit = false)
      #end
      ## put the edit url in a var, so that we go to the edit mode using this url whenever needed
      #set($editURL = $doc.getURL('view', 'showEdit=true'))
      #if (!$isEdit)
        ## include the extra ssx / jsx for the totem, as set in the totem object
        #set($extraSSX = $doc.getObject('TotemCode.TotemClass').getProperty('ssx').value)
        #if("$!extraSSX" != "")
          #set($discard = $xwiki.ssx.use($extraSSX))
        #end
        #set($extraJSX = $doc.getObject('TotemCode.TotemClass').getProperty('jsx').value)
        #if("$!extraJSX" != "")
          #set($discard = $xwiki.jsx.use($extraJSX))
        #end
        ## if edit is enabled, add the jsx and the ssx of the totemsheet (for enhancements of the edit form)
        ## IMHO no ssx/jsx from the sheet should be needed in view mode, I don't see any totem generic styling that could be done in view mode: 
        ## displayers will do their styling for blocks, the extra jsx / ssx will handle styling specific to a particular totem.
      
          #set($discard = $xwiki.jsx.use('TotemCode.TotemSheet'))
        #if ($enableEdit)
          #set($discard = $xwiki.jsfx.use("js/scriptaculous/effects.js"))
          #set($discard = $xwiki.jsfx.use("js/scriptaculous/dragdrop.js"))
          #set($discard = $xwiki.jsx.use('TotemCode.TotemSheet', {'minify' : false}))
          #set($discard = $xwiki.ssx.use('TotemCode.TotemSheet', {'minify' : false}))
        #end
        ## pass the totem application fullscreen
        #set($enableFullscreen = $doc.getObject('TotemCode.TotemClass').getProperty('fullscreen').value)
        #if($enableFullscreen == 1 )
          #set($discard = $xwiki.ssx.use('TotemCode.TotemFullscreen', {'minify' : false}))  
        #end
        ## make up the cancel URL for the form cancellation and other cancels
        #set($cancelURL = $doc.getURL())
        #if ($enableEdit)
          ## if editing is enabled, forms should be cancelled to the base edit screen
          #set($cancelURL = $doc.getURL('view', 'showEdit=true'))
        #end
        ## if edit is enabled, add the input and form to save the order of the blocks which will be edited in js
        ## Show the edit button if the user is enabled to edit and the totem is in the view mode
        #if ($hasEdit)
          {{info}}
          #displayTotemActionsLinks()
          {{/info}}
      
        #end
        #if ($enableEdit)
          {{info}}
          #displayEditTotemConfigurationForm()
          {{/info}}
          ----
          {{info}}
          $services.localization.render('totem.edit.editorder.info')
          #displayEditOrderForm($editURL)
          {{/info}}
        #end
        ## view mode of a totem
        ## get all the objects of type TotemBlockClass in the order defined in here and display them with the macro
        #set($blockNumbers = $doc.getObject('TotemCode.TotemClass').getProperty('blockOrder').value.split(','))
        ## remember the displayed blocks, so that we can display all undisplayed blocks after the order read
        #set($displayedBlocks = [])
        (%class="container-fluid"%)(((
          (%class="totemBlocks #if($enableEdit)totemBlocksEdit#end row" id="totemBlocks"%)(((
            #set($isOdd = true)
            #foreach($blockNumber in $blockNumbers)
              #set($intNumber = $mathtool.toInteger($blockNumber))
              #set($totemBlock = $doc.getObject('TotemCode.TotemBlockClass', $intNumber))
              #set($totemBlockSize = 12 )
              #if("$!{totemBlock.size}" != "")
                #set($totemBlockSize = ${totemBlock.size})
              #end
              #if ($totemBlock)
                #set($urlBackground = $doc.getAttachmentURL("${totemBlock.getValue('background-image')}"))
                #set($blocktype = $totemBlock.getProperty('type').value)
                (%class="totemBlock #if($isOdd)totemBlock-odd#{else}totemBlock-even#end col-sm-${totemBlockSize}" id="totemBlock_${totemBlock.number}" style="background:url($!{urlBackground});  background-size: 100% 100%; background-position: center center; background-color: $!{totemBlock.background-color}; color: $!{totemBlock.text-color}; object-fit: cover; #if(${blocktype} == 'DisplayerCode.MultImgCarouselDisplayer' || ${blocktype} == 'DisplayerCode.CarouselDisplayer') padding-bottom: 0; #else padding-bottom: 20px; #end"%)(((
                  #displayTotemBlock($totemBlock, $enableEdit, $cancelURL, $editURL $totemItemClass, $sheetFieldsMapping, $totemItemsURL)
                )))
                #set($discard = $displayedBlocks.add($totemBlock.number))
                #set($isOdd = !$isOdd)
              #end
            #end
            ## for all the blocks that were not displayed before, display them
            #foreach($totemLeftBlock in $doc.getObjects('TotemCode.TotemBlockClass'))
              #set($totemBlockSize = 12 )
              #if("$!{totemLeftBlock.size}" != "")
                #set($totemBlockSize = ${totemLeftBlock.size})
              #end
              #if(!$displayedBlocks.contains($totemLeftBlock.number))
                #set($urlBackground = $doc.getAttachmentURL("${totemLeftBlock.getValue('background-image')}"))
                #set($blocktype = $totemBlock.getProperty('type').value)
                (%class="totemBlock #if($isOdd)totemBlock-odd#{else}totemBlock-even#end col-sm-${totemBlockSize}" id="totemBlock_${totemLeftBlock.number}" style="background:url($!{urlBackground});  background-size: 100% 100%; background-position: center center; background-color: $!{totemLeftBlock.background-color}; color: $!{totemLeftBlock.text-color}; object-fit: cover; #if(${blocktype} == 'DisplayerCode.MultImgCarouselDisplayer' || ${blocktype} == 'DisplayerCode.CarouselDisplayer') padding-bottom: 0; #else padding-bottom: 20px; #end"%)(((
                  #displayTotemBlock($totemLeftBlock, $enableEdit, $cancelURL, $editURL $totemItemClass, $sheetFieldsMapping, $totemItemsURL)
                )))
                #set($discard = $displayedBlocks.add($totemBlock.number))
                #set($isOdd = !$isOdd)
              #end
            #end
          )))
        )))
      
        ## add new block item form
        #if($enableEdit)
          (%class="addactions"%)(((
           [[$services.localization.render('totem.edit.additem.button')>>path:$doc.getURL('view', 'showEdit=true&additem=true')||class="addblock"]]
            ## display a button to exit the edit form. TODO: move me in an appropriate place (where?)
           (%class="totemeditactions buttonwrapper"%)((([[$services.localization.render('totem.edit.exitedit')>>Totem.WebHome]])))
          )))
          (%class="#if("$!request.additem" != 'true')hidden#end addblockform"%)(((
            #set($fakeTotemBlock = $doc.newObject("TotemCode.TotemBlockClass"))    
            #displayTotemBlockEditForm($fakeTotemBlock, true, $cancelURL, $editURL)
          )))
        #end
        {{html clean="false"}}#template("textarea_wysiwyg.vm"){{/html}}
      #else
        ## if we're in edit mode, send a redirect to the edit screen, since the totem has a special edit form (available in view).
        $response.sendRedirect("$editURL")
      #end
      
      {{html clean="false"}}
      #displayModal("totemModal")
      {{/html}}
      ]
      	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:286)
      	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:269)
      	at org.xwiki.rendering.internal.transformation.DefaultRenderingContext.transformInContext(DefaultRenderingContext.java:183)
      	at org.xwiki.rendering.internal.transformation.DefaultTransformationManager.performTransformations(DefaultTransformationManager.java:95)
      	at org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:253)
      	at org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:126)
      	at org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:56)
      	at org.xwiki.display.internal.DefaultDocumentDisplayer.display(DefaultDocumentDisplayer.java:96)
      	at org.xwiki.display.internal.DefaultDocumentDisplayer.display(DefaultDocumentDisplayer.java:39)
      	at org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:229)
      	at org.xwiki.sheet.internal.SheetDocumentDisplayer.applySheet(SheetDocumentDisplayer.java:209)
      	at org.xwiki.sheet.internal.SheetDocumentDisplayer.maybeDisplayWithSheet(SheetDocumentDisplayer.java:164)
      	at org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:102)
      	at org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:50)
      	at org.xwiki.display.internal.ConfiguredDocumentDisplayer.display(ConfiguredDocumentDisplayer.java:68)
      	at org.xwiki.display.internal.ConfiguredDocumentDisplayer.display(ConfiguredDocumentDisplayer.java:42)
      	at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:1164)
      	at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:1127)
      	at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:1179)
      	at com.xpn.xwiki.api.Document.getRenderedContent(Document.java:692)
      	at sun.reflect.GeneratedMethodAccessor507.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.ASTBlock.render(ASTBlock.java:72)
      	at org.xwiki.velocity.introspection.TryCatchDirective.render(TryCatchDirective.java:72)
      	at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:207)
      	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
      	at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluateInternal(DefaultVelocityEngine.java:256)
      	at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:222)
      	at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:198)
      	at com.xpn.xwiki.internal.template.InternalTemplateManager.evaluateContent(InternalTemplateManager.java:725)
      	at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:626)
      	at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:604)
      	at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:570)
      	at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:556)
      	at com.xpn.xwiki.internal.template.DefaultTemplateManager.render(DefaultTemplateManager.java:65)
      	at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:1876)
      	at com.xpn.xwiki.XWiki.parseTemplate(XWiki.java:1854)
      	at com.xpn.xwiki.api.XWiki.parseTemplate(XWiki.java:820)
      	at sun.reflect.GeneratedMethodAccessor187.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.SimpleNode.render(SimpleNode.java:342)
      	at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluateInternal(DefaultVelocityEngine.java:256)
      	at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:222)
      	at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:198)
      	at com.xpn.xwiki.internal.template.InternalTemplateManager.evaluateContent(InternalTemplateManager.java:725)
      	at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:626)
      	at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:604)
      	at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:570)
      	at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:556)
      	at com.xpn.xwiki.internal.template.DefaultTemplateManager.render(DefaultTemplateManager.java:65)
      	at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:1876)
      	at com.xpn.xwiki.XWiki.parseTemplate(XWiki.java:1854)
      	at com.xpn.xwiki.api.XWiki.parseTemplate(XWiki.java:820)
      	at sun.reflect.GeneratedMethodAccessor187.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.evaluateInternal(DefaultVelocityEngine.java:256)
      	at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:222)
      	at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:198)
      	at com.xpn.xwiki.internal.template.InternalTemplateManager.evaluateContent(InternalTemplateManager.java:725)
      	at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:626)
      	at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:604)
      	at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:570)
      	at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:556)
      	at com.xpn.xwiki.internal.template.DefaultTemplateManager.render(DefaultTemplateManager.java:65)
      	at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:1876)
      	at com.xpn.xwiki.web.Utils.parseTemplate(Utils.java:180)
      	at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:431)
      	at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:184)
      	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.doGet(ActionServlet.java:449)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
      	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:808)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
      	at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:115)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      	at org.xwiki.wysiwyg.server.filter.ConversionFilter.doFilter(ConversionFilter.java:127)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      	at org.xwiki.container.servlet.filters.internal.SetHTTPHeaderFilter.doFilter(SetHTTPHeaderFilter.java:63)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      	at com.xpn.xwiki.plugin.webdav.XWikiDavFilter.doFilter(XWikiDavFilter.java:66)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      	at org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:208)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      	at org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:111)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      	at org.xwiki.resource.servlet.RoutingFilter.doFilter(RoutingFilter.java:137)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
      	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
      	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
      	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
      	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
      	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
      	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
      	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
      	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
      	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
      	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
      	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
      	at org.eclipse.jetty.server.Server.handle(Server.java:499)
      	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
      	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
      	at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
      	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
      	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
      	at java.lang.Thread.run(Thread.java:745)
      Caused by: org.xwiki.velocity.XWikiVelocityException: Failed to evaluate content with id [xwiki:TotemCode.TotemSheet]
      	at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:224)
      	at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:198)
      	at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:124)
      	... 151 more
      Caused by: org.apache.velocity.exception.MethodInvocationException: Invocation of method 'getAttachmentURL' in  class com.xpn.xwiki.api.Document threw exception java.lang.IllegalArgumentException: An Entity Reference name cannot be null or empty at 16:xwiki:TotemCode.TotemSheet[line 104, column 28]
      	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.ASTIfStatement.render(ASTIfStatement.java:87)
      	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
      	at org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:420)
      	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.SimpleNode.render(SimpleNode.java:342)
      	at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluateInternal(DefaultVelocityEngine.java:256)
      	at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:222)
      	... 153 more
      Caused by: java.lang.IllegalArgumentException: An Entity Reference name cannot be null or empty
      	at org.xwiki.model.reference.EntityReference.setName(EntityReference.java:185)
      	at org.xwiki.model.reference.EntityReference.<init>(EntityReference.java:153)
      	at org.xwiki.model.reference.AttachmentReference.<init>(AttachmentReference.java:68)
      	at com.xpn.xwiki.doc.XWikiDocument.getAttachmentURL(XWikiDocument.java:1845)
      	at com.xpn.xwiki.doc.XWikiDocument.getAttachmentURL(XWikiDocument.java:1832)
      	at com.xpn.xwiki.api.Document.getAttachmentURL(Document.java:799)
      	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)
      	... 167 more

      On XWiki7.1.3 I didn't reproduced the issue.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              RamonaConoro Ramona Conoro
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated: