Not approved. This would bust "queuerequests" totally.

Request-queuing is handled (SWF) resp. should be handled (DHTML, nyi) by the LzHTTPLoader (and LzLoader). So what we want to have, is a single "LzHTTPDataRequest"/"LzHTTPLoader" for normal-requesting and for queued-requesting (so we can reuse these objects) and just for multi-requesting we need several "LzHTTPDataRequest"- resp. "LzHTTPLoader"-objects (apparently, this isn't fully specified, see "LzDataset#doRequest(..)" and "LzHTTPDataProvider#doRequest(..)".)

Also see LPP-4584 for "LzDataset.dsloadDel" issues we once had:
We're unregistering the "dsloadDel" in "LzDataset#handleDataResponse(..)" because of "multirequest" (I think). [But "multirequest" itself needs some reworking, because at the moment it leads to excessive memory consumption (we create a new "LzHTTPDataRequest" object for every request and we store it in the subnodes-array of the dataset, but we never release the datarequest-instances. For the same reason, we shouldn't create a new "LzHTTPDataRequest" in case of queued-requests...)]

function doRequest() {
[..]
   if (this.dsloadDel == null) {
this.dsloadDel = new LzDelegate(this, "handleDataResponse", dreq, "onstatus");
   } else if (this.multirequest) {
       this.dsloadDel.register(dreq, "onstatus");
   }
[..]
}

function handleDataResponse (datareq) {
   if (this.dsloadDel != null && this.multirequest) {
//TODO: unregistering just for multirequest -> reason: prevent memory-leaks?
       this.dsloadDel.unregisterFrom(datareq.onstatus);
   }
[..]
}

On 11/22/2007 4:25 PM, Henry Minsky wrote:
Change 20071122-hqm-2 by [EMAIL PROTECTED] on 2007-11-22 10:19:28 EST
   in /cygdrive/c/users/hqm/openlaszlo/trunk/WEB-INF/lps/lfc
for http://svn.openlaszlo.org/openlaszlo/trunk/WEB-INF/lps/lfc <http://svn.openlaszlo.org/openlaszlo/trunk/WEB-INF/lps/lfc>

Summary: fix for bug with ondata event with queuerequests

New Features:

Bugs Fixed: LPP-5144

Technical Reviewer: andre
QA Reviewer: pbr
Doc Reviewer:

Documentation:

Release Notes:

Details:

If queuerequests is true, we need to allocate a new datarequest object for each request, otherwise the secondincoming response will not send an ondata event, because the handler which is registered for the datarequest onstatus event is being unregistered by the handleDataResponse routine
Tests:

test case in bug report

test/lfc/data/alldata.lzx (we need to add this test case to the regression tests!)


Files:

M      data/LzDataset.lzs

Changeset: http://svn.openlaszlo.org/openlaszlo/patches/20071122-hqm-2.tar

Reply via email to