Perhaps you could replace your HashMap with WeakHashMap, the later could clean the object if no reference.
I also got one question about the RMI design, how to keep the RMI factory service running always(we cannot run the RMI factory service by :
java package.rmifactoryclass,we start it from another class), and what's the better approach to stop the service do you think?
regards!
Frank