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'
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'
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:
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