Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
trunk
-
None
-
None
Description
Some of the test classes keep a reference to the Services singleton as a class variable and then also re-create the Services in some of its test methods. This can cause it to not properly shut down all of the actual services, which can is causing (at least some of) the flakey test failures because some of those still running services interfere with some of the tests.
The typical pattern where this issue is happening looks like this:
public class TestWhatever { private Services services1; setup() { services1 = new Services(); services1.init(); } testSomething() { Services.get().destroy(); // destroys services1's services Services services2 = new Services(); // services1 no longer points to the internal singleton services2.init(); } tearDown() { services1.destroy(); // does not destroy the services started by services2, but does set the internal singleton to null so we've now lost the only remaining reference to those services }
You can see a concrete example of this by looking at TestStatusTransitService.testCoordStatusTransitServiceSuspendedWithError
In general, we should make sure to properly destroy the Services at the end of each test
Attachments
Attachments
Issue Links
- relates to
-
OOZIE-1127 Missed one services.destroy() in OOZIE-1114
- Closed