01. DADOS GERAIS
Produto: | TOTVS Framework
|
---|---|
Linha de Produto: | Linha Logix |
Segmento: | Tecnologia |
Módulo: |
Framework (Linha Logix) - Tecnologia
|
Função: | Exclusão de arquivo em disco - file.4gl / file.prw |
País: | Brasil |
Ticket: | 19458773 |
Requisito/Story/Issue (informe o requisito relacionado) : | DFWKLOGIX-1205 |
02. SITUAÇÃO/REQUISITO
Ao acionar a função 4GL log_file_remove() ocorre falha de Stack Overflow para um arquivo em disco apenas na situação que atende as seguintes características durante a execução do Logix:
- Arquivo a ser excluído do disco do servidor de aplicação;
- Build AppServer 7.00.131227A, versão 32 bits;
- Sistema operacional LINUX;
- Nome do arquivo contém espaço em branco (Exemplo: Arquivo_teste (2024).doc);
- Arquivo não existir no disco do servidor.
O problema somente ocorre na tentativa de excluir um arquivo que não existe fisicamente no servidor de aplicação e que atenda as demais características acima citadas.
03. SOLUÇÃO
Devido a uma falha de stack de chamada INTEROP entre 4GL e ADVPL, o build AppServer em uma determinada situação isolada, envia valores de parâmetros da função framework desenvolvida em 4GL chamada Log_file_remove() para uma função ADVPL, também chamada Log_file_remove(), que são recebidos na camada ADVPL com valores de uma chamada anterior desta mesma função, não sendo o valor correto do STACK de execução e isso acabava provocando uma chamada recursiva da própria função.
A alternativa para contornar de forma isolada o problema foi realizando a troca da chamada da função 4GL Log_file_remove() para a chamada ADVPL , sendo _ADVPL_Log_file_remove(<parâmetros>) para evitar a falha de passagem de argumentos da camada 4GL para ADVPL. Em paralelo, a situação para correção no build AppServer foi reportada junto ao time de tecnologia da TOTVS SP para providenciar a correção a partir do AppServer build Harpia.
04. DEMAIS INFORMAÇÕES
Não se aplica.
Disponível a partir do pacote oficial 12.1.2407 ou Framework Fix 12.1.2403(fix01)IMPORTANTE!
05. ASSUNTOS RELACIONADOS
- Não se aplica.