Ir para conteúdo
  • Cadastre-se

dev botao

Recommended Posts

Postado (editado)

Boa tarde pessoal, eu vi que de vez em quando, quando vou fazer a consulta de algum boleto (independente do banco), eu recebo um erro de acess violation no seguinte bloco da unit 'httpsend'

image.png.d7007893f87502d08eb92dfe58529d08.png

Isso acontece especificamente nessa linha destacada, que por sua vez, é chamada através do seguinte bloco da function TOAuth.Executar(const AAuthBase64: String): Boolean; na unit 'ACBrBoletoWS.Rest.OAuth'

image.thumb.png.bcfe45a394c39c531593f29db616582d.png

Eu percebi que isso acontece, pois o componente 'OutputStream' está ficando endereçado em memória, mesmo quando esse método não é executado, e quando a função 'Size' é chamada nele, parece que o ponteiro se perde e causa um erro de memória dentro do System.Classes do Delphi.

Para resolver eu fiz a seguinte alteração:

image.png

Ou seja, eu adicionei uma linha verificando se o componente OutputStream estava Assigned, e na outra eu setava Nil nele. Fazendo isso meus problemas de acess violation pararam de acontecer.

Obs: Estou utilizando o Delphi 12.2.

Segue anexo a unit ACBrBoletoWS.Rest.OAuth com a alteração para validação.

 

ACBrBoletoWS.Rest.OAuth.pas

Editado por Eficaz Sistemas
Postado
1 minuto atrás, Juliomar Marchetti disse:

boa tarde

que estranho!

uma dúvida tu não tem alguma unit ou instalou separa do Synapse ouestá em algum outro componente?

pois pode estar sendo confundido.

outra duvida é se o ACBr está na ultima versão?

Não tenho nenhuma instalação em outro lugar, e o ACBR está na última versão, tanto que eu atualizei ele pois pensei que era a versão o problema, mas continuou, então tive que fazer esse ajuste

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.