Remote objects, when exported are exposed to multiple threads.

Even when a Remote object only has one client, the clients calls will be 
despatched via a thread pool to the exported object, every method call is 
likely to be invoked by a different thread.

If your exported objects aren't thread safe the method despatch threads are not 
guaranteed to see each others changes to the mutable state of your exported 
object.

No Jini releases were designed for the new Java Memory Model that accompanied 
Java 5, in fact the first release designed for Java 5 was an Apache River 
release.

We have been strangely fortunate in spite of no services in any existing 
releases to date being safely constructed, we've experienced few noticable 
consequences, other than some random test failures on Jenkins.   To continue 
using the existing codebase and do nothing would ensure River's extinction.

The skunk/qa_refactor branch uses safe construction tehniques and export after 
construction, it's had sweeping changes made internally to classes to 
significantly improve Java Memory Model compliance.

If you haven't checked out this branch, now's the time to do so.

Regards,

Peter.

Reply via email to