Problemas Compilador Cliente/Servidor com Sockets [URGENTE]

Olá a todos,

Estou desenvolvendo um trabalho para a disciplina de Redes de Computadores, curso de Computação,
que é um compilador cliente/servidor, com Sockets.
Ele está praticamente pronto, exceto por esse problema que estou descrevendo.

Ele funciona da seguinte forma (resumidamente):
O cliente envia um código-fonte ao servidor, que o recebe, passa-o as classes que executam
as análises devidas, e retorna os resultados ao cliente, que são: listagem dos tokens, possíveis erros,
pilha (analisador sintático), e identificadores (analisador semântico).

O meu problema é o seguinte:
Quando eu passo um arquivo e executo a análise pela primeira vez, beleza.
Todos os resultados são retornados, corretamente.
Só que a partir da 2ª execução, ou com outro arquivo, trava a interface do cliente,
e dá uma NoSuchElementException. Eu utilizo a classe Scanner para ler a entrada
do cliente, e dá essa exceção porque não há entrada para ler. PORQUÊ? As streams
de saída e entrada são inicializadas novamente, e o código é recebido pelas classes de
análise. Não entendi.

Obrigado a todos que me ajudarem.

P.S 1: Vasculhei o fórum e a internet, não consegui encontrar nada parecido.
P.S 2: Seguem anexados os códigos-fonte, para a alma caridosa que quiser me ajudar.