20696 - Erro na execução de regras: "Regra XXX: null"
Problema:
Solução:
Ao executar determinada regra customizada, está ocorrendo algum dos erros abaixo:
- "Regra XXX: null" -> Com o depurador ativo;
- "Class ArrayIndexOutOfBoundsException doesn't have classType. Original message: XXXXXXXXXX" -> Com o depurador ativo;
- "Regra XXX: XXXXXXXXXX" -> Com o depurador desativado.
Rotina / Tela: Regras customizadas. Pode ocorrer com qualquer regra.
Solução:
A linguagem LSP possui uma limitação que está contida na documentação:
Variáveis com nomes iguais aos parâmetros de funções:
Ao se definir uma função dentro das regras com passagem de parâmetros, deve-se cuidar para que os nomes destes parâmetros não sejam iguais ao nome de nenhuma variável que possa estar empregada em qualquer outra regra, pois ao se fazer isso, quando esta variável for usada, irá corromper algum conteúdo em memória.
Quando a variável é utilizada em funções, seu endereço não fica mais disponível ao sair da função, como a variável global de mesmo nome possui o mesmo endereço (que não é mais válido), algum lugar poderá ficar corrompido.
Quando a variável é utilizada em funções, seu endereço não fica mais disponível ao sair da função, como a variável global de mesmo nome possui o mesmo endereço (que não é mais válido), algum lugar poderá ficar corrompido.
Dentre os problemas que podem ocorrer, estão os apresentados acima. Desta forma, é necessário ajustar a regra, de forma que o nome dos parâmetros não coincidam com o nome de alguma regra, mesmo que esta regra não esteja sendo executada no momento.