wood burning stoves 2.0*
The moose likes EJB Certification (SCBCD/OCPJBCD) and the fly likes client calling remove() twice Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » EJB Certification (SCBCD/OCPJBCD)
Bookmark "client calling remove() twice" Watch "client calling remove() twice" New topic
Author

client calling remove() twice

Giju George
Ranch Hand

Joined: Jun 08, 2004
Posts: 333
On page 559 of HFE it is said that

If client calls remove on a bean that's already removed, then the client gets RemoteException (remote client) or EJBException (local client).


But I think this is not true... when I tried (client calling remove() twice), I got java.rmi.NoSuchObjectException. This is said correctly in page 552 of HFE.

Then why this discrepancy ???


SCJP 1.4, SCWCD 1.4, SCBCD 1.3, SCEA
mini mehta
Ranch Hand

Joined: Oct 22, 2000
Posts: 120
Giju, you are right. As per the spec it should throw NoSuchObjectException.

So the statement is HFE is wrong.
Keerthi P
Ranch Hand

Joined: Aug 19, 2003
Posts: 203
Originally posted by Giju George:
On page 559 of HFE it is said that


But I think this is not true... when I tried (client calling remove() twice), I got java.rmi.NoSuchObjectException. This is said correctly in page 552 of HFE.

Then why this discrepancy ???


If...
- Container had removed the session bean because the bean had either thrown a system exception
or timed out.

And...
- Client still has a reference to the bean (via the remote component and a live stub) and invokes
a method.

Then...
- NoSuchObjectException will be thrown.


If...
- Client invokes remove(Object primaryKey) on a session bean - session beans do not have primary keys.

OR

- Session bean instance is participating in a transaction and the client invokes the
remove method on the session object�s home or component interface object.

Then...
RemoveException will be thrown


Cheers.<br />Keerthi<br />(SCJP, SCWCD, SCBCD)
Lionel Orellana
Ranch Hand

Joined: Mar 19, 2004
Posts: 87


If...
- Client invokes remove(Object primaryKey) on a session bean - session beans do not have primary keys.

OR

- Session bean instance is participating in a transaction and the client invokes the
remove method on the session object�s home or component interface object.

Then...
RemoveException will be thrown


These two scenarios are considered separately in pages 558 and 559.

"Client calls remove() on a stateful bean that is still in an open tx"

"Client call the home remove method on the home interface of a session bean"

In both scenarios the book says you get a RemoveException as Keerthi points out. That's fine.

The other scenario, the one Giju is talking about, says "Client calls remove() on a bean that's already been removed"

I agre with Giju in that in this case you should get a NoSuchObjectException, specially when the book says "remove() is just another method in the bean's interface ... you'll get the same exception you'd see if you called any other business method on a removed bean". So we're not talking about removes in the home interface and calling remove within an open transaction is also considered separately. The only choice here has to be NoSuchObjectException ...

So can we say the book is wrong??
Jason Hunt
Ranch Hand

Joined: Sep 09, 2002
Posts: 51
NoSuchObjectException is a RemoteException. :roll:


SCJP, SCWCD, SCBCD, SCDJWS, OCA9i,<br />IBM Certified WAS5.0 Admin<br />IBM Certified Solution Developer - WebSphere Studio 5.0<br />IBM Certified Solution Developer - XML and related Technologies
Giju George
Ranch Hand

Joined: Jun 08, 2004
Posts: 333
Thanx Jason....
I forgot that NoSuchObjectException is a subclass of RemoteException.

But my ques is .. what does the client get, RemoteException/ NoSuchObjectException ?. Because if the bean throws a system exception, then the container will throw a RemoteException to the (remote)client. Does that mean the client can get any subclass exception of RemoteException ?
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: client calling remove() twice