summaryrefslogtreecommitdiff
path: root/java/demo/Freeze/library/BookI.java
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2002-12-19 21:57:28 +0000
committerMark Spruiell <mes@zeroc.com>2002-12-19 21:57:28 +0000
commita15264b4c7f270181b0fea3db6b30896596f4ec1 (patch)
tree567b96885aabe74126edc1ac64610f9c209f6d24 /java/demo/Freeze/library/BookI.java
parentFixed a deadlock in adapter activation (diff)
downloadice-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.java31
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;
}