You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@river.apache.org by "Peter Firmstone (JIRA)" <ji...@apache.org> on 2015/12/20 08:06:46 UTC

[jira] [Commented] (RIVER-420) Export during construction.

    [ https://issues.apache.org/jira/browse/RIVER-420?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15065647#comment-15065647 ] 

Peter Firmstone commented on RIVER-420:
---------------------------------------

Phoenix Activation and ServiceStarter now check if a service implements Startable, calling start() to export or start threads after construction.

> Export during construction.
> ---------------------------
>
>                 Key: RIVER-420
>                 URL: https://issues.apache.org/jira/browse/RIVER-420
>             Project: River
>          Issue Type: Bug
>    Affects Versions: jtsk_1.0, jtsk_1.1, jtsk_1.2, jtsk_2.0, jtsk_2.0_001, jtsk_2.0_002, jtsk_2.0.1, jtsk_2.0.2, jtsk_2.1, River_2.1.1, River_2.1.2, River_2.2.0, River_2.2.1, River_2.2.2
>            Reporter: Peter Firmstone
>             Fix For: River_3.0.0
>
>   Original Estimate: 150h
>  Remaining Estimate: 150h
>
> There are numerous occassions where an Exporter is used to export a Remote Object within the constructor allowing "this" to be published prior to the constructor completing.
> Recent testing has revealed a failure on the Arm architecture caused by this escaping during construction in LeasedSpaceListener, see qa/src:
> com.sun.jini.test.impl.outrigger.leasing.LeasedSpaceListener
> and test:
> com.sun.jini.test.impl.outrigger.leasing.UseNotifyLeaseTestRenew.td
> Although it's too early to confirm 100%, the test appears to be passing now that "this" no longer escapes during construction.
> By "this" escaping during construction, the proxy whose field was final appeared not to notify() correctly within a synchronized block, (this test uses notify() every 7ms, so it really gives it a hammering) as a result the test thought the resource was no longer available and failed.
> This has wide ranging ramifications for River, as there are multiple instances where "this" is allowed to escape by an Exporter exporting during construction.
> The service implementations, Reggie, Outrigger, Norm, Mahalo, Mercury and Fiddler have been fixed in skunk/qa_refactor.  However it isn't yet clear how to fix "this" escaping with Activation in Phoenix and ServiceStarter.
> There are numerous instances of exporting during construction in the test infrastructure and our examples.  These will all need to be fixed prior to releasing River 2.3.0



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)