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