Status/Resolution/Reason: Closed/Won't Fix/LowImpact
Reporter/Name(from Bugbase): Sam Farmer / Sam Farmer (sam.farmer.cfm)
Created: 11/23/2010
Components: Language
Versions: 9.0.1
Failure Type: Unspecified
Found In Build/Fixed In Build: 0000 /
Priority/Frequency: Normal / Most users will encounter
Locale/System: English / Platforms All
Vote Count: 0
Problem:
Here's the problem:
Trying to load an object using objectLoad() will give an error if the object is being saved using objectSave() inside a cflock.
Method:
files here:
\\blrfs04.macromedia.com\builds\coldfusion\bugs\85153
1. Run save.cfm (due to sleeps and loops this will take at least 10 seconds)
2. At the same time run either get.cfm or getWithTry.cfm.
These two files loop to 2000 and grab the object saved using objectLoad().
With get.cfm you should see a hard error and getWithTry.cfm will display FAIL.
======== save.cfm
<cfset myBigObject = {}>
<cfloop index="i" from="1" to="100">
<cfset myBigObject[i] = ["a", "b", "c", "d", "e"]>
</cfloop>
<cfloop index="i" from="1" to="10">
<cflock name="myLocakName" type="exclusive" timeout="1">
<cfset objectSave(myBigObject, "mySavedBigObject.cfo")>
</cflock>
<cfoutput>#i#</cfoutput>
<cfflush >
<cfset sleep(1000)>
</cfloop>
======== get.cfm
<cfloop index="i" from="1" to="2000">
<cfset a = objectload("mySavedBigObject.cfo")>
<cfoutput>#i#: #structCount(a)#</cfoutput>
<cfflush></cfloop>
========= getWithTry.cfm
<cfloop index="i" from="1" to="2000">
<cftry>
<cfset a = objectload("mySavedBigObject.cfo")>
<cfoutput>#i#: #structCount(a)#</cfoutput>
<cfcatch>
<cfoutput><strong>#i#: FAIL</strong></cfoutput>
</cfcatch>
</cftry>
<cfflush>
</cfloop>
Result:
Error occured while performing ObjectLoad: java.io.EOFException
----------------------------- Additional Watson Details -----------------------------
Watson Bug ID: 3042841
External Customer Info:
External Company:
External Customer Name: Sam Farmer
External Customer Email: 183F5AA44911D0AB992016B6
External Test Config: 11/23/2010
Attachments:
Comments: