Ir para conteúdo
  • Cadastre-se

dev botao

MemoryLeak NFeConsulta


  • Este tópico foi criado há 4718 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Boa tarde.

Está ocorrendo um MemoryLeak ao efetuar consulta de uma NFe.

Ao verificar o código fonte, eu verifiquei que um objeto não estava sendo liberado, possuindo com uma mensagem de advertência na frente referente ao motivo da não liberação do mesmo:

unit ACBrNFeWebServices

Linha 1861

    //NFeRetorno.Free; (se descomentar essa linha não será possível ler a propriedade ACBrNFe1.WebServices.Consulta.protNFe.nProt)

Ao não liberar esse objeto, gera o MemoryLeak. A não liberação dele, conforme a observação, deve-se ao fato de apenas não conseguir consultar o número de protocolo.

Não seria o caso de criar um property para armazenar o nProt? Ter um memoryLeak "apenas" por causa no número do protocolo? Na minha opinião não acho necessário.

Atenciosamente.

Jéter Rabelo Ferreira

------------------------------------------------

Jéter Rabelo Ferreira
Campestre/MG

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Olá.

Vc pode fazer as alteracoes necessarias para arrumar o problema e postar no Mantis.

Iremos analisar e incluir suas melhorias com o maior prazer no projeto.

Mas veja no fonte que não é só o numero de protocolo... são varias informacoes sobre o retorno da NFe que ficam armazenadas nesse objeto citado.

Abraços

João Henrique de Souza

 

Manual de como configurar o TortoiseSVN para não ficar mostrando a senha repetidas vezes (somente para commiters):

https://sourceforge.net/p/forge/community-docs/TortoiseSVN/

 

 

Link para o comentário
Compartilhar em outros sites

Olá.

Eu estive analisando a unit ACBrNFeWebServices para retirar esse memoryleak.

Como existem várias pessoas que utilizam o componente, eu pensei numa forma de fazer isso que gerassse menos transtornos, mas a melhor maneira, a meu ver, é o seguinte, algumas proprietades deverrão ser removidas e outra criada.

Analisando:

As propridades:

property protNFe: TProcNFe read FprotNFe write FprotNFe;

property retCancNFe: TRetCancNFe read FretCancNFe write FretCancNFe;

não faz muito sentido de existirem se for criada uma propriedade conforme tem a classe TNFeRecibo:
property NFeRetorno: TRetConsReciNFe read FNFeRetorno write FNFeRetorno;

uma vez que TRetConsReciNFe contém a classe TProcNFe. O que serie necessário acrescentar apenas e TRetCancNFe à classe TRetConsReciNFe.

Nesse caso, a property NfeRetorno seria criada no constructor da TNFeConsulta e destruida no destructor, eliminando de vez o memoryleak.

A minha dúvida é, como disse no início da mensagem: A Base de usuários que atualmente estão utilizando o componenten ACBrNFe que, após a atualização, vão ter mensagens de erros de compilação. Claro que nada muito dificil de resolver, mas o que pode gerar uma quantidade considerável de perguntas.

Caso acharem que pode ser feito, eu efetuo as alterações e envio o arquivo.

Uma observação, não analisei se essas propertys são necessárias noutras classes do ACBrNFe, fato esse que, caso sejam, claro que tudo deverá ser corrigido.

Aguardo respostas.

Atenciosamente.

Jéter Rabelo Ferreira

------------------------------------------------

Jéter Rabelo Ferreira
Campestre/MG

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Vc pode realizar as alteracoes necessarias sim.

Dae abra um caso no MANTIS (http://www.djsystem.com.br/acbr/mantis) e vá postando elas lá. Assim conforme vc for alterando, eu e/ou outros desenvolvedores testamos conforme o tempo disponivel. E assim que constatado tudo OK enviamos elas ao SVN.

Obrigado

João Henrique de Souza

 

Manual de como configurar o TortoiseSVN para não ficar mostrando a senha repetidas vezes (somente para commiters):

https://sourceforge.net/p/forge/community-docs/TortoiseSVN/

 

 

Link para o comentário
Compartilhar em outros sites

  • 1 mês depois ...
  • Moderadores

Para quem usa o componente, foi feita uma alteração para realizar a liberacao da variavel NFeRetorno.

Revisao: 2430

Peço q façam testes e reportem se solucionou o problema ou nao.

[]´s

João Henrique de Souza

 

Manual de como configurar o TortoiseSVN para não ficar mostrando a senha repetidas vezes (somente para commiters):

https://sourceforge.net/p/forge/community-docs/TortoiseSVN/

 

 

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 4718 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...