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)