Base de conhecimento

Erro: java.lang.ArrayIndexOutOfBoundsException - Como resolver?

4 minutos de leitura
Copiar

Problema

Erro: java.lang.ArrayIndexOutOfBoundsException

 

Na Aplicação Oobj DFe, o erro está associado a uma versão do Java superior a compatível com o Serviço Oobj. Esse erro não é comum, pois as versões mais recentes da Aplicação Oobj é compatível com o Java da versão 7 e 8.

Nos logs da aplicação, o erro é apresentado como no exemplo abaixo:

2105 17:55:44,210 [Thread-2] INFO  FilaIdleManager - Voltando para modo ATIVO
2105 17:55:44,210 [Thread-2] INFO  onsumidorNotificante - Consumidor da fila 'oobj_nfe_impressao' entrando em modo IDLE
2105 17:55:44,282 [Thread-2] DEBUG ServicoImpressao - Gerando DAME da ME: 26150503551937000143550030017586951727699378 - inicio
2105 17:55:44,794 [Thread-2] DEBUG RGerarDanfeV3_10 - Preenchendo bean do DANFE
2105 17:55:48,099 [Thread-2] DEBUG ServicoImpressao - Gerando DAME da ME: 26150503551937000143550030017586951727699378 - fim
2105 17:55:48,099 [Thread-2] DEBUG ServicoImpressao - Gerando documentos adicionais - inicio
2105 17:55:48,191 [Thread-2] DEBUG GeradorBoleto - Quantidades de boletos identificados: 1
2105 17:55:48,519 [Thread-2] DEBUG RRelatorioJasper - Criando relatorio
2105 17:55:49,183 [Thread-2] FATAL onsumidorNotificante - Erro inesperado
java.lang.ArrayIndexOutOfBoundsException: 0
    at sun.font.ExtendedTextSourceLabel.createCharinfo(Unknown Source)
    at sun.font.ExtendedTextSourceLabel.getCharinfo(Unknown Source)
    at sun.font.ExtendedTextSourceLabel.getLineBreakIndex(Unknown Source)
    at java.awt.font.TextMeasurer.calcLineBreak(Unknown Source)
    at java.awt.font.TextMeasurer.getLineBreakIndex(Unknown Source)
    at java.awt.font.LineBreakMeasurer.nextOffset(Unknown Source)
    at net.sf.jasperreports.engine.fill.SimpleTextLineWrapper.measureExactLineBreakIndex(SimpleTextLineWrapper.java:563)
    at net.sf.jasperreports.engine.fill.SimpleTextLineWrapper.measureExactLine(SimpleTextLineWrapper.java:537)
    at net.sf.jasperreports.engine.fill.SimpleTextLineWrapper.nextLine(SimpleTextLineWrapper.java:519)
    at net.sf.jasperreports.engine.fill.TextMeasurer.renderNextLine(TextMeasurer.java:829)
    at net.sf.jasperreports.engine.fill.TextMeasurer.renderParagraph(TextMeasurer.java:632)
    at net.sf.jasperreports.engine.fill.TextMeasurer.measure(TextMeasurer.java:573)
    at net.sf.jasperreports.engine.fill.JRFillTextElement.chopTextElement(JRFillTextElement.java:670)
    at net.sf.jasperreports.engine.fill.JRFillTextField.prepare(JRFillTextField.java:767)
    at net.sf.jasperreports.engine.fill.JRFillElementContainer.prepareElements(JRFillElementContainer.java:330)
    at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:382)
    at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:357)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2025)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:753)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:263)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:123)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:539)
    at net.sf.jasperreports.engine.fill.BaseReportFiller.fill(BaseReportFiller.java:411)
    at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:115)
    at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:667)
    at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:648)
    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:970)
    at br.com.oobj.relatorio.RRelatorioJasper.gerarJasperPrint(RRelatorioJasper.java:211)
    at br.com.oobj.me.impressao.GeradorBoleto.gerarBoleto(GeradorBoleto.java:253)
    at br.com.oobj.me.impressao.GeradorBoleto.gerarDocumentos(GeradorBoleto.java:156)
    at br.com.oobj.me.impressao.GeradorBoleto.gerarDocumentos(GeradorBoleto.java:105)
    at br.com.oobj.me.impressao.GeradorBoleto.gerarDocumentos(GeradorBoleto.java:397)
    at br.com.oobj.me.impressao.GeradorCustomizadoDelegator.gerarDocumentos(GeradorCustomizadoDelegator.java:29)
    at br.com.oobj.me.impressao.ServicoImpressao.gerarJasperPrintsDocumentosAdicionais(ServicoImpressao.java:269)
    at br.com.oobj.me.impressao.ServicoImpressao.processar(ServicoImpressao.java:190)
    at br.com.oobj.me.impressao.ConsumidorImpressao.novaMensagem(ConsumidorImpressao.java:102)
    at br.com.oobj.util.fila.ConsumidorNotificante.processarComCommitSincrono(ConsumidorNotificante.java:332)
    at br.com.oobj.util.fila.ConsumidorNotificante.execute(ConsumidorNotificante.java:177)
    at br.com.oobj.util.fila.ConsumidorNotificante.run(ConsumidorNotificante.java:134)
    at br.com.oobj.me.impressao.ConsumidorImpressao.run(ConsumidorImpressao.java:75)

  

Solução/Procedimento

Como já dito, o erro não é comum, pois as versões mais recentes do Serviço Oobj DFe é compatível com a versões 7 e 8 do Java, porém caso observe o problema será necessário realizar um downgrade da versão do Java, ou seja instalar uma versão anterior do Java.

A partir dessa nova instalação você tem duas opções:

1 – Alterar o Java usado pela aplicação e para isso, preparamos um artigo ensinando a como definir um Java específico para o Serviço Oobj. Acesse:

2 – Remover a Instalação mais recente do Java, deixando apenas a versão anterior, compatível com a Aplicação. Se optar por essa opção, será necessário reiniciar todos os Serviços Oobj instalados em sua máquina. Veja como reiniciar um Serviço Oobj no artigo:

  • Como reiniciar um Serviço Oobj no Windows?
  • Referência

    Sem referência.

    Não encontrou o que procurava?