JDK-4696124 : RAS:VM Crash for AWT Reliability in Solaris 5.8(32 bit) for b13
  • Type: Bug
  • Component: client-libs
  • Sub-Component: java.awt
  • Affected Version: 1.4.1
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: solaris_8
  • CPU: sparc
  • Submitted: 2002-06-03
  • Updated: 2002-06-27
  • Resolved: 2002-06-20
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.1 rcFixed
Related Reports
Relates :  
Description
AWT Reliability test crashes on solaris 5.8(32 bit) within 10 minutes of commencing with the following stack trace
==========================================================================
Solaris 8 (Sparc)

An unexpected exception has been detected in native code outside the VM.
Unexpected Signal : 11 occurred at PC=0xFDFC7E94
Function=[Unknown. Nearest: Java_sun_awt_motif_XsessionWMcommand+0x920]
Library=/home/sa131039/AWT/j2sdk1.4.1/jre/lib/sparc/motif21/libmawt.so

Current Java thread:
        at sun.awt.motif.MToolkit.run(Native Method)
        at java.lang.Thread.run(Thread.java:536)

Dynamic libraries:
0x10000         /home/sa131039/AWT/j2sdk1.4.1/bin/java
0xff350000      /usr/lib/libthread.so.1
0xff390000      /usr/lib/libdl.so.1
0xff200000      /usr/lib/libc.so.1
0xff330000      /usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1
0xfe000000      /home/sa131039/AWT/j2sdk1.4.1/jre/lib/sparc/client/libjvm.so
0xff2d0000      /usr/lib/libCrun.so.1
0xff1e0000      /usr/lib/libsocket.so.1
0xff100000      /usr/lib/libnsl.so.1
0xff0d0000      /usr/lib/libm.so.1
0xff300000      /usr/lib/libw.so.1
0xff0b0000      /usr/lib/libmp.so.2
0xff080000      /home/sa131039/AWT/j2sdk1.4.1/jre/lib/sparc/native_threads/libhpi.so
0xff040000      /home/sa131039/AWT/j2sdk1.4.1/jre/lib/sparc/libverify.so
0xfe7c0000      /home/sa131039/AWT/j2sdk1.4.1/jre/lib/sparc/libjava.so
0xff020000      /home/sa131039/AWT/j2sdk1.4.1/jre/lib/sparc/libzip.so
0xf1c00000      /home/sa131039/AWT/j2sdk1.4.1/jre/lib/sparc/libawt.so
0xfc480000      /home/sa131039/AWT/j2sdk1.4.1/jre/lib/sparc/libmlib_image.so
0xfdf90000      /home/sa131039/AWT/j2sdk1.4.1/jre/lib/sparc/motif21/libmawt.so
0xf1980000      /usr/dt/lib/libXm.so.4
0xfc410000      /usr/openwin/lib/libXt.so.4
0xfe460000      /usr/openwin/lib/libXext.so.0
0xfdee0000      /usr/openwin/lib/libXtst.so.1
0xf1880000      /usr/openwin/lib/libX11.so.4
0xfa3a0000      /usr/openwin/lib/libdps.so.5
0xfa2e0000      /usr/openwin/lib/libSM.so.6
0xfa2b0000      /usr/openwin/lib/libICE.so.6
0xfa1d0000      /usr/openwin/lib/libdga.so.1
0xf1780000      /home/sa131039/AWT/j2sdk1.4.1/jre/lib/sparc/libfontmanager.so
0xfa290000      /usr/lib//liblayout.so
0xfa1b0000      /home/sa131039/AWT/j2sdk1.4.1/jre/lib/sparc/libsunwjdga.so
0xfa090000      /home/sa131039/AWT/j2sdk1.4.1/jre/lib/sparc/libjdgaSUNWm64.so

Local Time = Mon Jun  3 03:32:37 2002
Elapsed Time = 547
#
# The exception above was detected in native code outside the VM
#
# Java VM: Java HotSpot(TM) Client VM (1.4.1-beta-b13 mixed mode)
#
# An error report file has been saved as hs_err_pid657.log.
# Please refer to the file for further information.
#
Abort - core dumped
=====================================================================
similar failure is encountered in Sol IA 8 & Linux Platforms as well-stack trace hereunder(was tested in b12 as there was Robot instantiation error in b13 on 
Sol IA build)


An unexpected exception has been detected in native code outside the VM.
Unexpected Signal : 11 occurred at PC=0xD29FDFDE
Function=XtWindowOfObject+0x16
Library=/usr/openwin/lib/libXt.so.4

Current Java thread:
	at sun.awt.motif.MToolkit.run(Native Method)
	at java.lang.Thread.run(Thread.java:536)

Dynamic libraries:
0x8050000 	/home/sa131039/AWT/IA/j2sdk1.4.1/bin/java
0xdfb70000 	/usr/lib/libthread.so.1
0xdfbb0000 	/usr/lib/libdl.so.1
0xdfab0000 	/usr/lib/libc.so.1
0xdecb0000 	/home/sa131039/AWT/IA/j2sdk1.4.1/jre/lib/i586/client/libjvm.so
0xdfa50000 	/usr/lib/libCrun.so.1
0xdfa20000 	/usr/lib/libsocket.so.1
0xdf980000 	/usr/lib/libnsl.so.1
0xdf960000 	/usr/lib/libm.so.1
0xdfa70000 	/usr/lib/libw.so.1
0xdf920000 	/usr/lib/libmp.so.2
0xdf8f0000 	/home/sa131039/AWT/IA/j2sdk1.4.1/jre/lib/i586/native_threads/libhpi.so
0xdf8b0000 	/home/sa131039/AWT/IA/j2sdk1.4.1/jre/lib/i586/libverify.so
0xdf870000 	/home/sa131039/AWT/IA/j2sdk1.4.1/jre/lib/i586/libjava.so
0xdf830000 	/home/sa131039/AWT/IA/j2sdk1.4.1/jre/lib/i586/libzip.so
0xdd020000 	/usr/lib/locale/en_US.ISO8859-1/en_US.ISO8859-1.so.2
0xdad20000 	/home/sa131039/AWT/IA/j2sdk1.4.1/jre/lib/i586/libawt.so
0xdacb0000 	/home/sa131039/AWT/IA/j2sdk1.4.1/jre/lib/i586/libmlib_image.so
0xdac30000 	/home/sa131039/AWT/IA/j2sdk1.4.1/jre/lib/i586/motif21/libmawt.so
0xd2a40000 	/usr/dt/lib/libXm.so.4
0xd29e0000 	/usr/openwin/lib/libXt.so.4
0xd29b0000 	/usr/openwin/lib/libXext.so.0
0xd2990000 	/usr/openwin/lib/libXtst.so.1
0xd2910000 	/usr/openwin/lib/libX11.so.4
0xd28c0000 	/usr/openwin/lib/libdps.so.5
0xd28a0000 	/usr/openwin/lib/libSM.so.6
0xd2880000 	/usr/openwin/lib/libICE.so.6
0xd2850000 	/usr/openwin/lib/libdga.so.1
0xd27a0000 	/home/sa131039/AWT/IA/j2sdk1.4.1/jre/lib/i586/libfontmanager.so
0xd2730000 	/usr/openwin/lib/locale/common/xlibi18n.so.2
0xd2700000 	/usr/openwin/lib/locale/iso8859-1/xomEuro.so.2
0xd26e0000 	/usr/lib//liblayout.so
0xd26a0000 	/usr/openwin/lib/locale/common/ximlocal.so.2

Local Time = Sun Jun  3 15:12:21 2001
Elapsed Time = 516
#
# The exception above was detected in native code outside the VM
#
# Java VM: Java HotSpot(TM) Client VM (1.4.1-beta-b12 mixed mode)
#

============================================================================
RH Linux 7.2


An unexpected exception has been detected in native code outside the VM.
Unexpected Signal : 11 occurred at PC=0x4CABBF08
Function=XtWindowOfObject+0x18
Library=/usr/X11R6/lib/libXt.so.6

Current Java thread:
	at sun.awt.motif.MToolkit.run(Native Method)
	at java.lang.Thread.run(Thread.java:536)

Dynamic libraries:
08048000-0804e000 r-xp 00000000 03:03 1260226    /root/sriram/j2sdk1.4.1/bin/java
0804e000-0804f000 rw-p 00005000 03:03 1260226    /root/sriram/j2sdk1.4.1/bin/java
40000000-40016000 r-xp 00000000 03:03 1831442    /lib/ld-2.2.4.so
40016000-40017000 rw-p 00015000 03:03 1831442    /lib/ld-2.2.4.so
40017000-40020000 r-xp 00000000 03:03 1489497    /root/sriram/j2sdk1.4.1/jre/lib/i586/native_threads/libhpi.so
40020000-40021000 rw-p 00008000 03:03 1489497    /root/sriram/j2sdk1.4.1/jre/lib/i586/native_threads/libhpi.so
40022000-40026000 rw-s 00000000 03:03 214156     /tmp/hsperfdata_21723
40026000-40030000 r-xp 00000000 03:03 1831476    /lib/libnss_files-2.2.4.so
40030000-40031000 rw-p 00009000 03:03 1831476    /lib/libnss_files-2.2.4.so
40033000-40040000 r-xp 00000000 03:03 245303     /lib/i686/libpthread-0.9.so
40040000-40048000 rw-p 0000c000 03:03 245303     /lib/i686/libpthread-0.9.so
40048000-4004b000 r-xp 00000000 03:03 1831455    /lib/libdl-2.2.4.so
4004b000-4004c000 rw-p 00002000 03:03 1831455    /lib/libdl-2.2.4.so
4004c000-4017e000 r-xp 00000000 03:03 245299     /lib/i686/libc-2.2.4.so
4017e000-40183000 rw-p 00131000 03:03 245299     /lib/i686/libc-2.2.4.so
40187000-4049e000 r-xp 00000000 03:03 263094     /root/sriram/j2sdk1.4.1/jre/lib/i586/client/libjvm.so
4049e000-40654000 rw-p 00316000 03:03 263094     /root/sriram/j2sdk1.4.1/jre/lib/i586/client/libjvm.so
40664000-40677000 r-xp 00000000 03:03 1831460    /lib/libnsl-2.2.4.so
40677000-40678000 rw-p 00012000 03:03 1831460    /lib/libnsl-2.2.4.so
4067a000-4069c000 r-xp 00000000 03:03 245301     /lib/i686/libm-2.2.4.so
4069c000-4069d000 rw-p 00021000 03:03 245301     /lib/i686/libm-2.2.4.so
4069d000-406ad000 r-xp 00000000 03:03 83226      /root/sriram/j2sdk1.4.1/jre/lib/i586/libverify.so
406ad000-406af000 rw-p 0000f000 03:03 83226      /root/sriram/j2sdk1.4.1/jre/lib/i586/libverify.so
406af000-406d0000 r-xp 00000000 03:03 83227      /root/sriram/j2sdk1.4.1/jre/lib/i586/libjava.so
406d0000-406d2000 rw-p 00020000 03:03 83227      /root/sriram/j2sdk1.4.1/jre/lib/i586/libjava.so
406d2000-406e7000 r-xp 00000000 03:03 83229      /root/sriram/j2sdk1.4.1/jre/lib/i586/libzip.so
406e7000-406e9000 rw-p 00014000 03:03 83229      /root/sriram/j2sdk1.4.1/jre/lib/i586/libzip.so
406e9000-41db4000 r--s 00000000 03:03 83269      /root/sriram/j2sdk1.4.1/jre/lib/rt.jar
41df7000-41e0e000 r--s 00000000 03:03 83250      /root/sriram/j2sdk1.4.1/jre/lib/sunrsasign.jar
41e0e000-41e7f000 r--s 00000000 03:03 83252      /root/sriram/j2sdk1.4.1/jre/lib/jsse.jar
41e7f000-41e92000 r--s 00000000 03:03 83251      /root/sriram/j2sdk1.4.1/jre/lib/jce.jar
41e92000-4215c000 r--s 00000000 03:03 83267      /root/sriram/j2sdk1.4.1/jre/lib/charsets.jar
44204000-44207000 r--s 00000000 03:03 508376     /root/sriram/j2sdk1.4.1/jre/lib/ext/dnsns.jar
44207000-4420d000 r-xp 00000000 03:03 490728     /usr/X11R6/lib/libXp.so.6.2
4420d000-4420f000 rw-p 00005000 03:03 490728     /usr/X11R6/lib/libXp.so.6.2
4c413000-4c43e000 r--p 00000000 03:03 1978614    /usr/lib/locale/en_US/LC_CTYPE
4c642000-4c65f000 r--s 00000000 03:03 508375     /root/sriram/j2sdk1.4.1/jre/lib/ext/sunjce_provider.jar
4c65f000-4c6fe000 r--s 00000000 03:03 508377     /root/sriram/j2sdk1.4.1/jre/lib/ext/localedata.jar
4c6fe000-4c70c000 r--s 00000000 03:03 508378     /root/sriram/j2sdk1.4.1/jre/lib/ext/ldapsec.jar
4c70c000-4c72c000 r--s 00000000 03:03 1178777    /root/sriram/bat/src/awtsqe.jar
4c72c000-4c9f3000 r-xp 00000000 03:03 83237      /root/sriram/j2sdk1.4.1/jre/lib/i586/libawt.so
4c9f3000-4ca08000 rw-p 002c6000 03:03 83237      /root/sriram/j2sdk1.4.1/jre/lib/i586/libawt.so
4ca2d000-4ca80000 r-xp 00000000 03:03 83236      /root/sriram/j2sdk1.4.1/jre/lib/i586/libmlib_image.so
4ca80000-4ca81000 rw-p 00052000 03:03 83236      /root/sriram/j2sdk1.4.1/jre/lib/i586/libmlib_image.so
4ca81000-4ca86000 r--s 00000000 03:03 212767     /usr/lib/gconv/gconv-modules.cache
4ca86000-4ca88000 r-xp 00000000 03:03 212715     /usr/lib/gconv/ISO8859-1.so
4ca88000-4ca89000 rw-p 00001000 03:03 212715     /usr/lib/gconv/ISO8859-1.so
4ca89000-4ca8c000 rw-s 00000000 00:04 49414153   /SYSV00000000 (deleted)
4ca9c000-4cae4000 r-xp 00000000 03:03 490734     /usr/X11R6/lib/libXt.so.6.0
4cae4000-4cae8000 rw-p 00047000 03:03 490734     /usr/X11R6/lib/libXt.so.6.0
4cae8000-4caf4000 r-xp 00000000 03:03 490716     /usr/X11R6/lib/libXext.so.6.4
4caf4000-4caf6000 rw-p 0000b000 03:03 490716     /usr/X11R6/lib/libXext.so.6.4
4caf6000-4cafa000 r-xp 00000000 03:03 490736     /usr/X11R6/lib/libXtst.so.6.1
4cafa000-4cafc000 rw-p 00003000 03:03 490736     /usr/X11R6/lib/libXtst.so.6.1
4cafc000-4cbd5000 r-xp 00000000 03:03 490708     /usr/X11R6/lib/libX11.so.6.2
4cbd5000-4cbda000 rw-p 000d8000 03:03 490708     /usr/X11R6/lib/libX11.so.6.2
4cbda000-4cbe1000 r-xp 00000000 03:03 490706     /usr/X11R6/lib/libSM.so.6.0
4cbe1000-4cbe3000 rw-p 00006000 03:03 490706     /usr/X11R6/lib/libSM.so.6.0
4cbe3000-4cbf7000 r-xp 00000000 03:03 490702     /usr/X11R6/lib/libICE.so.6.3
4cbf7000-4cbf8000 rw-p 00013000 03:03 490702     /usr/X11R6/lib/libICE.so.6.3
4cbfa000-4ccc0000 r-xp 00000000 03:03 83239      /root/sriram/j2sdk1.4.1/jre/lib/i586/libfontmanager.so
4ccc0000-4ccdb000 rw-p 000c5000 03:03 83239      /root/sriram/j2sdk1.4.1/jre/lib/i586/libfontmanager.so
4ccdb000-4cd0f000 r-xp 00000000 03:03 328079     /usr/lib/libstdc++-2-libc6.1-1-2.9.0.so
4cd0f000-4cd1b000 rw-p 00033000 03:03 328079     /usr/lib/libstdc++-2-libc6.1-1-2.9.0.so

Local Time = Mon Jun  3 18:03:09 2002
Elapsed Time = 527
#
# The exception above was detected in native code outside the VM
#
# Java VM: Java HotSpot(TM) Client VM (1.4.1-beta-b12 mixed mode)
#
==========================================================================
To reproduce the problem 

1. Bringover from bat test suites from AWT Workspace
2. set JAVA_HOME path to <path>/j2sdk1.4.1
3. sh runbat.ksh -h 36

Comments
CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: hopper-rc FIXED IN: hopper-rc INTEGRATED IN: hopper-rc VERIFIED IN: hopper-rc
24-08-2004

SUGGESTED FIX Name: dmR10075 Date: 06/14/2002 Postpone disposal of the top-level until after all its children are disposed. The last child will dispose the parent if needed. *** /tmp/geta26078 Fri Jun 14 15:21:55 2002 --- awt_TopLevel.c Fri Jun 14 15:19:25 2002 *************** *** 1992,1998 **** --- 1992,2018 ---- extern AwtGraphicsConfigDataPtr getGraphicsConfigFromComponentPeer(JNIEnv *env, jobject this); + // Returns true if this shell has some transient shell chidlren + // which are either Dialogs or Windows. + // Returns false otherwise. + Boolean hasTransientChildren(Widget shell) { + int childIndex; + // Enumerate through the popups + for (childIndex = 0; childIndex < shell->core.num_popups; childIndex++) { + Widget childShell = shell->core.popup_list[childIndex]; + // Find all transient shell which are either Dialog or Window + if (XtIsTransientShell(childShell)) { + Widget toplevel = findTopLevelByShell(childShell); + if (toplevel != NULL) { + // It is Dialog or Window - return true. + return True; + } + } + } + return False; + } + /** * Disposes top-level component and its widgets */ *************** *** 2000,2005 **** --- 2020,2026 ---- void disposeTopLevel(JNIEnv * env, jobject this) { struct FrameData *wdata; + Widget parentShell; wdata = (struct FrameData *) JNU_GetLongFieldAsPtr(env, this, mComponentPeerIDs.pData); *************** *** 2011,2016 **** --- 2032,2040 ---- return; } + // Save parent shell for later disposal. + parentShell = XtParent(wdata->winData.shell); + removeTopLevel(wdata); if (wdata->isInputMethodWindow) { removeInputMethodWindow(wdata); *************** *** 2033,2039 **** free((void *) wdata); (*env)->SetLongField(env, this, mComponentPeerIDs.pData, 0); ! awtJNI_DeleteGlobalRef(env, this); } --- 2057,2098 ---- free((void *) wdata); (*env)->SetLongField(env, this, mComponentPeerIDs.pData, 0); ! awtJNI_DeleteGlobalRef(env, this); ! ! // Check if parent shell was scheduled for disposal. ! // If it doesn't have window then we have to dispose it ! // by ourselves right now. ! // We can dispose shell only if it doesn't have "transient" children. ! { ! struct FrameData *pdata; ! struct WidgetInfo* winfo; ! Widget toplevel = findTopLevelByShell(parentShell); ! DASSERT(toplevel != NULL); ! if (toplevel == NULL) { ! // Huh - has already been deleted? ! return; ! } ! winfo = findWidgetInfo(toplevel); ! DASSERT(winfo != NULL); ! if (winfo == NULL) { ! // Huh - has already been deleted? ! return; ! } ! pdata = (struct FrameData *) ! JNU_GetLongFieldAsPtr(env, winfo->peer, mComponentPeerIDs.pData); ! DASSERT(pdata != NULL); ! if (pdata == NULL) { ! // Huh - has already been deleted? ! return; ! } ! // 1) scheduled 2) no children 3) no window ! if (pdata->isDisposeScheduled ! && !hasTransientChildren(parentShell) ! && XtWindow(parentShell) == None) ! { ! disposeTopLevel(env, winfo->peer); ! } ! } } *************** *** 2078,2083 **** --- 2137,2146 ---- wdata = (struct FrameData *) JNU_GetLongFieldAsPtr(env, peer, mComponentPeerIDs.pData); + if (wdata->isDisposeScheduled) { + return; + } + wdata->isDisposeScheduled = True; if (XtWindow(wdata->winData.shell) != None) { XChangeProperty(awt_display, XtWindow(wdata->winData.shell), *************** *** 2086,2092 **** XFlush(awt_display); XSync(awt_display, False); } else { ! disposeTopLevel(env, peer); } } --- 2149,2161 ---- XFlush(awt_display); XSync(awt_display, False); } else { ! // If this top-level has children which are still visible then ! // their disposal could have been scheduled. We shouldn't allow this widget ! // to destroy its children top-levels. For this purpose we postpone the disposal ! // of this toplevel until after all its children are disposed. ! if (!hasTransientChildren(wdata->winData.shell)) { ! disposeTopLevel(env, peer); ! } } } ###@###.### 2002-06-14 ======================================================================
14-06-2002

EVALUATION Commit to fix in hopper. May be necessary to fix this for hopper-beta. ###@###.### 2002-06-03 My testing so far indicates the crash started with build b08. In build b13, the top of the stack when it crashes is here: [13] XtGetValues(0xfd4f5c94, 0xabababab, 0xfd4f5c90, 0x1134e8, 0xf2a6904c, 0x2ba088), at 0xfd4b5014 [14] XtVaGetValues(0xfd4e031c, 0xfd4f2000, 0x0, 0x3199d0, 0x2, 0x0), at 0xfd4b6018 =>[15] awt_WidgetAtXY(root = 0x2ba088, pointerx = 206, pointery = 63), line 523 in "awt_util.c" [16] awt_canvas_handleEvent(w = 0x18a980, client_data = 0x148308, event = 0xf23014d8, winfo = 0x196908, cont = 0xf2301393 "", passEvent = '\001'), line 1920 in "canvas.c" [17] shouldDispatchToWidget(xev = 0xf23014d8), line 806 in "awt_MToolkit.c" [18] processOneEvent(iMask = 1U), line 1554 in "awt_MToolkit.c" [19] awt_MToolkit_loop(env = 0x194d54), line 931 in "awt_MToolkit.c" [20] Java_sun_awt_motif_MToolkit_run(env = 0x194d54, this = 0xf2301714), line 2523 in "awt_MToolkit.c" This is in awt_WidgetAtXY: (dbx 2) lw 518 if(XtIsComposite(root)) { 519 int32_t i=0; 520 WidgetList wl=NULL; 521 Cardinal wlen=0; 522 > 523 XtVaGetValues(root, XmNchildren, &wl, XmNnumChildren, &wlen, NULL); 524 525 if(wlen>0) { 526 for(i=0; i<wlen && !answer; i++) { 527 answer = awt_WidgetAtXY(wl[i], pointerx, pointery); 528 } (dbx 3) line 523 (dbx 4) file awt_util.c This is in awt_canvas_handleEvent: The code above is called from this code (dbx 7) lw 1915 1916 XtTranslateCoords(w, (int32_t) x, (int32_t) y, &wx, &wy); 1917 /* Get the top level widget underneath the mouse pointer */ 1918 currentWidget = awt_GetWidgetAtPointer(); 1919 /* Get the exact widget at the current XY from the top level */ >1920 currentWidget = awt_WidgetAtXY(currentWidget, wx, wy); 1921 if ((prevWidget != NULL) && (prevWidget != w) && 1922 (currentWidget != prevWidget) && awt_isAwtWidget(prevWidget) && 1923 !prevWidget->core.being_destroyed) { 1924 XtPointer userData=NULL; 1925 XtVaGetValues(prevWidget, XmNuserData, &userData, NULL); (dbx 8) line 1920 (dbx 9) file canvas.c root in awt_WidgetAtXY is a XDrawingArea widget whose name is "frame_canvas". The XDrawingArea widget was introduced in build b11. But there is a crash in b08 that occurs at what appears to be the same point in the AWTBAT test, when the "Robot GUI" frame comes up about 8 minutes into the test. [13] awt_WidgetAtXY(0x3beef8, 0xce, 0x3f, 0x15, 0xf0a012e8, 0xfd7f2000), at 0xf10f53b4 [14] awt_canvas_handleEvent(0x2ad468, 0xf1c4c, 0xf0a014d8, 0x22c130, 0xf0a01393, 0x1), at 0xf110f10c [15] shouldDispatchToWidget(0xf0a014d8, 0x2, 0x1, 0x0, 0x2, 0x274c28), at 0xf111f170 [16] processOneEvent(0x1, 0x5, 0x30, 0xf114dfdc, 0x39f, 0x1), at 0xf1121ad0 [17] awt_MToolkit_loop(0xf114e200, 0xf0a01614, 0x2903f8, 0x0, 0x0, 0x0), at 0xf111f988 [18] Java_sun_awt_motif_MToolkit_run(0x290494, 0xf0a01714, 0x0, 0x0, 0x0, 0x0), at 0xf1125110 ###@###.### 2002-06-03 This bug was introduced by the following putback: COMMAND putback src/solaris/native/sun/awt/ src/solaris/classes/sun/awt/motif/ BEGIN COMMENT Fix for 4033837 : Scrollpane doesn't receive key events Fix for 4646300 : JCK1.4: api/java_awt/interactive/event/EventTests.html#EventTest0019, Linux Made ScrollPane be able to listen to mouse, focus and key events in all configurations with and without child. Fixed the problem of restoring focus in container after resize Fixed by: ###@###.### Reviewed by: Mike Bronson, Valeriy Ushakov(###@###.###), Danila Sinopalnikov(###@###.###) END COMMENT update: src/solaris/native/sun/awt/awt_Component.c update: src/solaris/native/sun/awt/canvas.c update: src/solaris/native/sun/awt/awt_util.c update: src/solaris/native/sun/awt/awt_ScrollPane.c update: src/solaris/native/sun/awt/awt_TopLevel.c update: src/solaris/native/sun/awt/awt_TopLevel.h update: src/solaris/classes/sun/awt/motif/MScrollbarPeer.java CWD /net/jano/export/disk26/awt/russia/Hopper.AWT RELEASE 2.1 HOST iceflow USER pz71691 PARENT_WORKSPACE (/java/jdk/ws/AWT/AWT-Hopper) (jdk.SFBay.Sun.COM:/export/disk2/ws/AWT/AWT-Hopper) CHILD_WORKSPACE (/net/jano/export/disk26/awt/russia/Hopper.AWT) (jano:/export/disk26/awt/russia/Hopper.AWT) START (Mon Apr 1 13:00:00 2002 PDT) (Mon Apr 1 21:00:00 2002 GMT) END (Mon Apr 1 13:00:34 2002 PDT) (Mon Apr 1 21:00:34 2002 GMT) STATUS 0 ###@###.### 2002-06-07 Name: dmR10075 Date: 06/11/2002 My investigation have shown the following: 1. The test could be minimized to only two important tests - Robot GUI and AwtMemoryLeak GUI. AwtMemoryLeak performs Widget corruption, while Robot detects that corruption. 2.In AwtMemoryLeak test, the most important is DialogTest - this test shows and disposes dialog. I didn't see any problem with FrameTest or WindowTest. 3. When test first disposes Dialog then owning Frame, on native level we see that for Dialog both Dialog AWT native data are being destroyed and then widget destroy callback is being called. After that, if everything is correct, the same should happend with frame. However, what happens is that Frame's widget becomes destroyed along with Dialog's widget without corresponding call to Frame's dispose and this leaves stale Frame widget in our top-level list and this is the widget which is being accessed from, for example, awt_WidgetAtXY. I've not yet found who destroys Frame's widget. ###@###.### 2002-06-11 ====================================================================== Name: dmR10075 Date: 06/13/2002 The bug was caused by the fix: D 1.77.1.3 02/03/21 10:44:24 pz71691 175 173 00222/00126/04002 MRs: ====================================================================== Name: dmR10075 Date: 06/13/2002 The bug was caused by the fix: D 1.77.1.3 02/03/21 10:44:24 pz71691 175 173 00222/00126/04002 MRs: >COMMENTS: Fixed 4511021 - Revisit how KeyboardFocusManager clears its fields 4483839 - Memory leak in DefaultKeyboardFocusManager 4604625 - windowLostFocus & windowDeactivated events are not triggered for Frame.dispose() Fixed by Oleg Sukhodoslky (###@###.###) Reviewed by Michael Martak, Michael Bronson, Valeriy Ushakov(###@###.###) in file awt_TopLevel.c We decided to delay the destruction of top-level widgets until after all pending X events will be processed. However, some top-levels we dispose at once. In our case, the test first disposes Dialog then Frame. Dialog has X window so we delay its disposal. Frame doesn't have X window so we dispose it at once, and because Dialog's transient shell is a child of Frame's shell Xt destroy Dialog's shell as well leaving our internal structures unupdated. ###@###.### 2002-06-13 ======================================================================
13-06-2002