From ce56ad44272bc1d31bf49283a9457ae2bbd1779f Mon Sep 17 00:00:00 2001 From: Rafael Sanches Telles Date: Thu, 10 Oct 2024 10:02:13 -0400 Subject: [PATCH] Trantando NPE (#1009) Co-authored-by: Rafael Telles Co-authored-by: Diego Fincatto <58352+fincatto@users.noreply.github.com> --- .../nfe400/webservices/WSCancelamento.java | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/fincatto/documentofiscal/nfe400/webservices/WSCancelamento.java b/src/main/java/com/fincatto/documentofiscal/nfe400/webservices/WSCancelamento.java index 8b4287a81..e204b2aff 100644 --- a/src/main/java/com/fincatto/documentofiscal/nfe400/webservices/WSCancelamento.java +++ b/src/main/java/com/fincatto/documentofiscal/nfe400/webservices/WSCancelamento.java @@ -1,23 +1,30 @@ package com.fincatto.documentofiscal.nfe400.webservices; +import java.math.BigDecimal; +import java.time.ZonedDateTime; +import java.util.Collections; +import java.util.List; + +import org.apache.axiom.om.OMElement; +import org.apache.axiom.om.util.AXIOMUtil; + import com.fincatto.documentofiscal.DFLog; import com.fincatto.documentofiscal.DFModelo; import com.fincatto.documentofiscal.nfe.NFeConfig; import com.fincatto.documentofiscal.nfe400.NotaFiscalChaveParser; import com.fincatto.documentofiscal.nfe400.classes.NFAutorizador400; import com.fincatto.documentofiscal.nfe400.classes.evento.NFEnviaEventoRetorno; -import com.fincatto.documentofiscal.nfe400.classes.evento.cancelamento.*; +import com.fincatto.documentofiscal.nfe400.classes.evento.NFEventoRetorno; +import com.fincatto.documentofiscal.nfe400.classes.evento.cancelamento.NFEnviaEventoCancelamento; +import com.fincatto.documentofiscal.nfe400.classes.evento.cancelamento.NFEventoCancelamento; +import com.fincatto.documentofiscal.nfe400.classes.evento.cancelamento.NFInfoCancelamento; +import com.fincatto.documentofiscal.nfe400.classes.evento.cancelamento.NFInfoEventoCancelamento; +import com.fincatto.documentofiscal.nfe400.classes.evento.cancelamento.NFProtocoloEventoCancelamento; import com.fincatto.documentofiscal.nfe400.classes.lote.envio.NFCancelamentoRetornoDados; import com.fincatto.documentofiscal.nfe400.webservices.gerado.NFeRecepcaoEvento4Stub; import com.fincatto.documentofiscal.nfe400.webservices.gerado.NFeRecepcaoEvento4Stub.NfeResultMsg; import com.fincatto.documentofiscal.utils.DFAssinaturaDigital; import com.fincatto.documentofiscal.utils.DFPersister; -import org.apache.axiom.om.OMElement; -import org.apache.axiom.om.util.AXIOMUtil; - -import java.math.BigDecimal; -import java.time.ZonedDateTime; -import java.util.Collections; class WSCancelamento implements DFLog { @@ -45,10 +52,12 @@ NFCancelamentoRetornoDados cancelaNota(final String chaveAcesso, final String nu NFEnviaEventoCancelamento eventoAssinado = new DFPersister().read(NFEnviaEventoCancelamento.class, xmlAssinado); + final List eventoRetorno = retorno.getEventoRetorno() == null ? List.of() : retorno.getEventoRetorno(); + NFProtocoloEventoCancelamento protocolo = new NFProtocoloEventoCancelamento(); protocolo.setVersao("1.00"); protocolo.setEvento(eventoAssinado.getEvento().stream().findFirst().orElse(null)); - protocolo.setEventoRetorno(retorno.getEventoRetorno().stream().findFirst().orElse(null)); + protocolo.setEventoRetorno(eventoRetorno.stream().findFirst().orElse(null)); return new NFCancelamentoRetornoDados(retorno, protocolo); }