Closed Bug 14899 Opened 21 years ago Closed 21 years ago
RDF/XML datasource Refresh() sends bad notifications
Refresh() seems to be sending bad updates if the datasource has already been loaded. I'll work up a test case. This'll cause problems for the sidebar and flash panel to no end.
Status: NEW → ASSIGNED
Priority: P3 → P1
Target Milestone: M11
To reproduce: 1. Save test case files as 'cust.xul' and 'local-panels.rdf', respectively. 2. Run viewer. 3. Open 'cust.xul' in viewer. You should see an HTML 'select' with four elements in it. 4. Open a new viewer window (File->New Window) 5. Open 'cust.xul' in the new window. Expected: see same four entries Actual: both lists clear!
oh this is evil. my 'mark and sweep' algorithm is breaking because of RDF containers, which add assertions that are dependent on the current state of the graph; e.g., RDF:nextVal. So, for example, what happens is that you have an RDF container with two elements in it. You refresh the file. The two elements stream in, and are added as '3' and '4', instead of being recognized as the same '1' and '2' again. Since '1' and '2' aren't marked, they get swept. Since sweeping happens after assertion, the values disappear. UGh.
Ok, I think I have a good fix for this. I'm changing the semantics of Make[Bag|Seq|Alt] s.t. each will actually re-initialize an already-existing container. Doing the usual smoke tests seems to indicate that nobody is relying on the current fact that Make[Bag|Seq|Alt] is idempotent (is that the right word?) if the container already exists.
Status: ASSIGNED → RESOLVED
Closed: 21 years ago
Resolution: --- → FIXED
slamm carpooled this in with his sidebar changes.
Testcase not working. Discussed with Chris. OK to close.
You need to log in before you can comment on or make changes to this bug.