General Actions:
This is a playground for FOAF+SSL integration in XWiki.
WebId's are so simple to make and to use, that it is difficult to explain. The following screen cast does this better than any HOWTO could:
With foaf+ssl, you no longer need to type a username or remember a password. Public Key Cryptography takes care of that. As Dan Kaminsky pointed out in a few of his speeches, the major security problem on the web are passwords. 60% of security breaches can be attributed to them. Why are they still so ubiquitous? Because the only secure contender, SSL - the protocol that gave us online shopping - and X.509 were too expensive and complex for end users. But this need to be so. By tying X.509 to the semantic web, we solve the major problem of cost, and introduce powerful flexibility. On the server side DNSsec will solve the other half of the problem. See the recent thread on the foaf-protocols list.
Currently you can get yourself an account on here, the normal way, then create yourself a WebID.
The idea is that you only need one account (though you can have a few) to login to all other sites. Ideally this account would be on a server you control.
XWiki deploys profiles in RDFa, which is still very new. A lot of the foaf+ssl community is just moving over to supporting that, so
a number of sites will seem broken when attaching from here.
Please feel free to get an account and edit this wiki. Send feedback to the foaf-protocols mailing list
The code to add to XWiki to enable this is available here http://github.com/bblfish/keygenapp in the xwiki subdirectory
This is a wiki, ie an easy-to-edit website that will help you work better together. This Wiki is made of pages sorted by spaces. You're currently in the Main space, looking at its home page (WebHome).
No document has been tagged yet. Documents can be tagged from the information section (footer) or from the Document information panel available in edit mode. For more information on tagging please refer to the User Guide.
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($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:131)
at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:50)
at org.xwiki.rendering.macro.script.AbstractScriptMacro.evaluateBlock(AbstractScriptMacro.java:302)
at org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:198)
at org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:59)
at org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transformOnce(MacroTransformation.java:187)
at org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transform(MacroTransformation.java:132)
at org.xwiki.rendering.internal.transformation.DefaultTransformationManager.performTransformations(DefaultTransformationManager.java:83)
at org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:248)
at org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:124)
at org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:54)
at org.xwiki.display.internal.DefaultDocumentDisplayer.display(DefaultDocumentDisplayer.java:80)
at org.xwiki.display.internal.DefaultDocumentDisplayer.display(DefaultDocumentDisplayer.java:38)
at com.xpn.xwiki.internal.sheet.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:113)
at com.xpn.xwiki.internal.sheet.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:57)
at org.xwiki.display.internal.ConfiguredDocumentDisplayer.display(ConfiguredDocumentDisplayer.java:67)
at org.xwiki.display.internal.ConfiguredDocumentDisplayer.display(ConfiguredDocumentDisplayer.java:41)
at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:862)
at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:841)
at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:872)
at com.xpn.xwiki.api.Document.getRenderedContent(Document.java:586)
at sun.reflect.GeneratedMethodAccessor7373.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:395)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:384)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:173)
at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:280)
at org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:567)
at org.apache.velocity.runtime.parser.node.ASTExpression.value(ASTExpression.java:71)
at org.apache.velocity.runtime.parser.node.ASTSetDirective.render(ASTSetDirective.java:142)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:106)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:228)
at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:184)
at com.xpn.xwiki.render.XWikiVelocityRenderer.evaluate(XWikiVelocityRenderer.java:117)
at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:1791)
at com.xpn.xwiki.XWiki.parseTemplate(XWiki.java:1728)
at com.xpn.xwiki.api.XWiki.parseTemplate(XWiki.java:839)
at sun.reflect.GeneratedMethodAccessor7231.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:395)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:384)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:173)
at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:280)
at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:369)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:216)
at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:311)
at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:230)
at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:207)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:87)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:106)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:228)
at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:184)
at com.xpn.xwiki.render.XWikiVelocityRenderer.evaluate(XWikiVelocityRenderer.java:117)
at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:1791)
at com.xpn.xwiki.web.Utils.parseTemplate(Utils.java:154)
at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:241)
at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:116)
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:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:128)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.xwiki.wysiwyg.server.filter.ConversionFilter.doFilter(ConversionFilter.java:144)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.xpn.xwiki.plugin.webdav.XWikiDavFilter.doFilter(XWikiDavFilter.java:68)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:217)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:776)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:705)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:898)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
at java.lang.Thread.run(Thread.java:662)
Caused by: org.xwiki.velocity.XWikiVelocityException: Failed to evaluate content with id [webid:Main.WebHome]
at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:247)
at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:184)
at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:124)
... 102 more
Caused by: org.apache.velocity.exception.MethodInvocationException: Invocation of method 'searchDocuments' in class com.xpn.xwiki.api.XWiki threw exception com.xpn.xwiki.XWikiException: Error number 3223 in 3: Exception while searching documents with SQL [select distinct doc.space, doc.name, doc.date from XWikiDocument as doc where (doc.hidden <> true or doc.hidden is null) and doc.space not in () and doc.version like '%.1' and doc.author != 'superadmin' order by doc.date desc]
Wrapped Exception: unexpected end of subtree [select distinct doc.space, doc.name, doc.date from com.xpn.xwiki.doc.XWikiDocument as doc where (doc.hidden <> true or doc.hidden is null) and doc.space not in () and doc.version like '%.1' and doc.author != 'superadmin' order by doc.date desc] at webid:Main.WebHome[line 125, column 32]
at org.apache.velocity.runtime.parser.node.ASTMethod.handleInvocationException(ASTMethod.java:243)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:187)
at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:280)
at org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:567)
at org.apache.velocity.runtime.parser.node.ASTExpression.value(ASTExpression.java:71)
at org.apache.velocity.runtime.parser.node.ASTSetDirective.render(ASTSetDirective.java:142)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:87)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:87)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:228)
... 104 more
Caused by: com.xpn.xwiki.XWikiException: Error number 3223 in 3: Exception while searching documents with SQL [select distinct doc.space, doc.name, doc.date from XWikiDocument as doc where (doc.hidden <> true or doc.hidden is null) and doc.space not in () and doc.version like '%.1' and doc.author != 'superadmin' order by doc.date desc]
Wrapped Exception: unexpected end of subtree [select distinct doc.space, doc.name, doc.date from com.xpn.xwiki.doc.XWikiDocument as doc where (doc.hidden <> true or doc.hidden is null) and doc.space not in () and doc.version like '%.1' and doc.author != 'superadmin' order by doc.date desc]
at com.xpn.xwiki.store.XWikiHibernateStore.searchGenericInternal(XWikiHibernateStore.java:2315)
at com.xpn.xwiki.store.XWikiHibernateStore.searchDocumentReferencesInternal(XWikiHibernateStore.java:2270)
at com.xpn.xwiki.store.XWikiHibernateStore.searchDocumentsNamesInternal(XWikiHibernateStore.java:2257)
at com.xpn.xwiki.store.XWikiHibernateStore.searchDocumentsNames(XWikiHibernateStore.java:2020)
at com.xpn.xwiki.store.XWikiCacheStore.searchDocumentsNames(XWikiCacheStore.java:378)
at com.xpn.xwiki.api.XWiki.searchDocuments(XWiki.java:708)
at sun.reflect.GeneratedMethodAccessor7376.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:395)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:384)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:173)
... 114 more
Caused by: org.hibernate.hql.ast.QuerySyntaxException: unexpected end of subtree [select distinct doc.space, doc.name, doc.date from com.xpn.xwiki.doc.XWikiDocument as doc where (doc.hidden <> true or doc.hidden is null) and doc.space not in () and doc.version like '%.1' and doc.author != 'superadmin' order by doc.date desc]
at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:54)
at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:47)
at org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:82)
at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:263)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:187)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:138)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:124)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1770)
at com.xpn.xwiki.store.XWikiHibernateStore.searchGenericInternal(XWikiHibernateStore.java:2298)
... 125 more