JDK-6612326 : Plugin2(Regressions): Some of the Liveconnect functionality is broken with the latest drop of bundle
  • Type: Bug
  • Component: deploy
  • Sub-Component: plugin
  • Affected Version: 6u5
  • Priority: P2
  • Status: Closed
  • Resolution: Duplicate
  • OS: windows
  • CPU: generic
  • Submitted: 2007-10-03
  • Updated: 2010-04-04
  • Resolved: 2007-10-31
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 6
6u10Resolved
Related Reports
Duplicate :  
Description
There seems to be some problem with the latest installable bundle against new Plug-in.
Some of the scenarios, which used to work before with the earlier bits to test out new
Plug-in , are failing with the latest drop of bundles .

For example, following liveconnect scenarios used to work with the bit syou gave me earlier but failing with your latest drop:
I) Trying to access Javascript array inside an applet using JSObject.getMember and JSOBject.getSlot

http://sqeweb.sfbay.sun.com/deployment2/jitu/plug-bug/ojiliveconnect/src/TestJavaArraySlot.html

O/P WIth bits earlier drop :
---------------------------------
Applet status: Applet loaded.
Applet status: Applet resized and added to parent container
Applet status: Applet initialized
Applet status: Applet made visible
Applet status: Starting applet
Applet status: Applet started
Applet status: Told clients applet is started
array declared inside Javascript<<From JS: Hello JITU,From JS: Hello Calvin,From JS: Hello Ken>>
Applet: javascript array = From JS: Hello JITU,From JS: Hello Calvin,From JS: Hello Ken
Applet: javascript array length = 3
Applet: javascript array[0] =From JS: Hello JITU
Applet: javascript array[1] =From JS: Hello Calvin
Applet: javascript array[2] =From JS: Hello Ken
Applet: javascript array new value[0] = setSlotTest0
Applet: javascript array new value[1] = setSlotTest1
Applet: javascript array new value[2] = setSlotTest2
array returned to Javascript<<setSlotTest0,setSlotTest1,setSlotTest2>>
TEST PASSED
TEST PASSED
TEST PASSED
TestJavaArray  Applet: Final Status PASSED


O/P with latest drop:
----------------------
Applet status: Applet loaded.
Applet status: Applet resized and added to parent container
Applet status: Applet initialized
Applet status: Applet made visible
Applet status: Starting applet
Applet status: Applet started
Applet status: Told clients applet is started
array declared inside Javascript<<From JS: Hello JITU,From JS: Hello Calvin,From JS: Hello Ken>>
Applet: javascript array = From JS: Hello JITU,From JS: Hello Calvin,From JS: Hello Ken
Applet: javascript array length = 3
Applet: javascript array[0] =From JS: Hello JITU
netscape.javascript.JSException: Parameter not optional.

at sun.plugin2.main.client.MessagePassingJSObject.newJSException(Unknown Source)
at sun.plugin2.main.client.MessagePassingJSObject.waitForReply(Unknown Source)
at sun.plugin2.main.client.MessagePassingJSObject.doSlotOp(Unknown Source)
at sun.plugin2.main.client.MessagePassingJSObject.setSlot(Unknown Source)
at TestJavaArray1.passJavaArray(TestJavaArray1.java:126)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.plugin.javascript.JSInvoke.invoke(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.plugin.javascript.JSClassLoader.invoke(Unknown Source)
at sun.plugin2.liveconnect.JavaClass$MethodInfo.invoke(Unknown Source)
at sun.plugin2.liveconnect.JavaClass$MemberBundle.invoke(Unknown Source)
at sun.plugin2.liveconnect.JavaClass.invoke(Unknown Source)
at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo.doObjectOp(Unknown Source)
at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$LiveConnectWorker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
netscape.javascript.JSException: Parameter not optional.

at sun.plugin2.main.client.MessagePassingJSObject.newJSException(Unknown Source)
at sun.plugin2.main.client.MessagePassingJSObject.waitForReply(Unknown Source)
at sun.plugin2.main.client.MessagePassingJSObject.doSlotOp(Unknown Source)
at sun.plugin2.main.client.MessagePassingJSObject.setSlot(Unknown Source)
at TestJavaArray1.passJavaArray(TestJavaArray1.java:126)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.plugin.javascript.JSInvoke.invoke(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.plugin.javascript.JSClassLoader.invoke(Unknown Source)
at sun.plugin2.liveconnect.JavaClass$MethodInfo.invoke(Unknown Source)
at sun.plugin2.liveconnect.JavaClass$MemberBundle.invoke(Unknown Source)
at sun.plugin2.liveconnect.JavaClass.invoke(Unknown Source)
at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo.doObjectOp(Unknown Source)
at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$LiveConnectWorker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
array returned to Javascript<<From JS: Hello JITU,From JS: Hello Calvin,From JS: Hello Ken>>
TEST FAILED
TEST FAILED
TEST FAILED
TestJavaArray Applet: Final Status FAILED


II) Trying to acces public javascript variables using JSObject.getMember and trying to change their value
using JSOBject.setMember

http://sqeweb.sfbay.sun.com/deployment2/jitu/plug-bug/ojiliveconnect/src/JSWrapTest.html

O/P WIth bits earlier drop :
---------------------------------


Applet status: Starting applet teardown
Applet status: Finished applet teardown
Applet status: Applet loaded.
Applet status: Applet resized and added to parent container
"booleanJSValue" returned wrapped as a java.lang.Boolean
"booleanJSValue" value is true
Trying to change value of "booleanValue"
Value of "ibooleanValue" changed successfully..
"intJSValue" returned wrapped as a java.lang.Integer
"intJSValue" value is 42
Trying to change value of "intJSValue"
Value of "intJSValue" changed successfully..
"floatJSValue" returned wrapped as a java.lang.Double
"floatJSValue" value is 3.14159
Trying to change value of "floatJSValue"
Value of "floatJSValue" changed successfully..
"stringJSValue" returned wrapped as a java.lang.String
"stringJSValue" value is "This is a test"
Trying to change value of "stringJSValue"
Value of "stringJSValue" changed successfully..
Applet status: Applet initialized
Applet status: Applet made visible
Applet status: Starting applet
Applet status: Applet started
Applet status: Told clients applet is started

O/P with the leatest drop:

Applet status: Applet loaded.
Applet status: Applet resized and added to parent container
"booleanJSValue" returned wrapped as a java.lang.Boolean
"booleanJSValue" value is true
Trying to change value of "booleanValue"
netscape.javascript.JSException: Parameter not optional.

at sun.plugin2.main.client.MessagePassingJSObject.newJSException(Unknown Source)
at sun.plugin2.main.client.MessagePassingJSObject.waitForReply(Unknown Source)
at sun.plugin2.main.client.MessagePassingJSObject.doMemberOp(Unknown Source)
at sun.plugin2.main.client.MessagePassingJSObject.setMember(Unknown Source)
at JSWrapTest.get_javascript_boolean(JSWrapTest.java:89)
at JSWrapTest.init(JSWrapTest.java:13)
at sun.plugin2.applet.Applet2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Exception: netscape.javascript.JSException: Parameter not optional.

"intJSValue" returned wrapped as a java.lang.Integer
"intJSValue" value is 42
Trying to change value of "intJSValue"
netscape.javascript.JSException: Parameter not optional.

at sun.plugin2.main.client.MessagePassingJSObject.newJSException(Unknown Source)
at sun.plugin2.main.client.MessagePassingJSObject.waitForReply(Unknown Source)
at sun.plugin2.main.client.MessagePassingJSObject.doMemberOp(Unknown Source)
at sun.plugin2.main.client.MessagePassingJSObject.setMember(Unknown Source)
at JSWrapTest.get_javascript_int(JSWrapTest.java:116)
at JSWrapTest.init(JSWrapTest.java:14)
at sun.plugin2.applet.Applet2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Exception: netscape.javascript.JSException: Parameter not optional.

Comments
EVALUATION This bug is being marked as a duplicate of 6622332 for bookkeeping purposes and does not need to be re-verified independently. In the case of a regression please file a new bug.
31-10-2007

SUGGESTED FIX http://analemma.sfbay.sun.com/net/jano2/export2/hotspot/users/kbr/webrevs/mjre/6612326_ie_liveconnect_bug/
03-10-2007

EVALUATION An out-of-scope stack variable was being referenced causing breakage when the C++ optimizer was turned on.
03-10-2007