Erro: java.lang.ArrayIndexOutOfBoundsException - Como resolver?
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.