Details
-
Sub-task
-
Status: Resolved
-
Major
-
Resolution: Won't Fix
-
2.1.0-beta
-
None
-
None
Description
Now that YARN-117 and MAPREDUCE-5298 are checked in, we can mark the public AbstractService init/start/stop methods as final.
Why? It puts the lifecycle check and error handling around the subclass code, ensuring no lifecycle method gets called in the wrong state or gets called more than once.When a serviceInit(), serviceStart() & serviceStop() method throws an exception, it's caught and auto-triggers stop.
Marking the methods as final forces service implementations to move to the stricter lifecycle. It has one side effect: some of the mocking tests play up -I'll need some assistance here