You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@river.apache.org by Greg Trasuk <tr...@stratuscom.com> on 2013/12/17 16:01:19 UTC

Re: Little known facts about Remote objects

Not sure if I’d call that “little-known”.

Greg.

On Dec 17, 2013, at 9:12 AM, Peter <ji...@zeus.net.au> wrote:

> 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.