BG: My company is using some old java technology. We have weblogic server. We have interface which extends the EJBHome, used to run query in database to retrieve Collection of/Simply the EJBObject.
I get a problem, for which all happen within one method. Basically it is described as follow:
- I run bmp-query to get a Collection of Object
- I loop through the Collection and decide to run the remove method in the EJBObject for some of it.
- I loop through the Collection again, and cast each of it to be some extended type of EJBObject
Then, I get a NoSuchObjectException.
The tricky thing is the problem happen in weblogic server, but is not happening in local environment.
By removing the .remove() line of code. This problem will not be happened. I am pretty sure that it related to the RMI kind of concept. However, I am difficult to find any explanation on the web.
Could anyone explain/give the reference for me to explore the answer?
As suggested by Thomas. The Collection storing the addresses of the Object, but the remove function is deleting the actual memory of the remote object. As a result, the address points to no Object.