You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@polygene.apache.org by "Niclas Hedhman (JIRA)" <ji...@apache.org> on 2018/03/26 04:46:00 UTC

[jira] [Created] (POLYGENE-295) Activation broken

Niclas Hedhman created POLYGENE-295:
---------------------------------------

             Summary: Activation broken
                 Key: POLYGENE-295
                 URL: https://issues.apache.org/jira/browse/POLYGENE-295
             Project: Polygene
          Issue Type: Bug
    Affects Versions: 3.0.0, 2.1, 2.0
            Reporter: Niclas Hedhman


It is quite possible to get service calls before the activate() method has been called. For instance, inject a Service into the constructor of an Object and call objectFactory.newObject(). Even if instantiateOnStartup(), the activation is not called first.

On top of that, we have a general issue that the bootstrap code is not really thread-safe (no effort was made on that), and lazy-initialization may cause model corruption due to that, which kind of ties in with the Activation system. I suspect that the above problem is some kind of mixing of concerns and it gets messed up what is supposed to have happened already.

Step 1; Fix that activation is ALWAYS called before method calls.

Step 2; Discuss how to deal with lazy initialization. Either make sure that everything in Core Runtime is thread-safe, or drop the current lazy initialization, and possibly replace with a Concern instead (which intercepts the activate() call, and make that happen upon next method call to the service. That seems to be a lot more straight forward and also inline with Polygene principles (eat your own dog food).

 

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)