Some more questions.
1) What is inactiveList doing. Nodes are added but never used.
2) If there is no shrink in a line (the case in START alignment) then nodes are never removed from activeList until a forced break element is found. Is that really the intention of the algorithm? It seems suspect that a ration of INFINITE_RATIO is also created when the break is too wide to fit within a node.