OSX 10.7.2, Open BD 2.0.1 Desktop Issue 403: http://code.google.com/p/openbluedragon/issues/detail?id=403
Billy Cravens [email protected] On Dec 29, 2011, at 12:04 PM, Peter J. Farrell wrote: > What version of OpenBD and link to the bug ticket? > > Billy Cravens said the following on 12/29/2011 12:03 PM: >> >> Just an FYI, bug report to proper issue tracker, just wanted to make >> community aware (and tell me if there's something I'm missing!) >> >> Billy Cravens >> [email protected] >> >> >> >> On Dec 29, 2011, at 11:57 AM, Billy Cravens wrote: >> >>> In some of my CFC's, I define my functions in script (since I've written >>> script-based CFCs in Railo/ACF, quickest port was to wrap in <cfscript> and >>> <cfcomponent>) >>> >>> Noticed some odd behavior when my function has multiple params with >>> defaults, and I explicitly set a value other than the first param. >>> >>> >>> Code for reference: >>> >>> obj.cfc: >>> <cfcomponent> >>> <cfscript> >>> function foo(a=1,b=2,c=3) { >>> writedump(arguments); // contrived little example >>> } >>> </cfscript> >>> </cfcomponent> >>> >>> test.cfm: >>> <cfscript> >>> myObj = new obj(); >>> myObj.foo(); >>> myObj.foo(a=4); // works correctly >>> myObj.foo(b=4); // a disappears, and b unchanged! >>> myObj.foo(c=4); // a disappears and c unchanged! >>> myObj.foo(b=4,c=5); // a disappears and c unchanged - but b works? >>> myObj.foo(c=5, b=4); // despite reversed order, same result as last line >>> </cfscript> >>> >>> When you explicitly set the value of anything other than the first param, >>> it loses the first param, and no arguments change. However, if you set more >>> than one value, it seems that only the last argument doesn't change (first >>> param still missing). >>> >>> Confirmed that it behaves correctly if you use <cffunction> based methods. >>> I can't replicate this bug in UDF's, only CFCs. Bug seems to exist whether >>> you're in a method or an implicit constructor (function name init(), >>> arguments in new invocation) - I actually discovered this when I added a >>> second param to one of my constructors. >>> >>> The obvious solution is to switch to all <cffunction> methods, but this is >>> still a pretty big core bug, IMO. >>> >>> >>> Billy Cravens >>> [email protected] >>> >>> >>> >> >> -- >> online documentation: http://openbd.org/manual/ >> google+ hints/tips: https://plus.google.com/115990347459711259462 >> http://groups.google.com/group/openbd?hl=en > > > -- > Peter J. Farrell > [email protected] > [email protected] > http://blog.maestropublishing.com > Identi.ca / Twitter: @maestrofjp > > -- > online documentation: http://openbd.org/manual/ > google+ hints/tips: https://plus.google.com/115990347459711259462 > http://groups.google.com/group/openbd?hl=en -- online documentation: http://openbd.org/manual/ google+ hints/tips: https://plus.google.com/115990347459711259462 http://groups.google.com/group/openbd?hl=en
