Closed
Bug 7018
Opened 25 years ago
Closed 25 years ago
brendan's home page gets crash
Categories
(Core Graveyard :: Java: Live Connect, defect, P3)
Tracking
(Not tracked)
VERIFIED
FIXED
M7
People
(Reporter: chofmann, Assigned: beard)
References
()
Details
(Whiteboard: Y2k)
top100 site ;-) -> brendan's home page gets crash on M6 candidate...
if you ingnore the crash and proceed, the console shows...
FindBookmarkShortcut: in='http://people.netscape.com/brendan/' out=''
JavaScript error: missing name after . operator
URL: http://people.netscape.com/brendan/ LineNo: 47
Line text: 'knob = mocha.this;', Error text: 'this;'
JavaScript error: missing name after . operator
URL: http://people.netscape.com/brendan/ LineNo: 50
Line text: 'window.', Error text: ''
Document: Done (11.15 secs)
Got a handle to forward menu item
Setting forward menu item disabled
Obtained MenuItem Back
Setting Back menuitem to enabled
Document http://people.netscape.com/brendan/ loaded successfully
talkback stack looks like...
Call Stack: (Signature = jsj_MapJSContextToJSJThread 340da52c)
jsj_MapJSContextToJSJThread
[d:\builds\seamonkey\mozilla\js\src\liveconnect\jsj_utils.c, line 425]
JavaPackage_resolve
[d:\builds\seamonkey\mozilla\js\src\liveconnect\jsj_JavaPackage.c, line 152]
js_LookupProperty
[d:\builds\seamonkey\mozilla\js\src\jsobj.c, line 1505]
js_GetProperty
[d:\builds\seamonkey\mozilla\js\src\jsobj.c, line 1666]
js_Interpret
[d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 2173]
js_Execute
[d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 817]
JS_EvaluateUCScriptForPrincipals
[d:\builds\seamonkey\mozilla\js\src\jsapi.c, line 2392]
nsJSContext::EvaluateString
[d:\builds\seamonkey\mozilla\dom\src\base\nsJSEnvironment.cpp, line 127]
HTMLContentSink::EvaluateScript
[d:\builds\seamonkey\mozilla\layout\html\document\src\nsHTMLContentSink.cpp,
line 2742]
HTMLContentSink::ProcessSCRIPTTag
[d:\builds\seamonkey\mozilla\layout\html\document\src\nsHTMLContentSink.cpp,
line 2854]
HTMLContentSink::AddLeaf
[d:\builds\seamonkey\mozilla\layout\html\document\src\nsHTMLContentSink.cpp,
line 1949]
CNavDTD::AddLeaf
[d:\builds\seamonkey\mozilla\htmlparser\src\CNavDTD.cpp, line 2801]
CNavDTD::AddHeadLeaf
[d:\builds\seamonkey\mozilla\htmlparser\src\CNavDTD.cpp, line 2834]
CNavDTD::HandleStartToken
[d:\builds\seamonkey\mozilla\htmlparser\src\CNavDTD.cpp, line
I think we have been crashing on this page with other problems
but they have been fixed and we are now exposing some new bugs..
Comment 3•25 years ago
|
||
From the crash location, my guess is that the OJI code isn't setting up the
correct set of callbacks when no JVM plugin is installed, i.e. the
map_js_context_to_jsj_thread() callback should fail and return an error message
that indicates that Java is not installed.
I'm not sure who gets OJI bugs these days. Would it be Patrick Beard ?
Reporter | ||
Comment 4•25 years ago
|
||
he drives a boxter. he digs chelsea. thats hot!
Reporter | ||
Comment 5•25 years ago
|
||
and the mac stack is...
Call Stack: (Signature = 0xf400f500 8d518110)
0xf400f500
JavaPackage_resolve()
[jsj_JavaPackage.c, line 151]
js_LookupProperty()
[jsobj.c, line 1503]
js_GetProperty()
[jsobj.c, line 1660]
js_Interpret()
[jsinterp.c, line 2155]
js_Execute()
[jsinterp.c, line 815]
JS_EvaluateUCScriptForPrincipals()
[jsapi.c, line 2390]
DOM_DLL + 0x378c (0x16ddd0dc)
layout.shlb + 0x36384 (0x1765c144)
layout.shlb + 0x36858 (0x1765c618)
layout.shlb + 0x33c20 (0x176599e0)
CNavDTD::AddLeaf()
[CNavDTD.cpp, line 2798]
Comment 7•25 years ago
|
||
Threading prob? If so, chofmann please to be assigning this bug to
chouck@knobproductions.com.
While you're at it, file a bug with knobproductions.com's bugsystem about my
page, it still says my car is gray and orange, it should say silver and red.
/be
Reporter | ||
Comment 8•25 years ago
|
||
chouck sez he won't work on js threading problems.
he is focused only on nspr 1.0.
Assignee | ||
Updated•25 years ago
|
Assignee: beard → fur
Assignee | ||
Comment 9•25 years ago
|
||
The problem is in the LiveConnect function:
JSJavaThreadState *
jsj_MapJSContextToJSJThread(JSContext *cx, JNIEnv **envp);
JSJ_callbacks is NULL, but this function doesn't check that, so it crashes.
Adding a NULL check fixes the crash. Here's the patch if you want to check this
in:
Index: jsj_utils.c
===================================================================
RCS file: /cvsroot/mozilla/js/src/liveconnect/jsj_utils.c,v
retrieving revision 1.4
diff -r1.4 jsj_utils.c
423c423
< if (jsj_env == NULL)
---
> if (jsj_env == NULL && JSJ_callbacks != NULL)
Reporter | ||
Updated•25 years ago
|
Target Milestone: M7
Reporter | ||
Comment 10•25 years ago
|
||
chouck sez he depends on this in M7.
we need to deliver it by then.
Comment 11•25 years ago
|
||
chouck who?
Comment 12•25 years ago
|
||
I don't think this is the right fix. JSJ_Callbacks should not be NULL if
LiveConnect is engaged, i.e. if there's a JVM plugin and Java/LiveConnect is
enabled. What I could do instead is to add code which causes the
per-JSContext initialization of LiveConnect to fail if JSJ_Callbacks hasn't been
set up, but this would merely amount to a safeguard against erroneous usage of
the LiveConnect APIs.
I still regard this as a failure on the part of OJI, however, since no error
message is avilable to be displayed on the JS console when a script fails in its
attempt to use LiveConnect, e.g. "No JVM plugin installed" or "Java is disabled
in the control panel". The LiveConnect callback API has provisions for error
messages for exactly this purpose, but OJI is apparently not defining these
callbacks.
Updated•25 years ago
|
Assignee: fur → beard
Comment 13•25 years ago
|
||
I never noticed that this was reassigned back to me. Please look at my previous
comment as to why I believe this to be an OJI problem.
Assignee | ||
Updated•25 years ago
|
Status: NEW → ASSIGNED
Assignee | ||
Updated•25 years ago
|
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
Assignee | ||
Comment 14•25 years ago
|
||
I've fixed this by not doing the per-JSContext class initialization of
LiveConnect. That way, if Java isn't around, then "java.*" isn't defined at all.
Better?
Checked in a fix in mozilla/dom/src/base/nsJSEnvironment.cpp,1.32.
Comment 15•25 years ago
|
||
This sounds like a reasonable solution. One possible problem, however, is that
the error messages that result when a script accesses LiveConnect when it's
unavailabel may be somewhat incomprehensible, e.g. "java has no properties",
instead of, "Failed attempt to access Java because it has been disabled in the
preferences panel".
Along similar lines, we need to make sure that no crash will result when
accessing LiveConnect from the Java side if JS has been disabled via prefs.
Comment 16•25 years ago
|
||
works fine in today's viewer. however there are still some serious problems
with that page. for example, the Geek Code block should have X+++:
"This is the BEST show on TV, and it's about time. I've seen everything David
Duchovny and Gillian Anderson have ever done that been recorded and I'm a loyal
Duchovny/ Gillian Anderson fan. I've Converted at least 10 people. I have every
episode at SP, debate the fine details on-line, and have a credit for at least
2 YAXAs."
You need to log in
before you can comment on or make changes to this bug.
Description
•