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
- relates to
-
XWIKI-12888 Totem Application extension broken in 7.3
- Closed