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/