Infinite recursion composition class

I have an infinite recursion in my program where I have a field in a class, that has the same class in its field. They are singletons, but this is not what causes them not to construct. By the way I wrote the program I actually cannot remove the phases array.

I have tried making RemotePhase a static class and FixWindows use it for its members, but I ran into errors trying to override the non static methods of the abstract class, and trying to call them from FixWindows in nonstatic context. I prefer to not make it static though, because I would have to make an additional class just to refer to RemotePhase.

Why would you need to store a reference to a singleton while you can always access it by the static getter ? This would enable lazy access to RemotePhase from FixWindows, and fix your circular dependency. Therefore, the cleanest fix is simply to not call the getter inside the constuctor of FixWindows.