Bom dia
Foi introduzida uma nova validação na DIF, que identifica parâmetros com o mesmo nome, mas com capitalização diferente e com valores diferentes.
A maioria destas situações são geradas pela utilização do GlobalParameter. Isto porque os parâmetros da DIF são guardados em LowerCase. e a framework ao construir o URL com o GlobalParameter, escreve-o em lowerCase. Se no mesmo pedido for enviado o parâmetro com o nome original e com um valor diferente, será despoletada a excepção.
A consequência deste cenário é o parâmetro em questão ter um valor aleatório na stage, isto porque depende da ordem com que os parâmetros existem no HttpServletRequest, que por sua vez é um HashMap que não garante a ordem.
Foi criada esta validação, apenas em developmentMode=true, para "apanhar-mos" e resolver estas situações
Exemplo da excepção enviada pela DIF
Parameters with the same name and different capitalization were sent, but were sent with different values.:
modegestaoucactive: [modeGestaoUCActive=null, modegestaoucactive=false]
Please resolve this situation, because the framework does not guarantee the value used in the business stage
Neste caso em particular o parâmetro "modeGestaoUCActive" é um GlobalParameter.
A view está a enviar o parâmetro modeGestaoUCActive=null
Ainda no decorrer do pedido, os pedidos internos estão a enviar modeGestaoUCActive=null (parâmetro do pedido original) e modegestaoucactive=false (parâmetro com default value a false)
Solução
Os parâmetros devem de ser enviados em lowercase para evitar esta situação.
Caso tenham duvidas, falem comigo.
Com os melhores cumprimentos,
Luis Pinto
Team Leader Web