- Criado por Fabio Garbin, última alteração por Carlos Sampa Junior em 19 out, 2021
Você está vendo a versão antiga da página. Ver a versão atual.
Comparar com o atual Ver Histórico da Página
« Anterior Versão 27 Próxima »
Correções
Ocorrência: Ao executar a função File2Printer em um AppServer em ambiente Linux headless enviando o parâmetro "-RFS", ele é ignorado na chamada feita ao executável da pdfprinter.
Solução: Adicionado o parâmetro na construção da chamada do comando da pdfprinter feita pela função File2Printer.
Chamado: DTAPPSRV-5057
Ocorrência: No envio da mensagem SMS_MENUADDITEM para o smartclient, o TMenuItem estava sem texto no menu causando a queda do smartclient
Solução : Foi feito uma verificação antes de enviar a mensagem ao smartclient derrubando assim a conexão caso o menu esteja com texto vazio
Chamado: DTAPPSRV-5114
Ocorrência : Queda do TOTVS Application Server com Access Violation em caso de chamadas da função manualjob() por mais de uma thread/processo simultaneamente.
Correção : Implementar mecanismo de proteção Thread-Safe para a função manualjob()
Chamado: DTAPPSRV-5159
Ocorrência: Ao chamar a função TCLink sem passar parâmetros, caso o ambiente não tenha configurado as chaves DBServer ou DBAlias, a aplicação é encerrada com o erro "TC_Connect - Unexpected exception in Top Client".
Solução: Protegido a função TCLink para retornar -41 quando o valor das chaves DBServer ou DBAlias for vazio. Quando o DBServer for vazio será exibida a mensagem "Error on connect - Server is empty"; já quando o DBAlias for vazio será exibida a mensagem "Error on connect - Environment is empty".
Chamado: DTAPPSRV-5170
Ocorrência: Queda / Access Violation no TOTVS Application Server, precedidas pelas mensagens de erro "Unlink Underflow on tClassInstance::delRef()" no log de console, em sequencia específica de uso de objetos JSON.
Solução: Refatoração do mecanismo de controle de alocação e referências de objetos JSON.Environment is empty".
Chamado: DTAPPSRV-5140
Ocorrência: Ao realizar a execução do LOGPROFILER, quando tinhamos uma mudança de variável de tipo objeto de classe para codeblock, o Application Server se encerrava.
Solução: Foi protegido e indicado no encerramento do programa a variável onde ocorria a mudança, sendo necessário a correção utilizando variáveis distintas.
Chamado: DTAPPSRV-5097
Ocorrência: Encerramento inesperado no Totvs Application Server, após o registro de uma ocorrëncia de erro "stack depth overflow in function ..."
Solução: A finalização de contexto do processo ao ser finalizado com esse erro foi corrigida, para nao derrubar o serviço.
Chamado: DTAPPSRV-5075
Ocorrência: Invasão de memória em cache de strings constantes do runtime da linguagem AdvPL ocasionavam queda do servidor de aplicação com ocorrências de "Access Violation on tIdentifier".
Correção : As invasões no cache eram causadas por acessos indevidos a strings constantes, corrigidas no runtime do AdvPL.
Chamado: DTAPPSRV-5006
Ocorrência : Uma falha no cache de constantes do runtime do AdvPL causava um comportamento inesperado na execução da função AdvPL ChangeQuery(), gerando queries sintaticamente inválidas para o banco de dados.
Correção: O cache de strings constantes do runtime do Advpl foi protegido e corrigido, e as operações que causavam anomalias de comportamento apareciam no log de console do TOTVS Application Server informando a mensagem "Cannot update a constant string".
Chamado: DTAPPSRV-5062
Ocorrência: Alteração no comportamento da função GetJsonText quando do valor nulo.
Correção: Mantido o comportamento original para retorna o texto "null" quando o conteúdo do elemento é nulo.
Chamado: DTAPPSRV-5024
Ocorrência: A função round(), quando utilizado com o segundo parâmetro negativo, não funciona da mesma maneira dos parâmetros positivos. Retornando um valor default de zero (0).
Solução: Analisado o problema e corrigido agora o segundo parâmetro fará o arredondamento tanto a esquerda (negativo), quanto a direita (positivo). Funcionando da mesma maneira.
Chamado: DTAPPSRV-5105
Ocorrência: Durante a compilação, o compilador não levava em consideração uma macro, deixando um warning de variável nunca usada.
Solução: Agora ele faz a varredura em macros para verificar se elas foram utilizadas e não informar mais o warning.
Chamado: DTAPPSRV-5021
Ocorrência: Erro -2 no uso da função SFTPUserPassFileDownload.
Solução: Alteração na biblioteca utiliza para conexão SFTP.
Chamado: DTAPPSRV-5003
Ocorrência: Encerramento inesperado do Application Server causada por erros de SSL.
Solução: Correção na implementação do SSL.
Chamado: DTAPPSRV-4127
Ocorrência: Exceção do servidor devido acesso à codeblock previamente removido.
Solução: Correção do runtime AdvPL em codeblock específico para limpar removidos.
Chamado: DTAPPSRV-4880
Ocorrência : Uso de localfiles=sqlite e falso positivo ao testar a existência de um arquivo em disco com o mesmo nome de um arquivo criado dentro do banco de dados db_sys\sysmte.db do sqlite.
Correção : O desvio para testar existência de arquivos no SQLITE deve ser feito internamente pelo Application Server apenas para testar a existência de indices ( .cdx / .idx ), caso contrário prevalesce apenas o retorno do sistema de arquivos.
Chamado: DTAPPSRV-5243
Ocorrência : Problema no arredondamento de números negativos, passando eles para Json.
Solução: Alterado a escrita de números negativos nos Json, utilizando a mesma para ambos.
Chamado: DTAPPSRV-4857
Ocorrência : Aumento de memória consumida pelo serviço do Totvs Application Server ao longo do uso do sistema, crescendo continuamente ao longo do uso do sistema.
Correção : Foram identificadas e corrigidas situações de retenção indevida de memória no runtime do AdvPL, relacionadas a execução de código em geral, objetos, classes e blocos de código.
Chamado: DTAPPSRV-4669
Ocorrência : O método AttachFile() da classe TMAILMESSAGE, em caso de falha na abertura do arquivo informado para ser anexado ao e-mail, interrompia a execução do programa Advpl com a ocorrência de erro "invalid handle used in file D:\appserver-19.3.1.x\lib_base\diskman.cpp at line 321", sem detalhes sobre a ocorrência ou a causa.
Correção : Foi implementado o tratamento de erro interno no método, para que uma ocorrência de falha de acesso ao arquivo anexo faça o método AttachFile() retornar o valor -1, indicando uma falha na execução, e no log de console do Totvs Application Server ( console.log ) será registrada uma mensagem de advertência com os detalhes da ocorrência -- arquivo envolvido e causa da falha de abertura, por exemplo :
[WARN ][SERVER] [tMsgMail::AddAttachment] File open error. Unable to attach file : D:\Protheus12\envp12127\anexo2.pdfError : Win : The process cannot access the file because it is being used by another process.
Chamado: DTAPPSRV-4716
Ocorrência: Access Violation no recebimento de emails quando o anexo está codificado como quoted-printable, mas a informação de codificação do anexo dentro da estrutura do email informa uso de codificação base64.
Correção : Caso seja recebido um e-mail com estas características, não será mais apresentada Access Violation no Application Server, porém o anexo será retornado ao Advpl com tamanho 0 ( zero bytes )
Chamado: DTAPPSRV-4665
Incidente: A classe TWSDLManager apresentava erro no parse de schemas que não declaram targetNamespace ou namespace.
Solução: Corrigido na classe TWSDLManager o parse de schemas.
Chamado: DTAPPSRV-4547
Ocorrência: Caso a TWSDLManager faça parse de um WSDL que faz import de tag binding, a classe não reconhece o binding e dá erro na parse. Caso seja chamado método SetPort e o Port não tiver sido processado, o AppServer dá access violation.
Correção: Corrigido o parse da TWSDLManager para tratar import de binding e a chamada do método SetPort.
Chamado: DTAPPSRV-4835
Ocorrência: A classe TWSDLManager apresenta erro de parse quando o WSDL que contém imports de WSDL com locations iguais mas com cases diferentes (por exemplo, http://www.url.com.br/service/import.wsdl e http://www.url.com.br/Service/import.wsdl).
Correção: Corrigido na classe TWSDLManager o import de WSDL.
Chamado: DTAPPSRV-5192
Melhorias
Solução: Atualização da biblioteca SQLITE
Chamado: DTAPPSRV-5151
Situação : A configuração de mapeamento de campos automática entre APPServer e DBAccess, configurável através da configuração MAPPER=ON|OFF não estava sendo considerada pelo servidor de aplicação, estando o recurso sempre ligado.
Implementação: Criada a possibilidade de desligar o mapeamento dinâmico de campos através da configuração MAPPER=OFF ( na seção DBACCESS do appserver.ini ) e/ou através da configuração DBMAPPER=OFF na seção do ambiente (environment).
Para mais informações sobre o que é o mapeamento dinâmico de campos, consulte a TDN, no documento "Mapeamento Dinâmico de Campos - MAPPER"
Chamado: DTAPPSRV-4988
Situação: Caso seja recebido um e-mail com estas características, não será mais apresentada Access Violation no Application Server, porém o anexo será retornado ao Advpl com tamanho 0 ( zero bytes )
Melhoria : Para permitir que o mecanismo de recebimento de emails recupere o anexo tratando o conteúdo como quoted-printable, em caso de falha na decodificação em base64, basta insrerir no appserver.ini, na seção [MAIL], a chave TryEncode=1
Chamado: DTAPPSRV-4665
- Sem rótulos