Print out the value of list after line 35 and see if it is always what you are expecting - take special note of the first and last time through the loop.
If so, still the problem occurred. Their is a data from text file showing in the output. I don't if that's what you mean of "Print out the value of list after line 35". I'm not good in looping...
Think about the order you're doing things in that loop. You check if list is null, then you get the next token, then you create the employee profile. So when list is finally null...you still carry on. Your second version confirms this - you print out null. You need to stop as soon as that happens.
Ben Owats wrote:If so, still the problem occurred.
That wasn't how to fix it. That was how to debug it. Look at the first result that you print out in the EmployeeProfile method. Is that the data from the first record in the input file or the second one ?