[xwiki-users] international characters in space names
hello, I have several spaces starting with a special charakter ÖGroup etc. xwiki search doesn't find any attachements that are attached to groups starting with Ö when I try to search attachements limiting the search to ÖGroup I get the following error: org.xwiki.rendering.macro.MacroExecutionException: Failed to evaluate Velocity Macro for content [$xwiki.jsfx.use("uicomponents/search/search.js", false)## $xwiki.ssfx.use("uicomponents/search/search.css", true)## ## Disable the document extra data: comments, attachments, history... #set($docextras = []) #set ($rssmode = ("$!request.xpage" == 'plain')) ## --------------- ## Space filtering ## --------------- #set($spaces = $xwiki.spaces) #set($selectedSpace = "$!request.space") ## --------------- ## Space macros ## --------------- #macro(spaceoption $space $selectedSpace) <option value="${space}" #if($selectedSpace == $space)selected="selected"#end>$space</option> #end #macro(spaceselect $selectedSpace $spaces) <select name="space" title="$msg.get('xe.search.bar.spaces.title')"> <option value="" #if($selectedSpace == '')selected="selected"#end>$msg.get('xe.search.bar.spaces.all')</option> #foreach($space in $spaces) #if (!$blacklistedSpaces.contains($space)) #spaceoption($space $selectedSpace) #end #end </select> #end ## ## #set($text = "$!request.getParameter('text')") #set($utext = $util.encodeURI($text)) ## {{html}} <form action="" id="searchBar"> <div class="centered"> <input type="text" name="text" class="searchQuery #if($text == '') defaultText#end" #if($text == '') value="$msg.get('xe.search.bar.query.tip')" #else value="$xwiki.getXMLEncoded(${text})" #end title="$msg.get('xe.search.bar.query.title')"/> #spaceselect($selectedSpace $spaces) <input type="submit" class="searchButton" value="$msg.get('xe.search.bar.submit')" title="$msg.get('xe.search.bar.submit.title')"/> </div> </form> {{/html}} ## #set($space = $selectedSpace) #set($datedlist = $util.arrayList) #if("$!text" == '') ## No search #else #set($text = $text.replaceAll("'", "''").replaceAll("%", "\\%")) #set($nbitems = 50) ## ---------------------------------------------------------------------- ## Exclude Blacklisted spaces ($blacklistedSpaces is set in xwikivars.vm) ## Also exclude WebPreferences. ## ---------------------------------------------------------------------- #set ($webClause = '') #foreach ($blacklistedSpace in $blacklistedSpaces) #set ($webClause = "${webClause} doc.space <> '$blacklistedSpace' and") #end #if(!$hasAdmin && !$isAdvancedUser) #set ($webClause = "${webClause} doc.name<>'WebPreferences' and") #end ## ----------------------------------------------------------- ## Display only a given space if $request.space is defined ## ----------------------------------------------------------- #if("$!space" != '') #set ($webClause = "${webClause} doc.space='$space' and") #end #macro(addelement $item $list) #if($xwiki.hasAccessLevel('view', $context.user, "${context.database}:${item}")) #set($itemdoc = $xwiki.getDocument($item)) ## All items will be sorted by the date; since the list is obtained from several queries, we can't order in the HQL. ## Prefix all item names with the date for sorting the combined results. #set($sdate = $xwiki.formatDate($itemdoc.date, 'yyyyMMddHHmmss')) #set($sitem = "${sdate}${item}") #if(!$list.contains($sitem)) #set($discard = $list.add($sitem)) #end #end #end ## ----------------------------------------------------------- ## Search in the page names ## ----------------------------------------------------------- #set ($sql = "where $webClause upper(doc.fullName) like upper('%$!text%') order by doc.date desc") #foreach ($item in $xwiki.searchDocuments($sql , $nbitems, 0)) #addelement($item $datedlist) #end ## ----------------------------------------------------------- ## Search in page content ## ----------------------------------------------------------- #set ($sql = "where $webClause upper(doc.content) like upper('%$!text%') order by doc.date desc") #foreach ($item in $xwiki.searchDocuments($sql , $nbitems, 0)) #addelement($item $datedlist) #end ## ----------------------------------------------------------- ## Search in text fields (simple String properties) ## ----------------------------------------------------------- #set($sql= ", BaseObject as obj, StringProperty as prop where $webClause obj.name=doc.fullName and prop.id.id = obj.id and upper(prop.value) like upper('%$!text%')") #foreach ($item in $xwiki.searchDocuments($sql , $nbitems, 0)) #addelement($item $datedlist) #end ## ----------------------------------------------------------- ## Search in big text fields (textarea properties) ## ----------------------------------------------------------- #set($sql= ", BaseObject as obj, LargeStringProperty as prop where $webClause obj.name=doc.fullName and prop.id.id = obj.id and upper(prop.value) like upper('%$!text%')") #foreach ($item in $xwiki.searchDocuments($sql , $nbitems, 0)) #addelement($item $datedlist) #end #end #set($list = $util.arrayList) #foreach($item in $util.sort($datedlist)) ## datedlist contains items prefixed with the date; strip the date from the actual item name: #set($ok = $list.add(0, $item.substring(14))) #end #if ("$!utext" != '') #if($rssmode) #set ($feed = $xwiki.feed.getDocumentFeed($list, $util.getHashMap())) #set ($feedURI = $doc.getExternalURL("view")) #set ($discard = $feed.setLink($feedURI)) #set ($discard = $feed.setUri($feedURI)) #set ($discard = $feed.setAuthor('XWiki')) #set ($discard = $feed.setTitle($msg.get('xe.search.rss', [$text]))) #set ($discard = $feed.setDescription($msg.get('xe.search.rss', [$text]))) #set ($discard = $feed.setLanguage($context.language)) #set ($discard = $feed.setCopyright($xwiki.getXWikiPreference('copyright'))) $xwiki.feed.getFeedOutput($feed, $xwiki.getXWikiPreference('feed_type', 'rss_2.0')) #else {{include document="XWiki.Results"/}} #if($selectedSpace == '') #set($rssURL = $xwiki.getURL($doc.fullName, 'view', "xpage=plain&outputSyntax=plain&text=${utext}" )) #else #set($rssURL = $xwiki.getURL($doc.fullName, 'view', "xpage=plain&outputSyntax=plain&space=${selectedSpace}&text=${utext}")) #end {{html}} <a href="${rssURL}"><img src="$xwiki.getSkinFile("icons/silk/feed.gif")" alt="RSS icon"/>$msg.get("xe.search.rss", ["[$text]"])</a> {{/html}} #set($luceneSearch = "[[Main.LuceneSearch?text=$!utext]]") {{info}}$msg.get('xe.search.lucene.try', [$luceneSearch]){{/info}} #end #end {{velocity}}] at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluate(VelocityMacro.java:118) at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluate(VelocityMacro.java:43) at java.lang.Thread.run(Thread.java:619) Caused by: org.xwiki.velocity.XWikiVelocityException: Failed to evaluate content with id [velocity macro] at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:200) at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:156) at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluate(VelocityMacro.java:110) ... 93 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='ÖWM Logo' and upper(doc.fullName) like upper('%manual.pdf%') order by doc.date desc] Wrapped Exception: could not execute query at velocity macro[line 82, column 27] at org.apache.velocity.runtime.parser.node.ASTMethod.handleInvocationException(ASTMethod.java:337) ... 95 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='ÖWM Logo' and upper(doc.fullName) like upper('%manual.pdf%') order by doc.date desc] Wrapped Exception: could not execute query at com.xpn.xwiki.store.XWikiHibernateStore.searchDocumentsNamesInternal(XWikiHibernateStore.java:2306) I tried to delete those spaces using the following macro: {{velocity}} #if ($request.space) #if ($request.confirm == "1") #foreach ($item in $xwiki.getSpaceDocsName($request.space)) * Deleting $item $xwiki.getDocument("${request.space}.${item}").delete()\\ #end #else [[Confirm delete space ${request.space}>>$doc.fullName?space=${request.space}&confirm=1]]: #foreach ($item in $xwiki.getSpaceDocsName($request.space)) * $item #end #end #else |=Space |=Action #foreach($space in $xwiki.spaces) |$space | [[Index>>Main.SpaceIndex?space=${space}]] - [[Delete>>$doc.fullName?space=${space}]] #end #end {{/velocity}} -------------------- again the same problem caused by the special charakter: ----> Failed to execute macro: velocity org.xwiki.rendering.macro.MacroExecutionException: Failed to evaluate Velocity Macro for content [#if ($request.space) #if ($request.confirm == "1") #foreach ($item in $xwiki.getSpaceDocsName($request.space)) * Deleting $item $xwiki.getDocument("${request.space}.${item}").delete()\\ #end #else [[Confirm delete space ${request.space}>>$doc.fullName?space=${request.space}&confirm=1]]: #foreach ($item in $xwiki.getSpaceDocsName($request.space)) * $item #end #end #else |=Space |=Action #foreach($space in $xwiki.spaces) |$space | [[Index>>Main.SpaceIndex?space=${space}]] - [[Delete>>$doc.fullName?space=${space}]] #end #end] at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluate(VelocityMacro.java:118) at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluate(VelocityMacro.java:43) at org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:200) at org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:52) at org.xwiki.rendering.internal.transformation.MacroTransformation.transformOnce(MacroTransformation.java:175) at org.xwiki.rendering.internal.transformation.MacroTransformation.transform(MacroTransformation.java:120) at org.xwiki.rendering.internal.transformation.DefaultTransformationManager.performTransformations(DefaultTransformationManager.java:72) at com.xpn.xwiki.doc.XWikiDocument.performSyntaxConversion(XWikiDocument.java:5586) at com.xpn.xwiki.doc.XWikiDocument.performSyntaxConversion(XWikiDocument.java:5561) at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:557) at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:571) at com.xpn.xwiki.api.Document.getRenderedContent(Document.java:475) at sun.reflect.GeneratedMethodAccessor324.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: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:191) at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:156) at com.xpn.xwiki.render.XWikiVelocityRenderer.evaluate(XWikiVelocityRenderer.java:108) at com.xpn.xwiki.XWiki.parseTemplate(XWiki.java:1703) at com.xpn.xwiki.XWiki.parseTemplate(XWiki.java:1624) at com.xpn.xwiki.api.XWiki.parseTemplate(XWiki.java:657) at sun.reflect.GeneratedMethodAccessor125.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: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:191) at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:156) at com.xpn.xwiki.render.XWikiVelocityRenderer.evaluate(XWikiVelocityRenderer.java:108) at com.xpn.xwiki.XWiki.parseTemplate(XWiki.java:1703) at com.xpn.xwiki.XWiki.parseTemplate(XWiki.java:1624) at com.xpn.xwiki.web.Utils.parseTemplate(Utils.java:124) at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:224) at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:115) 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:689) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.xpn.xwiki.wysiwyg.server.filter.ConversionFilter.doFilter(ConversionFilter.java:152) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:119) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.xpn.xwiki.plugin.webdav.XWikiDavFilter.doFilter(XWikiDavFilter.java:68) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.xpn.xwiki.web.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:295) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.xpn.xwiki.web.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:112) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283) at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773) at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703) at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) at java.lang.Thread.run(Thread.java:619) Caused by: org.xwiki.velocity.XWikiVelocityException: Failed to evaluate content with id [velocity macro] at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:200) at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:156) at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluate(VelocityMacro.java:110) ... 93 more Caused by: org.apache.velocity.exception.MethodInvocationException: Invocation of method 'getSpaceDocsName' in class com.xpn.xwiki.api.XWiki threw exception com.xpn.xwiki.XWikiException: Error number 0 in 0: Exception while execute query. Query statement = [getSpaceDocsName] Wrapped Exception: Exception while execute query. Query statement = [getSpaceDocsName] at velocity macro[line 8, column 27] at org.apache.velocity.runtime.parser.node.ASTMethod.handleInvocationException(ASTMethod.java:337) at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:284) 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.directive.Foreach.render(Foreach.java:282) 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.SimpleNode.render(SimpleNode.java:336) at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:106) at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72) at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:87) at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:336) at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:191) ... 95 more Caused by: com.xpn.xwiki.XWikiException: Error number 0 in 0: Exception while execute query. Query statement = [getSpaceDocsName] Wrapped Exception: Exception while execute query. Query statement = [getSpaceDocsName] at com.xpn.xwiki.XWiki.getSpaceDocsName(XWiki.java:5734) at com.xpn.xwiki.api.XWiki.getSpaceDocsName(XWiki.java:1515) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 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: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) ... 106 more
On 02/23/2010 12:39 PM, Axel Zuzek wrote:
hello,
I have several spaces starting with a special charakter ÖGroup etc.
xwiki search doesn't find any attachements that are attached to groups starting with Ö
This should work fine. Make sure that your database is properly configured. This applies mostly to mysql databases, which by default use the latin1 encoding, which can't handle the full UTF-8 range. I just tried it locally, and the default web search correctly finds a space/page starting with Ö.
when I try to search attachements limiting the search to ÖGroup I get the following error:
org.xwiki.rendering.macro.MacroExecutionException: Failed to evaluate Velocity Macro for content [$xwiki.jsfx.use("uicomponents/search/search.js", false)## $xwiki.ssfx.use("uicomponents/search/search.css", true)##
## Disable the document extra data: comments, attachments, history... #set($docextras = []) #set ($rssmode = ("$!request.xpage" == 'plain')) ## --------------- ## Space filtering ## ---------------
#set($spaces = $xwiki.spaces) #set($selectedSpace = "$!request.space") ## --------------- ## Space macros ## --------------- #macro(spaceoption $space $selectedSpace) <option value="${space}" #if($selectedSpace == $space)selected="selected"#end>$space</option>
#end #macro(spaceselect $selectedSpace $spaces) <select name="space" title="$msg.get('xe.search.bar.spaces.title')"> <option value="" #if($selectedSpace == '')selected="selected"#end>$msg.get('xe.search.bar.spaces.all')</option>
#foreach($space in $spaces) #if (!$blacklistedSpaces.contains($space)) #spaceoption($space $selectedSpace) #end #end </select> #end ## ## #set($text = "$!request.getParameter('text')")
#set($utext = $util.encodeURI($text)) ## {{html}} <form action="" id="searchBar"> <div class="centered"> <input type="text" name="text" class="searchQuery #if($text == '') defaultText#end" #if($text == '') value="$msg.get('xe.search.bar.query.tip')" #else value="$xwiki.getXMLEncoded(${text})" #end title="$msg.get('xe.search.bar.query.title')"/>
#spaceselect($selectedSpace $spaces) <input type="submit" class="searchButton" value="$msg.get('xe.search.bar.submit')" title="$msg.get('xe.search.bar.submit.title')"/>
</div> </form> {{/html}} ## #set($space = $selectedSpace) #set($datedlist = $util.arrayList) #if("$!text" == '') ## No search #else #set($text = $text.replaceAll("'", "''").replaceAll("%", "\\%"))
#set($nbitems = 50) ## ---------------------------------------------------------------------- ## Exclude Blacklisted spaces ($blacklistedSpaces is set in xwikivars.vm) ## Also exclude WebPreferences. ## ----------------------------------------------------------------------
#set ($webClause = '') #foreach ($blacklistedSpace in $blacklistedSpaces) #set ($webClause = "${webClause} doc.space<> '$blacklistedSpace' and") #end #if(!$hasAdmin&& !$isAdvancedUser)
#set ($webClause = "${webClause} doc.name<>'WebPreferences' and") #end ## ----------------------------------------------------------- ## Display only a given space if $request.space is defined
## ----------------------------------------------------------- #if("$!space" != '') #set ($webClause = "${webClause} doc.space='$space' and") #end #macro(addelement $item $list)
#if($xwiki.hasAccessLevel('view', $context.user, "${context.database}:${item}")) #set($itemdoc = $xwiki.getDocument($item)) ## All items will be sorted by the date; since the list is obtained from several queries, we can't order in the HQL.
## Prefix all item names with the date for sorting the combined results. #set($sdate = $xwiki.formatDate($itemdoc.date, 'yyyyMMddHHmmss')) #set($sitem = "${sdate}${item}") #if(!$list.contains($sitem))
#set($discard = $list.add($sitem)) #end #end #end ## ----------------------------------------------------------- ## Search in the page names ## -----------------------------------------------------------
#set ($sql = "where $webClause upper(doc.fullName) like upper('%$!text%') order by doc.date desc") #foreach ($item in $xwiki.searchDocuments($sql , $nbitems, 0)) #addelement($item $datedlist)
#end ## ----------------------------------------------------------- ## Search in page content ## ----------------------------------------------------------- #set ($sql = "where $webClause upper(doc.content) like upper('%$!text%') order by doc.date desc")
#foreach ($item in $xwiki.searchDocuments($sql , $nbitems, 0)) #addelement($item $datedlist) #end ## ----------------------------------------------------------- ## Search in text fields (simple String properties)
## ----------------------------------------------------------- #set($sql= ", BaseObject as obj, StringProperty as prop where $webClause obj.name=doc.fullName and prop.id.id = obj.id and upper(prop.value) like upper('%$!text%')")
#foreach ($item in $xwiki.searchDocuments($sql , $nbitems, 0)) #addelement($item $datedlist) #end ## ----------------------------------------------------------- ## Search in big text fields (textarea properties)
## ----------------------------------------------------------- #set($sql= ", BaseObject as obj, LargeStringProperty as prop where $webClause obj.name=doc.fullName and prop.id.id = obj.id and upper(prop.value) like upper('%$!text%')")
#foreach ($item in $xwiki.searchDocuments($sql , $nbitems, 0)) #addelement($item $datedlist) #end #end #set($list = $util.arrayList) #foreach($item in $util.sort($datedlist)) ## datedlist contains items prefixed with the date; strip the date from the actual item name:
#set($ok = $list.add(0, $item.substring(14))) #end #if ("$!utext" != '') #if($rssmode) #set ($feed = $xwiki.feed.getDocumentFeed($list, $util.getHashMap())) #set ($feedURI = $doc.getExternalURL("view"))
#set ($discard = $feed.setLink($feedURI)) #set ($discard = $feed.setUri($feedURI)) #set ($discard = $feed.setAuthor('XWiki')) #set ($discard = $feed.setTitle($msg.get('xe.search.rss', [$text])))
#set ($discard = $feed.setDescription($msg.get('xe.search.rss', [$text]))) #set ($discard = $feed.setLanguage($context.language)) #set ($discard = $feed.setCopyright($xwiki.getXWikiPreference('copyright')))
$xwiki.feed.getFeedOutput($feed, $xwiki.getXWikiPreference('feed_type', 'rss_2.0')) #else {{include document="XWiki.Results"/}} #if($selectedSpace == '') #set($rssURL = $xwiki.getURL($doc.fullName, 'view', "xpage=plain&outputSyntax=plain&text=${utext}" ))
#else #set($rssURL = $xwiki.getURL($doc.fullName, 'view', "xpage=plain&outputSyntax=plain&space=${selectedSpace}&text=${utext}")) #end {{html}} <a href="${rssURL}"><img src="$xwiki.getSkinFile("icons/silk/feed.gif")" alt="RSS icon"/>$msg.get("xe.search.rss", ["[$text]"])</a>
{{/html}} #set($luceneSearch = "[[Main.LuceneSearch?text=$!utext]]") {{info}}$msg.get('xe.search.lucene.try', [$luceneSearch]){{/info}} #end #end {{velocity}}] at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluate(VelocityMacro.java:118)
at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluate(VelocityMacro.java:43)
at java.lang.Thread.run(Thread.java:619) Caused by: org.xwiki.velocity.XWikiVelocityException: Failed to evaluate content with id [velocity macro]
at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:200) at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:156) at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluate(VelocityMacro.java:110)
... 93 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='ÖWM Logo' and upper(doc.fullName) like upper('%manual.pdf%') order by doc.date desc]
Wrapped Exception: could not execute query at velocity macro[line 82, column 27] at org.apache.velocity.runtime.parser.node.ASTMethod.handleInvocationException(ASTMethod.java:337)
... 95 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='ÖWM Logo' and upper(doc.fullName) like upper('%manual.pdf%') order by doc.date desc]
Wrapped Exception: could not execute query at com.xpn.xwiki.store.XWikiHibernateStore.searchDocumentsNamesInternal(XWikiHibernateStore.java:2306)
I tried to delete those spaces using the following macro:
{{velocity}}
#if ($request.space)
#if ($request.confirm == "1")
#foreach ($item in $xwiki.getSpaceDocsName($request.space))
* Deleting $item $xwiki.getDocument("${request.space}.${item}").delete()\\
#end
#else
[[Confirm delete space ${request.space}>>$doc.fullName?space=${request.space}&confirm=1]]:
#foreach ($item in $xwiki.getSpaceDocsName($request.space))
* $item
#end
#end
#else
|=Space |=Action
#foreach($space in $xwiki.spaces)
|$space | [[Index>>Main.SpaceIndex?space=${space}]] -
[[Delete>>$doc.fullName?space=${space}]]
#end
#end
{{/velocity}}
-------------------- again the same problem caused by the special charakter:
---->
Failed to execute macro: velocity
org.xwiki.rendering.macro.MacroExecutionException: Failed to evaluate Velocity Macro for content [#if ($request.space) #if ($request.confirm == "1")
#foreach ($item in $xwiki.getSpaceDocsName($request.space)) * Deleting $item $xwiki.getDocument("${request.space}.${item}").delete()\\ #end #else [[Confirm delete space ${request.space}>>$doc.fullName?space=${request.space}&confirm=1]]:
#foreach ($item in $xwiki.getSpaceDocsName($request.space)) * $item #end #end #else |=Space |=Action #foreach($space in $xwiki.spaces) |$space | [[Index>>Main.SpaceIndex?space=${space}]] - [[Delete>>$doc.fullName?space=${space}]]
#end #end] at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluate(VelocityMacro.java:118) at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluate(VelocityMacro.java:43) at org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:200)
at org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:52) at org.xwiki.rendering.internal.transformation.MacroTransformation.transformOnce(MacroTransformation.java:175) at org.xwiki.rendering.internal.transformation.MacroTransformation.transform(MacroTransformation.java:120)
at org.xwiki.rendering.internal.transformation.DefaultTransformationManager.performTransformations(DefaultTransformationManager.java:72) at com.xpn.xwiki.doc.XWikiDocument.performSyntaxConversion(XWikiDocument.java:5586)
at com.xpn.xwiki.doc.XWikiDocument.performSyntaxConversion(XWikiDocument.java:5561) at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:557) at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:571)
at com.xpn.xwiki.api.Document.getRenderedContent(Document.java:475) at sun.reflect.GeneratedMethodAccessor324.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: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:191) at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:156) at com.xpn.xwiki.render.XWikiVelocityRenderer.evaluate(XWikiVelocityRenderer.java:108)
at com.xpn.xwiki.XWiki.parseTemplate(XWiki.java:1703) at com.xpn.xwiki.XWiki.parseTemplate(XWiki.java:1624) at com.xpn.xwiki.api.XWiki.parseTemplate(XWiki.java:657) at sun.reflect.GeneratedMethodAccessor125.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: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:191)
at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:156) at com.xpn.xwiki.render.XWikiVelocityRenderer.evaluate(XWikiVelocityRenderer.java:108) at com.xpn.xwiki.XWiki.parseTemplate(XWiki.java:1703)
at com.xpn.xwiki.XWiki.parseTemplate(XWiki.java:1624) at com.xpn.xwiki.web.Utils.parseTemplate(Utils.java:124) at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:224) at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:115)
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:689) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.xpn.xwiki.wysiwyg.server.filter.ConversionFilter.doFilter(ConversionFilter.java:152) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:119) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.xpn.xwiki.plugin.webdav.XWikiDavFilter.doFilter(XWikiDavFilter.java:68) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.xpn.xwiki.web.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:295) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.xpn.xwiki.web.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:112) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773) at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703) at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) at java.lang.Thread.run(Thread.java:619) Caused by: org.xwiki.velocity.XWikiVelocityException: Failed to evaluate content with id [velocity macro]
at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:200) at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:156) at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluate(VelocityMacro.java:110)
... 93 more Caused by: org.apache.velocity.exception.MethodInvocationException: Invocation of method 'getSpaceDocsName' in class com.xpn.xwiki.api.XWiki threw exception com.xpn.xwiki.XWikiException: Error number 0 in 0: Exception while execute query. Query statement = [getSpaceDocsName]
Wrapped Exception: Exception while execute query. Query statement = [getSpaceDocsName] at velocity macro[line 8, column 27] at org.apache.velocity.runtime.parser.node.ASTMethod.handleInvocationException(ASTMethod.java:337)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:284) 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.directive.Foreach.render(Foreach.java:282) 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.SimpleNode.render(SimpleNode.java:336) at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:106) at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:87) at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:336) at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:191)
... 95 more Caused by: com.xpn.xwiki.XWikiException: Error number 0 in 0: Exception while execute query. Query statement = [getSpaceDocsName] Wrapped Exception: Exception while execute query. Query statement = [getSpaceDocsName]
at com.xpn.xwiki.XWiki.getSpaceDocsName(XWiki.java:5734) at com.xpn.xwiki.api.XWiki.getSpaceDocsName(XWiki.java:1515) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
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: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) ... 106 more
-- Sergiu Dumitriu http://purl.org/net/sergiu/
participants (2)
-
Axel Zuzek -
Sergiu Dumitriu