tracker issue : CF-3605332

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

Error with returning an implicit struct in <cfcatch> tag mode only

| View in Tracker

Status/Resolution/Reason: Closed/Fixed/

Reporter/Name(from Bugbase): Sanjeev Krishna / Sanjeev Krishna (Sanjeev MANDALAPU)

Created: 08/01/2013

Components: Language

Versions: 10.0

Failure Type:

Found In Build/Fixed In Build: Final / CF10_Update14

Priority/Frequency: Major / All users will encounter

Locale/System: English / Windows 7

Vote Count: 0

**** Problem Description: ****
--------------------------------------------

Returning an implict struct in a <cfcatch> in tag modes throws an undefined element error




**** Steps to Reproduce: ****
--------------------------------------------

[___ CFC File ___]

<cfcomponent output="false">
	
	<cffunction name="blahExplicit" returntype="Struct">
		<cfset var name = 'ColdFusion'/>
		<cfset var ret = structNew()/>
		<cftry>
				<cfreturn {success: true, data: name}/>
			<cfcatch type="any">
				<cfset ret.success = false />
				<cfset ret.data = cfcatch />
				<cfreturn ret/>
			</cfcatch>
		</cftry>
	</cffunction>

	<cffunction name="blahImplicit" returntype="Struct">
			<cfset var name = 'ColdFusion'/>
		<cftry>
				<cfreturn {success: true, data: name}/>
			<cfcatch type="any">
				<cfreturn {success: false, data: cfcatch.detail}/>
			</cfcatch>
		</cftry>
	</cffunction>

	<cffunction name="script_blahExplicit" returntype="Struct">
		<cfscript>
			var name = 'ColdFusion';
			var ret = structNew();
			try{
            	return {success: true, data: name};
	        } catch(Any err){
	                ret.success = false;
	                ret.data = err.detail;
	                return ret;
	        }
		</cfscript>
	</cffunction>

	<cffunction name="script_blahImplicit" returntype="Struct">
		<cfscript>
			var name = 'ColdFusion';
			try{
            return {success: true, data: name};
	        } catch(Any err){
	            return {success: false, data: err.detail};
	        }
		</cfscript>
	</cffunction>

</cfcomponent>

[___ CFM File ___]

<cfset cObj = createObject("component","componentFile")/>
<cfdump var="#cObj.blahExplicit()#" label="blah Explicit"/>
<cfdump var="#cObj.script_blahExplicit()#" label="blah Explicit With Script"/>
<cfdump var="#cObj.script_blahImplicit()#" label="blah Implicit With Script"/>
<cfdump var="#cObj.blahImplicit()#" label="blah Implicit"/>




**** Actual Result: ****
---------------------------------

blahExplicit(). script_blahExplicit. script_blahImplicit() methods work as expected. But blahImplicit() throws an "Element DETAIL is undefined in CFCATCH" error.




**** Expected Result: ****
-------------------------------------

All 4 methods 

 1. blahExplicit(). 
 2. script_blahExplicit()
 3. script_blahImplicit(), 
 4. blahImplicit() 

should work properly returning an struct with success and data values.





**** Any Workarounds: ****
----------------------------------------

The code only fails in the case of returning implicit struct in <cfcatch> in a tag mode only. Using cfscript or declaring an explicit struct seems to be a work around.

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

Watson Bug ID:	3605332

External Customer Info:
External Company:  
External Customer Name: Sanjeev MANDALAPU
External Customer Email:  
External Test Config: ColdFusion 10u10, CF9 32bit, Apache as web server and running on a Win7 i5.

Attachments:

  1. August 01, 2013 00:00:00: 1_cfcatchBug.zip

Comments:

I could not edit the Bug CF-3605215. This is a more detailed version of it with reproducible case included.
Comment by External U.
14756 | August 01, 2013 02:02:12 AM GMT
Verified in CF10 update 11 and Splendor latest build: return inline struct containing cfcatch results in an error Working code: <cfset structtype = {success: false, data: cfcatch}> <cfreturn structtype> Error code: <cfreturn {success: false, data: cfcatch}> (Comment added from ex-user id:nawani)
Comment by Adobe D.
14757 | September 18, 2013 06:31:04 AM GMT