org.xwiki.rendering.macro.MacroExecutionException: Failed to evaluate Velocity Macro for content [##
## Recent changes.
##
## Optional parameters :
##
## Parameters which can be set in velocity before including this page or can be passed as HTTP parameters.
## Note that HTTP parameters supercede velocity set variables.
##
## - rcShowMinor (String set to "true" or "false"): show minor edits.
## - rcShowDiff (String set to "true" or "false"): show diff in items.
## - rcShowRss (String set to "true" or "false"): show RSS at the bottom of the list.
## - rcChangesNb (String set to a numerical value): number of recent changes to display.
## - rcSpace (List of string[s]): restrict recent changes retrieval to pages within the given space.
## - rcTag (List of string[s]): restrict recent changes retrieval to pages with the given tag.
## - rcAuthor (List of string[s]): restrict recent changes retrieval to pages with the given author.
##
## Parameters which can be set before including this page only.
##
## - rcDocumentNames (Collection): The list of recentlyChanged documents, to reuse a previous search query.
##
$xwiki.jsx.use("Main.RecentChanges")##
$xwiki.ssx.use("Main.RecentChanges")##
#set($action = "$!request.getParameter('action')")
##
## Start execution timer
##
#set($execStart = $util.getDate())
##
## Go to diff URL service.
##
#if($action == "goToDiffURL")
#set($page = "$!request.getParameter('page')")
#set($author = "$!request.getParameter('author')")
#set($date = "$!request.getParameter('date')")
#set($period = $xwiki.criteriaService.getPeriodFactory().createDayPeriod($date))
#set($criterion = $xwiki.criteriaService.getRevisionCriteriaFactory().createRevisionCriteria($author, $period))
#if("$!request.getParameter('rcShowMinor')" == "true")
#set($discard = $criterion.setIncludeMinorVersions(true))
#end
#set($diffDoc = $xwiki.getDocument($page))
#set($revisions = $diffDoc.getRevisions($criterion))
#set($rev1 = $listtool.get($revisions, 0))
#set($revMax = $revisions.size() - 1)
#set($rev2 = $listtool.get($revisions, $revMax))
#if($rev2 != "1.1")
#set($rev2 = $xwiki.getDocument($diffDoc, $rev2).getPreviousVersion())
#end
$response.sendRedirect($diffDoc.getURL("view", "viewer=changes&rev1=${rev1}&rev2=${rev2}"))
#end
## We have to use the HTML macro to avoid prints of multiple   on macro calls.
{{html}}
## Manage minor edits.
#setVariableFromRequest($rcShowMinor "rcShowMinor" false)
## Manage show diff in items.
#setVariableFromRequest($rcShowDiff "rcShowDiff" true)
## Manage show RSS links.
#setVariableFromRequest($rcShowRss "rcShowRss" true)
## Manage number of changes to display.
#setVariableFromRequest($rcChangesNb "rcChangesNb" 30)
## Manage tag criterion
#setVariableFromRequest($rcTag "rcTag" [])
## Manage space criterion
#setVariableFromRequest($rcSpace "rcSpace" [])
## Manage author criterion
#setVariableFromRequest($rcAuthor "rcAuthor" [])
{{/html}}
##
## Create a string containing one or more ? given the number of values in the passed list.
##
#macro(createQueryParameters $values $parameters)
#foreach($value in $values)
#if($parameters == "")
#set($parameters = "?")
#else
#set($parameters = "${parameters}, ?")
#end
#end
#end
##
## Retrieve recently changed documents.
##
#set($criteria = $util.getHashMap())
#if("$!rcDocumentNames" == "")
#if(!$xwiki.hasMinorEdit() || $rcShowMinor)
#set ($hqlQuery = "where 1=1 order by doc.date desc")
#else
#set ($hqlQuery = "where doc.version like '%.1'#if(!$isAdvancedUser) and doc.author != 'superadmin'#end order by doc.date desc")
#end
## Create space criterion.
#if($rcSpace.size() > 0)
#set($spaceParameters = "")
#createQueryParameters($rcSpace $spaceParameters)
#set($discard = $criteria.put("doc.space in (${spaceParameters})", $rcSpace))
#end
## Create tag criterion.
#if("$!xwiki.getPlugin('tag')" != "" && $rcTag.size() > 0)
#set($docsWithTag = $util.getArrayList())
#foreach($item in $rcTag)
#set($discard = $docsWithTag.addAll($xwiki.tag.getDocumentsWithTag($item)))
#end
#set($docsWithTagParameters = "")
#createQueryParameters($docsWithTag $docsWithTagParameters)
#set($discard = $criteria.put("doc.fullName in (${docsWithTagParameters})", $docsWithTag))
#end
#if($rcAuthor.size() > 0)
#set($authorParameters = "")
#createQueryParameters($rcAuthor $authorParameters)
#set($discard = $criteria.put("doc.author in (${authorParameters})", $rcAuthor))
#end
## Exclude blacklisted spaces if displaying changes for a whole wiki
#if($rcSpace.size() == 0)
#set($blacklistedSpacesParameters = "")
#createQueryParameters($blacklistedSpaces $blacklistedSpacesParameters)
#set($discard = $criteria.put("doc.space not in (${blacklistedSpacesParameters})", $blacklistedSpaces))
#end
#if($criteria.size() > 0)
## If any, loop over criterias to add them to the query, then perform the query.
#set($values = $util.getArrayList())
#foreach($criterion in $criteria.keySet())
#if($criteria.get($criterion).size() > 0)
#set($hqlQuery = $hqlQuery.replaceAll("where", "where ${criterion} and"))
#set($discard = $values.addAll(0, $criteria.get($criterion)))
#end
#end
#set($rcDocumentNames = $xwiki.searchDocuments($hqlQuery, $rcChangesNb, 0, $values))
#else
## No query criterion, perform the query as is.
#set($rcDocumentNames = $xwiki.searchDocuments($hqlQuery, $rcChangesNb, 0))
#end
#end
##
## Prepare comments handling
#set($commentsOrder = false)
#if($xwiki.getSpacePreferenceAsInt('commentsorder', 1) == 0)
#set($commentsOrder = true)
#end
##
## Comment handling macro.
## Retreive page's last comment if any and
## overwrite variables if this comment is the last modification on the page.
##
#macro(handleComment $rcDoc $rcType $rcDt $commentsOrder)
## Retrieve comments from last to first.
#set($rcComments = $rcDoc.getComments($commentsOrder))
#if($rcComments.size() > 0)
## Retrieve last comment.
#set($lastComment = $listtool.get($rcComments, 0))
#set($lastCommentDate = $lastComment.getProperty("date").getValue())
## If the last modification on the page is the comment, overwrite values.
## We don't test compareTo() == 0 since the comment date and the save date may vary a little bit.
#if($lastCommentDate.compareTo($rcDt.toDate()) > -1 && $lastCommentDate.compareTo($rcDt.toDate()) <= 1)
#set($rcType = "comment")
#end
#end
#end
##
## Attachments handling macro.
## Retrieve page's attachments and put those which upload matches the modification entry (author and timeframe)
## in the $rcAttachments List.
##
#macro(handleAttachments $rcDoc $rcAuthor $rcDt)
#set($attachments = $rcDoc.getAttachmentList())
#foreach($attachment in $attachments)
#set($attachmentDt = $xwiki.jodatime.getDateTime($attachment.getDate().getTime()))
#if($rcAuthor == $attachment.getAuthor() && $rcDt.getYear() == $attachmentDt.getYear() && $rcDt.getDayOfYear() == $attachmentDt.getDayOfYear())
#set($discard = $rcAttachments.add($attachment))
#end
#end
#end
##
##
##
#macro(displayRcAuthor $author)
#useravatar($author)
<br/><span class="recentChangesAuthor">
#if($author == "XWikiGuest")
Guest
#else
#set($userName = $xwiki.getUserName($author))
#if($userName == "")
## userName can be empty when the page has been saved without specifying the author.
## We're printing a non-breaking space to ensure xhtml validity (ie: avoid empty paragraph).
#else
$userName
#end
#end
</span>
#end
#macro(displayRcVersion $version)
#if($version == "1.1")
<span class="rcVersion">(<span class="newVersion">$msg.get("xe.recentchanges.entry.new")</span>)</span>
#end
#end
##
## Display the recent changes list.
##
#set($previousDt = $xwiki.jodatime.getDateTime(0))
#set($discard = $previousDate.setTime(0))
#set($previousAuthor = "")
## Get this very doc, useful when it is included from another one.
#set($recentChangesDoc = $xwiki.getDocument("Main.RecentChanges"))
{{html clean="false"}}
<table class="recentChanges" summary="$msg.get('xe.recentchanges.summary')">
<tr class="recentChangesHeader"><th scope="col">$msg.get("xe.recentchanges.column.authoranddate")</th><th scope="col">$msg.get("xe.recentchanges.column.changes")</th></tr>
#foreach ($rcDocName in $rcDocumentNames)
#set($row = "")
#set($rcAttachments = $util.arrayList)
## Verify user access level on the document
#if ($xwiki.hasAccessLevel("view", $context.user, "${context.database}:${rcDocName}"))
#set($rcDoc = $xwiki.getDocument($rcDocName))
#set($rcType = "page")
#set($rcAuthor = $rcDoc.getAuthor()) ## TODO : check comments
#set($rcDt = $xwiki.jodatime.getDateTime($rcDoc.getDate().getTime()))
## The handleComment macro overwrites rcType variable if the last modification is a comment.
#handleComment($rcDoc $rcType $rcDt $commentsOrder)
## The handleAttachments macro put a list of attachments uploaded during the day by the author in $rcAttachments.
#handleAttachments($rcDoc $rcAuthor $rcDt)
#if($rcAuthor == $previousAuthor && $rcDt.getYear() == $previousDt.getYear() && $rcDt.getDayOfYear() == $previousDt.getDayOfYear())
## Same day and author, continue in the same row.
#else
## Different day or author, end previous row and start a new one.
#if($velocityCount > 1)</ul></td></tr>#end ## close previous row if needed
<tr><td class="recentChangesLeft">#displayRcAuthor($rcAuthor)<br/>
<span class="recentChangesDate">$xwiki.formatDate($rcDt.toDate(), "MMMM d")</span></td>
<td class="recentChangesRight"><ul class="xlist"> ## open next cell
#end
## Compute a GUID for this modification with page name, modification date and author.
#set($modGUID = "${rcDoc.fullName}_${xwiki.formatDate($rcDt.toDate(), 'yyyyMMdd')}_${rcAuthor}")
## Build the URL used to retreive the diff viewer URL
#set($goToDiffURL = $recentChangesDoc.getURL("view", "xpage=plain&action=goToDiffURL&page=${rcDoc.getFullName()}&author=${rcAuthor}&date=${xwiki.formatDate($rcDt.toDate(), 'yyyyMMdd')}&rcShowMinor=${rcShowMinor}"))
<li class="xitem xunderline xhighlight ${rcType}">
<div class="xitemcontainer">
#if($rcType == "comment")
<div class="modifiedPage"><a href="$rcDoc.getURL()" title="$msg.get("xe.recentchanges.entry.comment.tooltip", [$xwiki.formatDate($rcDt.toDate(), "HH:mm")]) ">$xwiki.getXMLEncoded($rcDoc.getDisplayTitle())</a></div>
#if($rcShowDiff)
<div class="xshowonhover modifiedPageActions"><a class="ajax" href="$rcDoc.getURL("vire", "viewer=comments")" onclick="toggleClass(document.getElementById('$modGUID'), 'hidden'); toggleClass(document.getElementById('${modGUID}_comShow'), 'hidden'); toggleClass(document.getElementById('${modGUID}_comHide'), 'hidden'); return false;"><span id="${modGUID}_comShow">[+] $msg.get("xe.recentchanges.entry.comment.show")</span><span id="${modGUID}_comHide" class="hidden">[-] $msg.get("xe.recentchanges.entry.comment.hide")</span> $msg.get("xe.recentchanges.entry.comment")</a></div>
<div class="commentContainer hidden" id="$modGUID">
<div class="commentQuote lQuo"> </div>
<div class="commentQuote rQuo"> </div>
<div class="comment">
{{/html}}
$lastComment.get("comment")
{{html clean="false"}}
</div>
## Display discussion link, this link point to the comments anchor.
<div class="commentAdd"><img src="$xwiki.getSkinFile("icons/silk/comment.gif")" alt="Reply icon" /> <a href="${rcDoc.getURL("view")}#Comments">$msg.get("xe.recentchanges.entry.comment.seediscussion")</a></div>
</div>
#end
#else
<div class="modifiedPage"><a href="$rcDoc.getURL()" title="$msg.get("xe.recentchanges.entry.page.tooltip", [$rcDoc.getVersion(), $xwiki.formatDate($rcDt.toDate())])">$xwiki.getXMLEncoded($rcDoc.getDisplayTitle())</a> #displayRcVersion($rcDoc.getVersion())</div>
#if($rcShowDiff)
<div class="xshowonhover modifiedPageActions"><a href="$goToDiffURL" title="$msg.get('xe.recentchanges.entry.page.seemodifications.title', [$rcDoc.fullName])">$msg.get("xe.recentchanges.entry.page.seemodifications")</a></div>
## If the author has uploaded attachments during the day in this page, display them.
#if($rcAttachments.size() > 0)
<div class="attachmentContainer" id="$modGUID">
<ul>
#foreach($rcAttachment in $rcAttachments)
<li class="attachment"><a href="$rcDoc.getAttachmentURL($rcAttachment.filename)">$rcAttachment.filename</a> #displayRcVersion($rcAttachment.getVersion())</li>
#end
</ul>
</div>
#end
#end
#end
<div class="xspacer"> </div>
</div>
</li>
#end
#set($previousAuthor = $rcAuthor)
#set($previousDt = $rcDt)
#end
## Close last row if any.
#if($rcDocumentNames.size() > 1)</ul></td></tr>#end
</table>
{{/html}}
##
## Rebuild URL query string
## Workaround until we fix $request.getQueryString()
##
#set($queryString = "")
#set($paramMap = $request.getParameterMap())
#foreach($key in $paramMap.keySet())
#foreach($value in $paramMap.get($key))
#set($queryString = "${queryString}&${key}=${value}")
#end
#end
##
## Provide links to display minor edits and RSS feed.
##
#if($xwiki.hasMinorEdit())
{{html}}
<p class="recentChangesMoreActions">
#if($rcShowMinor)
<a href="$xwiki.getURL($tdoc.getFullName(), "view", $queryString.replaceAll('rcShowMinor=true', ''))"><img src="$xwiki.getSkinFile("icons/silk/zoom_out.gif")" alt="Hide minor icon"/>$msg.get("xe.recentchanges.hideminor")</a>
#else
<a href="$xwiki.getURL($tdoc.getFullName(), "view", "${queryString}&rcShowMinor=true")"><img src="$xwiki.getSkinFile("icons/silk/zoom_in.gif")" alt="Show minor icon"/>$msg.get("xe.recentchanges.showminor")</a>
#end
#if($rcShowRss)
#set($rssURL = "")
#set($parameters = 'xpage=plain&outputSyntax=plain')
#if($rcTag.size() > 0)
#set($parameters = "${parameters}&tag=$listtool.get($rcTag, 0)")
#end
#if($rcSpace.size() > 0)
#set($parameters = "${parameters}&space=$listtool.get($rcSpace, 0)")
#end
#set($rssURL = $xwiki.getURL('Main.WebRss', 'view', $parameters))
<a href="${rssURL}"><img src="$xwiki.getSkinFile("icons/silk/feed.gif")" alt="RSS icon"/>$msg.get("xe.recentchanges.rssfeed")</a>
#end
</p>
{{/html}}
#end]
at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:125)
at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:44)
at org.xwiki.rendering.macro.script.AbstractScriptMacro.evaluateBlock(AbstractScriptMacro.java:298)
at org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:190)
at org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:57)
at org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transformOnce(MacroTransformation.java:184)
at org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transform(MacroTransformation.java:129)
at org.xwiki.rendering.internal.transformation.DefaultTransformationManager.performTransformations(DefaultTransformationManager.java:72)
at com.xpn.xwiki.doc.XWikiDocument.performSyntaxConversion(XWikiDocument.java:7483)
at com.xpn.xwiki.doc.XWikiDocument.performSyntaxConversion(XWikiDocument.java:7432)
at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:835)
at com.xpn.xwiki.XWiki.getRenderedContent(XWiki.java:4324)
at com.xpn.xwiki.XWiki.include(XWiki.java:4254)
at com.xpn.xwiki.api.XWiki.includeTopic(XWiki.java:1583)
at com.xpn.xwiki.api.XWiki.includeTopic(XWiki.java:1555)
at sun.reflect.GeneratedMethodAccessor514.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:389)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:378)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:270)
at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:252)
at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:332)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:212)
at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:247)
at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:175)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:336)
at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:196)
at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:161)
at com.xpn.xwiki.render.XWikiVelocityRenderer.evaluate(XWikiVelocityRenderer.java:116)
at com.xpn.xwiki.render.XWikiVelocityRenderer.render(XWikiVelocityRenderer.java:93)
at com.xpn.xwiki.render.DefaultXWikiRenderingEngine.renderText(DefaultXWikiRenderingEngine.java:292)
at com.xpn.xwiki.render.DefaultXWikiRenderingEngine.renderText(DefaultXWikiRenderingEngine.java:222)
at com.xpn.xwiki.render.DefaultXWikiRenderingEngine.renderText(DefaultXWikiRenderingEngine.java:190)
at com.xpn.xwiki.render.DefaultXWikiRenderingEngine.renderDocument(DefaultXWikiRenderingEngine.java:179)
at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:830)
at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:783)
at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:878)
at com.xpn.xwiki.api.Document.getRenderedContent(Document.java:545)
at sun.reflect.GeneratedMethodAccessor376.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:389)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:378)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:270)
at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:252)
at org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:493)
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:336)
at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:106)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:336)
at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:196)
at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:161)
at com.xpn.xwiki.render.XWikiVelocityRenderer.evaluate(XWikiVelocityRenderer.java:116)
at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:1895)
at com.xpn.xwiki.XWiki.parseTemplate(XWiki.java:1833)
at com.xpn.xwiki.api.XWiki.parseTemplate(XWiki.java:860)
at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:389)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:378)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:270)
at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:252)
at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:332)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:212)
at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:247)
at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:175)
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:336)
at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:106)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:336)
at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:196)
at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:161)
at com.xpn.xwiki.render.XWikiVelocityRenderer.evaluate(XWikiVelocityRenderer.java:116)
at com.xpn.xwiki.XWiki.parseTemplate(XWiki.java:1943)
at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:1865)
at com.xpn.xwiki.web.Utils.parseTemplate(Utils.java:154)
at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:226)
at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:117)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:129)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.xpn.xwiki.wysiwyg.server.filter.ConversionFilter.doFilter(ConversionFilter.java:152)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:206)
at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:179)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.xpn.xwiki.plugin.webdav.XWikiDavFilter.doFilter(XWikiDavFilter.java:68)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:218)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:112)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:536)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:915)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:405)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
Caused by: org.xwiki.velocity.XWikiVelocityException: Failed to evaluate content with id [courses:Main.Dashboard]
at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:205)
at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:161)
at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:118)
... 122 more
Caused by: org.apache.velocity.exception.MethodInvocationException: Invocation of method 'getDateTime' in class com.xpn.xwiki.plugin.jodatime.JodaTimePluginApi threw exception java.lang.IllegalArgumentException at courses:Main.Dashboard[line 215, column 30]
at org.apache.velocity.runtime.parser.node.ASTMethod.handleInvocationException(ASTMethod.java:337)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:290)
at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:252)
at org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:493)
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:366)
at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:175)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:336)
at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:196)
... 124 more
Caused by: java.lang.IllegalArgumentException
at sun.reflect.GeneratedMethodAccessor908.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:389)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:378)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:270)
... 135 more