Closed Bug 58636 Opened 24 years ago Closed 16 years ago

Cannot display headers in IMAP "c\d" folder

Categories

(MailNews Core :: Backend, defect, P2)

x86
Windows NT
defect

Tracking

(Not tracked)

RESOLVED WORKSFORME

People

(Reporter: huang, Assigned: Bienvenu)

References

(Blocks 1 open bug)

Details

Problem found when verifying bug 29890 Used 10-30-09-MN6 build Follow-up problem from bug 29890 There is no same copied message displaying in folder "c<d & "c\d", Munging .msf file names currently are in unique names now. But it seems that there is problem for copying the messages from Inbox to "c\d" folder. I check that there are unique names for the .msf files for c<d (c_d.msf) & c\d (c_d-1.msf). But, for some reason, it just doesn't display the message at all when I copying the messages to "c\d"........... Additional Info: Copying messages to "c<d" is successful.
Since this is follow-up issue from bug 29890, I am reassign this bug to David. Please reassign to other developer if I was wrong.
Assignee: mscott → bienvenu
QA Contact: esther → huang
I looked into this some - as near as I can tell, the imap code is doing all the right things, but at some point RDF (or some other layer) turns the folder uri that ends "c\d" into one that ends "c/d" and no longer corresponds to the correct imap folder/db. Any idea where this could be happening? Basically, the mailnews js code gets the Folderloaded notification, but something goes wrong between the point where it reroots the tree, and we try to build up the message view.
Status: NEW → ASSIGNED
Summary: Cannot copy message to IMAP "c\d" folder → Cannot display headers in IMAP "c\d" folder
In OnFolderLoaded for imap://bienvenu@nsmail-1/c\d at this point in the process, the parent resource is imap://bienvenu@nsmail-2/c/d nsMessageView::GetMessages(nsMessageView * const 0x046abe50, nsIRDFResource * 0x02abdcb0, nsIMsgWindow * 0x0469e6d0, nsISimpleEnumerator * * 0x04403618) line 88 nsMsgMessageDataSource::GetTargets(nsMsgMessageDataSource * const 0x04704be0, nsIRDFResource * 0x02abdcb0, nsIRDFResource * 0x046d2b40, int 0x00000001, nsISimpleEnumerator * * 0x04403618) line 446 + 43 bytes CompositeAssertionEnumeratorImpl::GetEnumerator(nsIRDFDataSource * 0x04704be0, nsISimpleEnumerator * * 0x04403618) line 496 + 37 bytes CompositeEnumeratorImpl::HasMoreElements(CompositeEnumeratorImpl * const 0x04403608, int * 0x0012dec4) line 226 + 22 bytes RDFContainerMemberTestNode::FilterInstantiations(InstantiationSet & {...}, void * 0x0012e084) line 3559 + 42 bytes TestNode::Propogate(const InstantiationSet & {...}, void * 0x0012e084) line 870 + 19 bytes TestNode::Propogate(const InstantiationSet & {...}, void * 0x0012e084) line 876 + 30 bytes RootNode::Propogate(const InstantiationSet & {...}, void * 0x0012e084) line 595 + 30 bytes nsXULTemplateBuilder::CreateContainerContents(nsIContent * 0x0255b490, nsIRDFResource * 0x02abdcb0, int 0x00000000, nsIContent * * 0x0012e214, int * 0x0012e218) line 6256 + 48 bytes nsXULTemplateBuilder::CreateTemplateAndContainerContents(nsIContent * 0x0255b490, nsIContent * * 0x0012e214, int * 0x0012e218) line 6178 + 34 bytes nsXULTemplateBuilder::RebuildContainerInternal(nsIContent * 0x0255b490, int 0x00000000) line 4506 + 40 bytes nsXULTemplateBuilder::RebuildContainer(nsXULTemplateBuilder * const 0x04403da4, nsIContent * 0x0255b490) line 4463 + 17 bytes nsXULDocument::RebuildWidgetItem(nsIContent * 0x0255b490) line 4475 + 22 bytes nsXULDocument::AttributeChanged(nsXULDocument * const 0x02a2ac60, nsIContent * 0x0255b490, int 0x00000000, nsIAtom * 0x01675940, int 0xffffffff) line 1661 nsXULElement::SetAttribute(nsXULElement * const 0x0255b490, nsINodeInfo * 0x04199d60, const basic_nsAReadableString<unsigned short> & {...}, int 0x00000001) line 2778 nsXULElement::SetAttribute(nsXULElement * const 0x0255b494, const basic_nsAReadableString<unsigned short> & {...}, const basic_nsAReadableString<unsigned short> & {...}) line 1252 + 31 bytes nsXULTreeElement::SetAttribute(nsXULTreeElement * const 0x046d1168, const basic_nsAReadableString<unsigned short> & {...}, const basic_nsAReadableString<unsigned short> & {...}) line 54 + 29 bytes ElementSetAttribute(JSContext * 0x024b2a30, JSObject * 0x00ecaaa8, unsigned int 0x00000002, long * 0x075a3634, long * 0x0012e944) line 249 + 26 bytes digging a little deeper, in nsXULTemplateBuilder::CreateTemplateAndContainerContents(nsIContent* aElement, nsIContent** aContainer, PRInt32* aNewIndexInContainer) rv = gXULUtils->GetElementRefResource(aElement, getter_AddRefs(resource)); if (NS_SUCCEEDED(rv)) { // The element has a resource; that means that it corresponds // to something in the graph, so we need to go to the graph to // create its contents. rv = CreateContainerContents(aElement, resource, PR_FALSE, aContainer, aNewIndexInContainer); the resource here is the bogus uri imap://bienvenu@nsmail-2/c/d So somewhere between the folder loaded notification, the tree re-rooting code and here, we get a bogus uri.
Sounds like some of the URI canonicalization stuff in Necko is kicking in here. I can't recall any RDF-specific code that would replace `\' with `/'...
adding mail3 keyword
Keywords: mail3
changing priorities
Priority: P3 → P2
marking nsbeta1-
Keywords: nsbeta1-
Product: MailNews → Core
wfm me now.
Status: ASSIGNED → RESOLVED
Closed: 16 years ago
Resolution: --- → WORKSFORME
Product: Core → MailNews Core
You need to log in before you can comment on or make changes to this bug.