Closed Bug 17680 Opened 26 years ago Closed 26 years ago

Address Book: Duplicate entry in left pane

Categories

(SeaMonkey :: MailNews: Address Book & Contacts, defect, P1)

defect

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: fenella, Assigned: waterson)

Details

Linux (1999-10-29-10 M11) Win_nt 4.0 (1999-10-29-12 M11) Mac (1999-10-29-08 M11) 1. Launch Messenger 2. Select Address Book from Task menu Actual result: In the left pane, Personal Address Book and Collected Addresses are listed twice. Expected result: They should be listed only once This happens on all systems. Note: I do not see a bug in the database.
QA Contact: lchiang → esther
Changing qa assigned to esther. Also note, when you select any of the address books (original or duplicate) the results pane doesn't display the card display name.
After talking to Paul, I will log a separate bug for the Results pane not showing the Cards Display Name (see my comments above dated 11/01/99)
Status: ASSIGNED → RESOLVED
Closed: 26 years ago
Resolution: --- → FIXED
Target Milestone: M12 → M11
This problem has gone away for me. Probably as a result of a fix that waterson checked in last night. Marking fixed.
Status: RESOLVED → REOPENED
Target Milestone: M11 → M12
Resolution: FIXED → ---
Status: REOPENED → ASSIGNED
This bug is not closed. It started showing up on my Mac again. Will look at this for M12.
I have an idea of what is happening. I've cc'd Chris because I don't know if RDF is doing the right thing or if we have to do something differently. Basically, the address book's tree has a ref of "abdirectory://". When the tree is being built, we get into RDFGenericBuilderImpl::CreateContents and do rv = gXULUtils->GetElementRefResource(aElement, getter_AddRefs(resource)); When CreateContents ends, the resource is released and since this is the only ref, the nsABDirectory is destroyed. However, RDF eventually comes back into CreateContents again due to EnsureContentGenerated and recreates the root resource and asks for the children again. Hence everything appears twice. The reason this doesn't happen in mail is because we hold onto the root resource in our code preventing the release in CreateContents from causing any problems. We do this because we need to compare the root to potential source resources, but in the address book this case never comes up. Obviously we can hold onto the root in the address book and solve this bug. But, I'm wondering why the root isn't being held onto in the graph some place?
Maybe we need an additional call to nsXULElemnt::ForceElementToOwnResource() thrown in there somewhere. I'll try putting one in RebuildWidgetItem() and see if that helps.
release noted for M11.
I don't know why this makes a difference but I saw that EnsureContentsGenerated was getting called for the directory pane and it was getting called from some XULDocument overlayforwardreference call. So I explored that and found that if I took the ref="abdirectory://" from the xul file and instead in js set the ref with SetAttribute (as we do in mail) that the duplicates went away. I don't know if this means there's a problem with the addressbook xul some place or if there's a problem with the ref code. the fact that the abdirectory is getting destroyed prematurely doesn't seem to affect this bug once I change where the ref is set.
Assignee: hangas → waterson
Status: ASSIGNED → NEW
Hmm. I bet that we're trying to construct the template builder twice or something. I'll take a look.
Status: NEW → ASSIGNED
Priority: P3 → P1
Status: ASSIGNED → RESOLVED
Closed: 26 years ago26 years ago
Resolution: --- → FIXED
We were adding an extra template builder in the case that a first-ply overlay node had a 'datasources=' attribute. Modify ResumeWalk() to only CheckTemplateBuilder() when 2 or more deep (that is, the context stack is >2) if we're in an overlay.
Using win32 build dated 1999120816m12 and linux build 1999120808m12 this is fixed. Mac build 1999120808m12 still has the problem. Will wait for the 12/9 mac build to retest on that platform.
Win32 (1999-12-09-10 M12) Linux Redhat 6.0 (1999-12-09-10 M12) This problem is fixed. Mac build not available yet.
Status: RESOLVED → VERIFIED
Mac build 1999120910m12 ok too, verified
Product: Browser → Seamonkey
You need to log in before you can comment on or make changes to this bug.