Alguem sabe o que acontece quando o java mostra o erro abaixo?
Eu sei que deve ser algo a ver com NullPointer.
se precisarem do código fonte. tambem posto.
Alguem sabe o que acontece quando o java mostra o erro abaixo?
Eu sei que deve ser algo a ver com NullPointer.
se precisarem do código fonte. tambem posto.
codigo!
vc ta tentando acessar uma variavel sem valor , (null - não inicializada, um string nula por exemplo…, não vazia “” - nula msm).
posta o código ae para ver onde ta o erro neh… :roll:
Junior.
Posta somente o pedaço do seu cógido aí que gera o erro.
mas basicamente, vc está fazendo:
Object b = null;
b.toString(); // null.toString(); == NULLPOINTER EXCEPTION.
Junior.
Posta somente o pedaço do seu cógido aí que gera o erro.
mas basicamente, vc está fazendo:
Object b = null; b.toString(); // null.toString(); == NULLPOINTER EXCEPTION.
public Cliente(String string) {
try{
this.codigo = string.substring(0,46);
this.nome = string.substring(46,174);
this.endereco = string.substring(174,229);
this.cep = string.substring(229,257);
this.camposFinais = string.substring(257);
this.todosOsCampos = string;
}catch(Exception e){
e.printStackTrace();
}
public void normalizar(Leitor leitor, Escritor escritor){
Cliente cliente = new Cliente(leitor.ler());
do{
cliente = executarAlteracoes(cliente);
escritor.escrever(cliente.getTodosOsCampos());
cliente = null;
cliente = new Cliente(leitor.ler());
}while(cliente != null);
}
if(e.getSource() == generateButton){
if (this.arquivoLido != null){
Manipuladores manipulador = new Manipuladores();
Escritor escritor = new Escritor("midaret"+arquivosGerados+".txt");
//Escritor report = new Escritor ("midaReport"+arquivosGerados+".txt");
manipulador.normalizar(arquivoLido, escritor);
log.append(escritor.fileName+" Gerado com sucesso\n");
//log.append(report.fileName+" Gerado com sucesso\n");
this.arquivoLido = null;
escritor.fecha();
//report.fecha();
//manipulador = null;
//escritor = null;
//report = null;
}
bem, pelo menos eh o que dizem as ters primeiras linhas do erro.
Junior,
você precisa debugar o seu código pra chegar exatamente na linha que está ocorrendo o erro.
Debuga aew e se mesmo assim vc não solucionar o problema, posta de novo.
Abraço.
Junior,
você precisa debugar o seu código pra chegar exatamente na linha que está ocorrendo o erro.
Debuga aew e se mesmo assim vc não solucionar o problema, posta de novo.Abraço.
vou faze-lo.
provavelmente ele não esta criando o objeto Cliente.
Cliente.java:29
qual é a linha 29 dessa classe?
mas coloca umas linhas antes tbm pra dar pra entender o que ta chegando nessa linha…
Olá gp7junior.
Pelo stackTrace que voce mandou:
java.lang.NullPointerException
at corretor.Cliente.<init>(Cliente.java:29)
at corretor.Manipuladores.normalizar(Manipuladores.java:50)
da para ver que o erro está ocorrendo no construtor da classe cliente:
public Cliente(String string) {
try{
this.codigo = string.substring(0,46);
this.nome = string.substring(46,174);
this.endereco = string.substring(174,229);
this.cep = string.substring(229,257);
this.camposFinais = string.substring(257);
this.todosOsCampos = string;
}catch(Exception e){
e.printStackTrace();
}
}
se este for o unico construtor da classe cliente então o problema é que voce esta passando uma String nula no argumento do construtor.
pelo que voce passou do código:
public void normalizar(Leitor leitor, Escritor escritor){
Cliente cliente = new Cliente(leitor.ler());
do{
cliente = executarAlteracoes(cliente);
escritor.escrever(cliente.getTodosOsCampos());
cliente = null;
cliente = new Cliente(leitor.ler());
}while(cliente != null);
}
provavelmente o leitor.ler() não está retornando coisa alguma;
Olá gp7junior.Pelo stackTrace que voce mandou:
…provavelmente o
leitor.ler()não está retornando coisa alguma;
sim ele esta. eu testei com o System.out.println(); ele retorna todos os dados.
Cliente.java:29qual é a linha 29 dessa classe?
mas coloca umas linhas antes tbm pra dar pra entender o que ta chegando nessa linha…
29 this.codigo = string.substring(0,46);
Com certeza em algum momento sua variável “string” tá ficando nula.
Tenta colocar um if antes de criar o objeto cliente para certificar que não vai passar null para o construtor.
Marca um breakpoint na linha 29 e vê o valor de:
string.substring(0,46)
public void normalizarX(Leitor leitor, Escritor escritor){
Cliente cliente = new Cliente(leitor.ler());
do{
cliente = executarAlteracoes(cliente);
escritor.escrever(cliente.getTodosOsCampos());
cliente = null;
cliente = new Cliente(leitor.ler());
}while(cliente != null);
}
substitui por:
public void normalizar(Leitor leitor, Escritor escritor){
String str = leitor.ler();
//Cliente cli = new Cliente(str);
do{
str = executarAlteracoes(str);
escritor.escrever(str);
str = leitor.ler();
}while(leitor.ler() != null);
}
e não mostrou mais as mensagens de erro.
Veja bem, nessa execução onde você está depurando, o erro não ocorreu, você está fazendo esse processo mais de uma vez, como por exemplo lendo o conteúdo de um arquivo? Pode ser que nessa linha o processo esteja ok, mas nas próximas tenha dados inválidos no arquivo. O ideal seria que você conseguisse debugar exatamente onde está ocorrendo o erro, pois nesse exemplo você passou pela linha 29 sem problemas.
Se já estiver mesmo resolvido o problema, edite o título do post fazendo favor amigo.
valeu!
public Cliente(String string) {
try{
this.codigo = string.substring(0,46);
this.nome = string.substring(46,174);
this.endereco = string.substring(174,229);
this.cep = string.substring(229,257);
this.camposFinais = string.substring(257);
this.todosOsCampos = string;
}catch(Exception e){
e.printStackTrace();
}
}
Acredito que sua String não tenhas as posições para o substring.
abraço