Open Bug 91908 Opened 24 years ago Updated 2 years ago

nsStdURL::SetSpec() Assertion when reading Messages with image/news attatchments

Categories

(MailNews Core :: Backend, defect)

x86
Windows 2000
defect

Tracking

(Not tracked)

People

(Reporter: kinmoz, Unassigned)

References

Details

Using my 07/22/01 Debug MOZILLA_0_9_2_BRANCH debug build (not sure if this is on the TRUNK too or not): I'm seeing lots of assertions when reading emails with image attatchments or news attatchments. When the assertion happens because of an image attatchment, the URI being loaded is just the name of the file (without a URI scheme) for example, "file-dialog.jpg". I get an assertion for each image attatchment in the image! When the assertion happens for an email containing a news attatchment, the URI being loaded looks something like: news:3B5C133C.2080505@foobar.net Here's the stack to the assertion I'm seeing: NTDLL! 77fa018c() nsDebug::Assertion(const char * 0x0281b4b4, const char * 0x0281b4ac, const char * 0x0281b480, int 900) line 290 + 13 bytes nsStdURL::SetSpec(nsStdURL * const 0x064cfec8, const char * 0x0012dd68) line 900 + 35 bytes nsMsgMailNewsUrl::SetSpec(nsMsgMailNewsUrl * const 0x064cfcb4, const char * 0x0012dd68) line 413 nsImapUrl::SetSpec(nsImapUrl * const 0x064cfcb4, const char * 0x0012dd68) line 298 + 14 bytes nsImapService::NewURI(nsImapService * const 0x04e9270c, const char * 0x064cfc58, nsIURI * 0x063d9d6c, nsIURI * * 0x0012df80) line 2889 nsIOService::NewURI(nsIOService * const 0x00d39a18, const char * 0x064cfc58, nsIURI * 0x063d9d6c, nsIURI * * 0x0012df80) line 630 + 35 bytes NS_NewURI(nsIURI * * 0x0012df80, const char * 0x064cfc58, nsIURI * 0x063d9d6c, nsIIOService * 0x00d39a18) line 80 + 24 bytes NS_NewURI(nsIURI * * 0x0012df80, const nsAString & {...}, nsIURI * 0x063d9d6c, nsIIOService * 0x00000000) line 92 + 21 bytes nsImageFrame::GetRealURI(const nsAString & {...}, nsIURI * * 0x0012df80) line 1435 + 24 bytes nsImageFrame::LoadImage(const nsAString & {...}, nsIPresContext * 0x06370070, imgIRequest * * 0x064cef20) line 1376 + 45 bytes nsImageFrame::Init(nsImageFrame * const 0x064ceeec, nsIPresContext * 0x06370070, nsIContent * 0x05724170, nsIFrame * 0x064c94bc, nsIStyleContext * 0x064ceeb8, nsIFrame * 0x00000000) line 246 + 49 bytes nsCSSFrameConstructor::InitAndRestoreFrame(nsIPresContext * 0x06370070, nsFrameConstructorState & {...}, nsIContent * 0x05724170, nsIFrame * 0x064c94bc, nsIStyleContext * 0x064ceeb8, nsIFrame * 0x00000000, nsIFrame * 0x064ceeec) line 6674 + 32 bytes nsCSSFrameConstructor::ConstructFrameByTag(nsIPresShell * 0x04842968, nsIPresContext * 0x06370070, nsFrameConstructorState & {...}, nsIContent * 0x05724170, nsIFrame * 0x064c94bc, nsIAtom * 0x032a3370, int 3, nsIStyleContext * 0x064ceeb8, nsFrameItems & {...}) line 4964 nsCSSFrameConstructor::ConstructFrameInternal(nsIPresShell * 0x04842968, nsIPresContext * 0x06370070, nsFrameConstructorState & {...}, nsIContent * 0x05724170, nsIFrame * 0x064c94bc, nsIAtom * 0x032a3370, int 3, nsIStyleContext * 0x064ceeb8, nsFrameItems & {...}, int 0) line 7210 + 52 bytes nsCSSFrameConstructor::ConstructFrame(nsIPresShell * 0x04842968, nsIPresContext * 0x06370070, nsFrameConstructorState & {...}, nsIContent * 0x05724170, nsIFrame * 0x064c94bc, nsFrameItems & {...}) line 7123 + 56 bytes nsCSSFrameConstructor::ProcessBlockChildren(nsIPresShell * 0x04842968, nsIPresContext * 0x06370070, nsFrameConstructorState & {...}, nsIContent * 0x06418080, nsIFrame * 0x064c94bc, int 1, nsFrameItems & {...}, int 1) line 12536 + 37 bytes nsCSSFrameConstructor::ConstructBlock(nsIPresShell * 0x04842968, nsIPresContext * 0x06370070, nsFrameConstructorState & {...}, const nsStyleDisplay * 0x0646e53c, nsIContent * 0x06418080, nsIFrame * 0x06465d18, nsIStyleContext * 0x0646e508, nsIFrame * 0x064c94bc) line 12485 + 36 bytes nsCSSFrameConstructor::ConstructFrameByDisplayType(nsIPresShell * 0x04842968, nsIPresContext * 0x06370070, nsFrameConstructorState & {...}, const nsStyleDisplay * 0x0646e53c, nsIContent * 0x06418080, nsIFrame * 0x06465d18, nsIStyleContext * 0x0646e508, nsFrameItems & {...}) line 6448 + 43 bytes nsCSSFrameConstructor::ConstructFrameInternal(nsIPresShell * 0x04842968, nsIPresContext * 0x06370070, nsFrameConstructorState & {...}, nsIContent * 0x06418080, nsIFrame * 0x06465d18, nsIAtom * 0x0329e988, int 3, nsIStyleContext * 0x0646e508, nsFrameItems & {...}, int 0) line 7253 + 48 bytes nsCSSFrameConstructor::ConstructFrame(nsIPresShell * 0x04842968, nsIPresContext * 0x06370070, nsFrameConstructorState & {...}, nsIContent * 0x06418080, nsIFrame * 0x06465d18, nsFrameItems & {...}) line 7123 + 56 bytes nsCSSFrameConstructor::ContentAppended(nsCSSFrameConstructor * const 0x0569be00, nsIPresContext * 0x06370070, nsIContent * 0x0646ca50, int 33) line 8127 StyleSetImpl::ContentAppended(StyleSetImpl * const 0x0621b590, nsIPresContext * 0x06370070, nsIContent * 0x0646ca50, int 33) line 1099 PresShell::ContentAppended(PresShell * const 0x04842970, nsIDocument * 0x063b5860, nsIContent * 0x0646ca50, int 33) line 4887 + 46 bytes nsDocument::ContentAppended(nsDocument * const 0x063b5860, nsIContent * 0x0646ca50, int 33) line 1616 nsHTMLDocument::ContentAppended(nsHTMLDocument * const 0x063b5860, nsIContent * 0x0646ca50, int 33) line 1166 + 17 bytes HTMLContentSink::NotifyAppend(nsIContent * 0x0646ca50, int 33) line 4637 SinkContext::FlushTags(int 1) line 2144 SinkContext::DidAddContent(nsIContent * 0x064ce1f0, int 0) line 1393 SinkContext::CloseContainer(const nsIParserNode & {...}) line 1577 HTMLContentSink::CloseContainer(HTMLContentSink * const 0x0631b248, const nsIParserNode & {...}) line 3358 + 18 bytes CNavDTD::CloseContainer(const nsCParserNode * 0x064169a0, nsHTMLTag eHTMLTag_tr, int 0) line 3550 + 31 bytes CNavDTD::CloseContainersTo(int 6, nsHTMLTag eHTMLTag_tr, int 0) line 3586 + 20 bytes CNavDTD::CloseContainersTo(nsHTMLTag eHTMLTag_tr, int 0) line 3737 + 20 bytes CNavDTD::HandleEndToken(CToken * 0x064ac0d8) line 2014 + 14 bytes CNavDTD::HandleToken(CNavDTD * const 0x063c0b40, CToken * 0x064ac0d8, nsIParser * 0x06344938) line 913 + 12 bytes CNavDTD::BuildModel(CNavDTD * const 0x063c0b40, nsIParser * 0x06344938, nsITokenizer * 0x055c5b38, nsITokenObserver * 0x00000000, nsIContentSink * 0x0631b248) line 540 + 20 bytes nsParser::BuildModel() line 2218 + 34 bytes nsParser::ResumeParse(int 1, int 0) line 2084 + 11 bytes nsParser::OnDataAvailable(nsParser * const 0x06344940, nsIRequest * 0x063da068, nsISupports * 0x063d9d6c, nsIInputStream * 0x0639fee0, unsigned int 0, unsigned int 32768) line 2692 + 19 bytes nsDocumentOpenInfo::OnDataAvailable(nsDocumentOpenInfo * const 0x063a7c78, nsIRequest * 0x063da068, nsISupports * 0x063d9d6c, nsIInputStream * 0x0639fee0, unsigned int 0, unsigned int 32768) line 235 + 46 bytes nsMimeBaseEmitter::OnFull(nsMimeBaseEmitter * const 0x0639fdd0, nsIOutputStream * 0x0639fef4) line 271 + 47 bytes nsPipe::nsPipeOutputStream::WriteSegments(nsPipe::nsPipeOutputStream * const 0x0639fef4, unsigned int (nsIOutputStream *, void *, char *, unsigned int, unsigned int, unsigned int *)* 0x10055e50 nsReadFromRawBuffer(nsIOutputStream *, void *, char *, unsigned int, unsigned int, unsigned int *), void * 0x062150c0, unsigned int 51, unsigned int * 0x0012f1e8) line 689 + 30 bytes nsPipe::nsPipeOutputStream::Write(nsPipe::nsPipeOutputStream * const 0x0639fef4, const char * 0x062150c0, unsigned int 51, unsigned int * 0x0012f1e8) line 784 nsMimeBaseEmitter::Write(nsMimeBaseEmitter * const 0x0639fdc8, const char * 0x063dadc8, unsigned int 74, unsigned int * 0x0012f220) line 429 + 38 bytes nsMimeHtmlDisplayEmitter::WriteBody(nsMimeHtmlDisplayEmitter * const 0x0639fdc8, const char * 0x063dadc8, unsigned int 74, unsigned int * 0x0012f220) line 469 mime_output_fn(char * 0x063dadc8, int 74, void * 0x06420ee0) line 782 MimeOptions_write(MimeDisplayOptions * 0x062efe28, char * 0x063dadc8, int 74, int 1) line 1254 + 18 bytes MimeObject_write(MimeObject * 0x063f1c58, char * 0x063dadc8, int 74, int 1) line 1274 + 24 bytes MimeInlineTextHTML_parse_line(char * 0x063dadc8, int 74, MimeObject * 0x063f1c58) line 199 + 19 bytes MimeInlineText_rotate_convert_and_parse_line(char * 0x063dadc8, int 74, MimeObject * 0x063f1c58) line 380 + 20 bytes convert_and_send_buffer(char * 0x0642abb0, int 74, int 1, int (char *, unsigned int, void *)* 0x0230d2f0 MimeInlineText_rotate_convert_and_parse_line(char *, int, MimeObject *), void * 0x063f1c58) line 168 + 15 bytes mime_LineBuffer(const char * 0x0012f3d0, int 2, char * * 0x063f1c80, int * 0x063f1c88, unsigned int * 0x063f1c90, int 1, int (char *, unsigned int, void *)* 0x0230d2f0 MimeInlineText_rotate_convert_and_parse_line(char *, int, MimeObject *), void * 0x063f1c58) line 255 + 29 bytes MimeInlineText_parse_decoded_buffer(char * 0x0012f3d0, int 2, MimeObject * 0x063f1c58) line 271 + 45 bytes MimeLeaf_parse_buffer(char * 0x0012f3d0, int 2, MimeObject * 0x063f1c58) line 153 + 20 bytes MimeMultipart_parse_child_line(MimeObject * 0x06202980, char * 0x06394820, int 41, int 0) line 541 + 18 bytes MimeMultipart_parse_line(char * 0x06394820, int 43, MimeObject * 0x06202980) line 263 + 22 bytes convert_and_send_buffer(char * 0x06394820, int 43, int 1, int (char *, unsigned int, void *)* 0x0230e930 MimeMultipart_parse_line(char *, int, MimeObject *), void * 0x06202980) line 168 + 15 bytes mime_LineBuffer(const char * 0x064172b8, int 43, char * * 0x062029a8, int * 0x062029b0, unsigned int * 0x062029b8, int 1, int (char *, unsigned int, void *)* 0x0230e930 MimeMultipart_parse_line(char *, int, MimeObject *), void * 0x06202980) line 255 + 29 bytes MimeObject_parse_buffer(char * 0x064172b8, int 43, MimeObject * 0x06202980) line 255 + 49 bytes MimeMessage_parse_line(char * 0x064172b8, int 43, MimeObject * 0x062eff60) line 210 + 20 bytes convert_and_send_buffer(char * 0x064172b8, int 43, int 1, int (char *, unsigned int, void *)* 0x02315110 MimeMessage_parse_line(char *, int, MimeObject *), void * 0x062eff60) line 168 + 15 bytes mime_LineBuffer(const char * 0x0642380c, int 1381, char * * 0x062eff88, int * 0x062eff90, unsigned int * 0x062eff98, int 1, int (char *, unsigned int, void *)* 0x02315110 MimeMessage_parse_line(char *, int, MimeObject *), void * 0x062eff60) line 255 + 29 bytes MimeObject_parse_buffer(char * 0x06423778, int 1529, MimeObject * 0x062eff60) line 255 + 49 bytes mime_display_stream_write(_nsMIMESession * 0x062edfb8, const char * 0x06423778, int 1529) line 837 + 20 bytes nsStreamConverter::OnDataAvailable(nsStreamConverter * const 0x063360b0, nsIRequest * 0x063da068, nsISupports * 0x00000000, nsIInputStream * 0x06216c98, unsigned int 0, unsigned int 1529) line 887 + 24 bytes nsDocumentOpenInfo::OnDataAvailable(nsDocumentOpenInfo * const 0x063a9808, nsIRequest * 0x063da068, nsISupports * 0x00000000, nsIInputStream * 0x06216c98, unsigned int 0, unsigned int 1529) line 235 + 46 bytes nsStreamListenerTee::OnDataAvailable(nsStreamListenerTee * const 0x061beea8, nsIRequest * 0x063da068, nsISupports * 0x00000000, nsIInputStream * 0x063d9068, unsigned int 0, unsigned int 1529) line 56 + 51 bytes nsOnDataAvailableEvent0::HandleEvent(nsOnDataAvailableEvent0 * const 0x0628a060) line 410 + 47 bytes nsStreamListenerEvent0::HandlePLEvent(PLEvent * 0x0628a070) line 98 + 12 bytes PL_HandleEvent(PLEvent * 0x0628a070) line 590 + 10 bytes PL_ProcessPendingEvents(PLEventQueue * 0x00c0a078) line 520 + 9 bytes _md_EventReceiverProc(HWND__ * 0x00020210, unsigned int 49458, unsigned int 0, long 12623992) line 1071 + 9 bytes USER32! 77e12e98() USER32! 77e130e0() USER32! 77e15824() nsAppShellService::Run(nsAppShellService * const 0x0345ee40) line 426 main1(int 1, char * * 0x00358040, nsISupports * 0x00000000) line 1206 + 32 bytes main(int 1, char * * 0x00358040) line 1510 + 37 bytes mainCRTStartup() line 338 + 17 bytes After the above assertion is thrown for image attatchments, I also see the following assertion for each image attatchment: NTDLL! 77fa018c() nsDebug::Assertion(const char * 0x020b5254, const char * 0x020b524c, const char * 0x020b521c, int 64) line 290 + 13 bytes imgLoader::LoadImage(imgLoader * const 0x03444488, nsIURI * 0x00000000, nsILoadGroup * 0x04da8838, imgIDecoderObserver * 0x064cfff8, nsISupports * 0x06370070, imgIRequest * * 0x064cef20) line 64 + 29 bytes nsImageFrame::LoadImage(const nsAString & {...}, nsIPresContext * 0x06370070, imgIRequest * * 0x064cef20) line 1403 + 73 bytes nsImageFrame::Init(nsImageFrame * const 0x064ceeec, nsIPresContext * 0x06370070, nsIContent * 0x05724170, nsIFrame * 0x064c94bc, nsIStyleContext * 0x064ceeb8, nsIFrame * 0x00000000) line 246 + 49 bytes nsCSSFrameConstructor::InitAndRestoreFrame(nsIPresContext * 0x06370070, nsFrameConstructorState & {...}, nsIContent * 0x05724170, nsIFrame * 0x064c94bc, nsIStyleContext * 0x064ceeb8, nsIFrame * 0x00000000, nsIFrame * 0x064ceeec) line 6674 + 32 bytes nsCSSFrameConstructor::ConstructFrameByTag(nsIPresShell * 0x04842968, nsIPresContext * 0x06370070, nsFrameConstructorState & {...}, nsIContent * 0x05724170, nsIFrame * 0x064c94bc, nsIAtom * 0x032a3370, int 3, nsIStyleContext * 0x064ceeb8, nsFrameItems & {...}) line 4964 nsCSSFrameConstructor::ConstructFrameInternal(nsIPresShell * 0x04842968, nsIPresContext * 0x06370070, nsFrameConstructorState & {...}, nsIContent * 0x05724170, nsIFrame * 0x064c94bc, nsIAtom * 0x032a3370, int 3, nsIStyleContext * 0x064ceeb8, nsFrameItems & {...}, int 0) line 7210 + 52 bytes nsCSSFrameConstructor::ConstructFrame(nsIPresShell * 0x04842968, nsIPresContext * 0x06370070, nsFrameConstructorState & {...}, nsIContent * 0x05724170, nsIFrame * 0x064c94bc, nsFrameItems & {...}) line 7123 + 56 bytes nsCSSFrameConstructor::ProcessBlockChildren(nsIPresShell * 0x04842968, nsIPresContext * 0x06370070, nsFrameConstructorState & {...}, nsIContent * 0x06418080, nsIFrame * 0x064c94bc, int 1, nsFrameItems & {...}, int 1) line 12536 + 37 bytes nsCSSFrameConstructor::ConstructBlock(nsIPresShell * 0x04842968, nsIPresContext * 0x06370070, nsFrameConstructorState & {...}, const nsStyleDisplay * 0x0646e53c, nsIContent * 0x06418080, nsIFrame * 0x06465d18, nsIStyleContext * 0x0646e508, nsIFrame * 0x064c94bc) line 12485 + 36 bytes nsCSSFrameConstructor::ConstructFrameByDisplayType(nsIPresShell * 0x04842968, nsIPresContext * 0x06370070, nsFrameConstructorState & {...}, const nsStyleDisplay * 0x0646e53c, nsIContent * 0x06418080, nsIFrame * 0x06465d18, nsIStyleContext * 0x0646e508, nsFrameItems & {...}) line 6448 + 43 bytes nsCSSFrameConstructor::ConstructFrameInternal(nsIPresShell * 0x04842968, nsIPresContext * 0x06370070, nsFrameConstructorState & {...}, nsIContent * 0x06418080, nsIFrame * 0x06465d18, nsIAtom * 0x0329e988, int 3, nsIStyleContext * 0x0646e508, nsFrameItems & {...}, int 0) line 7253 + 48 bytes nsCSSFrameConstructor::ConstructFrame(nsIPresShell * 0x04842968, nsIPresContext * 0x06370070, nsFrameConstructorState & {...}, nsIContent * 0x06418080, nsIFrame * 0x06465d18, nsFrameItems & {...}) line 7123 + 56 bytes nsCSSFrameConstructor::ContentAppended(nsCSSFrameConstructor * const 0x0569be00, nsIPresContext * 0x06370070, nsIContent * 0x0646ca50, int 33) line 8127 StyleSetImpl::ContentAppended(StyleSetImpl * const 0x0621b590, nsIPresContext * 0x06370070, nsIContent * 0x0646ca50, int 33) line 1099 PresShell::ContentAppended(PresShell * const 0x04842970, nsIDocument * 0x063b5860, nsIContent * 0x0646ca50, int 33) line 4887 + 46 bytes nsDocument::ContentAppended(nsDocument * const 0x063b5860, nsIContent * 0x0646ca50, int 33) line 1616 nsHTMLDocument::ContentAppended(nsHTMLDocument * const 0x063b5860, nsIContent * 0x0646ca50, int 33) line 1166 + 17 bytes HTMLContentSink::NotifyAppend(nsIContent * 0x0646ca50, int 33) line 4637 SinkContext::FlushTags(int 1) line 2144 SinkContext::DidAddContent(nsIContent * 0x064ce1f0, int 0) line 1393 SinkContext::CloseContainer(const nsIParserNode & {...}) line 1577 HTMLContentSink::CloseContainer(HTMLContentSink * const 0x0631b248, const nsIParserNode & {...}) line 3358 + 18 bytes CNavDTD::CloseContainer(const nsCParserNode * 0x064169a0, nsHTMLTag eHTMLTag_tr, int 0) line 3550 + 31 bytes CNavDTD::CloseContainersTo(int 6, nsHTMLTag eHTMLTag_tr, int 0) line 3586 + 20 bytes CNavDTD::CloseContainersTo(nsHTMLTag eHTMLTag_tr, int 0) line 3737 + 20 bytes CNavDTD::HandleEndToken(CToken * 0x064ac0d8) line 2014 + 14 bytes CNavDTD::HandleToken(CNavDTD * const 0x063c0b40, CToken * 0x064ac0d8, nsIParser * 0x06344938) line 913 + 12 bytes CNavDTD::BuildModel(CNavDTD * const 0x063c0b40, nsIParser * 0x06344938, nsITokenizer * 0x055c5b38, nsITokenObserver * 0x00000000, nsIContentSink * 0x0631b248) line 540 + 20 bytes nsParser::BuildModel() line 2218 + 34 bytes nsParser::ResumeParse(int 1, int 0) line 2084 + 11 bytes nsParser::OnDataAvailable(nsParser * const 0x06344940, nsIRequest * 0x063da068, nsISupports * 0x063d9d6c, nsIInputStream * 0x0639fee0, unsigned int 0, unsigned int 32768) line 2692 + 19 bytes nsDocumentOpenInfo::OnDataAvailable(nsDocumentOpenInfo * const 0x063a7c78, nsIRequest * 0x063da068, nsISupports * 0x063d9d6c, nsIInputStream * 0x0639fee0, unsigned int 0, unsigned int 32768) line 235 + 46 bytes nsMimeBaseEmitter::OnFull(nsMimeBaseEmitter * const 0x0639fdd0, nsIOutputStream * 0x0639fef4) line 271 + 47 bytes nsPipe::nsPipeOutputStream::WriteSegments(nsPipe::nsPipeOutputStream * const 0x0639fef4, unsigned int (nsIOutputStream *, void *, char *, unsigned int, unsigned int, unsigned int *)* 0x10055e50 nsReadFromRawBuffer(nsIOutputStream *, void *, char *, unsigned int, unsigned int, unsigned int *), void * 0x062150c0, unsigned int 51, unsigned int * 0x0012f1e8) line 689 + 30 bytes nsPipe::nsPipeOutputStream::Write(nsPipe::nsPipeOutputStream * const 0x0639fef4, const char * 0x062150c0, unsigned int 51, unsigned int * 0x0012f1e8) line 784 nsMimeBaseEmitter::Write(nsMimeBaseEmitter * const 0x0639fdc8, const char * 0x063dadc8, unsigned int 74, unsigned int * 0x0012f220) line 429 + 38 bytes nsMimeHtmlDisplayEmitter::WriteBody(nsMimeHtmlDisplayEmitter * const 0x0639fdc8, const char * 0x063dadc8, unsigned int 74, unsigned int * 0x0012f220) line 469 mime_output_fn(char * 0x063dadc8, int 74, void * 0x06420ee0) line 782 MimeOptions_write(MimeDisplayOptions * 0x062efe28, char * 0x063dadc8, int 74, int 1) line 1254 + 18 bytes MimeObject_write(MimeObject * 0x063f1c58, char * 0x063dadc8, int 74, int 1) line 1274 + 24 bytes MimeInlineTextHTML_parse_line(char * 0x063dadc8, int 74, MimeObject * 0x063f1c58) line 199 + 19 bytes MimeInlineText_rotate_convert_and_parse_line(char * 0x063dadc8, int 74, MimeObject * 0x063f1c58) line 380 + 20 bytes convert_and_send_buffer(char * 0x0642abb0, int 74, int 1, int (char *, unsigned int, void *)* 0x0230d2f0 MimeInlineText_rotate_convert_and_parse_line(char *, int, MimeObject *), void * 0x063f1c58) line 168 + 15 bytes mime_LineBuffer(const char * 0x0012f3d0, int 2, char * * 0x063f1c80, int * 0x063f1c88, unsigned int * 0x063f1c90, int 1, int (char *, unsigned int, void *)* 0x0230d2f0 MimeInlineText_rotate_convert_and_parse_line(char *, int, MimeObject *), void * 0x063f1c58) line 255 + 29 bytes MimeInlineText_parse_decoded_buffer(char * 0x0012f3d0, int 2, MimeObject * 0x063f1c58) line 271 + 45 bytes MimeLeaf_parse_buffer(char * 0x0012f3d0, int 2, MimeObject * 0x063f1c58) line 153 + 20 bytes MimeMultipart_parse_child_line(MimeObject * 0x06202980, char * 0x06394820, int 41, int 0) line 541 + 18 bytes MimeMultipart_parse_line(char * 0x06394820, int 43, MimeObject * 0x06202980) line 263 + 22 bytes convert_and_send_buffer(char * 0x06394820, int 43, int 1, int (char *, unsigned int, void *)* 0x0230e930 MimeMultipart_parse_line(char *, int, MimeObject *), void * 0x06202980) line 168 + 15 bytes mime_LineBuffer(const char * 0x064172b8, int 43, char * * 0x062029a8, int * 0x062029b0, unsigned int * 0x062029b8, int 1, int (char *, unsigned int, void *)* 0x0230e930 MimeMultipart_parse_line(char *, int, MimeObject *), void * 0x06202980) line 255 + 29 bytes MimeObject_parse_buffer(char * 0x064172b8, int 43, MimeObject * 0x06202980) line 255 + 49 bytes MimeMessage_parse_line(char * 0x064172b8, int 43, MimeObject * 0x062eff60) line 210 + 20 bytes convert_and_send_buffer(char * 0x064172b8, int 43, int 1, int (char *, unsigned int, void *)* 0x02315110 MimeMessage_parse_line(char *, int, MimeObject *), void * 0x062eff60) line 168 + 15 bytes mime_LineBuffer(const char * 0x0642380c, int 1381, char * * 0x062eff88, int * 0x062eff90, unsigned int * 0x062eff98, int 1, int (char *, unsigned int, void *)* 0x02315110 MimeMessage_parse_line(char *, int, MimeObject *), void * 0x062eff60) line 255 + 29 bytes MimeObject_parse_buffer(char * 0x06423778, int 1529, MimeObject * 0x062eff60) line 255 + 49 bytes mime_display_stream_write(_nsMIMESession * 0x062edfb8, const char * 0x06423778, int 1529) line 837 + 20 bytes nsStreamConverter::OnDataAvailable(nsStreamConverter * const 0x063360b0, nsIRequest * 0x063da068, nsISupports * 0x00000000, nsIInputStream * 0x06216c98, unsigned int 0, unsigned int 1529) line 887 + 24 bytes nsDocumentOpenInfo::OnDataAvailable(nsDocumentOpenInfo * const 0x063a9808, nsIRequest * 0x063da068, nsISupports * 0x00000000, nsIInputStream * 0x06216c98, unsigned int 0, unsigned int 1529) line 235 + 46 bytes nsStreamListenerTee::OnDataAvailable(nsStreamListenerTee * const 0x061beea8, nsIRequest * 0x063da068, nsISupports * 0x00000000, nsIInputStream * 0x063d9068, unsigned int 0, unsigned int 1529) line 56 + 51 bytes nsOnDataAvailableEvent0::HandleEvent(nsOnDataAvailableEvent0 * const 0x0628a060) line 410 + 47 bytes nsStreamListenerEvent0::HandlePLEvent(PLEvent * 0x0628a070) line 98 + 12 bytes PL_HandleEvent(PLEvent * 0x0628a070) line 590 + 10 bytes PL_ProcessPendingEvents(PLEventQueue * 0x00c0a078) line 520 + 9 bytes _md_EventReceiverProc(HWND__ * 0x00020210, unsigned int 49458, unsigned int 0, long 12623992) line 1071 + 9 bytes USER32! 77e12e98() USER32! 77e130e0() USER32! 77e15824() nsAppShellService::Run(nsAppShellService * const 0x0345ee40) line 426 main1(int 1, char * * 0x00358040, nsISupports * 0x00000000) line 1206 + 32 bytes main(int 1, char * * 0x00358040) line 1510 + 37 bytes mainCRTStartup() line 338 + 17 bytes
Looks like your assertion is coming from the dougt url parsing branch.
for whatever reason, the code is trying to open up a URI which does not have a scheme. maybe the nsMsgMailNewsUrl needs to check for this case, and prepend a known scheme.
Two things: 1) images: It's certainly an error to call SetSpec without a complete URI, in this case it could be made sense to first resolve the images against a base url and then call SetSpec. 2) news: nsStdURLs Parse() can not parse these news urls. To me they look like simple URIs.Please use the right implementation ... Maybe you need two types of MsgMailNewsUrl, SimpleMsgMailNewsUrl and StdMsgMailNewsUrl to deal with the right implementation. nsStdUrl always does the // thing, news://3B5C133C.2080505@foobar.net will be parsed correctly by it and even if it could parse news:3B5C133C.2080505@foobar.net correctly it would return news://3B5C133C.2080505@foobar.net with GetSpec.
Looking at our url parsers there seems to be some cruft inherited from the 4.x codebase or from it's first necko incarnation. The parsers contain the ability to parse fragments of urls, although I see no real use of that, fragments are usually going through Resolve() in combination with a base url, Parse() should only be used on complete (maybe slightly malformed) urls. If we (1) remove the ability to parse url fragments in Parse() and (2) use the URIType information provided we may be able to parse simple uris too and furthermore change GetSpec() in a way to return them properly.
At least there may be some easy help for the news url. We were unable to parse it because ExtractPortFrom is to lazy and interprets some stuff as portnumber that isn't. In this case: 3B5C133C.2080505 was interpreted as a port number. I have a fix for that in my tree.
Depends on: 99081
I patched ExtractPortFrom in my tree, which of course gets rid of the assertion, but URLs of the form news:<message-id> still do not work - see my comment on bug 99081. Andreas, your idea of two types of MsgMailNewsUrl corresponds with the distinction made in rfc1738 between news and nntp urls.
Product: MailNews → Core
Assignee: mscott → nobody
QA Contact: esther → backend
Product: Core → MailNews Core
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.