New DirectoryResource (bug???)

Alexandre Rafalovitch writes:
 > Hi,
 > 
 > I installed new(patched) DirectoryResource and the new behavior that should
 > have fixed index file problems now seem to generate side effects that are
 > very undesirable.
 > 
 > For easy example try to point to /Admin/Editor/User/. Originally, it was
 > bringing up the content of User directory and allow me to add/remove
 > resources and modify attributes. Now, however, it takes me directly to
 > Overview.html resource instead.
 > 
 > I know why this happens and I don't like it a little bit. It happens
 > because new lookup method of DirectoryResource returns index file if it
 > exist. That works ok when user points to the directory, but when editor or
 > filter or anything else try to reach the directory itself, they are out of
 > luck.

Argh ! that's the problem when fixing bugs on the fly, sorry for
it. The fix probably involves checking looupstate.isInternal, and not
returning the index file if set to true ...

 > The fix is to change the line 663 of lookup() routine in patched
 > DirectoryResource
 > from
 > if (index != null ) {
 > to
 > if ( !ls.isInternal() && index != null ) {

Correct, I'll add it in the code.

 > I would be very happy if somebody could explain to me how exactly internal
 > requests are different from normal once, especially regarding filters
 > execution/lookups/etc.

They are the same except that isInternal is set when the request was
triggered internally from the server itself.

 > Also, if from resource /foo/res1 I do internal request to /foo/res2
 > starting at the top how would that be different for filters from /foo/res1
 > doing 302 redirect for client to /foo/res2?

Lookup accumulate filters to be called into LookupResult. However,
when the lookup is internal you shouldn't get a 302 (that's part of
the reason for that flag...)

Anselm.

Received on Friday, 25 October 1996 11:13:57 UTC