Infinite recursion java issue