JDK-4337754 : REGRESSION: Win32: Plugin crashes on start.
  • Type: Bug
  • Component: client-libs
  • Sub-Component: java.awt
  • Affected Version: 1.4.0
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • OS: windows_nt
  • CPU: x86
  • Submitted: 2000-05-12
  • Updated: 2000-05-23
  • Resolved: 2000-05-23
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.
Other
1.4.0 betaFixed
Related Reports
Relates :  
Description

Name: dsR10078			Date: 05/12/2000

###@###.###

The problem is reproducible with Java Plug-in 1.3.0-C and JRE built from
the current Merlin workspace. Netscape 4.7 and Internet Explorer 5.  

To reproduce open Test.html in the browser:

----------- Test.java ----------------------------
import java.applet.Applet;

public class Test extends Applet {}
--------------------------------------------------
----------- Test.html ----------------------------
<html>
<body>
<!--"CONVERTED_APPLET"-->
<!-- CONVERTER VERSION 1.3 -->
<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
WIDTH = 200 HEIGHT = 200  codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0">
<PARAM NAME = CODE VALUE = Test >

<PARAM NAME="type" VALUE="application/x-java-applet;version=1.3">
<PARAM NAME="scriptable" VALUE="false">
<COMMENT>
<EMBED type="application/x-java-applet;version=1.3"  CODE = Test WIDTH = 200 HEIGHT = 200  scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT>

</NOEMBED></EMBED>
</OBJECT>

<!--
<APPLET CODE = Test WIDTH = 200 HEIGHT = 200>


</APPLET>
-->
<!--"END_CONVERTED_APPLET"-->

</body>
</html>
--------------------------------------------------

The browser starts loading plugin. Then plugin crashes together 
with the browser. 

The native stack trace indicating the point of crash is as follows:

The AWT toolkit thread:

jni_GetObjectClass(const JNINativeInterface_ * * 0x00a806c0, _jobject * 0x00000000) line 1382
AwtFrame::GetClassNameA(AwtFrame * const 0x02ba7848) line 125
AwtComponent::RegisterClassA(AwtComponent * const 0x02ba7848) line 287 + 16 bytes
AwtFrame::Create(_jobject * 0x0012f8a4, _jobject * 0x01ac08e0) line 199
AwtToolkit::WndProc(HWND__ * 0x00c0028a, unsigned int 0x00000464, unsigned int 0x00000000, long 0x0012f840) line 492 + 11 bytes
USER32! 77e719d0()
USER32! 77e71982()
NTDLL! 77f763a3()
USER32! 77e71bd8()
AwtToolkit::PumpWaitingMessages(AwtToolkit * const 0x02ba7848) line 790 + 25 bytes
AwtToolkit::MessageLoop(AwtToolkit * const 0x02ba7848) line 744 + 7 bytes
Java_sun_awt_windows_WToolkit_eventLoop(JNIEnv_ * 0x00a806c0, _jobject * 0x0c99fe98) line 1566
invoke_V_V(Hjava_lang_Object * 0x08cd2d18, methodblock * 0x0c5ae20c, int 0x00000001, execenv * 0x00a806c0) line 71
invokeLazyNativeMethod(Hjava_lang_Object * 0x08cd2d18, methodblock * 0x00010001, int 0x00000001, execenv * 0x00a806c0) line 680 + 13 bytes
_ExecuteJava() line 14452

Browser thread:

USER32! 77e718ec()
USER32! 77e725bc()
AwtToolkit::CreateComponent(void * 0x0012f8a4, void * 0x00000000, void (void *, void *)* 0x0c6e5e0e AwtFrame::Create(_jobject *, _jobject *)) line 445
Java_sun_awt_windows_WEmbeddedFramePeer_create(JNIEnv_ * 0x009f1450, _jobject * 0x0012f8a4, _jobject * 0x00000000) line 1036
invoke_O_V(Hjava_lang_Object * 0x08ccecc0, methodblock * 0x0c5d990c, int 0x00000002, execenv * 0x009f1450) line 295
invokeLazyNativeMethod(Hjava_lang_Object * 0x08ccecc0, methodblock * 0x00010001, int 0x00000002, execenv * 0x009f1450) line 680 + 13 bytes
_ExecuteJava() line 14679
08ccea20()
00ac06e0()
08ccea20()

======================================================================

Comments
CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: generic FIXED IN: merlin-beta INTEGRATED IN: merlin-beta
14-06-2004

WORK AROUND Name: dsR10078 Date: 05/12/2000 ======================================================================
11-06-2004

SUGGESTED FIX Name: dsR10078 Date: 05/12/2000 ###@###.### Initialize the reference before the first call to GetClassName() the same way we do it for all other components in AwtComponent::CreateHWnd(). --- awt_Frame.cpp Fri May 12 18:05:24 2000 *************** *** 188,193 **** --- 188,194 ---- hwndParent = (HWND)handle; RECT rect; ::GetClientRect(hwndParent, &rect); + frame->m_peerObject = env->NewGlobalRef(self); frame->RegisterClass(); DWORD exStyle = WS_EX_NOPARENTNOTIFY; ======================================================================
11-06-2004

EVALUATION Name: dsR10078 Date: 05/12/2000 ###@###.### This crash was introduced with the fix for 4038769 which adds support for undecorated Frames and Windows. Now AwtFrame::GetClassName() accesses the associated peer object. For embedded frames GetClassName() is called before the reference to the peer object is initialized. ====================================================================== The above evaluation is incorrect. The bug was introduced when the fix for 4284277 was introduced. richard.ray@eng 2000-05-12
12-05-2000