Subject: Re: What is left after LOCK/UNLOCK on null resource?

From: Jason Crawford <[email-masked]>
Date: Wed, 4 Sep 2002 02:39:28 -0400

> 1. A null resource is locked.

> Q. Should this resource appear as a member
> URI of its parent?

Yes, it should appear.  All versions of the spec say it should.

> IE displays the lock-null
> resource as a directory, which doesn't seem right.

A directory?  At the protocol level?  Or
just in the gui?

> 2. The null resource is unlocked.
> Q. Should there be anything left if no other
> command is issued in between?

rfc2518 says there should be nothing.  rfc2518bis
(new spec) says there should be a resource.

> IE also continues to show the now unlocked resource as
> a directory, but it doesn't act as a collection, e.g.
> you can't create members within it.
rfc2518 does specify some odd lock-null behavior while it's
still locked, but neither protocol specifies any odd
behavior after unlocked.

> I suspect this is as
> a result of the Slide behaviour.
Check at the protocol level to determine what's happening
there.  The gui might just make it look like a directory
even if the protocol is doing something different.

> Any clarifications greatly appreciated.
Let us know what you discover.

J.

---

From: "Michael Leditschke" <[email-masked]>
Date: Wed, 4 Sep 2002 23:20:32 +1000

> A directory?  At the protocol level?  Or

I was looking via the IE Web Folders GUI. Thanks to 
Stefan for pointing out that MS shows any resource with
a non-empty resource type as a collection. The slide
client makes a similar assumption in that the resourcetype
is shown as blank if the resourcetype isn't "collection".

> (new spec) says there should be a resource.

If I use the slide client to lock/unlock in the *same*
client session, nothing is left, the resource gets unlocked
and all is sweet.

> still locked, but neither protocol specifies any odd

This is where the wheels come off a bit. It would appear
that the slide client can only delete a lock if it created
the lock in the *same* session. If I fire up the client,
create a lock, exit, fire it up again and attempt an unlock,
the operation fails. Nothing appears on the wire. A brief
troll through the code suggests the client won't even try if
it doesn't find the lock in its internal state structure, and
this structure only gets populated as part of a lock operation
- though I'm happy to be corrected.

Can anyone confirm whether this is the expected client behaviour,
or a bug? I would have thought you should be able to unlock a
resource independent of when the lock operation occurred.

Regards
Michael