Win a copy of Clojure in Action this week in the Clojure forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

unlock with delete

 
Mika Tapanainen
Ranch Hand
Posts: 95
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
 
Roel De Nijs
Sheriff
Posts: 9137
75
AngularJS Chrome Eclipse IDE Hibernate Java jQuery MySQL Database Spring Tomcat Server
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
 
Mika Tapanainen
Ranch Hand
Posts: 95
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Sheriff
Posts: 9137
75
AngularJS Chrome Eclipse IDE Hibernate Java jQuery MySQL Database Spring Tomcat Server
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Posts: 95
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic