[DIF] Parameters with the same name and different capitalization

1 view
Skip to first unread message

Luis Pinto

unread,
Feb 8, 2021, 5:29:21 AM2/8/21
to dif2, dif
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


Reply all
Reply to author
Forward
0 new messages