Bug com cfdump e UDFs no ColdFusion 7

Eu estava desenvolvendo uma UDF, e no processo de desenvolvimento e debug, por algum motivo, a UDF estava retornando valores que não deveria retornar. Eu fiz alguns testes e constatei que ao chamar uma UDF através da tag cfdump, a função é chamada duas vezes.

O código abaixo serve como exemplo de prova de conceito:

<cffunction name=“teste” output=“Yes”>
  a
  <cfreturn “bla”>
</cffunction>
<cfoutput>#teste()#</cfoutput>
<br>
<cfdump var=“#teste()#”>

O resultado esperado é:

a bla
a bla

Mas o retornado no ColdFusion 7 é:

a bla
a a bla

Ou seja, na chamada via cfdump, há output duas vezes. É claro que uma função ou retorna algum valor (cfreturn) ou mostra os valores, nunca as duas coisas ao mesmo tempo.

Mas o incoveniente deste bug é que durante o desenvolvimento e debug de uma função pode deixar o programador encucado, procurando um bug em seu código, quando não há verdade não há (que foi o que aconteceu comigo).

O bug está cadastrado na Macromedia sob o número 59856.