aspose file tools*
The moose likes Developer Certification (SCJD/OCMJD) and the fly likes unlock with delete Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Developer Certification (SCJD/OCMJD)
Bookmark "unlock with delete" Watch "unlock with delete" New topic
Author

unlock with delete

Mika Tapanainen
Ranch Hand

Joined: Jun 11, 2009
Posts: 93
Hello,

I have in my DB interface



There is a little bit difficult situation:

if I run



RecordNotFoundException should be thrown for the unlock, because record 1 is already deleted.

I handled this situation so that delete unlocks the record and notifies all waiters, but I have started to think if I should change the implementation.

What you think, should there be unlock after delete? I think I can do the new implementation, where the RecordNotFoundException is not thrown from the unlock method if the record is deleted and the lockCookie is correct.

BR,

Mika

SCJP, SCJD, SCEA
http://fi.linkedin.com/in/mikatapanainen
Roel De Nijs
Bartender

Joined: Jul 19, 2004
Posts: 4910
    
  10

Hi Mika,

Of course a deleted record should be unlocked, otherwise you end up having a deadlock. For example with this scenario:

client2 will now wait forever...

In my solution there is just 1 method (besides read and find) that throws a RNFE and that's the lock-method. Because if the lock-method has successfully locked a record, another client can't do anything with that record (so it certainly can't be deleted). If some other client can update/delete that record, there is something wrong with the locking mechanism. So I created my own custom interface (extending the required one) and i copied the delete, update and unlock method signatures but without the throws RecordNotFoundException clause. I was very pleased with this smart "work-around".

Kind regards,
Roel


SCJA, SCJP (1.4 | 5.0 | 6.0), SCJD
http://www.javaroe.be/
Mika Tapanainen
Ranch Hand

Joined: Jun 11, 2009
Posts: 93
Thanks Roel,

I read yesterday some discussions and removed RNFE from the delete, update and unlock methods as you wrote here also.

Mika
Roel De Nijs
Bartender

Joined: Jul 19, 2004
Posts: 4910
    
  10

Hi Mika,

I hope you didn't delete it from Sun's interface, because as far as I know it's forbidden to make changes in that interface.

Kind regards,
Roel
Mika Tapanainen
Ranch Hand

Joined: Jun 11, 2009
Posts: 93
Hi Roel,

Thanks for the reminder! I didn't change Sun's interface.

Mika
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: unlock with delete
 
Similar Threads
GuiController design
RecordNotFoundException and unlock
B&S: Why lock and update/delete throw RecordNotFoundException?
delete method code
B&S 2.1.1: lock(), delete() and unlock() confusion