Pessoal olha soh minha classe ta dando esse erro aí, index out of range -1
eu vou colar aquio errro e a linha do codigo onde ta dando o mesmo erro.
La vai a linha dos erros:
[init] export ContasFuncionarios
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1938)
at br.com.link3.dp.convert.rh.agape.ContasFuncionariosDao.makeBean(ContasFuncionariosDao.java:136)
at br.com.link3.dp.convert.rh.agape._RHAgapeDao.next(_RHAgapeDao.java:57)
at br.com.link3.dp.convert.ConvertManager.export(ConvertManager.java:119)
at br.com.link3.dp.convert.ConvertManager.processa(ConvertManager.java:286)
at br.com.link3.dp.convert.MainForm$5.run(MainForm.java:351)
vc está tentando acessar uma posicao inexistente no array (nesse caso na String) ele quebra a String em um vetor d strings… dai ele nao achou o indice q vc procurou…
joaorafael
O possição da String que vc está querendo acessar não existe.
Veja se tem alguma coisa no numero antes de trabalhar com subString ,
manda imprimir para ver o que esta chegando.
A
arilson_brito
Bom dia!
Você já verificou qual o retorno para esta linha: String numero = resultSet.getString(“numero”);
Essa “String numero” esta sendo iniciada mesmo, ela recebe algum valor? Verifique isso que pode te ajudar.
vinnyparker
bom pessoal, eu consegui resolver, eu tirei o substring e tratei de outra forma.
bom agora eh o seguinte:
meu programa tem como resultado um scrpit SQL
e esta classe q estava me referindo esta gerendo o script normalzinho. mas na hora q ta gerando aparece uma msg de erro q eu nao sei o q eh. tipo… da o erro mas gera o arquivo sacou???
eh o seguinte: INFO [Thread-2] (ConvertManager.java:124) - [init] export ContasFuncionarios
java.lang.NullPointerException
at br.com.link3.dp.convert.rh.agape.ContasFuncionariosDao.makeBean(ContasFuncionariosDao.java:125)
at br.com.link3.dp.convert.rh.agape._RHAgapeDao.next(_RHAgapeDao.java:57)
at br.com.link3.dp.convert.ConvertManager.export(ConvertManager.java:119)
at br.com.link3.dp.convert.ConvertManager.processa(ConvertManager.java:286)
at br.com.link3.dp.convert.MainForm$5.run(MainForm.java:351)
INFO [Thread-2] (ConvertManager.java:207) - >[end] export ContasFuncionarios
alguem sabe o q eh?
lgr
Verifica se seu resultado tá vindo vazio.Ou ainda sua String pode estar vind sem nenhum tamanho.
Inicialize sua String com um texto pra vc ver,não deve dar erro…
L
Leonardo3001
O seu StringIndexOutOfBoundsException ocorria quando a String sua (o resultado de resultSet.getString(“numero”) tinha tamanho zero. Aí, como a substring pedia (tamanho - 1), que resultava em -1, dava a exceção.
Quanto a NullPointerException, repare que está dando na linha 125 do arquivo ContasFuncionariosDao.java. Veja esta linha que, acredito, você não passou pra gente.
vinnyparker
Leonardo3001:
O seu StringIndexOutOfBoundsException ocorria quando a String sua (o resultado de resultSet.getString(“numero”) tinha tamanho zero. Aí, como a substring pedia (tamanho - 1), que resultava em -1, dava a exceção.
Quanto a NullPointerException, repare que está dando na linha 125 do arquivo ContasFuncionariosDao.java. Veja esta linha que, acredito, você não passou pra gente.
Pessoal, eu descobri o q é, mas nao to conseguindo resolver.
essa linha 125 seta o resultado de um teste
if(agenciaAgape!= null){
if (agenciaAgape.equals(""))
bean.setBancosAgencias(0);
}else
bean.setBancosAgencias((Integer.parseInt(agenciaAgape)));
bom, o campo agenciaAgape, é String e contem alguns campos em branco, vazio…
entao eu fiz o teste pra se caso for vazio, ele setar 0, porem em alguns casos esta trazendo vazio mesmo e em uma linha esta setando a palavra “agenciaAgape” ao invez de setar o 0. logo o problema esta no meu teste :shock: . alguem ja tentei varias possibilidades e nao to conseguindo resolver…
L
Leonardo3001
Isso é identação enganosa. Não é porque você coloca o else embaixo de determinado if, que isso significa que aquele if é o escolhido. O else sempre se associa ao if mais próximo.
O que significa que só vai ser convertido pra inteiro quando agenciaAgape for nulo.
Pra corrigir, coloque abre e fecha chaves pra todos os ifs, mesmo que só tenha um comando. Assim: