Global Chat
Failed to execute the [velocity] macro. Cause: [Error number 9001 in 9: Access denied in edit mode on document xwiki:Courseproject.Globalchat]. Click on this message for details.
org.xwiki.rendering.macro.MacroExecutionException: Failed to evaluate Velocity Macro for content [{{html clean="false" wiki="true"}}
################################################################################
################################################################################
## Course Project Class Sheet
################################################################################
################################################################################
#template('apice_macros.vm')
#setobjectspace('Courseprojects')
#docobj()
#nolangpar()
#template('apice_course_macros.vm')
################################################################################
######## OVERALL GUI / START
## set $action
#if( $xcontext.action == "edit" && $xwiki.hasAccessLevel("edit") )
#set( $action = "edit" )
#else
#set( $action = "view" )
#end
## set mode lists
#set( $modeList = [ 'data', 'page', 'attach' ] )
## set $mode
## default
#set( $mode = $modeList[0] )
## set $attachments array
#set( $attachments = [] )
#foreach( $attachment in $doc.attachmentList )
#set( $discard = $attachments.add($attachment.filename) )
#end
## set views for attach mode
#set( $attachmentviews = [ 'report', 'slides', 'video' ] )
## find attachment fields defined and available as attachments
#set( $attachmentvalues = {} )
#foreach( $attachmentview in $attachmentviews )
#if( $doc.getValue($attachmentview).trim() != '' )
#set( $attachmentvalues[$attachmentview] = $doc.getValue($attachmentview).trim() )
#end
#end
#set( $modeGuestList = [ 'data' ] )
#foreach( $attachmentview in $attachmentvalues.keySet() )
#if( $attachmentvalues[$attachmentview] != '' && $attachments.contains($attachmentvalues[$attachmentview]) )
#set( $modeGuestList = [ 'data', 'attach' ] )
#break
#end
#end
#set( $report = $doc.getValue('report').trim() )
#set( $slides = $doc.getValue('slides').trim() )
#set( $video = $doc.getValue('video').trim() )
##
#if( $hasEdit )
#set( $currentModeList = $modeList )
#else
#set( $currentModeList = $modeGuestList )
#end
## set $mode
## default
#set( $mode = $modeList[0] )
## get mode parameter
#if( $request.mode && $request.mode.trim() != "" && $currentModeList.contains($request.mode.trim().toLowerCase()) )
#set( $mode = $request.mode.trim().toLowerCase() )
#end
## draw bar
#themodebar( $currentModeList $mode $action )
##
################################################################################
######## OVERALL GUI / END
################################################################################
##
################################################################################
## ATTACH MODE / START
################################################################################
#### VIEW MODE / START
#if( $mode == "attach" && $action == "view" )
##
#if( $attachmentvalues.size() <= 0 )
$response.sendRedirect( $xwiki.getURL($doc, 'view', "mode=data") )
#else
#if( $request.attach && $request.attach.trim() != "" && $attachmentvalues.keySet().contains($request.attach) )
#set( $attachMode = $request.attach )
#else
#foreach( $val in $attachmentvalues.keySet() )#set( $attachMode = $val )#break#end
#end
#end
#if( $attachmentvalues.size() > 1 )
## view bar
#set( $displaytabwidth = 100 / $attachmentvalues.size() )
<table class="viewbar"><tr>
#foreach( $attachmentview in $attachmentvalues.keySet() )
<td width="$displaytabwidth%" class='#if( $attachmentview == $attachMode )modedataeditselected#{else}basebutton#end'><a href='$doc.getURL($action,"mode=attach&attach=$attachmentview")'>$services.localization.render("${objectSpace}.Class_${attachmentview}_short")</a></td>
#end
</tr></table>
#end
## DOCUMENTS / START
#if( $attachMode == 'report' )
<div class="mainheader" style="margin: 0 0 0 0; color: $theme.textPrimaryColor">
$services.localization.render("${objectSpace}.Class_report").toLowerCase()
</div>
<center>
#if( $attachmentvalues['report'].endsWith('.pdf') )
{{pdf filename="$attachmentvalues['report']"/}}
#else
[[$attachmentvalues['report']>>attach:$attachmentvalues['report']||target="_blank"]]
#end
</center>
#end
#if( $attachMode == 'slides' )
<div class="mainheader" style="margin: 0 0 0 0; color: $theme.textPrimaryColor">
$services.localization.render("${objectSpace}.Class_slides").toLowerCase()
</div>
<center>
#if( $attachmentvalues['slides'].endsWith('.pdf') )
{{pdf filename="$attachmentvalues['slides']"/}}
#else
[[$attachmentvalues['slides']>>attach:$attachmentvalues['slides']||target="_blank"]]
#end
</center>
#end
#if( $attachMode == 'video' )
<div class="mainheader" style="margin: 0 0 0 0; color: $theme.textPrimaryColor">
$services.localization.render("${objectSpace}.Class_video").toLowerCase()
</div>
<center>
{{video attachment="$attachmentvalues['video']"/}}
</center>
#end
## DOCUMENTS / END
#end
#### VIEW MODE / END
##
#### INLINE MODE / START
#if( $mode == "attach" && $action == "edit" )
#### ATTACHED DOCUMENTS / START
<table>
## REPORT / START
<tr class="fieldrow1">
<td style="text-align: right" width="50%">
{{attachmentSelector classname='${objectSpace}.Class' property='report' filter='pdf' defaultValue=' ' buttontext='$services.localization.render("${objectSpace}.Class_report_short")'/}}
</td><td style="vertical-align: middle">
#fieldlink("report")
</td>
</tr>
## REPORT / END
##
## SLIDES / START
<tr class="fieldrow2">
<td style="text-align: right" width="50%">
{{attachmentSelector classname="${objectSpace}.Class" property="slides" filter="pdf,ppt,pptx,odp,key,zip,png" defaultValue=" " buttontext='$services.localization.render("${objectSpace}.Class_slides_short")'/}}
</td><td style="vertical-align: middle">
#fieldlink("slides")
</td>
</tr>
## SLIDES / END
##
## VIDEO / START
<tr class="fieldrow1">
<td style="text-align: right" width="50%">
{{attachmentSelector classname="${objectSpace}.Class" property="video" filter="mpg,mpeg,wav,m4v,mp4,mov,mkv" defaultValue=" " buttontext='$services.localization.render("${objectSpace}.Class_video_short")'/}}
</td><td style="vertical-align: middle">
#fieldlink("video")
</td>
</tr>
## VIDEO / END
</table>
#### ATTACHED DOCUMENTS / END
#end
#### INLINE MODE / END
################################################################################
## ATTACH MODE / END
################################################################################
##
################################################################################
## DATA MODE / START
################################################################################
#### VIEW MODE / START
#if( $mode == "data" && $action == "view" )
## check for language / default
#nodoclang()
## STUDENT / START
#if( $doc.getValue('student') != '' )
<div class="mainheader" style="color: $theme.textColor; margin: 0 0 0 0">
#namebullet($doc.getValue('student'))
</div>
#end
## STUDENT / END
##
## ABSTRACT / START
#if( $doc.display('abstract','view') != '' )
<div style="color: $theme.textSecondaryColor; font-size: smaller; text-align: left; margin: 0 0 0 0; border-color: $theme.borderColor; border-style: hidden hidden solid solid; border-width: thin; padding: .25em 0 .25em .5em">
$services.localization.render("${objectSpace}.Class_abstract_short").toLowerCase()
</div><div style="text-align: justify; text-justify: inter-word; border-color: $theme.borderColor; border-style: solid solid hidden hidden; border-width: thin; padding: .25em .5em 0 0">
$doc.display('abstract','view')
</div>
#end
## ABSTRACT / END
##
## KEYWORD / START
#if( $doc.display('keywords','view') != '' )
<div style="color: $theme.textSecondaryColor; font-size: smaller; text-align: left; margin: 0 0 0 0; border-color: $theme.borderColor; border-style: hidden hidden solid solid; border-width: thin; padding: .25em 0 .25em .5em">
$services.localization.render("${objectSpace}.Class_keywords_short").toLowerCase()
</div><div style="text-align: justify; text-justify: inter-word; border-color: $theme.borderColor; border-style: solid solid hidden hidden; border-width: thin; padding: .25em .5em 0 0">
$doc.display('keywords','view')
</div>
#end
## KEYWORD / END
##
## REFERENCES / START
#if( $doc.display('references','view') != '' )
<div style="color: $theme.textSecondaryColor; font-size: smaller; text-align: left; margin: 0 0 0 0; border-color: $theme.borderColor; border-style: hidden hidden solid solid; border-width: thin; padding: .25em 0 .25em .5em">
$services.localization.render("${objectSpace}.Class_references_short").toLowerCase()
</div><div style="text-align: justify; text-justify: inter-word; border-color: $theme.borderColor; border-style: solid solid hidden hidden; border-width: thin; padding: .25em .5em 0 0">
$doc.display('references','view')
</div>
#end
## REFERENCES / END
##
## OUTCOMES / START
#if( $doc.display('vleforum','view') != '' || $doc.display('iolforum','view') != '' || $doc.display('repo','view') != '' || $doc.display('otherrepo','view') != '' || $report != '' && $attachments.contains($report) || $doc.display('reporturl','view') != '' || $slides != '' && $attachments.contains($slides) || $doc.display('slideurl','view') != '' || $video != '' && $attachments.contains($video) || $doc.display('videlurl','view') != '' )
<div style="border-style: solid solid hidden hidden; border-width: thin; border-color: $theme.borderColor; text-align: right; color: $theme.textSecondaryColor; font-size: smaller; padding: .5em .5em .5em 0">
$services.localization.render('outcomes').toLowerCase()
</div>
#end
#set( $dot = false )
<div class="menugenericbody" style="text-align: right; padding: 0 0 0 0; margin: 0 0 .75em 0">
#if( $doc.display('vleforum','view') != '' )
#if( $dot )<span class='textsecondary'> • </span>#end
{{virtuale res='forum-entry'}}$doc.getValue('vleforum'){{/virtuale}}##
#set( $dot = true )
#end
#if( $doc.display('iolforum','view') != '' )
#if( $dot )<span class='textsecondary'> • </span>#end
{{iol res='forum-entry'}}$doc.getValue('iolforum'){{/iol}}##
#set( $dot = true )
#end
#if( $doc.display('repo','view') != '' )
#if( $dot )<span class='textsecondary'> • </span>#end
[[$services.localization.render("${objectSpace}.Class_repo").toLowerCase()>>$doc.getValue('repo')||target="_blank"]]##
#set( $dot = true )
#end
#if( $doc.display('otherrepo','view') != '' )
#if( $dot )<span class='textsecondary'> • </span>#end
[[$services.localization.render("${objectSpace}.Class_otherrepo").toLowerCase()>>$doc.getValue('otherrepo')||target="_blank"]]##
#set( $dot = true )
#end
#if( $report != '' && $attachments.contains($report) )
#if( $dot )<span class='textsecondary'> • </span>#end
[[$services.localization.render("${objectSpace}.Class_report").toLowerCase()>>attach:$report||target="_blank"]]##
#set( $dot = true )
#end
#if( $doc.display('reporturl','view') != '' )
#if( $dot )<span class='textsecondary'> • </span>#end
[[$services.localization.render("${objectSpace}.Class_reporturl").toLowerCase()>>$doc.getValue('reporturl')||target="_blank"]]##
#set( $dot = true )
#end
#if( $slides != '' && $attachments.contains($slides) )
#if( $dot )<span class='textsecondary'> • </span>#end
[[$services.localization.render("${objectSpace}.Class_slides").toLowerCase()>>attach:$slides||target="_blank"]]##
#set( $dot = true )
#end
#if( $doc.display('slideurl','view') != '' )
#if( $dot )<span class='textsecondary'> • </span>#end
[[$services.localization.render("${objectSpace}.Class_slideurl").toLowerCase()>>$doc.getValue('slideurl')||target="_blank"]]##
#set( $dot = true )
#end
#if( $video != '' && $attachments.contains($video) )
#if( $dot )<span class='textsecondary'> • </span>#end
[[$services.localization.render("${objectSpace}.Class_video").toLowerCase()>>attach:$video||target="_blank"]]##
#set( $dot = true )
#end
#if( $doc.display('videourl','view') != '' )
#if( $dot )<span class='textsecondary'> • </span>#end
[[$services.localization.render("${objectSpace}.Class_videourl").toLowerCase()>>$doc.getValue('videourl')||target="_blank"]]##
#set( $dot = true )
#end
</div>
## OUTCOMES / END
##
## THESIS / START
#template('apice_thesis_macros.vm')
#if( $doc.display("thesis","view") != "" )
<div style="border-style: solid solid hidden hidden; border-width: thin; border-color: $theme.borderColor; text-align: right; color: $theme.textSecondaryColor; font-size: smaller; padding: .5em .5em .5em 0">
$services.localization.render("Courseprojects.Class_thesis").toLowerCase()
</div><div style='text-align: right; padding: .25em 0 .25em 0'>
#foreach( $thesis in $doc.getValue("thesis") )
<div>#thesisicon() #thesislinked($thesis)</div>
#end
</div>
#end
## THESIS / END
##
$doc.content
#end
#### VIEW MODE / END
##
#### INLINE MODE / START
#if( $mode == "data" && $action == "edit" )
##
#newobjtitle()
##
<table style="font-size: smaller; text-align: left" width="100%">
## TITLE / START
#set( $titledatafields = [ 'title'] )
#foreach( $titledatafield in $titledatafields )
<tr class='fieldrow1'>
<td style="text-align: right" width="25%">
#fieldlink($titledatafield)
</td>
<td>
$doc.display($titledatafield)
</td>
</tr>
#end
## TITLE / END
##
## WHO / START
#set( $whodatafields = [ 'student', 'supervisor', 'course'] )
#foreach( $whodatafield in $whodatafields )
<tr class='fieldrow2'>
<td style="text-align: right" width="25%">
#fieldlink($whodatafield)
</td>
<td>
$doc.display($whodatafield)
</td>
</tr>
#end
## WHO / END
##
## DESCRIPTORS / START
#set( $descdatafields = [ 'abstract', 'keywords', 'references', 'sort'] )
#foreach( $descdatafield in $descdatafields )
<tr class='fieldrow1'>
<td style="text-align: right" width="25%">
#fieldlink($descdatafield)
</td>
<td>
$doc.display($descdatafield)
</td>
</tr>
#end
## DESCRIPTORS / END
##
## STATUS & DATES / START
#set( $statusdatafields = [ 'status', 'start', 'end'] )
#foreach( $statusdatafield in $statusdatafields )
<tr class='fieldrow2'>
<td style="text-align: right" width="25%">
#fieldlink($statusdatafield)
</td>
<td>
$doc.display($statusdatafield)
</td>
</tr>
#end
## STATUS & DATES / START
##
## FORUM / START
#set( $forumdatafields = [ 'vleforum', 'iolforum'] )
#foreach( $forumdatafield in $forumdatafields )
<tr class='fieldrow1'>
<td style="text-align: right" width="25%">
#fieldlink($forumdatafield)
</td>
<td>
$doc.display($forumdatafield)
</td>
</tr>
#end
## FORUM / END
##
## REPO / START
#set( $repodatafields = [ 'repo', 'otherrepo'] )
#foreach( $repodatafield in $repodatafields )
<tr class='fieldrow2'>
<td style="text-align: right" width="25%">
#fieldlink($repodatafield)
</td>
<td>
$doc.display($repodatafield)
</td>
</tr>
#end
## REPO / END
##
## EXTERNAL / START
#set( $extdatafields = [ 'reporturl', 'slideurl', 'videourl'] )
#foreach( $extdatafield in $extdatafields )
<tr class='fieldrow1'>
<td style="text-align: right" width="25%">
#fieldlink($extdatafield)
</td>
<td>
$doc.display($extdatafield)
</td>
</tr>
#end
## EXTERNAL / END
##
## THESIS / START
#set( $thesisdatafields = [ 'thesis'] )
#foreach( $thesisdatafield in $thesisdatafields )
<tr class='fieldrow2'>
<td style="text-align: right" width="25%">
#fieldlink($thesisdatafield)
</td>
<td>
$doc.display($thesisdatafield)
</td>
</tr>
#end
## THESIS / END
</table>
##
#end
#### INLINE MODE / END
################################################################################
## DATA MODE / END
################################################################################
##
################################################################################
## PAGE MODE / START
################################################################################
#### VIEW MODE / START
#if( $mode == "page" && $action == "view" )
$doc.content
#end
#### VIEW MODE / END
##
#### INLINE MODE / START
#if( $mode == "page" && $action == "edit" )
##
#end
#### INLINE MODE / END
################################################################################
## PAGE MODE / END
################################################################################
{{/html}}]
at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:186)
at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:60)
at org.xwiki.rendering.macro.script.AbstractScriptMacro.evaluateBlock(AbstractScriptMacro.java:279)
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:311)
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:395)
at org.xwiki.display.internal.DocumentContentAsyncExecutor.execute(DocumentContentAsyncExecutor.java:268)
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:67)
at org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:43)
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:245)
at org.xwiki.sheet.internal.SheetDocumentDisplayer.applySheet(SheetDocumentDisplayer.java:225)
at org.xwiki.sheet.internal.SheetDocumentDisplayer.maybeDisplayWithSheet(SheetDocumentDisplayer.java:180)
at org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:111)
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:1367)
at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:1504)
at com.xpn.xwiki.doc.XWikiDocument.displayDocument(XWikiDocument.java:1453)
at com.xpn.xwiki.doc.XWikiDocument.displayDocument(XWikiDocument.java:1422)
at com.xpn.xwiki.api.Document.displayDocument(Document.java:787)
at jdk.internal.reflect.GeneratedMethodAccessor473.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
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:225)
at com.xpn.xwiki.internal.template.VelocityTemplateEvaluator.evaluateContent(VelocityTemplateEvaluator.java:105)
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:904)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:866)
at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:853)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderNoException(InternalTemplateManager.java:808)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderNoException(InternalTemplateManager.java:800)
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.GeneratedMethodAccessor188.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
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:218)
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:225)
at com.xpn.xwiki.internal.template.VelocityTemplateEvaluator.evaluateContent(VelocityTemplateEvaluator.java:105)
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:904)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:866)
at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:853)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderNoException(InternalTemplateManager.java:808)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderNoException(InternalTemplateManager.java:800)
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.GeneratedMethodAccessor188.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
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:218)
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:225)
at com.xpn.xwiki.internal.template.VelocityTemplateEvaluator.evaluateContent(VelocityTemplateEvaluator.java:105)
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:904)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:866)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:846)
at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:832)
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:2565)
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:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:122)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.xwiki.wysiwyg.filter.ConversionFilter.doFilter(ConversionFilter.java:61)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.xwiki.container.servlet.filters.internal.SetHTTPHeaderFilter.doFilter(SetHTTPHeaderFilter.java:63)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.xwiki.resource.servlet.RoutingFilter.doFilter(RoutingFilter.java:132)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:208)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:111)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:200)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:394)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.xwiki.velocity.XWikiVelocityException: Failed to evaluate content with namespace [xwiki:Courseprojects.Sheet]
at org.xwiki.velocity.internal.InternalVelocityEngine.evaluate(InternalVelocityEngine.java:227)
at org.xwiki.velocity.internal.InternalVelocityEngine.evaluate(InternalVelocityEngine.java:173)
at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:177)
... 188 more
Caused by: org.apache.velocity.exception.MethodInvocationException: Invocation of method 'save' in class com.xpn.xwiki.api.Document threw exception com.xpn.xwiki.XWikiException: Error number 9001 in 9: Access denied in edit mode on document xwiki:Courseproject.Globalchat at xwiki:Classes.Skins.ObjectSkin^XWiki.XWikiSkinFileOverrideClass[6].content[line 164, column 8]
at org.apache.velocity.runtime.parser.node.ASTMethod.handleInvocationException(ASTMethod.java:308)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:235)
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.parser.node.ASTIfStatement.render(ASTIfStatement.java:171)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:218)
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.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:225)
... 190 more
Caused by: com.xpn.xwiki.XWikiException: Error number 9001 in 9: Access denied in edit mode on document xwiki:Courseproject.Globalchat
at com.xpn.xwiki.api.Document.save(Document.java:2633)
at com.xpn.xwiki.api.Document.save(Document.java:2604)
at jdk.internal.reflect.GeneratedMethodAccessor2337.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
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)
... 205 more