The problem is that you can't have a instance of ControllerInstance, because it can be replaced by another thread between the getControllerInstance and getControllerInstance