tracker issue : CF-3038003

select a category, or use search below
(searches all categories and all time range)
Title:

Bug 76182:Lots of bugs in Tag Service cfcs in com

| View in Tracker

Status/Resolution/Reason: Closed/Fixed/

Reporter/Name(from Bugbase): Elliott Sprehn / Elliott Sprehn (Elliott Sprehn)

Created: 03/25/2009

Components: Language

Versions: 9.0

Failure Type: Unspecified

Found In Build/Fixed In Build: 0000 / 230174

Priority/Frequency: Major / Unknown

Locale/System: English / Platforms All

Vote Count: 1

Problem:

Lots of bugs in Tag Service cfcs in com.adobe.coldfusion package.

Every component:

Missing var for loop index in almost every function. Nothing is thread safe.

No type attribute used for exceptions from System.throw(). There's no way to catch exceptions from these components explicitly. Should probably throw something like type="com.adobe.coldfusion.#ExceptionName#".

ListSort() on every creation of the tag for the serviceTagAttributes. Shouldn't this be done once on the cached value in the server scope?
listsort(getSupportedTagAttributes(getTagName()),"textnocase","ASC")

[b]com.adobe.coldfusion.System:[/b]

Missing output="false" on the cfcomponent. 

Missing output="false" on the cffunctions.

Missing var for variables in manipulateArguments(). Calling any system method from two different threads can cause bad things to happen.

com.adobe.coldfusion.Base:

Missing output="false" on the cfcomponent.

Missing var for tons of variables in the invokeTag(). This makes none of the tag cfcs thread safe.

cfmail functionality will generate tons of whitespace around plain text mail.

Lots of Evaluate() statements all over the invokeTag() function. Causes undocumented evaluation of many tag attributes which is not safe and does odd things if your attribute value is the same as a variable in the function or tag.

Undocumented usage of Server scope for caching serviceTagAttributes. Maybe should use Server.coldfusion to prevent possible conflicts with existing code?

getSupportedTagAttributes() should probably use double checked locking since parsing that XML is going to be costly.

com.adobe.coldfusion.Query

Assumes every database uses single quotes to quote literal strings. MySQL for instance uses backticks.

Usage of special tokens _colon_ and _qmark_. While unlikely, someone might actually want a _colon_ in their literal SQL too. Should use special ascii characters like chr(1) and chr(2).
Method:


Result:

----------------------------- Additional Watson Details -----------------------------

Watson Bug ID:	3038003

External Customer Info:
External Company:  
External Customer Name: Elliott Sprehn
External Customer Email: 202D59C844579997992016B7
External Test Config: 03/25/2009

Attachments:

Comments:

+1 to all of this. I logged an ER on the thread safety stuff earlier but all these things are important too (and, again, point to an argument that trying to write CFC wrappers for tags is both harder than it looks and probably not the right way to solve the problem).
Vote by External U.
23836 | November 10, 2011 07:18:14 PM GMT