close Warning: Can't synchronize with repository "(default)" (/project/cl-weblocks/svn does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 17 years ago

Closed 17 years ago

#44 closed defect (fixed)

ajax isearch will sometimes drop a callback in Firefox.

Reported by: anonymous Owned by: Slava Akhmechet
Priority: medium Milestone: 0.1.1
Component: weblocks Version: pre-0.1
Keywords: prototype firefox Cc: alexander.kjeldaas@…

Description

Sometimes, at least when a table is populated with more data than in the default example (try creating a table with 30 rows), an exception will be trown by Firefox because the "status" element in an nsIXMLHttpRequest is being accessed.

How to reproduce: Add a longer list of employees to the grid1 in application.lisp:

 (list employee1 employee2 employee3 employee1 employee2 ...<30 more>)

Reduce the latency to 0.1 seconds in isearch.lisp, line 31.

     (with-javascript "~
new Form.Element.DelayedObserver('~A', 0.1, function(elem, value) {~
initiateFormAction('~A', $('~A'), '~A');
});"

Install firebug, and set a brakepoint at roughly line 1114 in prototype.js

 } catch (e) {
1114 this.dispatchException(e);   <--- breakpoint on this line.
1115 }

After playing around with the isearch, you will see the following exception being thrown (really by the nearby success() function):

	[Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIXMLHttpRequest.status]" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: http://foo.org:8090/pub/scripts/prototype.js :: anonymous :: line 1109" data: no]
columnNumber
	0
data
	null
filename
	"http://foo.org:8090/pub/scripts/prototype.js"
inner
	null
lineNumber
	1109
location
	JS frame :: http://foo.org:8090/pub/scripts/prototype.js :: anonymous :: line 1109 language=2 languageName=JavaScript
message
	"Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIXMLHttpRequest.status]"
name
	"NS_ERROR_NOT_AVAILABLE"
result
	2147746065
QueryInterface
	QueryInterface()
initialize
	initialize()

From what I understand from random readings on the web, this can be caused by reading the nxIXMLHttpRequest.status in an onError handler (which does not seem to happen in this case), or it can happen if the ajax request is being aborted.

Change History (3)

comment:1 Changed 17 years ago by Slava Akhmechet

Milestone: 0.1
Priority: criticalmedium
Version: pre-0.1

Could be an issue with too many simultanious ajax requests? I'll take a look at this.

comment:2 Changed 17 years ago by Slava Akhmechet

Milestone: 0.10.1.1

comment:3 Changed 17 years ago by Slava Akhmechet

Resolution: fixed
Status: newclosed

This is resolved because the search functionality is being removed from the grid.

Note: See TracTickets for help on using tickets.