On Mon, Jan 25, 2010 at 11:07, Thomas Mortagne <[email protected]>wrote:
> On Mon, Jan 25, 2010 at 10:00, Petteri Karttunen > <[email protected]> wrote: > > Hello, > > I've been running xwiki with > "log4j.logger.com.xpn.xwiki.plugin.lucene=debug" now for some days. The > problem has occurred several times but I've nothing in my logs. Is there > something else I could do/debug? > > As i said i doubt "log4j.logger.com.xpn.xwiki.plugin.lucene=debug" > bring anything since Lucene plugin does not print any debug log (or > almost nothing and not useful here). > > Only part of the code i see where it's possible to have the variable > null (which makes it produce a nullpointerexception) are supposed to > be covered by an error log at some point (not when you look at the > page but before). I can't see how you could have this issue if nothing > goes wrong and is then logged. > Not that this issue as finally been fixed ! > > > -Pete > > > > -----Alkuperäinen viesti----- > > Lähettäjä: [email protected] [mailto:[email protected]] > Puolesta Thomas Mortagne > > Lähetetty: 20. tammikuuta 2010 19:28 > > Vastaanottaja: XWiki Users > > Aihe: Re: [xwiki-users] Lucene defaultpage fails > > > > On Wed, Jan 20, 2010 at 17:12, Petteri Karttunen > > <[email protected]> wrote: > >> I wish there was more info in my logs...I paused actively watching and > debugging this one few weeks ago because of the workaround (reinitializing > the plugin when needed in a groovy try{...getQueueSize()...} catch -block on > a search page). As far as I can remember there wasn't any lucene-errors in > my logs at the time and the search clearly returned 0 hits according to > logs. To be sure I'll put the debugging options on again and let you know > the results as soon as the problem occurs again. Are these enough?: > >> > >> log4j.logger.com.xpn.xwiki.plugin.lucene.IndexData=debug > >> log4j.logger.com.xpn.xwiki.plugin.lucene.DocumentData=debug > >> log4j.logger.com.xpn.xwiki.plugin.lucene.IndexUpdater=debug > >> log4j.logger.com.xpn.xwiki.plugin.lucene.IndexRebuilder=debug > >> log4j.logger.com.xpn.xwiki.plugin.lucene.LucenePlugin=debug > >> log4j.logger.com.xpn.xwiki.plugin.lucene.SearchResults=debug > >> log4j.logger.com.xpn.xwiki.plugin.lucene.SearchResult=debug > > > > You can use > > > > log4j.logger.com.xpn.xwiki.plugin.lucene=debug > > > > I think but AFAIK there is almost no debug log in Lucene plugin. > > > >> > >> I haven't examined the code thoroughly so probably a missed shot but is > there any chance that this could be a method synchronization issue with > searchers and writers? > >> -Pete > >> > >> -----Alkuperäinen viesti----- > >> Lähettäjä: [email protected] [mailto:[email protected]] > Puolesta Thomas Mortagne > >> Lähetetty: 20. tammikuuta 2010 17:14 > >> Vastaanottaja: XWiki Users > >> Aihe: Re: [xwiki-users] Lucene defaultpage fails > >> > >> On Wed, Jan 20, 2010 at 16:01, Petteri Karttunen > >> <[email protected]> wrote: > >>> Everything I could find was this one problem in closing the writer: > >>> > >>> 23:00:06,242 [Lucene index updating thread] [Lucene Index Updater] WARN > lucene.IndexUpdater - Failed to close writer. > >>> > >>> I forgot to mention another symptom suggesting index reading problems: > when the situation is on I can do Lucene-queries (custom search page wo > getQueueSize()) but it just doesn't return anything. So the plugin kind of > "works" but "seems" not to be able to read indexes properly. > >> > >> As far as i can see in the code all search* methods in the public api > >> are "protected" from any Exception and return null when something > >> wrong happen. But it also log the error so when you do a failing > >> search you should have something in the log. > >> > >>> -Pete > >>> > >>> > >>> -----Alkuperäinen viesti----- > >>> Lähettäjä: [email protected] [mailto:[email protected]] > Puolesta Thomas Mortagne > >>> Lähetetty: 20. tammikuuta 2010 15:48 > >>> Vastaanottaja: XWiki Users > >>> Aihe: Re: [xwiki-users] Lucene defaultpage fails > >>> > >>> For your informations: as far as i can see in the code there is only > >>> one way to have the IndexUpdater to null (whichgenerate a > >>> nullpointerexcetion in #getQueueSize) is when during the init the > >>> index can't be opened. In this case you should find a log looking like > >>> this: > >>> > >>> "Failed to open the index directory: " followed with a message > >>> detailing a little why it can't open index directory. > >>> > >>> (so indeed it could be caused by the fact that no more inode can be > >>> used on linux for example). > >>> > >>> Could you look if you can find this error anywhere in the log ? > >>> > >>> On Tue, Jan 19, 2010 at 13:48, Thomas Mortagne > >>> <[email protected]> wrote: > >>>> On Tue, Jan 19, 2010 at 13:26, Petteri Karttunen > >>>> <[email protected]> wrote: > >>>>> Hello, > >>>>> > >>>>> My issues seem to happen randomly but not at startup. Plugin works > well from some hours to some days but I'm not sure what triggers this. I > haven't been able to debug anything of interest in plugin's logs. > >>>>> > >>>>> Only potential clue I have is that plugin is leaving index files open > which -at least- leads Tomcat finally to "too many files open" -error at > some point. lsof | grep "lucene" gives me a bunch of these: > >>>>> > >>>>> ... > >>>>> java.bin 10095 tomcat 666r REG 104,1 60931511 > 15634869 /srv/www/DATA/xwiki/lucene/_5r7.cfs (deleted) > >>>>> java.bin 10095 tomcat 667r REG 104,1 60931507 > 15634870 /srv/www/DATA/xwiki/lucene/_5r9.cfs (deleted) > >>>>> java.bin 10095 tomcat 668r REG 104,1 60931507 > 15634871 /srv/www/DATA/xwiki/lucene/_5rb.cfs (deleted) > >>>>> ... > >>>> > >>>>> > >>>>> Also, xwiki gets the plugin object normally during the malfunctional > state but it seems it just cannot read index. Could it be that the plugin > becomes unusable not before a deleted index file becomes overwritten by the > system? That could be the reason why the time it works varies so much > (depending on the other file system usage of the underlying operating > system)? WDT? > >>>> > >>>> This one is http://jira.xwiki.org/jira/browse/XPLUCENE-30 but I don't > >>>> see how it could be the source of the nullpointer exception issue. > >>>> > >>>>> > >>>>> -Pete > >>>>> > >>>>> -----Alkuperäinen viesti----- > >>>>> Lähettäjä: [email protected] [mailto:[email protected]] > Puolesta Thomas Mortagne > >>>>> Lähetetty: 19. tammikuuta 2010 13:20 > >>>>> Vastaanottaja: XWiki Users > >>>>> Aihe: Re: [xwiki-users] Lucene defaultpage fails > >>>>> > >>>>> Hi guys, > >>>>> > >>>>> getting some informations since i can't find just at looking at the > >>>>> code how this would append. > >>>>> > >>>>> When you have the issue, does it appending since the time you started > >>>>> XWiki or does it works and at some point it stops to work even if you > >>>>> did not restarted XWiki. Basically is it always a startup issue ? > >>>>> > >>>>> And in that case do you have anything in the beginning of the log > like > >>>>> a warning or something indicating that something wrong append during > >>>>> lucene plugin initialization ? > >>>>> > >>>>> On Tue, Jan 19, 2010 at 07:20, Gerritjan Koekkoek > >>>>> <[email protected]> wrote: > >>>>>> The following command (thanks Pete) worked en reinitialized Lucene > >>>>>> after that lucenesearch worked again. > >>>>>> > >>>>>> Hope to hear soon how to prevent that Lucene is not initialized? > >>>>>> > >>>>>> > >>>>>>> > xwiki.getXWiki().getPluginManager().getPlugin("lucene").init(xwiki.getXWikiC > >>>>>>> ontext()) > >>>>>> > >>>>>> > >>>>>> Op 18 jan 2010, om 10:46 heeft Guillaume Lerouge het volgende > geschreven: > >>>>>> > >>>>>> Hi, > >>>>>> > >>>>>> yes, I'm frequently hitting this error too and I'm not sure why. > Thomas > >>>>>> Mortagne looked at it last week but he doesn't have a fix yet. > >>>>>> > >>>>>> I was provided with a workaround last friday, I'll see if I can post > it on > >>>>>> code.xwiki.org > >>>>>> > >>>>>> Guillaume > >>>>>> > >>>>>> On Mon, Jan 18, 2010 at 10:05 AM, Petteri Karttunen < > >>>>>> [email protected]> wrote: > >>>>>> > >>>>>>> Hi, > >>>>>>> > >>>>>>> I'm also encountering this problem randomly since XWiki 2.0 but so > far > >>>>>>> haven't been able to find the initial cause. See also > >>>>>>> http://www.mail-archive.com/[email protected]/msg09549.html. As > Marius > >>>>>>> suggests it might have something to do with the plugin > initialization > >>>>>>> because re-initializing the plugin under those circumstances helps > in my > >>>>>>> case: > >>>>>>> > >>>>>>> ... > >>>>>>> > >>>>>>> > xwiki.getXWiki().getPluginManager().getPlugin("lucene").init(xwiki.getXWikiC > >>>>>>> ontext()) ... > >>>>>>> > >>>>>>> but this of course doesn't solve the problem behind. > >>>>>>> > >>>>>>> -Pete > >>>>>>> > >>>>>>> > >>>>>>> -----Alkuperäinen viesti----- > >>>>>>> Lähettäjä: [email protected] [mailto:[email protected] > ] > >>>>>>> Puolesta > >>>>>>> Gerritjan Koekkoek > >>>>>>> Lähetetty: 17. tammikuuta 2010 21:26 > >>>>>>> Vastaanottaja: XWiki Users > >>>>>>> Aihe: Re: [xwiki-users] Lucene defaultpage fails > >>>>>>> > >>>>>>> See below for extended error-report > >>>>>>> I also paste the code > >>>>>>> Op 17 jan 2010, om 18:12 heeft Flavius Olaru het volgende > geschreven: > >>>>>>> > >>>>>>> On Sun, Jan 17, 2010 at 1:35 PM, Gerritjan Koekkoek > >>>>>>> <[email protected]> wrote: > >>>>>>>> Navigating to the Main.LuceneSearch page brings up the following > error? > >>>>>>>> > >>>>>>>> Failed to execute macro: velocity > >>>>>>>> org.xwiki.rendering.macro.MacroExecutionException: Failed to > evaluate > >>>>>>> Velocity Macro for content > >>>>>>> [$xwiki.jsfx.use("uicomponents/search/search.js", > >>>>>>> true)## > >>>>>>>> $xwiki.ssfx.use("uicomponents/search/search.css", true)## > >>>>>>>> The page has worked, but what can be wrong now. > >>>>>>>> The page itself is not changed from the distribution? > >>>>>>>> > >>>>>>>> Gerritjan > >>>>>>>> _______________________________________________ > >>>>>>>> users mailing list > >>>>>>>> [email protected] > >>>>>>>> http://lists.xwiki.org/mailman/listinfo/users > >>>>>>>> > >>>>>>> Hi Gerritjan, > >>>>>>> > >>>>>>> Can you paste in more information about the error? > >>>>>>> > >>>>>>> -- > >>>>>>> Flavius Olaru > >>>>>>> ## Disable the document extra data: comments, attachments, > history... > >>>>>>> #set($docextras = []) > >>>>>>> ## =================== > >>>>>>> ## Lucene search > >>>>>>> ## =================== > >>>>>>> ## Inputs : $request.text > >>>>>>> ## Outputs : $list, $isScored > >>>>>>> ## =================== > >>>>>>> ## Uncomment this line to overload the maximum list of wiki where > to search > >>>>>>> (also the one listed in the wikis combobox) > >>>>>>> ## #set($allwikinamelist = ["xwiki", "wiki1", "wiki2"]) > >>>>>>> ## > >>>>>>> ## Uncomment this line to overload the wikis where to search > >>>>>>> ## #set($wikinames = "xwiki,wiki,wiki") > >>>>>>> ## > >>>>>>> ## Uncomment this line to overload the languages to search > >>>>>>> ## #set($languages = "default,en,de") > >>>>>>> #set ($rssmode = ("$!request.xpage" == 'plain')) > >>>>>>> ## --------------- > >>>>>>> ## Space filtering > >>>>>>> ## --------------- > >>>>>>> #set($extraClause = '') > >>>>>>> #set($selectedSpace = "$!request.space") > >>>>>>> #if($selectedSpace != '' && > !$blacklistedSpaces.contains($selectedSpace)) > >>>>>>> #set($extraClause = " AND web:${selectedSpace}") > >>>>>>> #end > >>>>>>> ## > ---------------------------------------------------------------------- > >>>>>>> ## Exclude Blacklisted spaces ($blacklistedSpaces is set in > xwikivars.vm) > >>>>>>> ## Also exclude WebPreferences. > >>>>>>> ## > ---------------------------------------------------------------------- > >>>>>>> #foreach ($blacklistedSpace in $blacklistedSpaces) > >>>>>>> #set ($extraClause = " AND NOT > web:${blacklistedSpace}${extraClause}") > >>>>>>> #end > >>>>>>> #if(!$hasAdmin && !$isAdvancedUser) > >>>>>>> #set ($extraClause = " AND NOT name:WebPreferences${extraClause}") > >>>>>>> #end > >>>>>>> ## --------------- > >>>>>>> ## 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 $xwiki.spaces) > >>>>>>> #if (!$blacklistedSpaces.contains($space)) > >>>>>>> #spaceoption($space $selectedSpace) > >>>>>>> #end > >>>>>>> #end > >>>>>>> </select> > >>>>>>> #end > >>>>>>> ## --------------- > >>>>>>> ## Wikis filtering > >>>>>>> ## --------------- > >>>>>>> #set($wikinamelist = []) > >>>>>>> #if(!$wikinames) > >>>>>>> #set($wikinametable = $request.getParameterValues("wikinames")) > >>>>>>> #if(!$wikinametable || $request.wikinames == "") > >>>>>>> #set($wikinametable = $allwikinamelist) > >>>>>>> #end > >>>>>>> #set($wikinames = "") > >>>>>>> #foreach($wikiname in $wikinametable) > >>>>>>> #set($ok = $wikinamelist.add($wikiname)) > >>>>>>> #if($wikinames != "") > >>>>>>> #set($wikinames = $wikinames + ",") > >>>>>>> #end > >>>>>>> #set($wikinames = $wikinames + $wikiname) > >>>>>>> #end > >>>>>>> #else > >>>>>>> #set($wikinametable = $wikinames.split(", ")) > >>>>>>> #foreach($wikiname in $wikinametable) > >>>>>>> #set($ok = $wikinamelist.add($wikiname)) > >>>>>>> #end > >>>>>>> #end > >>>>>>> ## > >>>>>>> #if($xwiki.isVirtualMode()) > >>>>>>> #if(!$allwikinamelist) > >>>>>>> #set($currentwikiname = $context.database) > >>>>>>> #set($ok = $context.setDatabase($context.mainWikiName)) > >>>>>>> #set($allwikilist = $xwiki.searchDocuments(", BaseObject as obj, > >>>>>>> StringProperty as prop where doc.fullName=obj.name and > >>>>>>> obj.className='XWiki.XWikiServerClass' and prop.id.id=obj.id and > >>>>>>> prop.id.name='server'")) > >>>>>>> #set($ok = $context.setDatabase($currentwikiname)) > >>>>>>> ## > >>>>>>> #set($allwikinamelist = []) > >>>>>>> #foreach($wiki in $allwikilist) > >>>>>>> #set($ok = > $allwikinamelist.add($wiki.substring(17).toLowerCase())) > >>>>>>> #end > >>>>>>> #if(!$allwikinamelist.contains($context.mainWikiName)) > >>>>>>> #set($ok = $allwikinamelist.add($context.mainWikiName)) > >>>>>>> #end > >>>>>>> #end > >>>>>>> ## --------------- > >>>>>>> ## Wikis macros > >>>>>>> ## --------------- > >>>>>>> #macro(wikinamesoption $wikiname $wikinamelist) > >>>>>>> <option value="$wikiname" > >>>>>>> > >>>>>>> > #if($wikinamelist.contains($wikiname))selected="selected"#end>$wikiname</opt > >>>>>>> ion> > >>>>>>> #end > >>>>>>> #macro(wikinamesselect $allwikinamelist $wikinamelist) > >>>>>>> <select name="wikinames"> > >>>>>>> <option value="" selected="selected">All</option> > >>>>>>> #foreach($wikiname in $allwikinamelist) > >>>>>>> #wikinamesoption($wikiname $wikinamelist) > >>>>>>> #end > >>>>>>> </select> > >>>>>>> #end > >>>>>>> #else > >>>>>>> #if($wikinames == "") > >>>>>>> #set($wikinames = $context.mainWikiName) > >>>>>>> #end > >>>>>>> #end > >>>>>>> ## --------------- > >>>>>>> ## Query preparation > >>>>>>> ## --------------- > >>>>>>> #set($text = "$!request.getParameter('text')") > >>>>>>> #set($query = $text) > >>>>>>> #set($utext = $util.encodeURI($query)) > >>>>>>> #set($defaultItemsPerPage = 30) > >>>>>>> #set($itemsPerPage = $util.parseInt("$!{request.perPage}")) > >>>>>>> #if($itemsPerPage <= 0) > >>>>>>> #set($itemsPerPage = $defaultItemsPerPage) > >>>>>>> #end > >>>>>>> ## --------------- > >>>>>>> ## Query form > >>>>>>> ## --------------- > >>>>>>> #if(!$rssmode) > >>>>>>> {{html}} > >>>>>>> <form action="" method="get" 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 class="searchHelp">$msg.get('xe.search.bar.queryTip')</div> > >>>>>>> </div> > >>>>>>> </form> > >>>>>>> {{/html}} > >>>>>>> #end > >>>>>>> ## --------------- > >>>>>>> ## Results processing > >>>>>>> ## --------------- > >>>>>>> #if($query != '') > >>>>>>> #set($lucene = $xwiki.getPlugin("lucene")) > >>>>>>> #if($lucene) > >>>>>>> ## --------------- > >>>>>>> ## Lucene search > >>>>>>> ## --------------- > >>>>>>> #set($searchresults = > $lucene.getSearchResults("${query}${extraClause}", > >>>>>>> $wikinames, $!languages, $xwiki)) > >>>>>>> #if($searchresults.getHitcount() > 0) > >>>>>>> ## ----------------- > >>>>>>> ## Pagination (top) > >>>>>>> ## ----------------- > >>>>>>> #if(!$rssmode) > >>>>>>> #set($paginationParameters = {'url' : $doc.getURL('view', > >>>>>>> "text=${query}&space=${selectedSpace}"), 'totalItems' : > >>>>>>> $searchresults.getHitcount(), 'defaultItemsPerPage' : > $defaultItemsPerPage, > >>>>>>> 'position': 'top'}) > >>>>>>> {{html}} > >>>>>>> #pagination($paginationParameters) > >>>>>>> {{/html}} > >>>>>>> #end > >>>>>>> ## ----------------- > >>>>>>> ## Display results > >>>>>>> ## ----------------- > >>>>>>> #set($firstIndex = "$!{paginationParameters.firstItem}") > >>>>>>> #if($firstIndex == '') > >>>>>>> #set($firstIndex = "$!request.getParameter('firstIndex')") > >>>>>>> #if($firstIndex == '') > >>>>>>> #set($firstIndex = '0') > >>>>>>> #end > >>>>>>> #end > >>>>>>> #set($firstIndex = $util.parseInt($firstIndex)) > >>>>>>> #set($firstIndex = $firstIndex + 1) > >>>>>>> #set($results = $searchresults.getResults("$firstIndex", > >>>>>>> "$itemsPerPage")) > >>>>>>> #if ($rssmode) > >>>>>>> #set ($list = $util.arrayList) > >>>>>>> #foreach ($item in $results) > >>>>>>> #if ($item.type != "attachment") > >>>>>>> #set ($ok = $list.add(0, "${item.web}.${item.name}")) > >>>>>>> #end > >>>>>>> #end > >>>>>>> #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, 'rss_2.0') > >>>>>>> #else > >>>>>>> #set ($list = $results) > >>>>>>> #set ($isScored = true) > >>>>>>> {{include document="XWiki.Results"/}} > >>>>>>> #end > >>>>>>> ## ----------------- > >>>>>>> ## Pagination (bottom) > >>>>>>> ## ----------------- > >>>>>>> #if(!$rssmode) > >>>>>>> #set($paginationParameters.position = 'bottom') > >>>>>>> {{html}} > >>>>>>> #pagination($paginationParameters) > >>>>>>> {{/html}} > >>>>>>> ## --------------- > >>>>>>> ## RSS link > >>>>>>> ## --------------- > >>>>>>> #if($selectedSpace == '') > >>>>>>> #set($rssURL = $xwiki.getURL($doc.fullName, 'view', > >>>>>>> "xpage=rdf&text=${utext}" )) > >>>>>>> #else > >>>>>>> #set($rssURL = $xwiki.getURL($doc.fullName, 'view', > >>>>>>> "xpage=rdf&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", ["[$query]"])</a> > >>>>>>> {{/html}} > >>>>>>> #end > >>>>>>> #end > >>>>>>> #else > >>>>>>> > >>>>>>> {{error}}$msg.get('xe.search.plugin.notfound')){{/error}} > >>>>>>> #end > >>>>>>> #end > >>>>>>> #if (!$rssmode) > >>>>>>> ## --------------- > >>>>>>> ## Rebuild processing > >>>>>>> ## --------------- > >>>>>>> #set($lucene = $xwiki.getPlugin("lucene")) > >>>>>>> #if($lucene) > >>>>>>> #set($doRebuild = "$!{request.getParameter('rebuild')}") > >>>>>>> #if($doRebuild == "yes") > >>>>>>> #set($documentCount = $lucene.rebuildIndex()) > >>>>>>> #if(${documentCount} >= 0) > >>>>>>> > >>>>>>> {{info}}$msg.get("xe.search.rebuild.started"){{/info}} > >>>>>>> #elseif(${documentCount} == -1) > >>>>>>> > >>>>>>> {{error}}$msg.get("xe.search.rebuild.rights"){{/error}} > >>>>>>> > >>>>>>> #elseif(${documentCount} == -2) > >>>>>>> > >>>>>>> {{error}}$msg.get("xe.search.rebuild.inprogress"){{/error}} > >>>>>>> #else > >>>>>>> > >>>>>>> {{error}}$msg.get("xe.search.rebuild.failed"){{/error}} > >>>>>>> #end > >>>>>>> #else## !doRebuild > >>>>>>> ## --------------- > >>>>>>> ## Queue & rebuild option > >>>>>>> ## --------------- > >>>>>>> #set ($queuesize = $xwiki.lucene.getQueueSize()) > >>>>>>> #if ($queuesize > 2) > >>>>>>> #set($info1 = $msg.get('xe.search.rebuild.currently', > >>>>>>> [${queuesize}])) > >>>>>>> #else > >>>>>>> #set($info1 = $msg.get('xe.search.index.uptodate')) > >>>>>>> #end > >>>>>>> #if($hasAdmin) > >>>>>>> #set($info2 = " > >>>>>>> [[$msg.get('xe.search.index.rebuild')>>${doc.space}.${doc.name > >>>>>>> }?rebuild=yes] > >>>>>>> ].") > >>>>>>> #else > >>>>>>> #set($info2 = "") > >>>>>>> #end > >>>>>>> > >>>>>>> {{info}}${info1}${info2}{{/info}} > >>>>>>> #end## doRebuild > >>>>>>> #set($defaultSearch = > >>>>>>> "[[$msg.get('xe.search.default.engine')>>WebSearch?text=$utext]]") > >>>>>>> > >>>>>>> {{warning}}$msg.get('xe.search.lucene.experimental', > >>>>>>> [$defaultSearch]){{/warning}} > >>>>>>> > >>>>>>> #else## !lucene exists > >>>>>>> #set($defaultSearch = > >>>>>>> "[[$msg.get('xe.search.default.engine')>>WebSearch?text=$utext]]") > >>>>>>> > >>>>>>> {{warning}}$msg.get('xe.search.plugin.notenabled', > >>>>>>> [$defaultSearch]){{/warning}} > >>>>>>> #end## lucene exists > >>>>>>> #end## !$rssmode] > >>>>>>> > >>>>>>> > >>>>>>> at > >>>>>>> > >>>>>>> > org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluate(VelocityM > >>>>>>> acro.java:118) > >>>>>>> at > >>>>>>> > >>>>>>> > org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluate(VelocityM > >>>>>>> acro.java:44) > >>>>>>> at > >>>>>>> > >>>>>>> > org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptM > >>>>>>> acro.java:200) > >>>>>>> at > >>>>>>> > >>>>>>> > org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptM > >>>>>>> acro.java:52) > >>>>>>> at > >>>>>>> > >>>>>>> > org.xwiki.rendering.internal.transformation.MacroTransformation.transformOnc > >>>>>>> e(MacroTransformation.java:175) > >>>>>>> at > >>>>>>> > >>>>>>> > org.xwiki.rendering.internal.transformation.MacroTransformation.transform(Ma > >>>>>>> croTransformation.java:120) > >>>>>>> at > >>>>>>> > >>>>>>> > org.xwiki.rendering.internal.transformation.DefaultTransformationManager.per > >>>>>>> formTransformations(DefaultTransformationManager.java:72) > >>>>>>> at > >>>>>>> > >>>>>>> > com.xpn.xwiki.doc.XWikiDocument.performSyntaxConversion(XWikiDocument.java:5 > >>>>>>> 696) > >>>>>>> at > >>>>>>> > >>>>>>> > com.xpn.xwiki.doc.XWikiDocument.performSyntaxConversion(XWikiDocument.java:5 > >>>>>>> 671) > >>>>>>> at > >>>>>>> > com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:569) > >>>>>>> at > >>>>>>> > com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:583) > >>>>>>> at > com.xpn.xwiki.api.Document.getRenderedContent(Document.java:475) > >>>>>>> at sun.reflect.GeneratedMethodAccessor257.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(Ub > >>>>>>> erspectImpl.java:378) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:270 > >>>>>>> ) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.ja > >>>>>>> va:252) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java > >>>>>>> :493) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.velocity.runtime.parser.node.ASTExpression.value(ASTExpression.ja > >>>>>>> va:71) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.velocity.runtime.parser.node.ASTSetDirective.render(ASTSetDirecti > >>>>>>> ve.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:33 > >>>>>>> 6) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement > >>>>>>> .java:106) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:33 > >>>>>>> 6) > >>>>>>> at > >>>>>>> > >>>>>>> > org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEn > >>>>>>> gine.java:191) > >>>>>>> at > >>>>>>> > >>>>>>> > org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEn > >>>>>>> gine.java:156) > >>>>>>> at > >>>>>>> > >>>>>>> > com.xpn.xwiki.render.XWikiVelocityRenderer.evaluate(XWikiVelocityRenderer.ja > >>>>>>> va:116) > >>>>>>> at com.xpn.xwiki.XWiki.parseTemplate(XWiki.java:1710) > >>>>>>> at com.xpn.xwiki.XWiki.parseTemplate(XWiki.java:1631) > >>>>>>> at com.xpn.xwiki.api.XWiki.parseTemplate(XWiki.java:657) > >>>>>>> at sun.reflect.GeneratedMethodAccessor109.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(Ub > >>>>>>> erspectImpl.java:378) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:270 > >>>>>>> ) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.ja > >>>>>>> va:252) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.jav > >>>>>>> a:332) > >>>>>>> at > >>>>>>> > org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroPro > >>>>>>> xy.java:212) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java: > >>>>>>> 247) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.jav > >>>>>>> a: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:33 > >>>>>>> 6) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement > >>>>>>> .java:106) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:33 > >>>>>>> 6) > >>>>>>> at > >>>>>>> > >>>>>>> > org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEn > >>>>>>> gine.java:191) > >>>>>>> at > >>>>>>> > >>>>>>> > org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEn > >>>>>>> gine.java:156) > >>>>>>> at > >>>>>>> > >>>>>>> > com.xpn.xwiki.render.XWikiVelocityRenderer.evaluate(XWikiVelocityRenderer.ja > >>>>>>> va:116) > >>>>>>> at com.xpn.xwiki.XWiki.parseTemplate(XWiki.java:1710) > >>>>>>> at com.xpn.xwiki.XWiki.parseTemplate(XWiki.java:1631) > >>>>>>> at com.xpn.xwiki.web.Utils.parseTemplate(Utils.java:123) > >>>>>>> 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(RequestProces > >>>>>>> sor.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(Application > >>>>>>> FilterChain.java:290) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh > >>>>>>> ain.java:206) > >>>>>>> at > >>>>>>> > >>>>>>> > com.xpn.xwiki.wysiwyg.server.filter.ConversionFilter.doFilter(ConversionFilt > >>>>>>> er.java:152) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application > >>>>>>> FilterChain.java:235) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh > >>>>>>> ain.java:206) > >>>>>>> at > com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:117) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application > >>>>>>> FilterChain.java:235) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh > >>>>>>> ain.java:206) > >>>>>>> at > >>>>>>> > com.xpn.xwiki.plugin.webdav.XWikiDavFilter.doFilter(XWikiDavFilter.java:68) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application > >>>>>>> FilterChain.java:235) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh > >>>>>>> ain.java:206) > >>>>>>> at > >>>>>>> > >>>>>>> > com.xpn.xwiki.web.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFi > >>>>>>> lter.java:295) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application > >>>>>>> FilterChain.java:235) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh > >>>>>>> ain.java:206) > >>>>>>> at > >>>>>>> > >>>>>>> > com.xpn.xwiki.web.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFi > >>>>>>> lter.java:112) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application > >>>>>>> FilterChain.java:235) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh > >>>>>>> ain.java:206) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja > >>>>>>> va:233) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja > >>>>>>> va:191) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128 > >>>>>>> ) > >>>>>>> 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:293) > >>>>>>> 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:769) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:698) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java > >>>>>>> :891) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav > >>>>>>> a:690) > >>>>>>> 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(DefaultVelocityEn > >>>>>>> gine.java:200) > >>>>>>> at > >>>>>>> > >>>>>>> > org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEn > >>>>>>> gine.java:156) > >>>>>>> at > >>>>>>> > >>>>>>> > org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluate(VelocityM > >>>>>>> acro.java:110) > >>>>>>> ... 93 more > >>>>>>> Caused by: org.apache.velocity.exception.MethodInvocationException: > >>>>>>> Invocation of method 'getQueueSize' in class > >>>>>>> com.xpn.xwiki.plugin.lucene.LucenePluginApi threw exception > >>>>>>> java.lang.NullPointerException at velocity macro[line 246, column > 34] > >>>>>>> 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.ja > >>>>>>> va:252) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java > >>>>>>> :493) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.velocity.runtime.parser.node.ASTExpression.value(ASTExpression.ja > >>>>>>> va:71) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.velocity.runtime.parser.node.ASTSetDirective.render(ASTSetDirecti > >>>>>>> ve.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:33 > >>>>>>> 6) > >>>>>>> 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.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:33 > >>>>>>> 6) > >>>>>>> at > >>>>>>> > >>>>>>> > org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEn > >>>>>>> gine.java:191) > >>>>>>> ... 95 more > >>>>>>> Caused by: java.lang.NullPointerException > >>>>>>> at > >>>>>>> > >>>>>>> > com.xpn.xwiki.plugin.lucene.LucenePlugin.getQueueSize(LucenePlugin.java:661) > >>>>>>> at > >>>>>>> > >>>>>>> > com.xpn.xwiki.plugin.lucene.LucenePluginApi.getQueueSize(LucenePluginApi.jav > >>>>>>> a:183) > >>>>>>> at sun.reflect.GeneratedMethodAccessor370.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(Ub > >>>>>>> erspectImpl.java:378) > >>>>>>> at > >>>>>>> > >>>>>>> > org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:270 > >>>>>>> ) > >>>>>>> ... 108 more > >>>>>>> > >>>>>>> _______________________________________________ > >>>>>>> users mailing list > >>>>>>> [email protected] > >>>>>>> http://lists.xwiki.org/mailman/listinfo/users > >>>>>>> > >>>>>>> _______________________________________________ > >>>>>>> users mailing list > >>>>>>> [email protected] > >>>>>>> http://lists.xwiki.org/mailman/listinfo/users > >>>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> -- > >>>>>> Guillaume Lerouge > >>>>>> Product Manager - XWiki SAS > >>>>>> Skype: wikibc > >>>>>> Twitter: glerouge > >>>>>> http://guillaumelerouge.com/ > >>>>>> _______________________________________________ > >>>>>> users mailing list > >>>>>> [email protected] > >>>>>> http://lists.xwiki.org/mailman/listinfo/users > >>>>>> > >>>>>> _______________________________________________ > >>>>>> users mailing list > >>>>>> [email protected] > >>>>>> http://lists.xwiki.org/mailman/listinfo/users > >>>>>> > >>>>> > >>>>> > >>>>> > >>>>> -- > >>>>> Thomas Mortagne > >>>>> _______________________________________________ > >>>>> users mailing list > >>>>> [email protected] > >>>>> http://lists.xwiki.org/mailman/listinfo/users > >>>>> > >>>>> _______________________________________________ > >>>>> users mailing list > >>>>> [email protected] > >>>>> http://lists.xwiki.org/mailman/listinfo/users > >>>>> > >>>> > >>>> > >>>> > >>>> -- > >>>> Thomas Mortagne > >>>> > >>> > >>> > >>> > >>> -- > >>> Thomas Mortagne > >>> _______________________________________________ > >>> users mailing list > >>> [email protected] > >>> http://lists.xwiki.org/mailman/listinfo/users > >>> > >>> _______________________________________________ > >>> users mailing list > >>> [email protected] > >>> http://lists.xwiki.org/mailman/listinfo/users > >>> > >> > >> > >> > >> -- > >> Thomas Mortagne > >> _______________________________________________ > >> users mailing list > >> [email protected] > >> http://lists.xwiki.org/mailman/listinfo/users > >> > >> _______________________________________________ > >> users mailing list > >> [email protected] > >> http://lists.xwiki.org/mailman/listinfo/users > >> > > > > > > > > -- > > Thomas Mortagne > > _______________________________________________ > > users mailing list > > [email protected] > > http://lists.xwiki.org/mailman/listinfo/users > > > > _______________________________________________ > > users mailing list > > [email protected] > > http://lists.xwiki.org/mailman/listinfo/users > > > > > > -- > Thomas Mortagne > -- Thomas Mortagne _______________________________________________ users mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/users
