diff options
author | Mark Spruiell <mes@zeroc.com> | 2002-12-19 21:57:28 +0000 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2002-12-19 21:57:28 +0000 |
commit | a15264b4c7f270181b0fea3db6b30896596f4ec1 (patch) | |
tree | 567b96885aabe74126edc1ac64610f9c209f6d24 /java/demo/Freeze/library/BookI.java | |
parent | Fixed a deadlock in adapter activation (diff) | |
download | ice-a15264b4c7f270181b0fea3db6b30896596f4ec1.tar.bz2 ice-a15264b4c7f270181b0fea3db6b30896596f4ec1.tar.xz ice-a15264b4c7f270181b0fea3db6b30896596f4ec1.zip |
adding destroy flag
Diffstat (limited to 'java/demo/Freeze/library/BookI.java')
-rw-r--r-- | java/demo/Freeze/library/BookI.java | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/java/demo/Freeze/library/BookI.java b/java/demo/Freeze/library/BookI.java index 58d2e5d1aca..085fca33ab8 100644 --- a/java/demo/Freeze/library/BookI.java +++ b/java/demo/Freeze/library/BookI.java @@ -19,9 +19,14 @@ class BookI extends Book // synchronization. // - public BookDescription + synchronized public BookDescription getBookDescription(Ice.Current current) { + if(_destroyed) + { + throw new Ice.ObjectNotExistException(); + } + // // Immutable. // @@ -32,6 +37,11 @@ class BookI extends Book getRenterName(Ice.Current current) throws BookNotRentedException { + if(_destroyed) + { + throw new Ice.ObjectNotExistException(); + } + if(rentalCustomerName.length() == 0) { throw new BookNotRentedException(); @@ -43,6 +53,11 @@ class BookI extends Book rentBook(String name, Ice.Current current) throws BookRentedException { + if(_destroyed) + { + throw new Ice.ObjectNotExistException(); + } + if(rentalCustomerName.length() != 0) { throw new BookRentedException(); @@ -54,6 +69,11 @@ class BookI extends Book returnBook(Ice.Current current) throws BookNotRentedException { + if(_destroyed) + { + throw new Ice.ObjectNotExistException(); + } + if(rentalCustomerName.length() == 0) { throw new BookNotRentedException(); @@ -65,6 +85,13 @@ class BookI extends Book destroy(Ice.Current current) throws DatabaseException { + if(_destroyed) + { + throw new Ice.ObjectNotExistException(); + } + + _destroyed = true; + try { _library.remove(description); @@ -86,6 +113,7 @@ class BookI extends Book BookI(LibraryI library) { _library = library; + _destroyed = false; // // This could be avoided by having two constructors (one for @@ -96,4 +124,5 @@ class BookI extends Book } private LibraryI _library; + private boolean _destroyed; } |