Check programming rights
Failed to execute the [groovy] macro. Cause: [Cannot invoke method getDocument() on null object]. Click on this message for details.
org.xwiki.rendering.macro.MacroExecutionException: Failed to evaluate Script Macro for content [import org.xwiki.model.reference.EntityReference
import org.xwiki.security.authorization.Right
xwiki.ssx.use(doc.getFullName())
xwiki.jsx.use(doc.getFullName())
if (!"post".equalsIgnoreCase(request.getMethod())) {
printForm(pageListPerWiki())
} else if (!services.csrf.isTokenValid(request.getParameter('form_token'))) {
response.sendRedirect(services.csrf.getResubmissionURL())
} else {
changePagesAuthor(request.getParameterValues('pagelist'))
}
def getXClassPageInstances(xClass) {
def templateName = xClass.replace('Class', '') + 'Template'
def list = services.query.hql("select distinct doc.fullName from XWikiDocument doc, BaseObject as obj where obj.name = doc.fullName and obj.className = '$xClass' and doc.fullName != '$templateName'").execute()
return list
}
def getTranslationPages(String scope) {
def query = services.query.hql("select distinct doc.fullName from XWikiDocument doc, BaseObject as obj, StringProperty as prop where obj.name = doc.fullName and obj.className = :class and prop.id.id = obj.id and prop.id.name = 'scope' and prop.value = :scope ")
query.bindValue('class', 'XWiki.TranslationDocumentClass')
query.bindValue('scope', scope)
return query.execute()
}
def getJsxOrSsxPages(String scope) {
def query = services.query.hql("select distinct doc.fullName from XWikiDocument doc, BaseObject as obj, StringProperty as prop where obj.name = doc.fullName and (obj.className = :class1 or obj.className = :class2) and prop.id.id = obj.id and prop.id.name = 'use' and prop.value = :scope ")
query.bindValue('class1', 'XWiki.JavaScriptExtension')
query.bindValue('class2', 'XWiki.StyleSheetExtension')
query.bindValue('scope', scope)
return query.execute()
}
def getScriptedJsxOrSsxPages() {
def query = services.query.hql("select distinct doc.fullName from XWikiDocument doc, BaseObject as obj, IntegerProperty as prop where obj.name = doc.fullName and (obj.className = :class1 or obj.className = :class2) and prop.id.id = obj.id and prop.id.name = 'parse' and prop.value = 1 ")
query.bindValue('class1', 'XWiki.JavaScriptExtension')
query.bindValue('class2', 'XWiki.StyleSheetExtension')
return query.execute()
}
def getPagesWithScriptedContent(scriptType) {
def query = services.query.hql("select distinct doc.fullName from XWikiDocument doc where doc.content like :like")
// Trick to not declare a script which would get interpreted within this page content
def like = '%{{:tag}}%{{/:tag}}%'
like = like.replaceAll(':tag', scriptType)
query.bindValue('like', like)
return query.execute()
}
def hasRight(EntityReference reference, Right right) {
def page = xwiki.getDocument(reference)
if (page != null) {
def authorReference = page.getAuthorReference()
def hasAccess = services.security.authorization.hasAccess(right, authorReference, reference)
return hasAccess
} else {
// This seems to happen sometimes when an error occurred on target wiki initialization
out.println("{{warning}}An error occurred when retrieving page $reference.{{/warning}}")
}
}
def pageListPerWiki()
{
def wikilist = [ "xwiki" ]
if (!xwiki.metaClass.respondsTo(xwiki, 'isVirtualMode') || xwiki.isVirtualMode()) {
def wikiManager = xwiki.getPlugin("wikimanager")
if (wikiManager != null) {
wikilist = wikiManager.getAllWikis()
} else {
wikilist = services.wiki?.getAll().collect({ wiki -> wiki.id })
}
}
def knownpageslist = [
"AnnotationCode.Script",
"AnnotationCode.Settings",
"AnnotationCode.Style",
"Main.Activity",
"Main.SpaceIndex",
"Main.Spaces",
"XWiki.AllAttachments",
];
def context2 = xcontext.getContext()
def db = context2.getDatabase()
def wikiPagelists = [:]
try {
for (wiki in wikilist) {
def wikiname = wiki.toString()
context2.setDatabase(wikiname)
// get all the pages which have a required rights object
// attached to them, that specifies either edit or
// programming
def pagelist = services.query.xwql("select distinct doc.fullName from Document doc, doc.object(XWiki.RequiredRightClass) as reqRight where reqRight.level = 'programming' or reqRight.level = 'edit'").execute()
// add the known pages that need to be saved with programming
// || edit rights to the list of pages, if they don't have the '
// required rights object
for (knownpage in knownpageslist) {
if (!pagelist.contains(knownpage) && xwiki.exists(knownpage)) {
pagelist.add(knownpage)
}
}
// Create map linking rights to page lists
wikiPagelists[wikiname] = [:]
/** Get pages requiring programming rights */
// Add all XClass instances which are likely to need programming rights:
// - WikiComponents generally use Groovy scripts
// - SchedulerJobs use either a Groovy script or a Java class
['XWiki.ComponentClass', 'XWiki.SchedulerJobClass'].each{
it -> pagelist.addAll(getXClassPageInstances(it))
}
// Also add all pages containing Groovy code in their content (they may need to be unchecked in case
// it's actually code documentation, not real code)
pagelist.addAll(getPagesWithScriptedContent('groovy'))
// Add translation bundles with global scope since they require programming right
// ref: DocumentTranslationBundleFactory#checkRegistrationAuthorization
pagelist.addAll(getTranslationPages('GLOBAL'))
// JSX or SSX pages which are always loaded require programming right
// ref: AbstractDocumentSkinExtensionPlugin#getAlwaysUsedExtensions
pagelist.addAll(getJsxOrSsxPages('always'))
def rs = xwiki.getXWiki().getRightService()
wikiPagelists[wikiname]['programming'] = pagelist.findAll{
name -> !rs.hasProgrammingRights(xwiki.getDocument(name).getDocument(), context2) ||
needsRequiredRightsObj(xwiki.getDocument(name))
}
/** Get pages requiring script right */
// Using a Set to avoid duplicates
wikiPagelists[wikiname]['script'] = new HashSet()
// Macros, UIExtensions and Skins typically contain Velocity code
['XWiki.WikiMacroClass', 'XWiki.UIExtensionClass', 'XWiki.XWikiSkins'].each{
it -> wikiPagelists[wikiname]['script'].addAll(getXClassPageInstances(it))
}
wikiPagelists[wikiname]['script'].addAll(getScriptedJsxOrSsxPages())
// Add all pages containing a Velocity script saved by a user lacking script right
wikiPagelists[wikiname]['script'].addAll(getPagesWithScriptedContent('velocity'))
wikiPagelists[wikiname]['script'] = wikiPagelists[wikiname]['script'].findAll{
pageId ->
def reference = services.model.resolveDocument(wikiname + ':' + pageId)
return !hasRight(reference, Right.SCRIPT)
}
/** Get pages likely to require admin right */
wikiPagelists[wikiname]['admin'] = new HashSet()
// Add translation documents with wiki scope
wikiPagelists[wikiname]['admin'].addAll(getTranslationPages('WIKI'))
wikiPagelists[wikiname]['admin'] = wikiPagelists[wikiname]['admin'].findAll{
pageId ->
def reference = services.model.resolveDocument(wikiname + ':' + pageId)
return !hasRight(reference, Right.ADMIN)
}
}
} finally {
context2.setDatabase(db)
}
return wikiPagelists
}
def printForm(pagelistPerWiki)
{
println "{{info}} You need to run this with a user that has programming rights, otherwise it will have no effect. {{/info}}\n\n"
println("""\
{{html}}
<span class=\"buttonwrapper\">
<a id=\"select_all_all_wikis\" class=\"select_all\">select all in all wikis</a>
</span>
<span class=\"buttonwrapper\">
<a id=\"unselect_all_all_wikis\" class=\"unselect_all\">select none</a>
</span>
<form action=\"${xwiki.getURL(doc.getFullName())}\" method=\"post\" >
<input type=\"hidden\" name=\"form_token\" value=\"${services.csrf.token}\" />
""")
for (wikiname in pagelistPerWiki.keySet()) {
if (pagelistPerWiki.get(wikiname).size() == 0) {
continue
}
println("<fieldset id=\"pagelist:${wikiname}\" class=\"pagelist\" >")
println("<h2><legend class=\"wikiname\">Wiki: ${wikiname}</legend></h2>")
println("""\
<div class=\"select_checkbox_control\">
<span class=\"buttonwrapper\">
<a id=\"select_all:${wikiname}\" class=\"select_all\">select all</a>
</span>
<span class=\"buttonwrapper\">
<a id=\"unselect_all:${wikiname}\" class=\"unselect_all\">select none</a>
</span>
</div>
""")
println("<div>")
def rights = ['programming', 'admin', 'script']
rights.each{ right ->
def str = right.capitalize()
println("<h2> $str right </h2>")
for (page in pagelistPerWiki.get(wikiname).get(right)) {
println("""\
<div class=\"page_checkbox_item\">
<input type=\"checkbox\" name=\"pagelist\" id=\"page_${wikiname}_${page}\"
class=\"${wikiname}_page\" value=\"${wikiname}:${page}\"/>
<a href=\"${xwiki.getURL(wikiname + ':' + page)}?viewer=code\">${page}</a>
</div>
""")
}
}
println("</div>")
println("</fieldset>")
}
println("""\
<hr />
<span class=\"buttonwrapper\">
<input class=\"button\" type=\"submit\" value=\"save with programming rights\" />
</span>
</form>
{{/html}}
""")
}
def needsRequiredRightsObj(prDoc)
{
def objList = prDoc.getObjects('XWiki.RequiredRightClass');
return objList == null || objList.findAll{
obj -> obj.getProperty('level').getValue() == 'programming' ||
obj.getProperty('level').getValue() == 'edit'
}.size() == 0
}
def changePagesAuthor(pagelist) {
for (page in pagelist) {
def prDoc = xwiki.getDocument(page)
try {
def protectedDoc = prDoc.document
// Update the page content author in order to fix programming rights.
protectedDoc.setContentAuthorReference(xcontext.getContext().getUserReference())
// We need to change the page author in order to have a history about the user who executed this script otherwise the last author will be kept.
protectedDoc.setAuthorReference(xcontext.getContext().getUserReference())
xwiki.getXWiki().saveDocument(protectedDoc, "Changed the author of the page to fix programming rights", xcontext.context)
println " * Successfully changed the author of the page '${page}'"
} catch (Exception e) {
println " * Failed to change the author of the page '${page}': " + e
}
}
}]
at org.xwiki.rendering.macro.script.AbstractJSR223ScriptMacro.evaluateBlock(AbstractJSR223ScriptMacro.java:198)
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.transformation.DefaultTransformationManager.performTransformations(DefaultTransformationManager.java:88)
at org.xwiki.display.internal.DocumentContentAsyncExecutor.executeInCurrentExecutionContext(DocumentContentAsyncExecutor.java:396)
at org.xwiki.display.internal.DocumentContentAsyncExecutor.execute(DocumentContentAsyncExecutor.java:269)
at org.xwiki.display.internal.DocumentContentAsyncRenderer.execute(DocumentContentAsyncRenderer.java:112)
at org.xwiki.rendering.async.internal.block.AbstractBlockAsyncRenderer.render(AbstractBlockAsyncRenderer.java:157)
at org.xwiki.rendering.async.internal.block.AbstractBlockAsyncRenderer.render(AbstractBlockAsyncRenderer.java:54)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.syncRender(DefaultAsyncRendererExecutor.java:290)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.render(DefaultAsyncRendererExecutor.java:267)
at org.xwiki.rendering.async.internal.block.DefaultBlockAsyncRendererExecutor.execute(DefaultBlockAsyncRendererExecutor.java:125)
at org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:93)
at org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:46)
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:123)
at org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:52)
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.display(XWikiDocument.java:1431)
at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:1567)
at com.xpn.xwiki.doc.XWikiDocument.displayDocument(XWikiDocument.java:1517)
at com.xpn.xwiki.doc.XWikiDocument.displayDocument(XWikiDocument.java:1486)
at com.xpn.xwiki.api.Document.displayDocument(Document.java:821)
at jdk.internal.reflect.GeneratedMethodAccessor563.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
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.ASTBlock.render(ASTBlock.java:147)
at org.xwiki.velocity.internal.directive.TryCatchDirective.render(TryCatchDirective.java:86)
at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:304)
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:907)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:869)
at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:856)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderNoException(InternalTemplateManager.java:811)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderNoException(InternalTemplateManager.java:803)
at com.xpn.xwiki.internal.template.DefaultTemplateManager.renderNoException(DefaultTemplateManager.java:79)
at com.xpn.xwiki.internal.template.DefaultTemplateManager.renderNoException(DefaultTemplateManager.java:73)
at org.xwiki.template.script.TemplateScriptService.render(TemplateScriptService.java:54)
at jdk.internal.reflect.GeneratedMethodAccessor5488.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
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.render(ASTReference.java:492)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:217)
at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:331)
at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:261)
at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:304)
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:907)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:869)
at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:856)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderNoException(InternalTemplateManager.java:811)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderNoException(InternalTemplateManager.java:803)
at com.xpn.xwiki.internal.template.DefaultTemplateManager.renderNoException(DefaultTemplateManager.java:79)
at com.xpn.xwiki.internal.template.DefaultTemplateManager.renderNoException(DefaultTemplateManager.java:73)
at org.xwiki.template.script.TemplateScriptService.render(TemplateScriptService.java:54)
at jdk.internal.reflect.GeneratedMethodAccessor5488.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
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.render(ASTReference.java:492)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:217)
at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:331)
at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:261)
at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:304)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:171)
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:907)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:869)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:849)
at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:835)
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:2540)
at com.xpn.xwiki.web.Utils.parseTemplate(Utils.java:180)
at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:651)
at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:339)
at com.xpn.xwiki.web.LegacyActionServlet.service(LegacyActionServlet.java:108)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:197)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:122)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
at org.xwiki.wysiwyg.filter.ConversionFilter.doFilter(ConversionFilter.java:61)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
at org.xwiki.resource.servlet.RoutingFilter.doFilter(RoutingFilter.java:132)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
at org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:209)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
at org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:389)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:619)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:399)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:338)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:283)
at org.tuckey.web.filters.urlrewrite.NormalRewrittenUrl.doRewrite(NormalRewrittenUrl.java:213)
at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:171)
at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:389)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:166)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:88)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:491)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:83)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:764)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:72)
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:763)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:398)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:1309)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1854)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:973)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:491)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: javax.script.ScriptException: javax.script.ScriptException: java.lang.NullPointerException: Cannot invoke method getDocument() on null object
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:164)
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)
... 199 more
Caused by: javax.script.ScriptException: java.lang.NullPointerException: Cannot invoke method getDocument() on null object
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:334)
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:161)
... 202 more
Caused by: java.lang.NullPointerException: Cannot invoke method getDocument() on null object
at org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:113)
at org.codehaus.groovy.vmplugin.v8.IndyGuardsFiltersAndSignatures.invokeGroovyObjectInvoker(IndyGuardsFiltersAndSignatures.java:151)
at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
at Script9511$_pageListPerWiki_closure3.doCall(Script9511.groovy:135)
at jdk.internal.reflect.GeneratedMethodAccessor6467.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:279)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1007)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:39)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
at org.codehaus.groovy.runtime.callsite.BooleanReturningMethodInvoker.invoke(BooleanReturningMethodInvoker.java:49)
at org.codehaus.groovy.runtime.callsite.BooleanClosureWrapper.call(BooleanClosureWrapper.java:52)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.findMany(DefaultGroovyMethods.java:5107)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.findAll(DefaultGroovyMethods.java:4961)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.findAll(DefaultGroovyMethods.java:4948)
at org.codehaus.groovy.runtime.dgm$251.doMethodInvoke(Unknown Source)
at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
at Script9511.pageListPerWiki(Script9511.groovy:134)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328)
at groovy.lang.MetaClassImpl.doInvokeMethod(MetaClassImpl.java:1333)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1088)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1007)
at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:165)
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl$3.invokeMethod(GroovyScriptEngineImpl.java:315)
at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
at Script9511.run(Script9511.groovy:8)
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:331)
... 203 more