If I don't run the expansion code - everything works. As soon as the expansion code is run within the constructor of my top component the expansion itself works - it drills down along the first child nodes till it finds a node with no children and expands that path. But any navigation around the tree (e.g. pressing arrow keys on keyboard) triggers uncontrolled CPU usage and memory usage grows quickly to gigabytes. It seems like calling Node#getChildren()#getNodes() is causing some problems, but I'm not sure. Is there something obviously wrong with the above code?