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)

Reply via email to