Closed Bug 44775 Opened 24 years ago Closed 24 years ago

When copyCurrentSelectionToSystemClipboard() method is invoked and no URL is loaded, then JVM crashes

Categories

(Core Graveyard :: Java APIs to WebShell, defect, P3)

x86
Windows NT
defect

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: ovk, Assigned: ashuk)

Details

(Keywords: crash)

Attachments

(1 file)

When copyCurrentSelectionToSystemClipboard() method is invoked and no URL is 
loaded, then JVM crashes :

###!!! ASSERTION: You can't dereference a NULL nsCOMPtr with operator->
().: 'mRawPtr != 0', file ..\..\..\dist\include\nsCOMPtr.h, line 625
#
# HotSpot Virtual Machine Error, EXCEPTION_ACCESS_VIOLATION
#
# Error ID: 4F533F57494E13120E43505002B7
#
	
abnormal program termination

Build Date & Platform:
Mozilla M16, Webclient source from July,7; WinNT 4.0 with SP4
Adding crash keyword.
Keywords: crash
Ashu
Assignee: edburns → ashuk
Status: UNCONFIRMED → NEW
Ever confirmed: true
The nsIContentViewerEdit component is absent when no URL is loaded. Was fixed
easily by checking if this is null before making calls to SelectAll or
CopySelectionToClipboard.

Will check in changes on Monday, since the office is unusable today and I dont
have CVS on my home PC.

_Ashu
Status: NEW → ASSIGNED
Checked in Fix. Pls see attachment for patch. Code checks for ContentViewer to 
be non-null before issuing CopyCurrentSelectionToSystemClipboard call
Status: ASSIGNED → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
JVM still crashes.

Possible solution:

in string "rv = initContext->docShell->GetContentViewer(&contentViewer);" method 
GetContentViewer(&contentViewer) always returns NS_OK and rv is always 0.
So we need to check contentViewer value not rv.
We need to change string  "if (NS_FAILED(rv)) {" with string "if 
(contentViewer==nsnull) {".

I tested it and it works. Thanks.
Status: REOPENED → ASSIGNED
Checked in fix suggested by Oleg. Tested it and confirmed that it works fine.
thanks Oleg.

cvs diff CurrentPageImpl.cpp (in directory D:\M16
\mozilla\java\webclient\src_moz)
Index: CurrentPageImpl.cpp
===================================================================
RCS file: /cvsroot/mozilla/java/webclient/src_moz/CurrentPageImpl.cpp,v
retrieving revision 1.9
diff -r1.9 CurrentPageImpl.cpp
74c74
<     if (NS_FAILED(rv))  {
---
>     if (NS_FAILED(rv) || contentViewer==nsnull )  {
339c339
<         if (NS_FAILED(rv))  {
---
>         if (NS_FAILED(rv) || contentViewer==nsnull)  {

*****CVS exited normally with code 1*****

_Ashu
Status: ASSIGNED → RESOLVED
Closed: 24 years ago24 years ago
Resolution: --- → FIXED
I mark it as verified.
Status: RESOLVED → VERIFIED
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: