Fixed infinite loop in getSoonestDateAfter and fixed toString