Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
Description
Currently, when a component obtains a Controller Service, it could call onPropertyModified or initialize, which can cause some weird and unexpected behaviors, since these methods are expected to be called only within the constraints of a well-defined component lifecycle. We should prevent this by intercepting the method call and throwing an IllegalStateException unless the method call is coming from the framework.
Implementation details: This can be achieved by looking at the StandardControllerServiceProvider, which implements all Controller Service interfaces with proxies. In that proxy, it should simply throw an Exception. Then, just ensure that the framework never calls the proxy but only calls directly into the implementing class.