Closed
Bug 274996
Opened 20 years ago
Closed 20 years ago
Exceptions with multiple interpreters on stack may lead to ArrayIndexOutOfBoundsException
Categories
(Rhino Graveyard :: Core, defect)
Tracking
(Not tracked)
RESOLVED
FIXED
1.6R1
People
(Reporter: thomas.hentschel, Assigned: igor)
Details
Attachments
(2 files, 1 obsolete file)
|
855 bytes,
patch
|
Details | Diff | Splinter Review | |
|
1.56 KB,
application/octet-stream
|
Details |
In a scenario where multiple rhino interpreters are on the Java stack, and an exception is thrown during the execution of Java code (thru LiveConnect), an ArrayOutOfBoundException may occur. The attached (junit) test reproduces the scenario in two ways: The 1st test succeeds, but the line number information for the outer interpreter is corrupted, the 2nd test throws the ArrayIndexOutOfBoundsException: --- org.mozilla.javascript.WrappedException: WrappedException of "oops" in inner line 4 [null] org.mozilla.javascript.WrappedException: WrappedException of "oops" in outer1 line 827 [null] org.mozilla.javascript.WrappedException: WrappedException of "oops" in inner line 4 [null] java.lang.ArrayIndexOutOfBoundsException at org.mozilla.javascript.Interpreter.getShort(Interpreter.java:1411) at org.mozilla.javascript.Interpreter.getSourcePositionFromStack(Interpreter.java:1817) at org.mozilla.javascript.Context.getSourcePositionFromStack(Context.java:2297) at org.mozilla.javascript.EvaluatorException.<init>(EvaluatorException.java:59) at org.mozilla.javascript.WrappedException.<init>(WrappedException.java:78) at org.mozilla.javascript.Context.throwAsScriptRuntimeEx(Context.java:1604) at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:191) at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:202) at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:2646) at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:57) at rhinotestcase.ArrayOutOfBoundsRhinoTest.testArrayOutOfBoundsError2(ArrayOutOfBoundsRhinoTest.java:81) --- The attached patch fixes this behavior for me: --- org.mozilla.javascript.WrappedException: WrappedException of "oops" in inner line 4 [null] org.mozilla.javascript.WrappedException: WrappedException of "oops" in outer1 line 3 [null] org.mozilla.javascript.WrappedException: WrappedException of "oops" in inner line 4 [null] org.mozilla.javascript.WrappedException: WrappedException of "oops" in outer2 line 2 [null] --- The test was run against 1.5R5, with the .optimizer package removed.
| Reporter | ||
Comment 1•20 years ago
|
||
added test case to reproduce problem
| Reporter | ||
Comment 2•20 years ago
|
||
a patch that solves the problem for me
| Reporter | ||
Comment 3•20 years ago
|
||
Attachment #168920 -
Attachment is obsolete: true
| Assignee | ||
Comment 4•20 years ago
|
||
The bug is already fixed in Rhino 1.6R1 as a part of work on bug 258844
Status: NEW → RESOLVED
Closed: 20 years ago
Resolution: --- → FIXED
Target Milestone: --- → 1.6R1
You need to log in
before you can comment on or make changes to this bug.
Description
•