This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
I have a singleton class which is responsible for reading and writing to the database file named DatabaseAccess.
When a class connects to my Server via RMI, it is given an instance of a class named ControllerImpl. ControllerImpl has my business logic (book, return, search etc).
ControllerImpl creates an instance of ContractorManagerImpl. ContractorManagerImpl has an instance of a class named Data.
Data is the class which implements the sun provided interface. Data's methods call those of DatabaseAccess.
In the main class of my application, when I start my server, and then start a remote client. The GUI successfully reads/writes to the database.
However, if I then try to start another client, no data is returned from the database. For the second client, all of the static variables of my singleton(DatabaseAccess) are null. These variables are the database index file, the lock for the index file.
In the scenario which I have just described, does anything scream at you as being completely irrational?
I don't know if it's related, but if you have a singleton DatabaseAccess, why would you have static variables in this class? Because of the design, there will be just one instance of these variables even if you just use instance variables.
I sure did pal. Roel provided the inspiration. I was also having problems which were caused by trying to make the Remote object invoke the the remote implementation class' methods rather than the interfaces methods.