Was da blockiert ist das Lesen... Das Problem könnte schon gelöst sein, indem du deine Schleife so (um-)schreibst:
Code:
while ((line = buffer.readLine()) != null) {
  ...
}