Melhoria - Proteções e limites do AdvPL
Esta build contém algumas proteções para execução de código AdvPL, para que sejam respeitados determinados limites do Kernel do TOTVS Application Server.
Abrangência | ERP 10 |
Situação | Utilização de programas AdvPL que armazenam e referenciam objetos e arrays. |
Ocorrência | Caso um determinado objeto, array ou subarray, durante sua existência, fosse atribuído mais de 32767 vezes a outras variáveis ou elementos de array, referenciando o objeto original, a execução da aplicação apresentava instabilidade seguida de ocorrência de Access Violation e queda do processo. |
Melhoria | Os componentes internos de execução do TOTVS Application Server foram protegidos para disparar uma ocorrência de erro AdvPL para abortar a aplicação sem causar invasão de memória, Access Violation ou instabilidade, indicando a causa da ocorrência e respectiva pilha de chamada de funções (stack). Veja, as seguir, as novas ocorrências: Reference counter overflow ( over 32700 ) on tClassInstance::addRef(): Reproduzida quando um objeto de uma determinada classe é referenciado mais de 32700 vezes. Por exemplo, criar um objeto e acrescentá-lo mais de 32700 vezes em um array, ou acrescentá-lo mais de 16350 vezes em um array e criar uma cópia deste array usando a função aClone().
Reference counter overflow ( over 32700 ) on tVarList::addRef(): Reproduzida quando utilizamos arrays, uni ou multidimensionais, e criamos novas variáveis ou elementos referenciando elementos já existentes, onde do mesmo elemento foram criadas mais de 32700 referências. O exemplo da ocorrência anterior se aplica a este, onde ao invés de objeto, são feitas referências a um array.
Reference counter overflow ( over 32700 ) on tLocalEnv::IncRefs(): Proteção colocada diretamente no Kernel, para uma situação similar às acimas descritas, que não deveria ser reproduzida. As situações que poderiam envolver esta ocorrência são tratadas em outros pontos do sistema, como a proteção de número máximo de níveis de recursão em chamada de funções e stack. Caso esta ocorrência seja reproduzida, deve-se abrir um chamado para a tecnologia TOTVS, informando a ocorrência, logs de console, arquivo de configuração (*.INI) da aplicação e demais informações que se fizerem necessárias para reproduzir tal situação. |
Informações adicionais |
|