За это: http://img134.imageshack.us/img134/570/bugrec.png
После первого брейкпоинта (красная линия) yChildren инициализирован, а на втором он уже null, и вылетает соотв. исключение. В чем фокус? А фокус в том что в строке
Dimension typ = c.getPrefferedSize()
Внезапно происходит invalidate контейнера с обнулением "yChildren" (стек вызовов справа). Феерия! Попробуйте догадаться из-за чего метод который якобы должен всего навсего получать размер компонента на самом дее изменяет состояние не только компонента но и его родителя, что сильно логично 8) и ожидаемо [тут матюги].