Pessoas, cá estou eu envolvido na seguinte situação:
Eu tenho uma classe que recebe dados através de uma conexão Socket. Essa classe lê caracter por caracter que lhe é enviada, em buffers de 128 bytes, e "appenda" cada caracter em um StringBuffer, que mais a frente seu "toString()" é passado como parâmetro a outra classe, para os devidos tratamentos.
Eu recebo apenas letras, numeros e caracteres em branco (char = 32).
O que tá ocorrendo é o seguinte, vez por outra um determinado StringBuffer completo está "comendo" alguns caracteres em branco, gerando sequencias de Strings com 117, 121, 123... caracteres!
Exemplificando:
// strB = StringBuffer completo
// isso retorna 128, por exemplo
System.out.println(strB.length());
// isso retorna uma sequencia de caracteres com MENOS de 128 posições
System.out.println(strB.toString());
Não há caracteres especiais sendo "appendados" ao strB, e apenas caracteres em branco estão sendo "engolidos".
Eu não sei se há algum tipo de bug relacionado a versão 1.3.1....
java -version java version "1.3.1" Java(TM) 2 Runtime Environment, Standard Edition (build Blackdown-1.3.1-02b-FCS) Java HotSpot(TM) Client VM (build Blackdown-1.3.1_02b-FCS, mixed mode)
...., eu até gostaria de atualizar a versão, mas isso está fora do meu controle.
Alguma idéia? Já perdi algumas horas em cima disso..... :?
Valeu!