Hi,

It seems that there is no correct value for "infinite" depth in the web.xml parameter "depth-limit" for the WebdavServlet. Your only option it seems is to put in a "large enough" number (like 1000) which I think is a little silly rather than just -1 for any depth...

There is also a possible bug regarding the parameter because the value "-1" will cause a NPE like so: 22 Jun 2005 16:04:26 - org.apache.slide.webdav.method.AbstractWebdavMethod - ERROR - java.lang.NullPointerException
java.lang.NullPointerException
at org.apache.slide.search.basic.BasicQuery.getSlidePath (BasicQuery.java:189) at org.apache.slide.search.basic.BasicQueryEnvelope.getSlidePath (BasicQueryEnvelope.java:404) at org.apache.slide.webdav.method.SearchMethod.parseRequest (SearchMethod.java:134) at org.apache.slide.webdav.method.AbstractWebdavMethod.run (AbstractWebdavMethod.java:382) at org.apache.slide.webdav.WebdavServlet.service (WebdavServlet.java:151)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)


Personally I had been struggling with my DASL queries for days thinking I was doing something terribly wrong only to find out it was this one parameter making fun of me!

Could someone in the Slide team include this info in the Wiki/FAQ (in Configuring DASL perhaps) and preferably allow the value -1...

btw.
Nice to be back on the list...

cheers
-Eiki
------

Eirikur S. Hrafnsson, [EMAIL PROTECTED]
Chief Software Engineer
Idega Software
http://www.idega.com



On 10.6.2005, at 14:48, Unico Hommes wrote:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Max Pfingsthorn wrote:

Hi!

I've gotten quite far with backporting the Lucene based DASL stuff.
However, I have one problem, which also applies to the HEAD, I think:
The depth of the scope. For some reason, instead of being
QueryScope.INFINITY (i.e. Interger.MAX_VALUE), it is 3 when I execute
a DASL like this:

<D:searchrequest xmlns:D="DAV:"
xmlns:slide="http://jakarta.apache.org/slide/";> <D:basicsearch>
<D:select> <D:prop> <D:getcontentlength/> </D:prop> </D:select>
<D:from> <D:scope> <D:href>binaries</D:href>
<D:depth>INFINITY</D:depth> </D:scope> </D:from> <D:where>
<D:not-is-collection/> </D:where> </D:basicsearch> </D:searchrequest>


I have no clue where this gets changed... Depths of 0 and 1 work just
fine. The scope depth when the BasicQueryScope is constructed is
Interger.MAX_VALUE, but when I retrieve the depth in the abstract
expression (where the execute happens) like so
"query.getScope().getDepth()", it is 3. This means that ultimately, I
loose all the results which are deeper than three levels below my
scope uri. Since there are only 3 allowed depths, 0,1, and infinity,
does the 3 actually mean infinity? If yes, why is QueryScope.INFINITY
set to Integer.MAX_VALUE then?


By default Slide limits the searchdepth to 3 in order to prevent clients from being able to put the server on too much stress when they would do
for example a propfind on the root with depth infinity. You need to
configure the servlet to disable this behavior (look for max-depth
parameter or something; probably -1 is equivalent to infinity).

- --
Unico
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (Darwin)

iD8DBQFCqagjcuec8tVNKAwRAmDuAJ9MptXRxhixYDTieGsaJtUoN8M3ZQCgzqkY
KvSRpz8yfkf/p3jEGB7Wy4w=
=pqp3
-----END PGP SIGNATURE-----


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]






Reply via email to