Merge jdk7-b48
authorduke
Wed, 05 Jul 2017 16:47:27 +0200
changeset 2001 1bf51a4c2627
parent 2000 ff1411dc54e9 (diff)
parent 1927 8b24486bc4f1 (current diff)
child 2002 7b2e683b7c36
child 2003 073e31b93bb0
child 2004 6eb7972fec09
child 2035 4f1ffdb5b2a2
child 2039 8e06c3b9ec6e
child 2041 a00ac25cb702
child 2043 d9cfdc5370b1
child 2045 9e4d64791991
child 2047 12d66066c9b7
child 2087 a23387316b43
Merge
--- a/.hgtags-top-repo	Wed Jul 05 16:46:57 2017 +0200
+++ b/.hgtags-top-repo	Wed Jul 05 16:47:27 2017 +0200
@@ -21,3 +21,4 @@
 a395e3aac4744cc9033fcd819fad1239a45add52 jdk7-b44
 99846f001ca214015578d593802d26e27246a802 jdk7-b45
 e8a2a4d187773a62f3309b0fa265c13425bc2258 jdk7-b46
+d7744e86dedc21a8ecf6bdb73eb191b8eaf5b0da jdk7-b47
--- a/corba/.hgtags	Wed Jul 05 16:46:57 2017 +0200
+++ b/corba/.hgtags	Wed Jul 05 16:47:27 2017 +0200
@@ -21,3 +21,4 @@
 9803dac7254041b30ca65e3852d4c566b9757c3b jdk7-b44
 68814aa5b44b1f16931a97e7cd4028c70eb9586b jdk7-b45
 1691dbfc08f8ee3f4e23a1ff30cdff920718696c jdk7-b46
+167ad0164301f318b069a947e1c9c07ed667748a jdk7-b47
--- a/hotspot/.hgtags	Wed Jul 05 16:46:57 2017 +0200
+++ b/hotspot/.hgtags	Wed Jul 05 16:47:27 2017 +0200
@@ -21,3 +21,4 @@
 809e899c638bd9b21836abf9d09ab2a30ff3900b jdk7-b44
 945bf754069766e76873c53102fae48abf04cf5b jdk7-b45
 16bb38eeda35b46268eefa4c1f829eb086e0ca46 jdk7-b46
+fcb923bad68e2b10380a030ea83a723f4dc3d4d6 jdk7-b47
--- a/jaxp/.hgtags	Wed Jul 05 16:46:57 2017 +0200
+++ b/jaxp/.hgtags	Wed Jul 05 16:47:27 2017 +0200
@@ -21,3 +21,4 @@
 b203df0741af3eb08687bc5eb798bac87363758d jdk7-b44
 0f113667880d335cfa2c35721b1b45144fb757f5 jdk7-b45
 b2271877894af809b7703767fe8d4e38591a02a2 jdk7-b46
+d711ad1954b294957737ea386cfd4d3c05028a36 jdk7-b47
--- a/jaxws/.hgtags	Wed Jul 05 16:46:57 2017 +0200
+++ b/jaxws/.hgtags	Wed Jul 05 16:47:27 2017 +0200
@@ -21,3 +21,4 @@
 344485a03674b6950a7a23d01a6efb8055afb6ec jdk7-b44
 dea7753d713936c5b6fd942a91811b0676537fd0 jdk7-b45
 af4a3eeb7812a5d09a241c50b51b3c648a9d45c1 jdk7-b46
+223011570edbd49bb0fe51cdeb2089f95d305267 jdk7-b47
--- a/jdk/.hgtags	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/.hgtags	Wed Jul 05 16:47:27 2017 +0200
@@ -21,3 +21,4 @@
 d8eb2738db6b148911177d9bcfe888109b7f2f71 jdk7-b44
 527b426497a259d0605d069e3930e838948531a6 jdk7-b45
 4b03e27a44090d1f646af28dc58f9ead827e24c7 jdk7-b46
+b4ac413b1f129eeef0acab3f31081c1b7dfe3b27 jdk7-b47
--- a/jdk/make/sun/awt/FILES_c_windows.gmk	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/make/sun/awt/FILES_c_windows.gmk	Wed Jul 05 16:47:27 2017 +0200
@@ -153,7 +153,6 @@
 	awt_Menu.cpp \
 	awt_MenuBar.cpp \
 	awt_MenuItem.cpp \
-	awt_MMStub.cpp \
 	awt_MouseEvent.cpp \
 	awt_Object.cpp \
 	awt_Palette.cpp \
@@ -171,7 +170,6 @@
 	awt_TextComponent.cpp \
 	awt_TextField.cpp \
 	awt_Toolkit.cpp \
-	awt_Unicode.cpp \
 	awt_Window.cpp \
 	awt_Win32GraphicsEnv.cpp \
 	awt_Win32GraphicsDevice.cpp \
@@ -202,6 +200,4 @@
 	ThemeReader.cpp \
 	ComCtl32Util.cpp \
 	initIDs.cpp \
-	awt_dlls.cpp \
-	UnicowsLoader.cpp \
 	MouseInfo.cpp
--- a/jdk/make/sun/awt/Makefile	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/make/sun/awt/Makefile	Wed Jul 05 16:47:27 2017 +0200
@@ -47,7 +47,7 @@
 # sun/awt/resources       handled by java/awt/Makefile
 # sun/java2d/pisces       handled by sun/pisces/Makefile
 #
-AUTO_FILES_JAVA_DIRS = sun/awt sun/java2d
+AUTO_FILES_JAVA_DIRS = sun/awt sun/java2d com/sun/awt
 AUTO_JAVA_PRUNE = resources pisces
 
 ifeq ($(PLATFORM), windows)
@@ -247,8 +247,14 @@
 ifeq ($(PLATFORM), windows)
 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv WINDOWS
 OTHER_LDLIBS = kernel32.lib user32.lib gdi32.lib winspool.lib \
-               imm32.lib ole32.lib uuid.lib $(JVMLIB) \
-               shell32.lib
+               imm32.lib ole32.lib uuid.lib shell32.lib \
+               comdlg32.lib winmm.lib comctl32.lib delayimp.lib \
+               $(JVMLIB) \
+               /DELAYLOAD:user32.dll /DELAYLOAD:gdi32.dll \
+               /DELAYLOAD:shell32.dll /DELAYLOAD:winmm.dll \
+               /DELAYLOAD:winspool.drv /DELAYLOAD:imm32.dll \
+               /DELAYLOAD:ole32.dll /DELAYLOAD:comdlg32.dll \
+               /DELAYLOAD:comctl32.dll
 
 clean:: awt.clean
 
--- a/jdk/make/sun/awt/make.depend	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/make/sun/awt/make.depend	Wed Jul 05 16:47:27 2017 +0200
@@ -14,141 +14,135 @@
 
 $(OBJDIR)/AnyShort.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
 
-$(OBJDIR)/awt_AWTEvent.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_AWTEvent.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_BitmapUtil.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_BitmapUtil.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_BitmapUtil.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_BitmapUtil.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_Brush.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_Brush.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_Button.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Button.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WButtonPeer.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Button.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_Button.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Button.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WButtonPeer.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Button.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_Canvas.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsConfig.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_Canvas.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsConfig.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_Checkbox.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Checkbox.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WCheckboxPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Checkbox.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_Checkbox.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Checkbox.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WCheckboxPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Checkbox.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_Choice.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Choice.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WChoicePeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Choice.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_Choice.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Choice.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WChoicePeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Choice.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_Clipboard.obj::	$(CLASSHDRDIR)/sun_awt_windows_WClipboard.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Clipboard.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_Clipboard.obj::	$(CLASSHDRDIR)/sun_awt_windows_WClipboard.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Clipboard.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_Color.obj::	$(CLASSHDRDIR)/sun_awt_windows_WColor.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Color.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_Color.obj::	$(CLASSHDRDIR)/sun_awt_windows_WColor.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Color.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_Component.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Color.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_InputMethodEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_MouseWheelEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Insets.h $(CLASSHDRDIR)/java_awt_KeyboardFocusManager.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WInputMethod.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPanelPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_InputEvent.h ../../../src/windows/native/sun/windows/awt_InputTextInfor.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_KeyEvent.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_MouseEvent.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_Component.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Color.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_InputMethodEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_MouseWheelEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Insets.h $(CLASSHDRDIR)/java_awt_KeyboardFocusManager.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WInputMethod.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPanelPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_InputEvent.h ../../../src/windows/native/sun/windows/awt_InputTextInfor.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_KeyEvent.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MouseEvent.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_Container.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_Container.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_Cursor.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Cursor.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WCustomCursor.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WGlobalCursorManager.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_Cursor.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Cursor.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WCustomCursor.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WGlobalCursorManager.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_DataTransferer.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_datatransfer_DataTransferer.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDataTransferer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/common/locale_str.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_dlls.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_DataTransferer.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_datatransfer_DataTransferer.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDataTransferer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/common/locale_str.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_Debug.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_Debug.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
 $(OBJDIR)/awt_Desktop.obj::	../../../src/share/javavm/export/jni.h ../../../src/windows/javavm/export/jni_md.h
 
-$(OBJDIR)/awt_DesktopProperties.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDesktopProperties.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DesktopProperties.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_dlls.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_DesktopProperties.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDesktopProperties.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DesktopProperties.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_Dialog.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_Dialog.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_Dimension.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_Dimension.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_dlls.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_dlls.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_DnDDS.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_dnd_DnDConstants.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_dnd_SunDragSourceContextPeer.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDragSourceContextPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DnDDS.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_DnDDS.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_dnd_DnDConstants.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_dnd_SunDragSourceContextPeer.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDragSourceContextPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DnDDS.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_DnDDT.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_dnd_DnDConstants.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDropTargetContextPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_DnDDS.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_DnDDT.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_dnd_DnDConstants.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDropTargetContextPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_dlls.h ../../../src/windows/native/sun/windows/awt_DnDDS.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_DrawingSurface.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jawt_md.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DrawingSurface.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_DrawingSurface.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jawt_md.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DrawingSurface.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_Event.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Event.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_Event.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Event.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_FileDialog.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_FileDialog.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_dlls.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_Font.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDefaultFontCharset.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFontPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_Font.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDefaultFontCharset.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFontPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
-
-$(OBJDIR)/awt_Frame.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/java_lang_Integer.h $(CLASSHDRDIR)/sun_awt_EmbeddedFrame.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WEmbeddedFrame.h $(CLASSHDRDIR)/sun_awt_windows_WEmbeddedFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_Frame.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/java_lang_Integer.h $(CLASSHDRDIR)/sun_awt_EmbeddedFrame.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WEmbeddedFrame.h $(CLASSHDRDIR)/sun_awt_windows_WEmbeddedFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_GDIObject.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_GDIObject.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_IconCursor.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_IconCursor.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
 $(OBJDIR)/awt_ImageRep.obj::	$(CLASSHDRDIR)/sun_awt_image_ImageRepresentation.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/awt_parseImage.h ../../../src/share/native/sun/awt/image/imageInitIDs.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
 
 $(OBJDIR)/awt_ImagingLib.obj::	$(CLASSHDRDIR)/java_awt_color_ColorSpace.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_image_BufferedImage.h $(CLASSHDRDIR)/java_awt_image_ConvolveOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_image_ImagingLib.h $(CLASSHDRDIR)/sun_awt_image_IntegerComponentRaster.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/awt_parseImage.h ../../../src/share/native/sun/awt/image/imageInitIDs.h ../../../src/share/native/sun/awt/medialib/awt_ImagingLib.h ../../../src/share/native/sun/awt/medialib/mlib_image_get.h ../../../src/share/native/sun/awt/medialib/mlib_image_types.h ../../../src/share/native/sun/awt/medialib/mlib_status.h ../../../src/share/native/sun/awt/medialib/mlib_types.h ../../../src/share/native/sun/awt/medialib/safe_alloc.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/awt_Mlib.h
 
-$(OBJDIR)/awt_InputEvent.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_InputEvent.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_InputEvent.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_InputEvent.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_InputMethod.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputMethodEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WInputMethod.h $(CLASSHDRDIR)/sun_awt_windows_WInputMethodDescriptor.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/common/locale_str.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_InputMethod.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputMethodEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WInputMethod.h $(CLASSHDRDIR)/sun_awt_windows_WInputMethodDescriptor.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/common/locale_str.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_InputTextInfor.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_InputTextInfor.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_InputTextInfor.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_InputTextInfor.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_Insets.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_Insets.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_KeyboardFocusManager.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_KeyboardFocusManager.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_KeyboardFocusManager.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_KeyboardFocusManager.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_KeyEvent.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_KeyEvent.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_KeyEvent.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_KeyEvent.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_Label.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Label.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WLabelPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Label.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_Label.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Label.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WLabelPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Label.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_List.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_List.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WListPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_List.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_List.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_List.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WListPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_List.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_Menu.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_Menu.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_MenuBar.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_MenuBar.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_MenuItem.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_CheckboxMenuItem.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCheckboxMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DesktopProperties.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_MenuItem.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_CheckboxMenuItem.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCheckboxMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DesktopProperties.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
 $(OBJDIR)/awt_Mlib.obj::	$(CLASSHDRDIR)/java_awt_image_BufferedImage.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/medialib/awt_ImagingLib.h ../../../src/share/native/sun/awt/medialib/mlib_image_get.h ../../../src/share/native/sun/awt/medialib/mlib_image_types.h ../../../src/share/native/sun/awt/medialib/mlib_status.h ../../../src/share/native/sun/awt/medialib/mlib_types.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Mlib.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_MMStub.obj::	../../../src/windows/native/sun/windows/awt_MMStub.h
+$(OBJDIR)/awt_MouseEvent.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_MouseEvent.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_MouseEvent.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_MouseEvent.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
-
-$(OBJDIR)/awt_new.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_new.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_new.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_new.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_Object.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_Object.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_Palette.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_CustomPaletteDef.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/img_util_md.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_Palette.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_CustomPaletteDef.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/img_util_md.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_Panel.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Panel.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_Panel.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Panel.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
 $(OBJDIR)/awt_parseImage.obj::	$(CLASSHDRDIR)/java_awt_color_ColorSpace.h $(CLASSHDRDIR)/java_awt_image_BufferedImage.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_image_ImagingLib.h $(CLASSHDRDIR)/sun_awt_image_IntegerComponentRaster.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/awt_parseImage.h ../../../src/share/native/sun/awt/image/imageInitIDs.h ../../../src/share/native/sun/awt/medialib/awt_ImagingLib.h ../../../src/share/native/sun/awt/medialib/mlib_image_get.h ../../../src/share/native/sun/awt/medialib/mlib_image_types.h ../../../src/share/native/sun/awt/medialib/mlib_status.h ../../../src/share/native/sun/awt/medialib/mlib_types.h ../../../src/share/native/sun/awt/medialib/safe_alloc.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/awt_Mlib.h
 
-$(OBJDIR)/awt_Pen.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_Pen.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_PopupMenu.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_PopupMenu.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPopupMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Event.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PopupMenu.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_PopupMenu.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_PopupMenu.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPopupMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Event.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PopupMenu.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_PrintControl.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_PrintControl.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_PrintDialog.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPrintDialog.h $(CLASSHDRDIR)/sun_awt_windows_WPrintDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_dlls.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_PrintDialog.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPrintDialog.h $(CLASSHDRDIR)/sun_awt_windows_WPrintDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_PrintJob.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPrinterJob.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_dlls.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_PrintJob.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPrinterJob.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_Rectangle.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Rectangle.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_Rectangle.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Rectangle.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_Robot.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WRobotPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Robot.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_Robot.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WRobotPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Robot.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_Scrollbar.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Scrollbar.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WScrollbarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Scrollbar.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_Scrollbar.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Scrollbar.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WScrollbarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Scrollbar.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_ScrollPane.obj::	$(CLASSHDRDIR)/java_awt_Adjustable.h $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_AdjustmentEvent.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Insets.h $(CLASSHDRDIR)/java_awt_Scrollbar.h $(CLASSHDRDIR)/java_awt_ScrollPane.h $(CLASSHDRDIR)/java_awt_ScrollPaneAdjustable.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WScrollbarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WScrollPanePeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Panel.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Scrollbar.h ../../../src/windows/native/sun/windows/awt_ScrollPane.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_ScrollPane.obj::	$(CLASSHDRDIR)/java_awt_Adjustable.h $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_AdjustmentEvent.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Insets.h $(CLASSHDRDIR)/java_awt_Scrollbar.h $(CLASSHDRDIR)/java_awt_ScrollPane.h $(CLASSHDRDIR)/java_awt_ScrollPaneAdjustable.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WScrollbarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WScrollPanePeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Panel.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Scrollbar.h ../../../src/windows/native/sun/windows/awt_ScrollPane.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_TextArea.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_TextArea.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextAreaPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_dlls.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_TextArea.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_TextArea.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_TextArea.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextAreaPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_TextArea.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_TextComponent.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_TextComponent.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_TextField.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/java_awt_TextField.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextFieldPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_dlls.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_TextField.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_TextField.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/java_awt_TextField.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextFieldPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_TextField.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_Toolkit.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputMethodEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_List.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_ComponentPeer.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_PopupMenu.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WListPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPopupMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jawt_md.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Clipboard.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DesktopProperties.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_DnDDS.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_DrawingSurface.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_InputEvent.h ../../../src/windows/native/sun/windows/awt_KeyEvent.h ../../../src/windows/native/sun/windows/awt_List.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_new.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PopupMenu.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/CmdIDList.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
-
-$(OBJDIR)/awt_TrayIcon.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_ActionEvent.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_TrayIcon.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WTrayIconPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_TrayIcon.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_Toolkit.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputMethodEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_List.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_ComponentPeer.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_PopupMenu.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WListPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPopupMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jawt_md.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Clipboard.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DesktopProperties.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_DnDDS.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_DrawingSurface.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_InputEvent.h ../../../src/windows/native/sun/windows/awt_KeyEvent.h ../../../src/windows/native/sun/windows/awt_List.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_new.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PopupMenu.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/CmdIDList.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_Unicode.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_TrayIcon.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_ActionEvent.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_TrayIcon.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WTrayIconPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_TrayIcon.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_Win32GraphicsConfig.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_DataBuffer.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_Win32GraphicsConfig.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsConfig.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_Win32GraphicsConfig.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_DataBuffer.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_Win32GraphicsConfig.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsConfig.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_Win32GraphicsDevice.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_color_ColorSpace.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_image_DataBuffer.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_Win32GraphicsDevice.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/awt/image/dither.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_dlls.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/img_util_md.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_Win32GraphicsDevice.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_color_ColorSpace.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_image_DataBuffer.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_Win32GraphicsDevice.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/awt/image/dither.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/img_util_md.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_Win32GraphicsEnv.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_Win32GraphicsEnvironment.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_Win32GraphicsEnv.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_Win32GraphicsEnvironment.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/awt_Window.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Container.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_ComponentEvent.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Insets.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_BitmapUtil.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_dlls.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Panel.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/awt_Window.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Container.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_ComponentEvent.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Insets.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_BitmapUtil.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Panel.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
 $(OBJDIR)/Blit.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_Blit.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
 
@@ -170,9 +164,9 @@
 
 $(OBJDIR)/ByteIndexed.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
 
-$(OBJDIR)/CmdIDList.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/CmdIDList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/CmdIDList.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/CmdIDList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/ComCtl32Util.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/ComCtl32Util.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
 $(OBJDIR)/D3DBlitLoops.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DBlitLoops.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntBgr.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/Ushort555Rgb.h ../../../src/share/native/sun/java2d/loops/Ushort565Rgb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBlitLoops.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h
 
@@ -182,7 +176,7 @@
 
 $(OBJDIR)/D3DGlyphCache.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGlyphCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h
 
-$(OBJDIR)/D3DGraphicsDevice.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DGraphicsDevice.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGraphicsDevice.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/D3DGraphicsDevice.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DGraphicsDevice.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGraphicsDevice.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
 $(OBJDIR)/D3DMaskBlit.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskBlit.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h
 
@@ -192,15 +186,15 @@
 
 $(OBJDIR)/D3DPaints.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h
 
-$(OBJDIR)/D3DPipelineManager.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBadHardware.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/D3DPipelineManager.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBadHardware.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
 $(OBJDIR)/D3DRenderer.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DRenderer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h
 
-$(OBJDIR)/D3DRenderQueue.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DBlitLoops.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedOpCodes.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBlitLoops.h ../../../src/windows/native/sun/java2d/d3d/D3DBufImgOps.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskBlit.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskFill.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/D3DRenderQueue.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DBlitLoops.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedOpCodes.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBlitLoops.h ../../../src/windows/native/sun/java2d/d3d/D3DBufImgOps.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskBlit.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskFill.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/D3DResourceManager.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/D3DResourceManager.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/D3DSurfaceData.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_BitmapUtil.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/D3DSurfaceData.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_BitmapUtil.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
 $(OBJDIR)/D3DTextRenderer.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DTextRenderer.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGlyphCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h
 
@@ -216,7 +210,7 @@
 
 $(OBJDIR)/debug_util.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
 
-$(OBJDIR)/Devices.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/Devices.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
 $(OBJDIR)/Disposer.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
 
@@ -240,19 +234,19 @@
 
 $(OBJDIR)/FourByteAbgrPre.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any4Byte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/FourByteAbgrPre.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
 
-$(OBJDIR)/GDIBlitLoops.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_windows_GDIBlitLoops.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/GDIBlitLoops.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_windows_GDIBlitLoops.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/GDIHashtable.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_dlls.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/GDIHashtable.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/GDIRenderer.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_geom_PathIterator.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_windows_GDIRenderer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/GDIRenderer.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_geom_PathIterator.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_windows_GDIRenderer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/GDIWindowSurfaceData.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_windows_GDIWindowSurfaceData.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/GDIWindowSurfaceData.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_windows_GDIWindowSurfaceData.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
 $(OBJDIR)/gifdecoder.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
 
 $(OBJDIR)/GraphicsPrimitiveMgr.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_GraphicsPrimitiveMgr.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
 
-$(OBJDIR)/Hashtable.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/Hashtable.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
 $(OBJDIR)/imageInitIDs.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/imageInitIDs.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
 
@@ -282,9 +276,9 @@
 
 $(OBJDIR)/MaskFill.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_MaskFill.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
 
-$(OBJDIR)/MouseInfo.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/MouseInfo.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/ObjectList.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/ObjectList.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
 $(OBJDIR)/OGLBlitLoops.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLBlitLoops.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/OGLBlitLoops.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
 
@@ -320,13 +314,13 @@
 
 $(OBJDIR)/ShapeSpanIterator.obj::	$(CLASSHDRDIR)/java_awt_geom_PathIterator.h $(CLASSHDRDIR)/sun_java2d_pipe_ShapeSpanIterator.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/pipe/PathConsumer2D.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
 
-$(OBJDIR)/ShellFolder2.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/ShellFolder2.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
 $(OBJDIR)/SpanClipRenderer.obj::	$(CLASSHDRDIR)/sun_java2d_pipe_RegionIterator.h $(CLASSHDRDIR)/sun_java2d_pipe_SpanClipRenderer.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
 
 $(OBJDIR)/SurfaceData.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
 
-$(OBJDIR)/ThemeReader.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_ThemeReader.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/ThemeReader.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_ThemeReader.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
 $(OBJDIR)/ThreeByteBgr.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any3Byte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
 
@@ -334,8 +328,6 @@
 
 $(OBJDIR)/TransformHelper.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_loops_TransformHelper.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
 
-$(OBJDIR)/UnicowsLoader.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
-
 $(OBJDIR)/Ushort4444Argb.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/Ushort4444Argb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
 
 $(OBJDIR)/Ushort555Rgb.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/Ushort555Rgb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
@@ -352,6 +344,6 @@
 
 $(OBJDIR)/WGLSurfaceData.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_opengl_WGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h ../../../src/windows/native/sun/java2d/opengl/WGLGraphicsConfig.h ../../../src/windows/native/sun/java2d/opengl/WGLSurfaceData.h
 
-$(OBJDIR)/WindowsFlags.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/WindowsFlags.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h
 
-$(OBJDIR)/WPrinterJob.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_dlls.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
+$(OBJDIR)/WPrinterJob.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
--- a/jdk/make/sun/jawt/make.depend	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/make/sun/jawt/make.depend	Wed Jul 05 16:47:27 2017 +0200
@@ -1,1 +1,1 @@
-$(OBJDIR)/jawt.obj::	$(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_AWTEvent.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_Component.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_Dimension.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_Event.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_Font.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_PlatformFont.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jawt_md.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/UnicowsLoader.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DrawingSurface.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/stdhdrs.h
+$(OBJDIR)/jawt.obj::	$(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_AWTEvent.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_Component.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_Dimension.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_Event.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_Font.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_PlatformFont.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jawt_md.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DrawingSurface.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/stdhdrs.h
--- a/jdk/make/sun/splashscreen/Makefile	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/make/sun/splashscreen/Makefile	Wed Jul 05 16:47:27 2017 +0200
@@ -67,7 +67,7 @@
   OTHER_LDLIBS += -L$(OPENWIN_LIB) -lX11 -lXext $(LIBM) -lpthread
 else # PLATFORM
   CFLAGS += -DWITH_WIN32
-  OTHER_LDLIBS += kernel32.lib user32.lib gdi32.lib 
+  OTHER_LDLIBS += kernel32.lib user32.lib gdi32.lib delayimp.lib /DELAYLOAD:user32.dll
 #$(JVMLIB) $(OBJDIR)/../../jpeg/$(OBJDIRNAME)/jpeg$(SUFFIX).lib
 endif # PLATFORM
 
@@ -85,13 +85,6 @@
 CPPFLAGS += -I$(PLATFORM_SRC)/native/$(PKGDIR)/splashscreen -I$(SHARE_SRC)/native/$(PKGDIR)/splashscreen
 CPPFLAGS += -I$(SHARE_SRC)/native/$(PKGDIR)/image/jpeg -I$(SHARE_SRC)/native/java/util/zip/zlib-1.1.3
 
-ifeq ($(PLATFORM), linux)
-  ifeq ($(ARCH_DATA_MODEL), 64)
-    # 64-bit gcc has problems compiling MMX instructions.
-    # Google it for more details. Possibly the newer versions of
-    # the PNG-library and/or the new compiler will not need this
-    # option in the future.
-    CPPFLAGS += -DPNG_NO_MMX_CODE
-  endif
-endif
-
+# Shun the less than portable MMX assembly code in pnggccrd.c,
+# and use alternative implementations in C.
+CPPFLAGS += -DPNG_NO_MMX_CODE
--- a/jdk/make/sun/xawt/mapfile-vers	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/make/sun/xawt/mapfile-vers	Wed Jul 05 16:47:27 2017 +0200
@@ -151,6 +151,7 @@
         Java_sun_awt_X11_XRobotPeer_mouseReleaseImpl;
         Java_sun_awt_X11_XRobotPeer_mouseWheelImpl;
         Java_sun_awt_X11_XRobotPeer_setup;
+        Java_sun_awt_X11_XRobotPeer_getNumberOfButtonsImpl;
         Java_java_awt_Component_initIDs;
         Java_java_awt_Container_initIDs;
         Java_java_awt_Button_initIDs;
@@ -288,6 +289,7 @@
         Java_sun_awt_X11_XlibWrapper_XGetIconSizes;
         Java_sun_awt_X11_XlibWrapper_XKeycodeToKeysym;
         Java_sun_awt_X11_XlibWrapper_XKeysymToKeycode;
+        Java_sun_awt_X11_XlibWrapper_XQueryKeymap;
         Java_sun_awt_X11_XlibWrapper_XGetModifierMapping;
         Java_sun_awt_X11_XlibWrapper_XFreeModifiermap;        
         Java_sun_awt_X11_XlibWrapper_XChangeActivePointerGrab;
--- a/jdk/make/tools/sharing/classlist.linux	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/make/tools/sharing/classlist.linux	Wed Jul 05 16:47:27 2017 +0200
@@ -1718,6 +1718,7 @@
 sun/awt/color/CMM
 java/applet/Applet
 java/awt/Panel
+com/sun/awt/AWTUtilities
 javax/swing/KeyboardManager$ComponentKeyStrokePair
 sun/awt/EmbeddedFrame
 sun/awt/im/InputMethodContext
--- a/jdk/make/tools/sharing/classlist.solaris	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/make/tools/sharing/classlist.solaris	Wed Jul 05 16:47:27 2017 +0200
@@ -961,6 +961,7 @@
 javax/swing/SystemEventQueueUtilities$ComponentWorkRequest
 java/applet/Applet
 java/awt/Panel
+com/sun/awt/AWTUtilities
 sun/awt/X11/XExposeEvent
 java/util/jar/Manifest
 java/io/ByteArrayInputStream
--- a/jdk/make/tools/sharing/classlist.windows	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/make/tools/sharing/classlist.windows	Wed Jul 05 16:47:27 2017 +0200
@@ -1621,6 +1621,7 @@
 sun/font/FontDesignMetrics$MetricsKey
 java/applet/Applet
 java/awt/Panel
+com/sun/awt/AWTUtilities
 javax/swing/KeyboardManager$ComponentKeyStrokePair
 sun/awt/im/InputMethodContext
 java/awt/im/spi/InputMethodContext
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/com/sun/awt/AWTUtilities.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,104 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package com.sun.awt;
+
+import java.awt.*;
+import sun.awt.AWTAccessor;
+
+
+/**
+ * A collection of utility methods for AWT.
+ *
+ * The functionality provided by the static methods of the class includes:
+ * <ul>
+ * <li>Setting a 'mixing-cutout' shape for a component.
+ * </ul>
+ * <p>
+ * <b>WARNING</b>: This class is an implementation detail and only meant
+ * for limited use outside of the core platform. This API may change
+ * drastically between update release, and it may even be
+ * removed or be moved in some other package(s)/class(es).
+ */
+public final class AWTUtilities {
+
+    /**
+     * The AWTUtilities class should not be instantiated
+     */
+    private AWTUtilities() {
+    }
+
+    /**
+     * Sets a 'mixing-cutout' shape for the given component.
+     *
+     * By default a lightweight component is treated as an opaque rectangle for
+     * the purposes of the Heavyweight/Lightweight Components Mixing feature.
+     * This method enables developers to set an arbitrary shape to be cut out
+     * from heavyweight components positioned underneath the lightweight
+     * component in the z-order.
+     * <p>
+     * The {@code shape} argument may have the following values:
+     * <ul>
+     * <li>{@code null} - reverts the default cutout shape (the rectangle equal
+     * to the component's {@code getBounds()})
+     * <li><i>empty-shape</i> - does not cut out anything from heavyweight
+     * components. This makes the given lightweight component effectively
+     * transparent. Note that descendants of the lightweight component still
+     * affect the shapes of heavyweight components.  An example of an
+     * <i>empty-shape</i> is {@code new Rectangle()}.
+     * <li><i>non-empty-shape</i> - the given shape will be cut out from
+     * heavyweight components.
+     * </ul>
+     * <p>
+     * The most common example when the 'mixing-cutout' shape is needed is a
+     * glass pane component. The {@link JRootPane#setGlassPane()} method
+     * automatically sets the <i>empty-shape</i> as the 'mixing-cutout' shape
+     * for the given glass pane component.  If a developer needs some other
+     * 'mixing-cutout' shape for the glass pane (which is rare), this must be
+     * changed manually after installing the glass pane to the root pane.
+     * <p>
+     * Note that the 'mixing-cutout' shape neither affects painting, nor the
+     * mouse events handling for the given component. It is used exclusively
+     * for the purposes of the Heavyweight/Lightweight Components Mixing
+     * feature.
+     *
+     * @param component the component that needs non-default
+     * 'mixing-cutout' shape
+     * @param shape the new 'mixing-cutout' shape
+     * @throws NullPointerException if the component argument is {@code null}
+     */
+    public static void setComponentMixingCutoutShape(Component component,
+            Shape shape)
+    {
+        if (component == null) {
+            throw new NullPointerException(
+                    "The component argument should not be null.");
+        }
+
+        AWTAccessor.getComponentAccessor().setMixingCutoutShape(component,
+                shape);
+    }
+}
+
--- a/jdk/src/share/classes/java/awt/Choice.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/Choice.java	Wed Jul 05 16:47:27 2017 +0200
@@ -228,7 +228,7 @@
         pItems.insertElementAt(item, index);
         ChoicePeer peer = (ChoicePeer)this.peer;
         if (peer != null) {
-            peer.addItem(item, index);
+            peer.add(item, index);
         }
         // no selection or selection shifted up
         if (selectedIndex < 0 || selectedIndex >= index) {
--- a/jdk/src/share/classes/java/awt/Component.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/Component.java	Wed Jul 05 16:47:27 2017 +0200
@@ -65,8 +65,10 @@
 
 import sun.security.action.GetPropertyAction;
 import sun.awt.AppContext;
+import sun.awt.AWTAccessor;
 import sun.awt.ConstrainableGraphics;
 import sun.awt.SubRegionShowable;
+import sun.awt.SunToolkit;
 import sun.awt.WindowClosingListener;
 import sun.awt.CausedFocusEvent;
 import sun.awt.EmbeddedFrame;
@@ -758,22 +760,26 @@
      * The shape set with the applyCompoundShape() method. It uncludes the result
      * of the HW/LW mixing related shape computation. It may also include
      * the user-specified shape of the component.
+     * The 'null' value means the component has normal shape (or has no shape at all)
+     * and applyCompoundShape() will skip the following shape identical to normal.
      */
     private transient Region compoundShape = null;
 
     /*
+     * Represents the shape of this lightweight component to be cut out from
+     * heavyweight components should they intersect. Possible values:
+     *    1. null - consider the shape rectangular
+     *    2. EMPTY_REGION - nothing gets cut out (children still get cut out)
+     *    3. non-empty - this shape gets cut out.
+     */
+    private transient Region mixingCutoutRegion = null;
+
+    /*
      * Indicates whether addNotify() is complete
      * (i.e. the peer is created).
      */
     private transient boolean isAddNotifyComplete = false;
 
-    private static final PropertyChangeListener opaquePropertyChangeListener =
-        new PropertyChangeListener() {
-            public void propertyChange(java.beans.PropertyChangeEvent evt) {
-                ((Component)evt.getSource()).mixOnOpaqueChanging();
-            }
-        };
-
     /**
      * Should only be used in subclass getBounds to check that part of bounds
      * is actualy changing
@@ -793,6 +799,39 @@
             }
     }
 
+    static {
+        AWTAccessor.setComponentAccessor(new AWTAccessor.ComponentAccessor() {
+            public void setMixingCutoutShape(Component comp, Shape shape) {
+                Region region = shape == null ?  null :
+                    Region.getInstance(shape, null);
+
+                synchronized (comp.getTreeLock()) {
+                    boolean needShowing = false;
+                    boolean needHiding = false;
+
+                    if (!comp.isNonOpaqueForMixing()) {
+                        needHiding = true;
+                    }
+
+                    comp.mixingCutoutRegion = region;
+
+                    if (!comp.isNonOpaqueForMixing()) {
+                        needShowing = true;
+                    }
+
+                    if (comp.isMixingNeeded()) {
+                        if (needHiding) {
+                            comp.mixOnHiding(comp.isLightweight());
+                        }
+                        if (needShowing) {
+                            comp.mixOnShowing();
+                        }
+                    }
+                }
+            }
+        });
+    }
+
     /**
      * Constructs a new component. Class <code>Component</code> can be
      * extended directly to create a lightweight component that does not
@@ -1306,7 +1345,7 @@
                 enabled = true;
                 ComponentPeer peer = this.peer;
                 if (peer != null) {
-                    peer.enable();
+                    peer.setEnabled(true);
                     if (visible) {
                         updateCursorImmediately();
                     }
@@ -1355,7 +1394,7 @@
                 }
                 ComponentPeer peer = this.peer;
                 if (peer != null) {
-                    peer.disable();
+                    peer.setEnabled(false);
                     if (visible) {
                         updateCursorImmediately();
                     }
@@ -1447,7 +1486,7 @@
                 mixOnShowing();
                 ComponentPeer peer = this.peer;
                 if (peer != null) {
-                    peer.show();
+                    peer.setVisible(true);
                     createHierarchyEvents(HierarchyEvent.HIERARCHY_CHANGED,
                                           this, parent,
                                           HierarchyEvent.SHOWING_CHANGED,
@@ -1517,7 +1556,7 @@
                 }
                 ComponentPeer peer = this.peer;
                 if (peer != null) {
-                    peer.hide();
+                    peer.setVisible(false);
                     createHierarchyEvents(HierarchyEvent.HIERARCHY_CHANGED,
                                           this, parent,
                                           HierarchyEvent.SHOWING_CHANGED,
@@ -2414,7 +2453,7 @@
         if (dim == null || !(isPreferredSizeSet() || isValid())) {
             synchronized (getTreeLock()) {
                 prefSize = (peer != null) ?
-                    peer.preferredSize() :
+                    peer.getPreferredSize() :
                     getMinimumSize();
                 dim = prefSize;
             }
@@ -2484,7 +2523,7 @@
         if (dim == null || !(isMinimumSizeSet() || isValid())) {
             synchronized (getTreeLock()) {
                 minSize = (peer != null) ?
-                    peer.minimumSize() :
+                    peer.getMinimumSize() :
                     size();
                 dim = minSize;
             }
@@ -3171,7 +3210,7 @@
     private Insets getInsets_NoClientCode() {
         ComponentPeer peer = this.peer;
         if (peer instanceof ContainerPeer) {
-            return (Insets)((ContainerPeer)peer).insets().clone();
+            return (Insets)((ContainerPeer)peer).getInsets().clone();
         }
         return new Insets(0, 0, 0, 0);
     }
@@ -6643,7 +6682,6 @@
             }
 
             if (!isAddNotifyComplete) {
-                addPropertyChangeListener("opaque", opaquePropertyChangeListener);
                 mixOnShowing();
             }
 
@@ -6722,7 +6760,7 @@
 
                 // Hide peer first to stop system events such as cursor moves.
                 if (visible) {
-                    p.hide();
+                    p.setVisible(false);
                 }
 
                 peer = null; // Stop peer updates.
@@ -6735,9 +6773,11 @@
                 p.dispose();
 
                 mixOnHiding(isLightweight);
-                removePropertyChangeListener("opaque", opaquePropertyChangeListener);
 
                 isAddNotifyComplete = false;
+                // Nullifying compoundShape means that the component has normal shape
+                // (or has no shape at all).
+                this.compoundShape = null;
             }
 
             if (hierarchyListener != null ||
@@ -9401,10 +9441,9 @@
      * Null-layout of the container or absence of the container mean
      * the bounds of the component are final and can be trusted.
      */
-    private boolean areBoundsValid() {
+    final boolean areBoundsValid() {
         Container cont = getContainer();
-        return cont == null || cont.isValid()
-            || cont.getLayout() == null;
+        return cont == null || cont.isValid() || cont.getLayout() == null;
     }
 
     /**
@@ -9413,6 +9452,14 @@
      */
     void applyCompoundShape(Region shape) {
         checkTreeLock();
+
+        if (!areBoundsValid()) {
+            if (mixingLog.isLoggable(Level.FINE)) {
+                mixingLog.fine("this = " + this + "; areBoundsValid = " + areBoundsValid());
+            }
+            return;
+        }
+
         if (!isLightweight()) {
             ComponentPeer peer = getPeer();
             if (peer != null) {
@@ -9422,22 +9469,31 @@
                 // with some incorrect Region object with loX being
                 // greater than the hiX for instance.
                 if (shape.isEmpty()) {
-                    shape = Region.getInstanceXYWH(0, 0, 0, 0);
+                    shape = Region.EMPTY_REGION;
                 }
 
+
                 // Note: the shape is not really copied/cloned. We create
                 // the Region object ourselves, so there's no any possibility
                 // to modify the object outside of the mixing code.
-                this.compoundShape = shape;
-
-                if (areBoundsValid()) {
+                // Nullifying compoundShape means that the component has normal shape
+                // (or has no shape at all).
+                if (shape.equals(getNormalShape())) {
+                    if (this.compoundShape == null) {
+                        return;
+                    }
+                    this.compoundShape = null;
+                    peer.applyShape(null);
+                } else {
+                    if (shape.equals(getAppliedShape())) {
+                        return;
+                    }
+                    this.compoundShape = shape;
                     Point compAbsolute = getLocationOnWindow();
-
                     if (mixingLog.isLoggable(Level.FINER)) {
                         mixingLog.fine("this = " + this +
-                            "; compAbsolute=" + compAbsolute + "; shape=" + shape);
+                                "; compAbsolute=" + compAbsolute + "; shape=" + shape);
                     }
-
                     peer.applyShape(shape.getTranslatedRegion(-compAbsolute.x, -compAbsolute.y));
                 }
             }
@@ -9460,7 +9516,7 @@
         Point curLocation = getLocation();
 
         for (Container parent = getContainer();
-                parent != null;
+                parent != null && !(parent instanceof Window);
                 parent = parent.getContainer())
         {
             curLocation.x += parent.getX();
@@ -9486,7 +9542,28 @@
             );
     }
 
-    private int getSiblingIndexAbove() {
+    /**
+     * Returns the "opaque shape" of the component.
+     *
+     * The opaque shape of a lightweight components is the actual shape that
+     * needs to be cut off of the heavyweight components in order to mix this
+     * lightweight component correctly with them.
+     *
+     * The method is overriden in the java.awt.Container to handle non-opaque
+     * containers containing opaque children.
+     *
+     * See 6637655 for details.
+     */
+    Region getOpaqueShape() {
+        checkTreeLock();
+        if (mixingCutoutRegion != null) {
+            return mixingCutoutRegion;
+        } else {
+            return getNormalShape();
+        }
+    }
+
+    final int getSiblingIndexAbove() {
         checkTreeLock();
         Container parent = getContainer();
         if (parent == null) {
@@ -9498,7 +9575,7 @@
         return nextAbove < 0 ? -1 : nextAbove;
     }
 
-    private int getSiblingIndexBelow() {
+    final int getSiblingIndexBelow() {
         checkTreeLock();
         Container parent = getContainer();
         if (parent == null) {
@@ -9510,6 +9587,11 @@
         return nextBelow >= parent.getComponentCount() ? -1 : nextBelow;
     }
 
+    final boolean isNonOpaqueForMixing() {
+        return mixingCutoutRegion != null &&
+            mixingCutoutRegion.isEmpty();
+    }
+
     private Region calculateCurrentShape() {
         checkTreeLock();
         Region s = getNormalShape();
@@ -9532,8 +9614,8 @@
                      * implementation of the Container class.
                      */
                     Component c = cont.getComponent(index);
-                    if (c.isLightweight() && c.isShowing() && c.isOpaque()) {
-                        s = s.getDifference(c.getNormalShape());
+                    if (c.isLightweight() && c.isShowing()) {
+                        s = s.getDifference(c.getOpaqueShape());
                     }
                 }
 
@@ -9558,6 +9640,9 @@
     void applyCurrentShape() {
         checkTreeLock();
         if (!areBoundsValid()) {
+            if (mixingLog.isLoggable(Level.FINE)) {
+                mixingLog.fine("this = " + this + "; areBoundsValid = " + areBoundsValid());
+            }
             return; // Because applyCompoundShape() ignores such components anyway
         }
         if (mixingLog.isLoggable(Level.FINE)) {
@@ -9576,16 +9661,54 @@
         applyCompoundShape(getAppliedShape().getDifference(s));
     }
 
+    private final void applyCurrentShapeBelowMe() {
+        checkTreeLock();
+        Container parent = getContainer();
+        if (parent != null && parent.isShowing()) {
+            // First, reapply shapes of my siblings
+            parent.recursiveApplyCurrentShape(getSiblingIndexBelow());
+
+            // Second, if my container is non-opaque, reapply shapes of siblings of my container
+            Container parent2 = parent.getContainer();
+            while (!parent.isOpaque() && parent2 != null) {
+                parent2.recursiveApplyCurrentShape(parent.getSiblingIndexBelow());
+
+                parent = parent2;
+                parent2 = parent.getContainer();
+            }
+        }
+    }
+
+    final void subtractAndApplyShapeBelowMe() {
+        checkTreeLock();
+        Container parent = getContainer();
+        if (parent != null && isShowing()) {
+            Region opaqueShape = getOpaqueShape();
+
+            // First, cut my siblings
+            parent.recursiveSubtractAndApplyShape(opaqueShape, getSiblingIndexBelow());
+
+            // Second, if my container is non-opaque, cut siblings of my container
+            Container parent2 = parent.getContainer();
+            while (!parent.isOpaque() && parent2 != null) {
+                parent2.recursiveSubtractAndApplyShape(opaqueShape, parent.getSiblingIndexBelow());
+
+                parent = parent2;
+                parent2 = parent.getContainer();
+            }
+        }
+    }
+
     void mixOnShowing() {
         synchronized (getTreeLock()) {
             if (mixingLog.isLoggable(Level.FINE)) {
                 mixingLog.fine("this = " + this);
             }
+            if (!isMixingNeeded()) {
+                return;
+            }
             if (isLightweight()) {
-                Container parent = getContainer();
-                if (parent != null && isShowing() && isOpaque()) {
-                    parent.recursiveSubtractAndApplyShape(getNormalShape(), getSiblingIndexBelow());
-                }
+                subtractAndApplyShapeBelowMe();
             } else {
                 applyCurrentShape();
             }
@@ -9599,12 +9722,12 @@
             if (mixingLog.isLoggable(Level.FINE)) {
                 mixingLog.fine("this = " + this + "; isLightweight = " + isLightweight);
             }
+            if (!isMixingNeeded()) {
+                return;
+            }
             if (isLightweight) {
-                Container parent = getContainer();
-                if (parent != null) {
-                    parent.recursiveApplyCurrentShape(getSiblingIndexBelow());
-                }
-            } //XXX: else applyNormalShape() ???
+                applyCurrentShapeBelowMe();
+            }
         }
     }
 
@@ -9613,11 +9736,11 @@
             if (mixingLog.isLoggable(Level.FINE)) {
                 mixingLog.fine("this = " + this);
             }
+            if (!isMixingNeeded()) {
+                return;
+            }
             if (isLightweight()) {
-                Container parent = getContainer();
-                if (parent != null) {
-                    parent.recursiveApplyCurrentShape(parent.getComponentZOrder(this));
-                }
+                applyCurrentShapeBelowMe();
             } else {
                 applyCurrentShape();
             }
@@ -9633,11 +9756,13 @@
                 mixingLog.fine("this = " + this +
                     "; oldZorder=" + oldZorder + "; newZorder=" + newZorder + "; parent=" + parent);
             }
-
+            if (!isMixingNeeded()) {
+                return;
+            }
             if (isLightweight()) {
                 if (becameHigher) {
-                    if (parent != null && isShowing() && isOpaque()) {
-                        parent.recursiveSubtractAndApplyShape(getNormalShape(), getSiblingIndexBelow(), oldZorder);
+                    if (parent != null && isShowing()) {
+                        parent.recursiveSubtractAndApplyShape(getOpaqueShape(), getSiblingIndexBelow(), oldZorder);
                     }
                 } else {
                     if (parent != null) {
@@ -9653,8 +9778,8 @@
 
                         for (int index = oldZorder; index < newZorder; index++) {
                             Component c = parent.getComponent(index);
-                            if (c.isLightweight() && c.isShowing() && c.isOpaque()) {
-                                shape = shape.getDifference(c.getNormalShape());
+                            if (c.isLightweight() && c.isShowing()) {
+                                shape = shape.getDifference(c.getOpaqueShape());
                             }
                         }
                         applyCompoundShape(shape);
@@ -9664,21 +9789,42 @@
         }
     }
 
-    void mixOnOpaqueChanging() {
-        if (mixingLog.isLoggable(Level.FINE)) {
-            mixingLog.fine("this = " + this);
-        }
-        if (isOpaque()) {
-            mixOnShowing();
-        } else {
-            mixOnHiding(isLightweight());
-        }
-    }
-
     void mixOnValidating() {
         // This method gets overriden in the Container. Obviously, a plain
         // non-container components don't need to handle validation.
     }
 
+    final boolean isMixingNeeded() {
+        if (SunToolkit.getSunAwtDisableMixing()) {
+            if (mixingLog.isLoggable(Level.FINEST)) {
+                mixingLog.finest("this = " + this + "; Mixing disabled via sun.awt.disableMixing");
+            }
+            return false;
+        }
+        if (!areBoundsValid()) {
+            if (mixingLog.isLoggable(Level.FINE)) {
+                mixingLog.fine("this = " + this + "; areBoundsValid = " + areBoundsValid());
+            }
+            return false;
+        }
+        Window window = getContainingWindow();
+        if (window != null) {
+            if (!window.hasHeavyweightDescendants() || !window.hasLightweightDescendants()) {
+                if (mixingLog.isLoggable(Level.FINE)) {
+                    mixingLog.fine("containing window = " + window +
+                            "; has h/w descendants = " + window.hasHeavyweightDescendants() +
+                            "; has l/w descendants = " + window.hasLightweightDescendants());
+                }
+                return false;
+            }
+        } else {
+            if (mixingLog.isLoggable(Level.FINE)) {
+                mixingLog.finest("this = " + this + "; containing window is null");
+            }
+            return false;
+        }
+        return true;
+    }
+
     // ****************** END OF MIXING CODE ********************************
 }
--- a/jdk/src/share/classes/java/awt/Container.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/Container.java	Wed Jul 05 16:47:27 2017 +0200
@@ -343,7 +343,7 @@
         ComponentPeer peer = this.peer;
         if (peer instanceof ContainerPeer) {
             ContainerPeer cpeer = (ContainerPeer)peer;
-            return (Insets)cpeer.insets().clone();
+            return (Insets)cpeer.getInsets().clone();
         }
         return new Insets(0, 0, 0, 0);
     }
@@ -569,7 +569,7 @@
      * @return true if there is at least one heavyweight children in a container, false otherwise
      * @since 1.5
      */
-    private boolean hasHeavyweightDescendants() {
+    final boolean hasHeavyweightDescendants() {
         checkTreeLock();
         return numOfHWComponents > 0;
     }
@@ -580,7 +580,7 @@
      * @return true if there is at least one lightweight children in a container, false otherwise
      * @since 1.7
      */
-    private boolean hasLightweightDescendants() {
+    final boolean hasLightweightDescendants() {
         checkTreeLock();
         return numOfLWComponents > 0;
     }
@@ -3861,6 +3861,28 @@
         return -1;
     }
 
+    /*
+     * This method is overriden to handle opaque children in non-opaque
+     * containers.
+     */
+    @Override
+    final Region getOpaqueShape() {
+        checkTreeLock();
+        if (isLightweight() && isNonOpaqueForMixing()
+                && hasLightweightDescendants())
+        {
+            Region s = Region.EMPTY_REGION;
+            for (int index = 0; index < getComponentCount(); index++) {
+                Component c = getComponent(index);
+                if (c.isLightweight() && c.isShowing()) {
+                    s = s.getUnion(c.getOpaqueShape());
+                }
+            }
+            return s.getIntersection(getNormalShape());
+        }
+        return super.getOpaqueShape();
+    }
+
     final void recursiveSubtractAndApplyShape(Region shape) {
         recursiveSubtractAndApplyShape(shape, getTopmostComponentIndex(), getBottommostComponentIndex());
     }
@@ -3878,6 +3900,15 @@
         if (fromZorder == -1) {
             return;
         }
+        if (shape.isEmpty()) {
+            return;
+        }
+        // An invalid container with not-null layout should be ignored
+        // by the mixing code, the container will be validated later
+        // and the mixing code will be executed later.
+        if (getLayout() != null && !isValid()) {
+            return;
+        }
         for (int index = fromZorder; index <= toZorder; index++) {
             Component comp = getComponent(index);
             if (!comp.isLightweight()) {
@@ -3906,10 +3937,19 @@
         if (fromZorder == -1) {
             return;
         }
+        // An invalid container with not-null layout should be ignored
+        // by the mixing code, the container will be validated later
+        // and the mixing code will be executed later.
+        if (getLayout() != null && !isValid()) {
+            return;
+        }
         for (int index = fromZorder; index <= toZorder; index++) {
             Component comp = getComponent(index);
             if (!comp.isLightweight()) {
                 comp.applyCurrentShape();
+                if (comp instanceof Container && ((Container)comp).getLayout() == null) {
+                    ((Container)comp).recursiveApplyCurrentShape();
+                }
             } else if (comp instanceof Container &&
                     ((Container)comp).hasHeavyweightDescendants()) {
                 ((Container)comp).recursiveApplyCurrentShape();
@@ -3931,7 +3971,7 @@
                 if (comp.isVisible()) {
                     ComponentPeer peer = comp.getPeer();
                     if (peer != null) {
-                        peer.show();
+                        peer.setVisible(true);
                     }
                 }
             }
@@ -3952,7 +3992,7 @@
                 if (comp.isVisible()) {
                     ComponentPeer peer = comp.getPeer();
                     if (peer != null) {
-                        peer.hide();
+                        peer.setVisible(false);
                     }
                 }
             }
@@ -4000,6 +4040,10 @@
                 mixingLog.fine("this = " + this);
             }
 
+            if (!isMixingNeeded()) {
+                return;
+            }
+
             boolean isLightweight = isLightweight();
 
             if (isLightweight && isRecursivelyVisibleUpToHeavyweightContainer()) {
@@ -4034,6 +4078,9 @@
             if (mixingLog.isLoggable(Level.FINE)) {
                 mixingLog.fine("this = " + this);
             }
+
+            boolean isMixingNeeded = isMixingNeeded();
+
             if (isLightweight() && hasHeavyweightDescendants()) {
                 final Point origin = new Point(getX(), getY());
                 for (Container cont = getContainer();
@@ -4044,7 +4091,18 @@
                 }
 
                 recursiveRelocateHeavyweightChildren(origin);
+
+                if (!isMixingNeeded) {
+                    return;
+                }
+
+                recursiveApplyCurrentShape();
             }
+
+            if (!isMixingNeeded) {
+                return;
+            }
+
             super.mixOnReshaping();
         }
     }
@@ -4057,6 +4115,10 @@
                     "; oldZ=" + oldZorder + "; newZ=" + newZorder);
             }
 
+            if (!isMixingNeeded()) {
+                return;
+            }
+
             boolean becameHigher = newZorder < oldZorder;
 
             if (becameHigher && isLightweight() && hasHeavyweightDescendants()) {
@@ -4073,10 +4135,18 @@
                 mixingLog.fine("this = " + this);
             }
 
+            if (!isMixingNeeded()) {
+                return;
+            }
+
             if (hasHeavyweightDescendants()) {
                 recursiveApplyCurrentShape();
             }
 
+            if (isLightweight() && isNonOpaqueForMixing()) {
+                subtractAndApplyShapeBelowMe();
+            }
+
             super.mixOnValidating();
         }
     }
--- a/jdk/src/share/classes/java/awt/Dialog.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/Dialog.java	Wed Jul 05 16:47:27 2017 +0200
@@ -941,7 +941,7 @@
                 // does not invoke the super.show(). So wried... :(
                 mixOnShowing();
 
-                peer.show(); // now guaranteed never to block
+                peer.setVisible(true); // now guaranteed never to block
                 if (isModalBlocked()) {
                     modalBlocker.toFront();
                 }
--- a/jdk/src/share/classes/java/awt/EventDispatchThread.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/EventDispatchThread.java	Wed Jul 05 16:47:27 2017 +0200
@@ -300,119 +300,19 @@
         }
         // Can get and throw only unchecked exceptions
         catch (RuntimeException e) {
-            processException(e, modalFiltersCount > 0);
+            processException(e);
         } catch (Error e) {
-            processException(e, modalFiltersCount > 0);
+            processException(e);
         }
         return true;
     }
 
-    private void processException(Throwable e, boolean isModal) {
+    private void processException(Throwable e) {
         if (eventLog.isLoggable(Level.FINE)) {
-            eventLog.log(Level.FINE, "Processing exception: " + e +
-                                     ", isModal = " + isModal);
-        }
-        if (!handleException(e)) {
-            // See bug ID 4499199.
-            // If we are in a modal dialog, we cannot throw
-            // an exception for the ThreadGroup to handle (as added
-            // in RFE 4063022).  If we did, the message pump of
-            // the modal dialog would be interrupted.
-            // We instead choose to handle the exception ourselves.
-            // It may be useful to add either a runtime flag or API
-            // later if someone would like to instead dispose the
-            // dialog and allow the thread group to handle it.
-            if (isModal) {
-                System.err.println(
-                    "Exception occurred during event dispatching:");
-                e.printStackTrace();
-            } else if (e instanceof RuntimeException) {
-                throw (RuntimeException)e;
-            } else if (e instanceof Error) {
-                throw (Error)e;
-            }
+            eventLog.log(Level.FINE, "Processing exception: " + e);
         }
-    }
-
-    private static final String handlerPropName = "sun.awt.exception.handler";
-    private static String handlerClassName = null;
-    private static String NO_HANDLER = new String();
-
-    /**
-     * Handles an exception thrown in the event-dispatch thread.
-     *
-     * <p> If the system property "sun.awt.exception.handler" is defined, then
-     * when this method is invoked it will attempt to do the following:
-     *
-     * <ol>
-     * <li> Load the class named by the value of that property, using the
-     *      current thread's context class loader,
-     * <li> Instantiate that class using its zero-argument constructor,
-     * <li> Find the resulting handler object's <tt>public void handle</tt>
-     *      method, which should take a single argument of type
-     *      <tt>Throwable</tt>, and
-     * <li> Invoke the handler's <tt>handle</tt> method, passing it the
-     *      <tt>thrown</tt> argument that was passed to this method.
-     * </ol>
-     *
-     * If any of the first three steps fail then this method will return
-     * <tt>false</tt> and all following invocations of this method will return
-     * <tt>false</tt> immediately.  An exception thrown by the handler object's
-     * <tt>handle</tt> will be caught, and will cause this method to return
-     * <tt>false</tt>.  If the handler's <tt>handle</tt> method is successfully
-     * invoked, then this method will return <tt>true</tt>.  This method will
-     * never throw any sort of exception.
-     *
-     * <p> <i>Note:</i> This method is a temporary hack to work around the
-     * absence of a real API that provides the ability to replace the
-     * event-dispatch thread.  The magic "sun.awt.exception.handler" property
-     * <i>will be removed</i> in a future release.
-     *
-     * @param  thrown  The Throwable that was thrown in the event-dispatch
-     *                 thread
-     *
-     * @return  <tt>false</tt> if any of the above steps failed, otherwise
-     *          <tt>true</tt>
-     */
-    private boolean handleException(Throwable thrown) {
-
-        try {
-
-            if (handlerClassName == NO_HANDLER) {
-                return false;   /* Already tried, and failed */
-            }
-
-            /* Look up the class name */
-            if (handlerClassName == null) {
-                handlerClassName = ((String) AccessController.doPrivileged(
-                    new GetPropertyAction(handlerPropName)));
-                if (handlerClassName == null) {
-                    handlerClassName = NO_HANDLER; /* Do not try this again */
-                    return false;
-                }
-            }
-
-            /* Load the class, instantiate it, and find its handle method */
-            Method m;
-            Object h;
-            try {
-                ClassLoader cl = Thread.currentThread().getContextClassLoader();
-                Class c = Class.forName(handlerClassName, true, cl);
-                m = c.getMethod("handle", new Class[] { Throwable.class });
-                h = c.newInstance();
-            } catch (Throwable x) {
-                handlerClassName = NO_HANDLER; /* Do not try this again */
-                return false;
-            }
-
-            /* Finally, invoke the handler */
-            m.invoke(h, new Object[] { thrown });
-
-        } catch (Throwable x) {
-            return false;
-        }
-
-        return true;
+        getUncaughtExceptionHandler().uncaughtException(this, e);
+        // don't rethrow the exception to avoid EDT recreation
     }
 
     boolean isDispatching(EventQueue eq) {
--- a/jdk/src/share/classes/java/awt/List.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/List.java	Wed Jul 05 16:47:27 2017 +0200
@@ -378,7 +378,7 @@
 
         ListPeer peer = (ListPeer)this.peer;
         if (peer != null) {
-            peer.addItem(item, index);
+            peer.add(item, index);
         }
     }
 
@@ -413,7 +413,7 @@
     public synchronized void clear() {
         ListPeer peer = (ListPeer)this.peer;
         if (peer != null) {
-            peer.clear();
+            peer.removeAll();
         }
         items = new Vector();
         selected = new int[0];
@@ -718,7 +718,7 @@
             multipleMode = b;
             ListPeer peer = (ListPeer)this.peer;
             if (peer != null) {
-                peer.setMultipleSelections(b);
+                peer.setMultipleMode(b);
             }
         }
     }
@@ -768,7 +768,7 @@
         synchronized (getTreeLock()) {
             ListPeer peer = (ListPeer)this.peer;
             return (peer != null) ?
-                       peer.preferredSize(rows) :
+                       peer.getPreferredSize(rows) :
                        super.preferredSize();
         }
     }
@@ -818,7 +818,7 @@
         synchronized (getTreeLock()) {
             ListPeer peer = (ListPeer)this.peer;
             return (peer != null) ?
-                       peer.minimumSize(rows) :
+                       peer.getMinimumSize(rows) :
                        super.minimumSize();
         }
     }
--- a/jdk/src/share/classes/java/awt/MenuItem.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/MenuItem.java	Wed Jul 05 16:47:27 2017 +0200
@@ -268,7 +268,7 @@
         enabled = true;
         MenuItemPeer peer = (MenuItemPeer)this.peer;
         if (peer != null) {
-            peer.enable();
+            peer.setEnabled(true);
         }
     }
 
@@ -294,7 +294,7 @@
         enabled = false;
         MenuItemPeer peer = (MenuItemPeer)this.peer;
         if (peer != null) {
-            peer.disable();
+            peer.setEnabled(false);
         }
     }
 
--- a/jdk/src/share/classes/java/awt/Robot.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/Robot.java	Wed Jul 05 16:47:27 2017 +0200
@@ -70,10 +70,7 @@
     private RobotPeer peer;
     private boolean isAutoWaitForIdle = false;
     private int autoDelay = 0;
-    private static final int LEGAL_BUTTON_MASK =
-                                            InputEvent.BUTTON1_MASK|
-                                            InputEvent.BUTTON2_MASK|
-                                            InputEvent.BUTTON3_MASK;
+    private static int LEGAL_BUTTON_MASK;
 
     // location of robot's GC, used in mouseMove(), getPixelColor() and captureScreenImage()
     private Point gdLoc;
@@ -98,6 +95,19 @@
         }
         init(GraphicsEnvironment.getLocalGraphicsEnvironment()
             .getDefaultScreenDevice());
+        int tmpMask = 0;
+        if (Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled()){
+            for (int i = 0; i < peer.getNumberOfButtons(); i++){
+                tmpMask |= InputEvent.getMaskForButton(i+1);
+            }
+        }
+        tmpMask |= InputEvent.BUTTON1_MASK|
+            InputEvent.BUTTON2_MASK|
+            InputEvent.BUTTON3_MASK|
+            InputEvent.BUTTON1_DOWN_MASK|
+            InputEvent.BUTTON2_DOWN_MASK|
+            InputEvent.BUTTON3_DOWN_MASK;
+        LEGAL_BUTTON_MASK = tmpMask;
     }
 
     /**
@@ -187,18 +197,55 @@
 
     /**
      * Presses one or more mouse buttons.  The mouse buttons should
-     * be released using the <code>mouseRelease</code> method.
+     * be released using the {@link #mouseRelease(int)} method.
      *
-     * @param buttons   the Button mask; a combination of one or more
-     * of these flags:
+     * @param buttons the Button mask; a combination of one or more
+     * mouse button masks.
+     * <p>
+     * It is allowed to use only a combination of valid values as a {@code buttons} parameter.
+     * A valid combination consists of {@code InputEvent.BUTTON1_DOWN_MASK},
+     * {@code InputEvent.BUTTON2_DOWN_MASK}, {@code InputEvent.BUTTON3_DOWN_MASK}
+     * and values returned by the
+     * {@link InputEvent#getMaskForButton(int) InputEvent.getMaskForButton(button)} method.
+     *
+     * The valid combination also depends on a
+     * {@link Toolkit#areExtraMouseButtonsEnabled() Toolkit.areExtraMouseButtonsEnabled()} value as follows:
      * <ul>
-     * <li><code>InputEvent.BUTTON1_MASK</code>
-     * <li><code>InputEvent.BUTTON2_MASK</code>
-     * <li><code>InputEvent.BUTTON3_MASK</code>
+     * <li> If support for extended mouse buttons is
+     * {@link Toolkit#areExtraMouseButtonsEnabled() disabled} by Java
+     * then it is allowed to use only the following standard button masks:
+     * {@code InputEvent.BUTTON1_DOWN_MASK}, {@code InputEvent.BUTTON2_DOWN_MASK},
+     * {@code InputEvent.BUTTON3_DOWN_MASK}.
+     * <li> If support for extended mouse buttons is
+     * {@link Toolkit#areExtraMouseButtonsEnabled() enabled} by Java
+     * then it is allowed to use the standard button masks
+     * and masks for existing extended mouse buttons, if the mouse has more then three buttons.
+     * In that way, it is allowed to use the button masks corresponding to the buttons
+     * in the range from 1 to {@link java.awt.MouseInfo#getNumberOfButtons() MouseInfo.getNumberOfButtons()}.
+     * <br>
+     * It is recommended to use the {@link InputEvent#getMaskForButton(int) InputEvent.getMaskForButton(button)}
+     * method to obtain the mask for any mouse button by its number.
      * </ul>
-     * @throws  IllegalArgumentException if the button mask is not a
-     *          valid combination
+     * <p>
+     * The following standard button masks are also accepted:
+     * <ul>
+     * <li>{@code InputEvent.BUTTON1_MASK}
+     * <li>{@code InputEvent.BUTTON2_MASK}
+     * <li>{@code InputEvent.BUTTON3_MASK}
+     * </ul>
+     * However, it is recommended to use {@code InputEvent.BUTTON1_DOWN_MASK},
+     * {@code InputEvent.BUTTON2_DOWN_MASK},  {@code InputEvent.BUTTON3_DOWN_MASK} instead.
+     * Either extended {@code _DOWN_MASK} or old {@code _MASK} values
+     * should be used, but both those models should not be mixed.
+     * @throws IllegalArgumentException if the {@code buttons} mask contains the mask for extra mouse button
+     *         and support for extended mouse buttons is {@link Toolkit#areExtraMouseButtonsEnabled() disabled} by Java
+     * @throws IllegalArgumentException if the {@code buttons} mask contains the mask for extra mouse button
+     *         that does not exist on the mouse and support for extended mouse buttons is {@link Toolkit#areExtraMouseButtonsEnabled() enabled} by Java
      * @see #mouseRelease(int)
+     * @see InputEvent#getMaskForButton(int)
+     * @see Toolkit#areExtraMouseButtonsEnabled()
+     * @see java.awt.MouseInfo#getNumberOfButtons()
+     * @see java.awt.event.MouseEvent
      */
     public synchronized void mousePress(int buttons) {
         checkButtonsArgument(buttons);
@@ -209,16 +256,53 @@
     /**
      * Releases one or more mouse buttons.
      *
-     * @param buttons   the Button mask; a combination of one or more
-     * of these flags:
+     * @param buttons the Button mask; a combination of one or more
+     * mouse button masks.
+     * <p>
+     * It is allowed to use only a combination of valid values as a {@code buttons} parameter.
+     * A valid combination consists of {@code InputEvent.BUTTON1_DOWN_MASK},
+     * {@code InputEvent.BUTTON2_DOWN_MASK}, {@code InputEvent.BUTTON3_DOWN_MASK}
+     * and values returned by the
+     * {@link InputEvent#getMaskForButton(int) InputEvent.getMaskForButton(button)} method.
+     *
+     * The valid combination also depends on a
+     * {@link Toolkit#areExtraMouseButtonsEnabled() Toolkit.areExtraMouseButtonsEnabled()} value as follows:
      * <ul>
-     * <li><code>InputEvent.BUTTON1_MASK</code>
-     * <li><code>InputEvent.BUTTON2_MASK</code>
-     * <li><code>InputEvent.BUTTON3_MASK</code>
+     * <li> If the support for extended mouse buttons is
+     * {@link Toolkit#areExtraMouseButtonsEnabled() disabled} by Java
+     * then it is allowed to use only the following standard button masks:
+     * {@code InputEvent.BUTTON1_DOWN_MASK}, {@code InputEvent.BUTTON2_DOWN_MASK},
+     * {@code InputEvent.BUTTON3_DOWN_MASK}.
+     * <li> If the support for extended mouse buttons is
+     * {@link Toolkit#areExtraMouseButtonsEnabled() enabled} by Java
+     * then it is allowed to use the standard button masks
+     * and masks for existing extended mouse buttons, if the mouse has more then three buttons.
+     * In that way, it is allowed to use the button masks corresponding to the buttons
+     * in the range from 1 to {@link java.awt.MouseInfo#getNumberOfButtons() MouseInfo.getNumberOfButtons()}.
+     * <br>
+     * It is recommended to use the {@link InputEvent#getMaskForButton(int) InputEvent.getMaskForButton(button)}
+     * method to obtain the mask for any mouse button by its number.
      * </ul>
+     * <p>
+     * The following standard button masks are also accepted:
+     * <ul>
+     * <li>{@code InputEvent.BUTTON1_MASK}
+     * <li>{@code InputEvent.BUTTON2_MASK}
+     * <li>{@code InputEvent.BUTTON3_MASK}
+     * </ul>
+     * However, it is recommended to use {@code InputEvent.BUTTON1_DOWN_MASK},
+     * {@code InputEvent.BUTTON2_DOWN_MASK},  {@code InputEvent.BUTTON3_DOWN_MASK} instead.
+     * Either extended {@code _DOWN_MASK} or old {@code _MASK} values
+     * should be used, but both those models should not be mixed.
+     * @throws IllegalArgumentException if the {@code buttons} mask contains the mask for extra mouse button
+     *         and support for extended mouse buttons is {@link Toolkit#areExtraMouseButtonsEnabled() disabled} by Java
+     * @throws IllegalArgumentException if the {@code buttons} mask contains the mask for extra mouse button
+     *         that does not exist on the mouse and support for extended mouse buttons is {@link Toolkit#areExtraMouseButtonsEnabled() enabled} by Java
      * @see #mousePress(int)
-     * @throws  IllegalArgumentException if the button mask is not a valid
-     *          combination
+     * @see InputEvent#getMaskForButton(int)
+     * @see Toolkit#areExtraMouseButtonsEnabled()
+     * @see java.awt.MouseInfo#getNumberOfButtons()
+     * @see java.awt.event.MouseEvent
      */
     public synchronized void mouseRelease(int buttons) {
         checkButtonsArgument(buttons);
--- a/jdk/src/share/classes/java/awt/TextArea.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/TextArea.java	Wed Jul 05 16:47:27 2017 +0200
@@ -321,7 +321,7 @@
     public synchronized void insertText(String str, int pos) {
         TextAreaPeer peer = (TextAreaPeer)this.peer;
         if (peer != null) {
-            peer.insertText(str, pos);
+            peer.insert(str, pos);
         } else {
             text = text.substring(0, pos) + str + text.substring(pos);
         }
@@ -385,7 +385,7 @@
     public synchronized void replaceText(String str, int start, int end) {
         TextAreaPeer peer = (TextAreaPeer)this.peer;
         if (peer != null) {
-            peer.replaceText(str, start, end);
+            peer.replaceRange(str, start, end);
         } else {
             text = text.substring(0, start) + str + text.substring(end);
         }
@@ -500,7 +500,7 @@
         synchronized (getTreeLock()) {
             TextAreaPeer peer = (TextAreaPeer)this.peer;
             return (peer != null) ?
-                       peer.preferredSize(rows, columns) :
+                       peer.getPreferredSize(rows, columns) :
                        super.preferredSize();
         }
     }
@@ -552,7 +552,7 @@
         synchronized (getTreeLock()) {
             TextAreaPeer peer = (TextAreaPeer)this.peer;
             return (peer != null) ?
-                       peer.minimumSize(rows, columns) :
+                       peer.getMinimumSize(rows, columns) :
                        super.minimumSize();
         }
     }
--- a/jdk/src/share/classes/java/awt/TextField.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/TextField.java	Wed Jul 05 16:47:27 2017 +0200
@@ -281,7 +281,7 @@
             echoChar = c;
             TextFieldPeer peer = (TextFieldPeer)this.peer;
             if (peer != null) {
-                peer.setEchoCharacter(c);
+                peer.setEchoChar(c);
             }
         }
     }
@@ -376,7 +376,7 @@
         synchronized (getTreeLock()) {
             TextFieldPeer peer = (TextFieldPeer)this.peer;
             return (peer != null) ?
-                       peer.preferredSize(columns) :
+                       peer.getPreferredSize(columns) :
                        super.preferredSize();
         }
     }
@@ -424,7 +424,7 @@
         synchronized (getTreeLock()) {
             TextFieldPeer peer = (TextFieldPeer)this.peer;
             return (peer != null) ?
-                       peer.minimumSize(columns) :
+                       peer.getMinimumSize(columns) :
                        super.minimumSize();
         }
     }
--- a/jdk/src/share/classes/java/awt/Toolkit.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/Toolkit.java	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1995-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1995-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -2550,4 +2550,37 @@
             }
         }
     }
+
+    /**
+    * Reports whether events from extra mouse buttons are allowed to be processed and posted into
+    * {@code EventQueue}.
+    * <br>
+    * To change the returned value it is necessary to set the {@code sun.awt.enableExtraMouseButtons}
+    * property before the {@code Toolkit} class initialization. This setting could be done on the application
+    * startup by the following command:
+    * <pre>
+    * java -Dsun.awt.enableExtraMouseButtons=false Application
+    * </pre>
+    * Alternatively, the property could be set in the application by using the following code:
+    * <pre>
+    * System.setProperty("sun.awt.enableExtraMouseButtons", "true");
+    * </pre>
+    * before the {@code Toolkit} class initialization.
+    * If not set by the time of the {@code Toolkit} class initialization, this property will be
+    * initialized with {@code true}.
+    * Changing this value after the {@code Toolkit} class initialization will have no effect.
+    * <p>
+    * The current value could be queried by using the
+    * {@code System.getProperty("sun.awt.enableExtraMouseButtons")} method.
+    * @exception HeadlessException if GraphicsEnvironment.isHeadless() returns true
+    * @return {@code true} if events from extra mouse buttons are allowed to be processed and posted;
+    *         {@code false} otherwise
+    * @see System#getProperty(String propertyName)
+    * @see System#setProperty(String propertyName, String value)
+    * @see java.awt.EventQueue
+    * @since 1.7
+     */
+    public boolean areExtraMouseButtonsEnabled() throws HeadlessException {
+        return Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled();
+    }
 }
--- a/jdk/src/share/classes/java/awt/Window.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/Window.java	Wed Jul 05 16:47:27 2017 +0200
@@ -53,6 +53,7 @@
 import sun.awt.CausedFocusEvent;
 import sun.awt.SunToolkit;
 import sun.awt.util.IdentityArrayList;
+import sun.java2d.Disposer;
 import sun.java2d.pipe.Region;
 import sun.security.action.GetPropertyAction;
 import sun.security.util.SecurityConstants;
@@ -409,8 +410,6 @@
         }
 
         modalExclusionType = Dialog.ModalExclusionType.NO_EXCLUDE;
-
-        sun.java2d.Disposer.addRecord(anchor, new WindowDisposerRecord(appContext, this));
     }
 
     /**
@@ -540,6 +539,10 @@
         if (owner != null) {
             owner.addOwnedWindow(weakThis);
         }
+
+        // Fix for 6758673: this call is moved here from init(gc), because
+        // WindowDisposerRecord requires a proper value of parent field.
+        Disposer.addRecord(anchor, new WindowDisposerRecord(appContext, this));
     }
 
     /**
--- a/jdk/src/share/classes/java/awt/doc-files/DesktopProperties.html	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/doc-files/DesktopProperties.html	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 <!--
- Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ Copyright 2005-2008 Sun Microsystems, Inc.  All Rights Reserved.
  DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 
  This code is free software; you can redistribute it and/or modify it
@@ -64,6 +64,11 @@
 <td valign="TOP"><a href="../../util/Map.html">java.util.Map<a/></td>
 <td valign="TOP">Font smoothing (text antialiasing) settings.<a/></td>
 </tr>
+<tr>
+<td valign="TOP"><A href=#"sun.awt.enableExtraMouseButtons">sun.awt.enableExtraMouseButtons</A</td>
+<td valign="TOP"><a href="../../lang/Boolean.html">java.lang.Boolean<a/></td>
+<td valign="TOP">Controls if mouse events from extra buttons are to be generated or not<a/></td>
+</tr>
 </table>
 <p>
 <h2>Desktop Font Rendering Hints</h2>
@@ -219,5 +224,50 @@
 determine that there is a non-null return for any screen device using
 the per-device property name.
 </ul>
+<h2>Mouse Functionality</h2>
+<b>Desktop Property: <A name="sun.awt.enableExtraMouseButtons">"sun.awt.enableExtraMouseButtons"</A></b>
+<p>
+This property determines if events from extra mouse buttons (if they are exist and are
+enabled by the underlying operating system) are allowed to be processed and posted into
+{@code EventQueue}.
+<br>
+The value could be changed by passing "sun.awt.enableExtraMouseButtons"
+property value into java before application starts. This could be done with the following command:
+<pre>
+java -Dsun.awt.enableExtraMouseButtons=false Application
+</pre>
+Once set on application startup, it is impossible to change this value after.
+<br>
+Current value could also be queried using getDesktopProperty("sun.awt.enableExtraMouseButtons")
+method.
+<br>
+If the property is set to {@code true} then 
+<ul>
+<li> it is still legal to create {@code MouseEvent} objects with
+standard buttons and, if the mouse has more
+then three buttons, it is also legal to use buttons from the range started
+from 0 up to {@link java.awt.MouseInfo#getNumberOfButtons() getNumberOfButtons()}.
+
+<li> it is legal to use standard button masks when using {@code Robot.mousePress()}
+and {@code Robot.mouseRelease()} methods and, if the mouse has more then three buttons,
+it is also legal to use masks for existing extended mouse buttons.
+That way, if there are more then three buttons on the mouse then it is allowed to
+use button masks corresponding to the buttons 
+in the range from 1 up to {@link java.awt.MouseInfo#getNumberOfButtons() getNumberOfButtons()}
+</ul>
+<br>
+If the property is set to {@code false} then 
+<ul>
+<li> it is legal to create {@code MouseEvent} objects with standard buttons 
+only: {@code NOBUTTON}, {@code BUTTON1}, {@code BUTTON2} and
+{@code BUTTON3}
+<li> it is legal to use standard button masks only:
+{@code InputEvent.BUTTON1_DOWN_MASK}, {@code InputEvent.BUTTON2_DOWN_MASK},
+{@code InputEvent.BUTTON3_DOWN_MASK}
+</ul>
+
+This property should be used when there is no need in listening mouse events fired as a result of
+activity with extra mouse button.
+By default this property is set to {@code true}.
 </body>
 </html>
--- a/jdk/src/share/classes/java/awt/event/InputEvent.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/event/InputEvent.java	Wed Jul 05 16:47:27 2017 +0200
@@ -31,6 +31,7 @@
 import java.awt.Toolkit;
 import java.util.logging.Logger;
 import java.util.logging.Level;
+import java.util.Arrays;
 
 /**
  * The root event class for all component-level input events.
@@ -153,13 +154,93 @@
      */
     public static final int ALT_GRAPH_DOWN_MASK = 1 << 13;
 
+    /**
+     * An array of extended modifiers for additional buttons.
+     * @see getButtonDownMasks
+     * @since 7.0
+     */
+    private static final int [] BUTTON_DOWN_MASK = new int [] { BUTTON1_DOWN_MASK,
+                                                               BUTTON2_DOWN_MASK,
+                                                               BUTTON3_DOWN_MASK,
+                                                               1<<14, //4th phisical button (this is not a wheel!)
+                                                               1<<15, //(this is not a wheel!)
+                                                               1<<16,
+                                                               1<<17,
+                                                               1<<18,
+                                                               1<<19,
+                                                               1<<20,
+                                                               1<<21 };
+
+    /**
+     * A method to access an array of extended modifiers for additional buttons.
+     * @since 7.0
+     */
+    private static int [] getButtonDownMasks(){
+        return Arrays.copyOf(BUTTON_DOWN_MASK, BUTTON_DOWN_MASK.length);
+    }
+
+
+    /**
+     * A method to obtain a mask for any existing mouse button.
+     * The returned mask may be used for different purposes. Following are some of them:
+     * <ul>
+     * <li> {@link java.awt.Robot#mousePress(int) mousePress(buttons)} and
+     *      {@link java.awt.Robot#mouseRelease(int) mouseRelease(buttons)}
+     * <li> as a {@code modifiers} parameter when creating a new {@link MouseEvent} instance
+     * <li> to check {@link MouseEvent#getModifiersEx() modifiersEx} of existing {@code MouseEvent}
+     * </ul>
+     * @param button is a number to represent a button starting from 1.
+     * For example,
+     * <pre>
+     * int button = InputEvent.getMaskForButton(1);
+     * </pre>
+     * will have the same meaning as
+     * <pre>
+     * int button = InputEvent.getMaskForButton(MouseEvent.BUTTON1);
+     * </pre>
+     * because {@link MouseEvent#BUTTON1 MouseEvent.BUTTON1} equals to 1.
+     * If a mouse has three enabled buttons(see {@link java.awt.MouseInfo#getNumberOfButtons() MouseInfo.getNumberOfButtons()})
+     * then the values from the left column passed into the method will return
+     * corresponding values from the right column:
+     * <PRE>
+     *    <b>button </b>   <b>returned mask</b>
+     *    {@link MouseEvent#BUTTON1 BUTTON1}  {@link MouseEvent#BUTTON1_DOWN_MASK BUTTON1_DOWN_MASK}
+     *    {@link MouseEvent#BUTTON2 BUTTON2}  {@link MouseEvent#BUTTON2_DOWN_MASK BUTTON2_DOWN_MASK}
+     *    {@link MouseEvent#BUTTON3 BUTTON3}  {@link MouseEvent#BUTTON3_DOWN_MASK BUTTON3_DOWN_MASK}
+     * </PRE>
+     * If a mouse has more than three enabled buttons then more values
+     * are admissible (4, 5, etc.). There is no assigned constants for these extended buttons.
+     * The button masks for the extra buttons returned by this method have no assigned names like the
+     * first three button masks.
+     * <p>
+     * This method has the following implementation restriction.
+     * It returns masks for a limited number of buttons only. The maximum number is
+     * implementation dependent and may vary.
+     * This limit is defined by the relevant number
+     * of buttons that may hypothetically exist on the mouse but it is greater than the
+     * {@link java.awt.MouseInfo#getNumberOfButtons() MouseInfo.getNumberOfButtons()}.
+     * <p>
+     * @throws IllegalArgumentException if {@code button} is less than zero or greater than the number
+     *         of button masks reserved for buttons
+     * @since 7.0
+     * @see java.awt.MouseInfo#getNumberOfButtons()
+     * @see Toolkit#areExtraMouseButtonsEnabled()
+     * @see MouseEvent#getModifiers()
+     * @see MouseEvent#getModifiersEx()
+     */
+    public static int getMaskForButton(int button) {
+        if (button <= 0 || button > BUTTON_DOWN_MASK.length) {
+            throw new IllegalArgumentException("button doesn\'t exist " + button);
+        }
+        return BUTTON_DOWN_MASK[button - 1];
+    }
+
     // the constant below MUST be updated if any extra modifier
     // bits are to be added!
     // in fact, it is undesirable to add modifier bits
     // to the same field as this may break applications
     // see bug# 5066958
-
-    static final int FIRST_HIGH_BIT = 1 << 14;
+    static final int FIRST_HIGH_BIT = 1 << 22;
 
     static final int JDK_1_3_MODIFIERS = SHIFT_DOWN_MASK - 1;
     static final int HIGH_MODIFIERS = ~( FIRST_HIGH_BIT - 1 );
@@ -382,7 +463,7 @@
      * cause the returning an empty string.
      *
      * @param modifiers a modifier mask describing the extended
-       *                modifier keys and mouse buttons for the event
+     *                modifier keys and mouse buttons for the event
      * @return a text description of the combination of extended
      *         modifier keys and mouse buttons that were held down
      *         during the event.
@@ -410,17 +491,14 @@
             buf.append(Toolkit.getProperty("AWT.altGraph", "Alt Graph"));
             buf.append("+");
         }
-        if ((modifiers & InputEvent.BUTTON1_DOWN_MASK) != 0) {
-            buf.append(Toolkit.getProperty("AWT.button1", "Button1"));
-            buf.append("+");
-        }
-        if ((modifiers & InputEvent.BUTTON2_DOWN_MASK) != 0) {
-            buf.append(Toolkit.getProperty("AWT.button2", "Button2"));
-            buf.append("+");
-        }
-        if ((modifiers & InputEvent.BUTTON3_DOWN_MASK) != 0) {
-            buf.append(Toolkit.getProperty("AWT.button3", "Button3"));
-            buf.append("+");
+
+        int buttonNumber = 1;
+        for (int mask : InputEvent.BUTTON_DOWN_MASK){
+            if ((modifiers & mask) != 0) {
+                buf.append(Toolkit.getProperty("AWT.button"+buttonNumber, "Button"+buttonNumber));
+                buf.append("+");
+            }
+            buttonNumber++;
         }
         if (buf.length() > 0) {
             buf.setLength(buf.length()-1); // remove trailing '+'
--- a/jdk/src/share/classes/java/awt/event/MouseEvent.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/event/MouseEvent.java	Wed Jul 05 16:47:27 2017 +0200
@@ -32,6 +32,7 @@
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.awt.IllegalComponentStateException;
+import java.awt.MouseInfo;
 
 /**
  * An event which indicates that a mouse action occurred in a component.
@@ -135,7 +136,15 @@
  * for <code>BUTTON2_MASK</code> arrives first,
  * followed by the pair for <code>BUTTON1_MASK</code>.
  * <p>
- *
+ * Some extra mouse buttons are added to extend the standard set of buttons
+ * represented by the following constants:{@code BUTTON1}, {@code BUTTON2}, and {@code BUTTON3}.
+ * Extra buttons have no assigned {@code BUTTONx}
+ * constants as well as their button masks have no assigned {@code BUTTONx_DOWN_MASK}
+ * constants. Nevertheless, ordinal numbers starting from 4 may be
+ * used as button numbers (button ids). Values obtained by the
+ * {@link InputEvent#getMaskForButton(int) getMaskForButton(button)} method may be used
+ * as button masks.
+ * <p>
  * <code>MOUSE_DRAGGED</code> events are delivered to the <code>Component</code>
  * in which the mouse button was pressed until the mouse button is released
  * (regardless of whether the mouse position is within the bounds of the
@@ -324,13 +333,31 @@
     /**
      * Indicates which, if any, of the mouse buttons has changed state.
      *
-     * The only legal values are the following constants:
-     * <code>NOBUTTON</code>,
-     * <code>BUTTON1</code>,
-     * <code>BUTTON2</code> or
-     * <code>BUTTON3</code>.
+     * The valid values are ranged from 0 to the value returned by the
+     * {@link java.awt.MouseInfo#getNumberOfButtons() MouseInfo.getNumberOfButtons()} method.
+     * This range already includes constants {@code NOBUTTON}, {@code BUTTON1},
+     * {@code BUTTON2}, and {@code BUTTON3}
+     * if these buttons are present. So it is allowed to use these constants too.
+     * For example, for a mouse with two buttons this field may contain the following values:
+     * <ul>
+     * <li> 0 ({@code NOBUTTON})
+     * <li> 1 ({@code BUTTON1})
+     * <li> 2 ({@code BUTTON2})
+     * </ul>
+     * If a mouse has 5 buttons, this field may contain the following values:
+     * <ul>
+     * <li> 0 ({@code NOBUTTON})
+     * <li> 1 ({@code BUTTON1})
+     * <li> 2 ({@code BUTTON2})
+     * <li> 3 ({@code BUTTON3})
+     * <li> 4
+     * <li> 5
+     * </ul>
+     * If support for extended mouse buttons is {@link Toolkit#areExtraMouseButtonsEnabled()} disabled by Java
+     * then the field may not contain the value larger than {@code BUTTON3}.
      * @serial
-     * @see #getButton().
+     * @see #getButton()
+     * @see java.awt.Toolkit#areExtraMouseButtonsEnabled()
      */
     int button;
 
@@ -385,6 +412,15 @@
     }
 
     /**
+     * A number of buttons available on the mouse at the {@code Toolkit} machinery startup.
+     */
+    private static int cachedNumberOfButtons;
+
+    static {
+        cachedNumberOfButtons = MouseInfo.getNumberOfButtons();
+    }
+
+    /**
      * Returns the absolute horizontal x position of the event.
      * In a virtual device multi-screen environment in which the
      * desktop area could span multiple physical screen devices,
@@ -421,7 +457,8 @@
     /**
      * Constructs a <code>MouseEvent</code> object with the
      * specified source component,
-     * type, modifiers, coordinates, and click count.
+     * type, time, modifiers, coordinates, click count, popupTrigger flag,
+     * and button number.
      * <p>
      * Creating an invalid event (such
      * as by using more than one of the old _MASKs, or modifier/button
@@ -464,7 +501,33 @@
      * @param popupTrigger A boolean that equals {@code true} if this event
      *                     is a trigger for a popup menu
      * @param button       An integer that indicates, which of the mouse buttons has
-     *                     changed its state
+     *                     changed its state.
+     * The following rules are applied to this parameter:
+     * <ul>
+     * <li>If support for the extended mouse buttons is
+     * {@link Toolkit#areExtraMouseButtonsEnabled() disabled} by Java
+     * then it is allowed to create {@code MouseEvent} objects only with the standard buttons:
+     * {@code NOBUTTON}, {@code BUTTON1}, {@code BUTTON2}, and
+     * {@code BUTTON3}.
+     * <li> If support for the extended mouse buttons is
+     * {@link Toolkit#areExtraMouseButtonsEnabled() enabled} by Java
+     * then it is allowed to create {@code MouseEvent} objects with
+     * the standard buttons.
+     * In case the support for extended mouse buttons is
+     * {@link Toolkit#areExtraMouseButtonsEnabled() enabled} by Java, then
+     * in addition to the standard buttons, {@code MouseEvent} objects can be created
+     * using buttons from the range starting from 4 to
+     * {@link java.awt.MouseInfo#getNumberOfButtons() MouseInfo.getNumberOfButtons()}
+     * if the mouse has more than three buttons.
+     * </ul>
+     * @throws IllegalArgumentException if {@code button} is less then zero
+     * @throws IllegalArgumentException if <code>source</code> is null
+     * @throws IllegalArgumentException if {@code button} is greater then BUTTON3 and the support for extended mouse buttons is
+     *                                  {@link Toolkit#areExtraMouseButtonsEnabled() disabled} by Java
+     * @throws IllegalArgumentException if {@code button} is greater then the
+     *                                  {@link java.awt.MouseInfo#getNumberOfButtons() current number of buttons} and the support
+     *                                  for extended mouse buttons is {@link Toolkit#areExtraMouseButtonsEnabled() enabled}
+     *                                  by Java
      * @throws IllegalArgumentException if an invalid <code>button</code>
      *            value is passed in
      * @throws IllegalArgumentException if <code>source</code> is null
@@ -498,7 +561,7 @@
     /**
      * Constructs a <code>MouseEvent</code> object with the
      * specified source component,
-     * type, modifiers, coordinates, and click count.
+     * type, modifiers, coordinates, click count, and popupTrigger flag.
      * An invocation of the form
      * <tt>MouseEvent(source, id, when, modifiers, x, y, clickCount, popupTrigger)</tt>
      * behaves in exactly the same way as the invocation
@@ -551,10 +614,26 @@
      }
 
 
+    /* if the button is an extra button and it is released or clicked then in Xsystem its state
+       is not modified. Exclude this button number from ExtModifiers mask.*/
+    transient private boolean shouldExcludeButtonFromExtModifiers = false;
+
+    /**
+     * {@inheritDoc}
+     */
+    public int getModifiersEx() {
+        int tmpModifiers = modifiers;
+        if (shouldExcludeButtonFromExtModifiers) {
+            tmpModifiers &= ~(InputEvent.getMaskForButton(getButton()));
+        }
+        return tmpModifiers & ~JDK_1_3_MODIFIERS;
+    }
+
     /**
      * Constructs a <code>MouseEvent</code> object with the
      * specified source component,
-     * type, modifiers, coordinates, absolute coordinates, and click count.
+     * type, time, modifiers, coordinates, absolute coordinates, click count, popupTrigger flag,
+     * and button number.
      * <p>
      * Creating an invalid event (such
      * as by using more than one of the old _MASKs, or modifier/button
@@ -595,7 +674,33 @@
      * @param popupTrigger A boolean that equals {@code true} if this event
      *                     is a trigger for a popup menu
      * @param button       An integer that indicates, which of the mouse buttons has
-     *                     changed its state
+     *                     changed its state.
+     * The following rules are applied to this parameter:
+     * <ul>
+     * <li>If support for the extended mouse buttons is
+     * {@link Toolkit#areExtraMouseButtonsEnabled() disabled} by Java
+     * then it is allowed to create {@code MouseEvent} objects only with the standard buttons:
+     * {@code NOBUTTON}, {@code BUTTON1}, {@code BUTTON2}, and
+     * {@code BUTTON3}.
+     * <li> If support for the extended mouse buttons is
+     * {@link Toolkit#areExtraMouseButtonsEnabled() enabled} by Java
+     * then it is allowed to create {@code MouseEvent} objects with
+     * the standard buttons.
+     * In case the support for extended mouse buttons is
+     * {@link Toolkit#areExtraMouseButtonsEnabled() enabled} by Java, then
+     * in addition to the standard buttons, {@code MouseEvent} objects can be created
+     * using buttons from the range starting from 4 to
+     * {@link java.awt.MouseInfo#getNumberOfButtons() MouseInfo.getNumberOfButtons()}
+     * if the mouse has more than three buttons.
+     * </ul>
+     * @throws IllegalArgumentException if {@code button} is less then zero
+     * @throws IllegalArgumentException if <code>source</code> is null
+     * @throws IllegalArgumentException if {@code button} is greater then BUTTON3 and the support for extended mouse buttons is
+     *                                  {@link Toolkit#areExtraMouseButtonsEnabled() disabled} by Java
+     * @throws IllegalArgumentException if {@code button} is greater then the
+     *                                  {@link java.awt.MouseInfo#getNumberOfButtons() current number of buttons} and the support
+     *                                  for extended mouse buttons is {@link Toolkit#areExtraMouseButtonsEnabled() enabled}
+     *                                  by Java
      * @throws IllegalArgumentException if an invalid <code>button</code>
      *            value is passed in
      * @throws IllegalArgumentException if <code>source</code> is null
@@ -610,6 +715,10 @@
      * @see #getClickCount()
      * @see #isPopupTrigger()
      * @see #getButton()
+     * @see #button
+     * @see Toolkit#areExtraMouseButtonsEnabled()
+     * @see java.awt.MouseInfo#getNumberOfButtons()
+     * @see InputEvent#getMaskForButton(int)
      * @since 1.6
      */
     public MouseEvent(Component source, int id, long when, int modifiers,
@@ -623,14 +732,41 @@
         this.yAbs = yAbs;
         this.clickCount = clickCount;
         this.popupTrigger = popupTrigger;
-        if (button < NOBUTTON || button >BUTTON3) {
-            throw new IllegalArgumentException("Invalid button value");
+        if (button < NOBUTTON){
+            throw new IllegalArgumentException("Invalid button value :" + button);
         }
+        //TODO: initialize MouseInfo.cachedNumber on toolkit creation.
+        if (button > BUTTON3) {
+            if (!Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled()){
+                throw new IllegalArgumentException("Extra mouse events are disabled " + button);
+            } else {
+                if (button > cachedNumberOfButtons) {
+                    throw new IllegalArgumentException("Nonexistent button " + button);
+                }
+            }
+            // XToolkit: extra buttons are not reporting about their state correctly.
+            // Being pressed they report the state=0 both on the press and on the release.
+            // For 1-3 buttons the state value equals zero on press and non-zero on release.
+            // Other modifiers like Shift, ALT etc seem report well with extra buttons.
+            // The problem reveals as follows: one button is pressed and then another button is pressed and released.
+            // So, the getModifiersEx() would not be zero due to a first button and we will skip this modifier.
+            // This may have to be moved into the peer code instead if possible.
+
+            if (getModifiersEx() != 0) { //There is at least one more button in a pressed state.
+                if (id == MouseEvent.MOUSE_RELEASED || id == MouseEvent.MOUSE_CLICKED){
+                    System.out.println("MEvent. CASE!");
+                    shouldExcludeButtonFromExtModifiers = true;
+                }
+            }
+        }
+
         this.button = button;
+
         if ((getModifiers() != 0) && (getModifiersEx() == 0)) {
             setNewModifiers();
         } else if ((getModifiers() == 0) &&
-                   (getModifiersEx() != 0 || button != NOBUTTON))
+                   (getModifiersEx() != 0 || button != NOBUTTON) &&
+                   (button <= BUTTON3))
         {
             setOldModifiers();
         }
@@ -701,13 +837,55 @@
 
     /**
      * Returns which, if any, of the mouse buttons has changed state.
+     * The returned value is ranged
+     * from 0 to the {@link java.awt.MouseInfo#getNumberOfButtons() MouseInfo.getNumberOfButtons()}
+     * value.
+     * The returned value includes at least the following constants:
+     * <ul>
+     * <li> {@code NOBUTTON}
+     * <li> {@code BUTTON1}
+     * <li> {@code BUTTON2}
+     * <li> {@code BUTTON3}
+     * </ul>
+     * It is allowed to use those constants to compare with the returned button number in the application.
+     * For example,
+     * <pre>
+     * if (anEvent.getButton() == MouseEvent.BUTTON1) {
+     * </pre>
+     * In particular, for a mouse with one, two, or three buttons this method may return the following values:
+     * <ul>
+     * <li> 0 ({@code NOBUTTON})
+     * <li> 1 ({@code BUTTON1})
+     * <li> 2 ({@code BUTTON2})
+     * <li> 3 ({@code BUTTON3})
+     * </ul>
+     * Button numbers greater then {@code BUTTON3} have no constant identifier. So if a mouse with five buttons is
+     * installed, this method may return the following values:
+     * <ul>
+     * <li> 0 ({@code NOBUTTON})
+     * <li> 1 ({@code BUTTON1})
+     * <li> 2 ({@code BUTTON2})
+     * <li> 3 ({@code BUTTON3})
+     * <li> 4
+     * <li> 5
+     * </ul>
+     * <p>
+     * Note: If support for extended mouse buttons is {@link Toolkit#areExtraMouseButtonsEnabled() disabled} by Java
+     * then the AWT event subsystem does not produce mouse events for the extended mouse
+     * buttons. So it is not expected that this method returns anything except {@code NOBUTTON}, {@code BUTTON1},
+     * {@code BUTTON2}, {@code BUTTON3}.
      *
-     * @return one of the following constants:
-     * <code>NOBUTTON</code>,
-     * <code>BUTTON1</code>,
-     * <code>BUTTON2</code> or
-     * <code>BUTTON3</code>.
+     * @return one of the values from 0 to {@link java.awt.MouseInfo#getNumberOfButtons() MouseInfo.getNumberOfButtons()}
+     *         if support for the extended mouse buttons is {@link Toolkit#areExtraMouseButtonsEnabled() enabled} by Java.
+     *         That range includes {@code NOBUTTON}, {@code BUTTON1}, {@code BUTTON2}, {@code BUTTON3};
+     *         <br>
+     *         {@code NOBUTTON}, {@code BUTTON1}, {@code BUTTON2} or {@code BUTTON3}
+     *         if support for the extended mouse buttons is {@link Toolkit#areExtraMouseButtonsEnabled() disabled} by Java
      * @since 1.4
+     * @see Toolkit#areExtraMouseButtonsEnabled()
+     * @see java.awt.MouseInfo#getNumberOfButtons()
+     * @see #MouseEvent(Component, int, long, int, int, int, int, int, int, boolean, int)
+     * @see InputEvent#getMaskForButton(int)
      */
     public int getButton() {
         return button;
@@ -746,7 +924,7 @@
      * and will cause the returning an unspecified string.
      * Zero parameter means that no modifiers were passed and will
      * cause the returning an empty string.
-     *
+     * <p>
      * @param modifiers A modifier mask describing the modifier keys and
      *                  mouse buttons that were down during the event
      * @return string   string text description of the combination of modifier
@@ -788,6 +966,24 @@
             buf.append(Toolkit.getProperty("AWT.button3", "Button3"));
             buf.append("+");
         }
+
+        int mask;
+
+        // TODO: add a toolkit field that holds a number of button on the mouse.
+        // As the method getMouseModifiersText() is static and obtain
+        // an integer as a parameter then we may not restrict this with the number
+        // of buttons installed on the mouse.
+        // It's a temporary solution. We need to somehow hold the number of buttons somewhere else.
+        for (int i = 1; i <= cachedNumberOfButtons; i++){
+            mask = InputEvent.getMaskForButton(i);
+            if ((modifiers & mask) != 0 &&
+                buf.indexOf(Toolkit.getProperty("AWT.button"+i, "Button"+i)) == -1) //1,2,3 buttons may already be there; so don't duplicate it.
+            {
+                buf.append(Toolkit.getProperty("AWT.button"+i, "Button"+i));
+                buf.append("+");
+            }
+        }
+
         if (buf.length() > 0) {
             buf.setLength(buf.length()-1); // remove trailing '+'
         }
@@ -836,14 +1032,18 @@
         str.append(",(").append(x).append(",").append(y).append(")");
         str.append(",absolute(").append(xAbs).append(",").append(yAbs).append(")");
 
-        str.append(",button=").append(getButton());
+        if (id != MOUSE_DRAGGED && id != MOUSE_MOVED){
+            str.append(",button=").append(getButton());
+        }
 
         if (getModifiers() != 0) {
             str.append(",modifiers=").append(getMouseModifiersText(modifiers));
         }
 
         if (getModifiersEx() != 0) {
-            str.append(",extModifiers=").append(getModifiersExText(modifiers));
+            //Using plain "modifiers" here does show an excluded extended buttons in the string event representation.
+            //getModifiersEx() solves the problem.
+            str.append(",extModifiers=").append(getModifiersExText(getModifiersEx()));
         }
 
         str.append(",clickCount=").append(clickCount);
--- a/jdk/src/share/classes/java/awt/peer/ButtonPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/peer/ButtonPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -25,7 +25,11 @@
 
 package java.awt.peer;
 
+import java.awt.Button;
+
 /**
+ * The peer interface for {@link Button}.
+ *
  * The peer interfaces are intended only for use in porting
  * the AWT. They are not intended for use by application
  * developers, and developers should not implement peers
@@ -33,5 +37,14 @@
  * instances.
  */
 public interface ButtonPeer extends ComponentPeer {
+
+    /**
+     * Sets the label that is displayed on the button. Can be {@code null}
+     * when the button should not display a label.
+     *
+     * @param label the label string to set
+     *
+     * @see Button#setLabel
+     */
     void setLabel(String label);
 }
--- a/jdk/src/share/classes/java/awt/peer/CanvasPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/peer/CanvasPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -24,7 +24,11 @@
  */
 package java.awt.peer;
 
+import java.awt.Canvas;
+
 /**
+ * The peer interface for {@link Canvas}.
+ *
  * The peer interfaces are intended only for use in porting
  * the AWT. They are not intended for use by application
  * developers, and developers should not implement peers
--- a/jdk/src/share/classes/java/awt/peer/CheckboxMenuItemPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/peer/CheckboxMenuItemPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -24,7 +24,11 @@
  */
 package java.awt.peer;
 
+import java.awt.CheckboxMenuItem;
+
 /**
+ * The peer interface for {@link CheckboxMenuItem}.
+ *
  * The peer interfaces are intended only for use in porting
  * the AWT. They are not intended for use by application
  * developers, and developers should not implement peers
@@ -32,5 +36,14 @@
  * instances.
  */
 public interface CheckboxMenuItemPeer extends MenuItemPeer {
+
+    /**
+     * Sets the state of the checkbox to be checked ({@code true}) or
+     * unchecked ({@code false}).
+     *
+     * @param t the state to set on the checkbox
+     *
+     * @see CheckboxMenuItemPeer#setState(boolean)
+     */
     void setState(boolean t);
 }
--- a/jdk/src/share/classes/java/awt/peer/CheckboxPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/peer/CheckboxPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -27,6 +27,8 @@
 import java.awt.*;
 
 /**
+ * The peer interface for {@link Checkbox}.
+ *
  * The peer interfaces are intended only for use in porting
  * the AWT. They are not intended for use by application
  * developers, and developers should not implement peers
@@ -34,7 +36,36 @@
  * instances.
  */
 public interface CheckboxPeer extends ComponentPeer {
+
+    /**
+     * Sets the state of the checkbox to be checked ({@code true}) or
+     * unchecked ({@code false}).
+     *
+     * @param t the state to set on the checkbox
+     *
+     * @see Checkbox#setState(boolean)
+     */
     void setState(boolean state);
+
+    /**
+     * Sets the checkbox group for this checkbox. Checkboxes in one checkbox
+     * group can only be selected exclusively (like radio buttons). A value
+     * of {@code null} removes this checkbox from any checkbox group.
+     *
+     * @param g the checkbox group to set, or {@code null} when this
+     *          checkbox should not be placed in any group
+     *
+     * @see Checkbox#setCheckboxGroup(CheckboxGroup)
+     */
     void setCheckboxGroup(CheckboxGroup g);
+
+    /**
+     * Sets the label that should be displayed on the ckeckbox. A value of
+     * {@code null} means that no label should be displayed.
+     *
+     * @param label the label to be displayed on the checkbox, or
+     *              {@code null} when no label should be displayed.
+     */
     void setLabel(String label);
+
 }
--- a/jdk/src/share/classes/java/awt/peer/ChoicePeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/peer/ChoicePeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -24,7 +24,11 @@
  */
 package java.awt.peer;
 
+import java.awt.Choice;
+
 /**
+ * The peer interface for {@link Choice}.
+ *
  * The peer interfaces are intended only for use in porting
  * the AWT. They are not intended for use by application
  * developers, and developers should not implement peers
@@ -32,13 +36,41 @@
  * instances.
  */
 public interface ChoicePeer extends ComponentPeer {
+
+    /**
+     * Adds an item with the string {@code item} to the combo box list
+     * at index {@code index}.
+     *
+     * @param item the label to be added to the list
+     * @param index the index where to add the item
+     *
+     * @see Choice#add(String)
+     */
     void add(String item, int index);
+
+    /**
+     * Removes the item at index {@code index} from the combo box list.
+     *
+     * @param index the index where to remove the item
+     *
+     * @see Choice#remove(int)
+     */
     void remove(int index);
+
+    /**
+     * Removes all items from the combo box list.
+     *
+     * @see Choice#removeAll()
+     */
     void removeAll();
+
+    /**
+     * Selects the item at index {@code index}.
+     *
+     * @param index the index which should be selected
+     *
+     * @see Choice#select(int)
+     */
     void select(int index);
 
-    /*
-     * DEPRECATED:  Replaced by add(String, int).
-     */
-    void addItem(String item, int index);
 }
--- a/jdk/src/share/classes/java/awt/peer/ComponentPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/peer/ComponentPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -37,6 +37,12 @@
 
 
 /**
+ * The peer interface for {@link Component}. This is the top level peer
+ * interface for widgets and defines the bulk of methods for AWT component
+ * peers. Most component peers have to implement this interface (via one
+ * of the subinterfaces), except menu components, which implement
+ * {@link MenuComponentPeer}.
+ *
  * The peer interfaces are intended only for use in porting
  * the AWT. They are not intended for use by application
  * developers, and developers should not implement peers
@@ -44,63 +50,474 @@
  * instances.
  */
 public interface ComponentPeer {
-    public static final int SET_LOCATION = 1,
-        SET_SIZE = 2,
-        SET_BOUNDS = 3,
-        SET_CLIENT_SIZE = 4,
-        RESET_OPERATION = 5,
-        NO_EMBEDDED_CHECK = (1 << 14),
-        DEFAULT_OPERATION = SET_BOUNDS;
+
+    /**
+     * Operation for {@link #setBounds(int, int, int, int, int)}, indicating
+     * a change in the component location only.
+     *
+     * @see #setBounds(int, int, int, int, int)
+     */
+    public static final int SET_LOCATION = 1;
+
+    /**
+     * Operation for {@link #setBounds(int, int, int, int, int)}, indicating
+     * a change in the component size only.
+     *
+     * @see #setBounds(int, int, int, int, int)
+     */
+    public static final int SET_SIZE = 2;
+
+    /**
+     * Operation for {@link #setBounds(int, int, int, int, int)}, indicating
+     * a change in the component size and location.
+     *
+     * @see #setBounds(int, int, int, int, int)
+     */
+    public static final int SET_BOUNDS = 3;
+
+    /**
+     * Operation for {@link #setBounds(int, int, int, int, int)}, indicating
+     * a change in the component client size. This is used for setting
+     * the 'inside' size of windows, without the border insets.
+     *
+     * @see #setBounds(int, int, int, int, int)
+     */
+    public static final int SET_CLIENT_SIZE = 4;
+
+    /**
+     * Resets the setBounds() operation to DEFAULT_OPERATION. This is not
+     * passed into {@link #setBounds(int, int, int, int, int)}.
+     *
+     * TODO: This is only used internally and should probably be moved outside
+     *       the peer interface.
+     *
+     * @see Component#setBoundsOp
+     */
+    public static final int RESET_OPERATION = 5;
+
+    /**
+     * A flag that is used to suppress checks for embedded frames.
+     *
+     * TODO: This is only used internally and should probably be moved outside
+     *       the peer interface.
+     */
+    public static final int NO_EMBEDDED_CHECK = (1 << 14);
+
+    /**
+     * The default operation, which is to set size and location.
+     *
+     * TODO: This is only used internally and should probably be moved outside
+     *       the peer interface.
+     *
+     * @see Component#setBoundsOp
+     */
+    public static final int DEFAULT_OPERATION = SET_BOUNDS;
+
+    /**
+     * Determines if a component has been obscured, i.e. by an overlapping
+     * window or similar. This is used by JViewport for optimizing performance.
+     * This doesn't have to be implemented, when
+     * {@link #canDetermineObscurity()} returns {@code false}.
+     *
+     * @return {@code true} when the component has been obscured,
+     *         {@code false} otherwise
+     *
+     * @see #canDetermineObscurity()
+     * @see javax.swing.JViewport#needsRepaintAfterBlit
+     */
     boolean isObscured();
+
+    /**
+     * Returns {@code true} when the peer can determine if a component
+     * has been obscured, {@code false} false otherwise.
+     *
+     * @return {@code true} when the peer can determine if a component
+     *         has been obscured, {@code false} false otherwise
+     *
+     * @see #isObscured()
+     * @see javax.swing.JViewport#needsRepaintAfterBlit
+     */
     boolean canDetermineObscurity();
-    void                setVisible(boolean b);
-    void                setEnabled(boolean b);
-    void                paint(Graphics g);
-    void                repaint(long tm, int x, int y, int width, int height);
-    void                print(Graphics g);
-    void                setBounds(int x, int y, int width, int height, int op);
-    void                handleEvent(AWTEvent e);
-    void                coalescePaintEvent(PaintEvent e);
-    Point               getLocationOnScreen();
-    Dimension           getPreferredSize();
-    Dimension           getMinimumSize();
-    ColorModel          getColorModel();
-    Toolkit             getToolkit();
-    Graphics            getGraphics();
-    FontMetrics         getFontMetrics(Font font);
-    void                dispose();
-    void                setForeground(Color c);
-    void                setBackground(Color c);
-    void                setFont(Font f);
-    void                updateCursorImmediately();
-    boolean             requestFocus(Component lightweightChild,
-                                     boolean temporary,
-                                     boolean focusedWindowChangeAllowed,
-                                     long time, CausedFocusEvent.Cause cause);
-    boolean             isFocusable();
+
+    /**
+     * Makes a component visible or invisible.
+     *
+     * @param v {@code true} to make a component visible,
+     *          {@code false} to make it invisible
+     *
+     * @see Component#setVisible(boolean)
+     */
+    void setVisible(boolean v);
+
+    /**
+     * Enables or disables a component. Disabled components are usually grayed
+     * out and cannot be activated.
+     *
+     * @param e {@code true} to enable the component, {@code false}
+     *          to disable it
+     *
+     * @see Component#setEnabled(boolean)
+     */
+    void setEnabled(boolean e);
+
+    /**
+     * Paints the component to the specified graphics context. This is called
+     * by {@link Component#paintAll(Graphics)} to paint the component.
+     *
+     * @param g the graphics context to paint to
+     *
+     * @see Component#paintAll(Graphics)
+     */
+    void paint(Graphics g);
+
+    /**
+     * Prints the component to the specified graphics context. This is called
+     * by {@link Component#printAll(Graphics)} to print the component.
+     *
+     * @param g the graphics context to print to
+     *
+     * @see Component#printAll(Graphics)
+     */
+    void print(Graphics g);
+
+    /**
+     * Sets the location or size or both of the component. The location is
+     * specified relative to the component's parent. The {@code op}
+     * parameter specifies which properties change. If it is
+     * {@link #SET_LOCATION}, then only the location changes (and the size
+     * parameters can be ignored). If {@code op} is {@link #SET_SIZE},
+     * then only the size changes (and the location can be ignored). If
+     * {@code op} is {@link #SET_BOUNDS}, then both change. There is a
+     * special value {@link #SET_CLIENT_SIZE}, which is used only for
+     * window-like components to set the size of the client (i.e. the 'inner'
+     * size, without the insets of the window borders).
+     *
+     * @param x the X location of the component
+     * @param y the Y location of the component
+     * @param width the width of the component
+     * @param height the height of the component
+     * @param op the operation flag
+     *
+     * @see #SET_BOUNDS
+     * @see #SET_LOCATION
+     * @see #SET_SIZE
+     * @see #SET_CLIENT_SIZE
+     */
+    void setBounds(int x, int y, int width, int height, int op);
+
+    /**
+     * Called to let the component peer handle events.
+     *
+     * @param e the AWT event to handle
+     *
+     * @see Component#dispatchEvent(AWTEvent)
+     */
+    void handleEvent(AWTEvent e);
+
+    /**
+     * Called to coalesce paint events.
+     *
+     * @param e the paint event to consider to coalesce
+     *
+     * @see EventQueue#coalescePaintEvent
+     */
+    void coalescePaintEvent(PaintEvent e);
+
+    /**
+     * Determines the location of the component on the screen.
+     *
+     * @return the location of the component on the screen
+     *
+     * @see Component#getLocationOnScreen()
+     */
+    Point getLocationOnScreen();
+
+    /**
+     * Determines the preferred size of the component.
+     *
+     * @return the preferred size of the component
+     *
+     * @see Component#getPreferredSize()
+     */
+    Dimension getPreferredSize();
+
+    /**
+     * Determines the minimum size of the component.
+     *
+     * @return the minimum size of the component
+     *
+     * @see Component#getMinimumSize()
+     */
+    Dimension getMinimumSize();
+
+    /**
+     * Returns the color model used by the component.
+     *
+     * @return the color model used by the component
+     *
+     * @see Component#getColorModel()
+     */
+    ColorModel getColorModel();
+
+    /**
+     * Returns the toolkit that is responsible for the component.
+     *
+     * @return the toolkit that is responsible for the component
+     *
+     * @see Component#getToolkit()
+     */
+    Toolkit getToolkit();
+
+    /**
+     * Returns a graphics object to paint on the component.
+     *
+     * @return a graphics object to paint on the component
+     *
+     * @see Component#getGraphics()
+     */
+    // TODO: Maybe change this to force Graphics2D, since many things will
+    // break with plain Graphics nowadays.
+    Graphics getGraphics();
+
+    /**
+     * Returns a font metrics object to determine the metrics properties of
+     * the specified font.
+     *
+     * @param font the font to determine the metrics for
+     *
+     * @return a font metrics object to determine the metrics properties of
+     *         the specified font
+     *
+     * @see Component#getFontMetrics(Font)
+     */
+    FontMetrics getFontMetrics(Font font);
+
+    /**
+     * Disposes all resources held by the component peer. This is called
+     * when the component has been disconnected from the component hierarchy
+     * and is about to be garbage collected.
+     *
+     * @see Component#removeNotify()
+     */
+    void dispose();
+
+    /**
+     * Sets the foreground color of this component.
+     *
+     * @param c the foreground color to set
+     *
+     * @see Component#setForeground(Color)
+     */
+    void setForeground(Color c);
+
+    /**
+     * Sets the background color of this component.
+     *
+     * @param c the background color to set
+     *
+     * @see Component#setBackground(Color)
+     */
+    void setBackground(Color c);
 
-    Image               createImage(ImageProducer producer);
-    Image               createImage(int width, int height);
-    VolatileImage       createVolatileImage(int width, int height);
-    boolean             prepareImage(Image img, int w, int h, ImageObserver o);
-    int                 checkImage(Image img, int w, int h, ImageObserver o);
+    /**
+     * Sets the font of this component.
+     *
+     * @param f the font of this component
+     *
+     * @see Component#setFont(Font)
+     */
+    void setFont(Font f);
+
+    /**
+     * Updates the cursor of the component.
+     *
+     * @see Component#updateCursorImmediately
+     */
+    void updateCursorImmediately();
+
+    /**
+     * Requests focus on this component.
+     *
+     * @param lightweightChild the actual lightweight child that requests the
+     *        focus
+     * @param temporary {@code true} if the focus change is temporary,
+     *        {@code false} otherwise
+     * @param focusedWindowChangeAllowed {@code true} if changing the
+     *        focus of the containing window is allowed or not
+     * @param time the time of the focus change request
+     * @param cause the cause of the focus change request
+     *
+     * @return {@code true} if the focus change is guaranteed to be
+     *         granted, {@code false} otherwise
+     */
+    boolean requestFocus(Component lightweightChild, boolean temporary,
+                         boolean focusedWindowChangeAllowed, long time,
+                         CausedFocusEvent.Cause cause);
+
+    /**
+     * Returns {@code true} when the component takes part in the focus
+     * traversal, {@code false} otherwise.
+     *
+     * @return {@code true} when the component takes part in the focus
+     *         traversal, {@code false} otherwise
+     */
+    boolean isFocusable();
+
+    /**
+     * Creates an image using the specified image producer.
+     *
+     * @param producer the image producer from which the image pixels will be
+     *        produced
+     *
+     * @return the created image
+     *
+     * @see Component#createImage(ImageProducer)
+     */
+    Image createImage(ImageProducer producer);
+
+    /**
+     * Creates an empty image with the specified width and height. This is
+     * generally used as a non-accelerated backbuffer for drawing onto the
+     * component (e.g. by Swing).
+     *
+     * @param width the width of the image
+     * @param height the height of the image
+     *
+     * @return the created image
+     *
+     * @see Component#createImage(int, int)
+     */
+    // TODO: Maybe make that return a BufferedImage, because some stuff will
+    // break if a different kind of image is returned.
+    Image createImage(int width, int height);
+
+    /**
+     * Creates an empty volatile image with the specified width and height.
+     * This is generally used as an accelerated backbuffer for drawing onto
+     * the component (e.g. by Swing).
+     *
+     * @param width the width of the image
+     * @param height the height of the image
+     *
+     * @return the created volatile image
+     *
+     * @see Component#createVolatileImage(int, int)
+     */
+    // TODO: Include capabilities here and fix Component#createVolatileImage
+    VolatileImage createVolatileImage(int width, int height);
+
+    /**
+     * Prepare the specified image for rendering on this component. This should
+     * start loading the image (if not already loaded) and create an
+     * appropriate screen representation.
+     *
+     * @param img the image to prepare
+     * @param w the width of the screen representation
+     * @param h the height of the screen representation
+     * @param o an image observer to observe the progress
+     *
+     * @return {@code true} if the image is already fully prepared,
+     *         {@code false} otherwise
+     *
+     * @see Component#prepareImage(Image, int, int, ImageObserver)
+     */
+    boolean prepareImage(Image img, int w, int h, ImageObserver o);
+
+    /**
+     * Determines the status of the construction of the screen representaion
+     * of the specified image.
+     *
+     * @param img the image to check
+     * @param w the target width
+     * @param h the target height
+     * @param o the image observer to notify
+     *
+     * @return the status as bitwise ORed ImageObserver flags
+     *
+     * @see Component#checkImage(Image, int, int, ImageObserver)
+     */
+    int checkImage(Image img, int w, int h, ImageObserver o);
+
+    /**
+     * Returns the graphics configuration that corresponds to this component.
+     *
+     * @return the graphics configuration that corresponds to this component
+     *
+     * @see Component#getGraphicsConfiguration()
+     */
     GraphicsConfiguration getGraphicsConfiguration();
-    boolean     handlesWheelScrolling();
-    void createBuffers(int numBuffers, BufferCapabilities caps) throws AWTException;
+
+    /**
+     * Determines if the component handles wheel scrolling itself. Otherwise
+     * it is delegated to the component's parent.
+     *
+     * @return {@code true} if the component handles wheel scrolling,
+     *         {@code false} otherwise
+     *
+     * @see Component#dispatchEventImpl(AWTEvent)
+     */
+    boolean handlesWheelScrolling();
+
+    /**
+     * Create {@code numBuffers} flipping buffers with the specified
+     * buffer capabilities.
+     *
+     * @param numBuffers the number of buffers to create
+     * @param caps the buffer capabilities
+     *
+     * @throws AWTException if flip buffering is not supported
+     *
+     * @see Component.FlipBufferStrategy#createBuffers
+     */
+    void createBuffers(int numBuffers, BufferCapabilities caps)
+         throws AWTException;
+
+    /**
+     * Returns the back buffer as image.
+     *
+     * @return the back buffer as image
+     *
+     * @see Component.FlipBufferStrategy#getBackBuffer
+     */
     Image getBackBuffer();
+
+    /**
+     * Move the back buffer to the front buffer.
+     *
+     * @param x1 the area to be flipped, upper left X coordinate
+     * @param y1 the area to be flipped, upper left Y coordinate
+     * @param x2 the area to be flipped, lower right X coordinate
+     * @param y2 the area to be flipped, lower right Y coordinate
+     * @param flipAction the flip action to perform
+     *
+     * @see Component.FlipBufferStrategy#flip
+     */
     void flip(int x1, int y1, int x2, int y2, BufferCapabilities.FlipContents flipAction);
+
+    /**
+     * Destroys all created buffers.
+     *
+     * @see Component.FlipBufferStrategy#destroyBuffers
+     */
     void destroyBuffers();
 
     /**
-     * Reparents this peer to the new parent referenced by <code>newContainer</code> peer
-     * Implementation depends on toolkit and container.
+     * Reparents this peer to the new parent referenced by
+     * {@code newContainer} peer. Implementation depends on toolkit and
+     * container.
+     *
      * @param newContainer peer of the new parent container
+     *
      * @since 1.5
      */
     void reparent(ContainerPeer newContainer);
+
     /**
-     * Returns whether this peer supports reparenting to another parent withour destroying the peer
+     * Returns whether this peer supports reparenting to another parent without
+     * destroying the peer.
+     *
      * @return true if appropriate reparent is supported, false otherwise
+     *
      * @since 1.5
      */
     boolean isReparentSupported();
@@ -109,50 +526,17 @@
      * Used by lightweight implementations to tell a ComponentPeer to layout
      * its sub-elements.  For instance, a lightweight Checkbox needs to layout
      * the box, as well as the text label.
+     *
+     * @see Component#validate()
      */
-    void        layout();
-
-
-        Rectangle getBounds();
+    void layout();
 
     /**
      * Applies the shape to the native component window.
      * @since 1.7
+     *
+     * @see Component#applyCompoundShape
      */
     void applyShape(Region shape);
 
-    /**
-     * DEPRECATED:  Replaced by getPreferredSize().
-     */
-    Dimension           preferredSize();
-
-    /**
-     * DEPRECATED:  Replaced by getMinimumSize().
-     */
-    Dimension           minimumSize();
-
-    /**
-     * DEPRECATED:  Replaced by setVisible(boolean).
-     */
-    void                show();
-
-    /**
-     * DEPRECATED:  Replaced by setVisible(boolean).
-     */
-    void                hide();
-
-    /**
-     * DEPRECATED:  Replaced by setEnabled(boolean).
-     */
-    void                enable();
-
-    /**
-     * DEPRECATED:  Replaced by setEnabled(boolean).
-     */
-    void                disable();
-
-    /**
-     * DEPRECATED:  Replaced by setBounds(int, int, int, int).
-     */
-    void                reshape(int x, int y, int width, int height);
 }
--- a/jdk/src/share/classes/java/awt/peer/ContainerPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/peer/ContainerPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -27,6 +27,9 @@
 import java.awt.*;
 
 /**
+ * The peer interface for {@link Container}. This is the parent interface
+ * for all container like widgets.
+ *
  * The peer interfaces are intended only for use in porting
  * the AWT. They are not intended for use by application
  * developers, and developers should not implement peers
@@ -34,30 +37,60 @@
  * instances.
  */
 public interface ContainerPeer extends ComponentPeer {
+
+    /**
+     * Returns the insets of this container. Insets usually is the space that
+     * is occupied by things like borders.
+     *
+     * @return the insets of this container
+     */
     Insets getInsets();
+
+    /**
+     * Notifies the peer that validation of the component tree is about to
+     * begin.
+     *
+     * @see Container#validate()
+     */
     void beginValidate();
-    void endValidate();
-    void beginLayout();
-    void endLayout();
-    boolean isPaintPending();
 
     /**
-     * Restacks native windows - children of this native window - according to Java container order
+     * Notifies the peer that validation of the component tree is finished.
+     *
+     * @see Container#validate()
+     */
+    void endValidate();
+
+    /**
+     * Notifies the peer that layout is about to begin. This is called
+     * before the container itself and its children are laid out.
+     *
+     * @see Container#validateTree()
+     */
+    void beginLayout();
+
+    /**
+     * Notifies the peer that layout is finished. This is called after the
+     * container and its children have been laid out.
+     *
+     * @see Container#validateTree()
+     */
+    void endLayout();
+
+    /**
+     * Restacks native windows - children of this native window - according to
+     * Java container order.
+     *
      * @since 1.5
      */
     void restack();
 
     /**
-     * Indicates availabiltity of restacking operation in this container.
+     * Indicates availability of restacking operation in this container.
+     *
      * @return Returns true if restack is supported, false otherwise
+     *
      * @since 1.5
      */
     boolean isRestackSupported();
-    /**
-
-
-
-     * DEPRECATED:  Replaced by getInsets().
-     */
-    Insets insets();
 }
--- a/jdk/src/share/classes/java/awt/peer/DesktopPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/peer/DesktopPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -32,7 +32,7 @@
 import java.awt.Desktop.Action;
 
 /**
- * The <code>DesktopPeer</code> interface provides methods for the operation
+ * The {@code DesktopPeer} interface provides methods for the operation
  * of open, edit, print, browse and mail with the given URL or file, by
  * launching the associated application.
  * <p>
@@ -40,14 +40,15 @@
  *
  */
 public interface DesktopPeer {
+
     /**
      * Returns whether the given action is supported on the current platform.
      * @param action the action type to be tested if it's supported on the
      *        current platform.
-     * @return <code>true</code> if the given action is supported on
-     *         the current platform; <code>false</code> otherwise.
+     * @return {@code true} if the given action is supported on
+     *         the current platform; {@code false} otherwise.
      */
-    public boolean isSupported(Action action);
+    boolean isSupported(Action action);
 
     /**
      * Launches the associated application to open the given file. The
@@ -58,7 +59,7 @@
      * @throws IOException If the given file has no associated application,
      *         or the associated application fails to be launched.
      */
-    public void open(File file) throws IOException;
+    void open(File file) throws IOException;
 
     /**
      * Launches the associated editor and opens the given file for editing. The
@@ -69,7 +70,7 @@
      * @throws IOException If the given file has no associated editor, or
      *         the associated application fails to be launched.
      */
-    public void edit(File file) throws IOException;
+    void edit(File file) throws IOException;
 
     /**
      * Prints the given file with the native desktop printing facility, using
@@ -79,7 +80,7 @@
      * @throws IOException If the given file has no associated application
      *         that can be used to print it.
      */
-    public void print(File file) throws IOException;
+    void print(File file) throws IOException;
 
     /**
      * Launches the mail composing window of the user default mail client,
@@ -93,7 +94,7 @@
      * @throws IOException If the user default mail client is not found,
      *         or it fails to be launched.
      */
-    public void mail(URI mailtoURL) throws IOException;
+    void mail(URI mailtoURL) throws IOException;
 
     /**
      * Launches the user default browser to display the given URI.
@@ -102,5 +103,5 @@
      * @throws IOException If the user default browser is not found,
      *         or it fails to be launched.
      */
-    public void browse(URI url) throws IOException;
+    void browse(URI url) throws IOException;
 }
--- a/jdk/src/share/classes/java/awt/peer/DialogPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/peer/DialogPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -28,6 +28,9 @@
 import java.awt.*;
 
 /**
+ * The peer interface for {@link Dialog}. This adds a couple of dialog specific
+ * features to the {@link WindowPeer} interface.
+ *
  * The peer interfaces are intended only for use in porting
  * the AWT. They are not intended for use by application
  * developers, and developers should not implement peers
@@ -35,7 +38,33 @@
  * instances.
  */
 public interface DialogPeer extends WindowPeer {
+
+    /**
+     * Sets the title on the dialog window.
+     *
+     * @param title the title to set
+     *
+     * @see Dialog#setTitle(String)
+     */
     void setTitle(String title);
+
+    /**
+     * Sets if the dialog should be resizable or not.
+     *
+     * @param resizeable {@code true} when the dialog should be resizable,
+     *        {@code false} if not
+     *
+     * @see Dialog#setResizable(boolean)
+     */
     void setResizable(boolean resizeable);
+
+    /**
+     * Block the specified windows. This is used for modal dialogs.
+     *
+     * @param windows the windows to block
+     *
+     * @see Dialog#modalShow()
+     * @see Dialog#blockWindows()
+     */
     void blockWindows(java.util.List<Window> windows);
 }
--- a/jdk/src/share/classes/java/awt/peer/FileDialogPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/peer/FileDialogPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -25,9 +25,12 @@
 
 package java.awt.peer;
 
+import java.awt.FileDialog;
 import java.io.FilenameFilter;
 
 /**
+ * The peer interface for {@link FileDialog}.
+ *
  * The peer interfaces are intended only for use in porting
  * the AWT. They are not intended for use by application
  * developers, and developers should not implement peers
@@ -35,7 +38,32 @@
  * instances.
  */
 public interface FileDialogPeer extends DialogPeer {
+
+    /**
+     * Sets the selected file for this file dialog.
+     *
+     * @param file the file to set as selected file, or {@code null} for
+     *        no selected file
+     *
+     * @see FileDialog#setFile(String)
+     */
     void setFile(String file);
+
+    /**
+     * Sets the current directory for this file dialog.
+     *
+     * @param dir the directory to set
+     *
+     * @see FileDialog#setDirectory(String)
+     */
     void setDirectory(String dir);
+
+    /**
+     * Sets the filename filter for filtering the displayed files.
+     *
+     * @param filter the filter to set
+     *
+     * @see FileDialog#setFilenameFilter(FilenameFilter)
+     */
     void setFilenameFilter(FilenameFilter filter);
 }
--- a/jdk/src/share/classes/java/awt/peer/FontPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/peer/FontPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -26,6 +26,9 @@
 package java.awt.peer;
 
 /**
+ * The peer interface for fonts. This is only a marker interface and not
+ * used by AWT itself.
+ *
  * The peer interfaces are intended only for use in porting
  * the AWT. They are not intended for use by application
  * developers, and developers should not implement peers
--- a/jdk/src/share/classes/java/awt/peer/FramePeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/peer/FramePeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -27,7 +27,12 @@
 
 import java.awt.*;
 
+import sun.awt.EmbeddedFrame;
+
 /**
+ * The peer interface for {@link Frame}. This adds a couple of frame specific
+ * methods to the {@link WindowPeer} interface.
+ *
  * The peer interfaces are intended only for use in porting
  * the AWT. They are not intended for use by application
  * developers, and developers should not implement peers
@@ -35,12 +40,89 @@
  * instances.
  */
 public interface FramePeer extends WindowPeer {
+
+    /**
+     * Sets the title on the frame.
+     *
+     * @param title the title to set
+     *
+     * @see Frame#setTitle(String)
+     */
     void setTitle(String title);
+
+    /**
+     * Sets the menu bar for the frame.
+     *
+     * @param mb the menu bar to set
+     *
+     * @see Frame#setMenuBar(MenuBar)
+     */
     void setMenuBar(MenuBar mb);
+
+    /**
+     * Sets if the frame should be resizable or not.
+     *
+     * @param resizeable {@code true} when the frame should be resizable,
+     *        {@code false} if not
+     *
+     * @see Frame#setResizable(boolean)
+     */
     void setResizable(boolean resizeable);
+
+    /**
+     * Changes the state of the frame.
+     *
+     * @param state the new state
+     *
+     * @see Frame#setExtendedState(int)
+     */
     void setState(int state);
-    int  getState();
-    void setMaximizedBounds(Rectangle bounds); // XXX
+
+    /**
+     * Returns the current state of the frame.
+     *
+     * @return the current state of the frame
+     *
+     * @see Frame#getExtendedState()
+     */
+    int getState();
+
+    /**
+     * Sets the bounds of the frame when it becomes maximized.
+     *
+     * @param bounds the maximized bounds of the frame
+     *
+     * @see Frame#setMaximizedBounds(Rectangle)
+     */
+    void setMaximizedBounds(Rectangle bounds);
+
+    /**
+     * Sets the size and location for embedded frames. (On embedded frames,
+     * setLocation() and setBounds() always set the frame to (0,0) for
+     * backwards compatibility.
+     *
+     * @param x the X location
+     * @param y the Y location
+     * @param width the width of the frame
+     * @param height the height of the frame
+     *
+     * @see EmbeddedFrame#setBoundsPrivate(int, int, int, int)
+     */
+    // TODO: This is only used in EmbeddedFrame, and should probably be moved
+    // into an EmbeddedFramePeer which would extend FramePeer
     void setBoundsPrivate(int x, int y, int width, int height);
+
+    /**
+     * Returns the size and location for embedded frames. (On embedded frames,
+     * setLocation() and setBounds() always set the frame to (0,0) for
+     * backwards compatibility.
+     *
+     * @return the bounds of an embedded frame
+     *
+     * @see EmbeddedFrame#getBoundsPrivate()
+     */
+    // TODO: This is only used in EmbeddedFrame, and should probably be moved
+    // into an EmbeddedFramePeer which would extend FramePeer
     Rectangle getBoundsPrivate();
+
 }
--- a/jdk/src/share/classes/java/awt/peer/KeyboardFocusManagerPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/peer/KeyboardFocusManagerPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -28,11 +28,45 @@
 import java.awt.Component;
 import java.awt.Window;
 
+/**
+ * The native peer interface for {@link KeyboardFocusManager}.
+ */
 public interface KeyboardFocusManagerPeer {
+
+    /**
+     * Returns the currently focused window.
+     *
+     * @return the currently focused window
+     *
+     * @see KeyboardFocusManager#getNativeFocusedWindow()
+     */
     Window getCurrentFocusedWindow();
 
+    /**
+     * Sets the component that should become the focus owner.
+     *
+     * @param comp the component to become the focus owner
+     *
+     * @see KeyboardFocusManager#setNativeFocusOwner(Component)
+     */
     void setCurrentFocusOwner(Component comp);
+
+    /**
+     * Returns the component that currently owns the input focus.
+     *
+     * @return the component that currently owns the input focus
+     *
+     * @see KeyboardFocusManager#getNativeFocusOwner()
+     */
     Component getCurrentFocusOwner();
 
+    /**
+     * Clears the current global focus owner.
+     *
+     * @param activeWindow
+     *
+     * @see KeyboardFocusManager#clearGlobalFocusOwner()
+     */
     void clearGlobalFocusOwner(Window activeWindow);
+
 }
--- a/jdk/src/share/classes/java/awt/peer/LabelPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/peer/LabelPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -24,7 +24,11 @@
  */
 package java.awt.peer;
 
+import java.awt.Label;
+
 /**
+ * The peer interface for {@link Label}.
+ *
  * The peer interfaces are intended only for use in porting
  * the AWT. They are not intended for use by application
  * developers, and developers should not implement peers
@@ -32,6 +36,25 @@
  * instances.
  */
 public interface LabelPeer extends ComponentPeer {
+
+    /**
+     * Sets the text to be displayed on the label.
+     *
+     * @param label the text to be displayed on the label
+     *
+     * @see Label#setText
+     */
     void setText(String label);
+
+    /**
+     * Sets the alignment of the label text.
+     *
+     * @param alignment the alignment of the label text
+     *
+     * @see Label#setAlignment(int)
+     * @see Label#CENTER
+     * @see Label#RIGHT
+     * @see Label#LEFT
+     */
     void setAlignment(int alignment);
 }
--- a/jdk/src/share/classes/java/awt/peer/ListPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/peer/ListPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -25,8 +25,11 @@
 package java.awt.peer;
 
 import java.awt.Dimension;
+import java.awt.List;
 
 /**
+ * The peer interface for {@link List}.
+ *
  * The peer interfaces are intended only for use in porting
  * the AWT. They are not intended for use by application
  * developers, and developers should not implement peers
@@ -34,39 +37,102 @@
  * instances.
  */
 public interface ListPeer extends ComponentPeer {
+
+    /**
+     * Returns the indices of the list items that are currently selected.
+     * The returned array is not required to be a copy, the callers of this
+     * method already make sure it is not modified.
+     *
+     * @return the indices of the list items that are currently selected
+     *
+     * @see List#getSelectedIndexes()
+     */
     int[] getSelectedIndexes();
+
+    /**
+     * Adds an item to the list at the specified index.
+     *
+     * @param item the item to add to the list
+     * @param index the index where to add the item into the list
+     *
+     * @see List#add(String, int)
+     */
     void add(String item, int index);
-    void delItems(int start, int end);
-    void removeAll();
-    void select(int index);
-    void deselect(int index);
-    void makeVisible(int index);
-    void setMultipleMode(boolean b);
-    Dimension getPreferredSize(int rows);
-    Dimension getMinimumSize(int rows);
 
     /**
-     * DEPRECATED:  Replaced by add(String, int).
+     * Deletes items from the list. All items from start to end should are
+     * deleted, including the item at the start and end indices.
+     *
+     * @param start the first item to be deleted
+     * @param end the last item to be deleted
      */
-    void addItem(String item, int index);
+    void delItems(int start, int end);
+
+    /**
+     * Removes all items from the list.
+     *
+     * @see List#removeAll()
+     */
+    void removeAll();
+
+    /**
+     * Selects the item at the specified {@code index}.
+     *
+     * @param index the index of the item to select
+     *
+     * @see List#select(int)
+     */
+    void select(int index);
 
     /**
-     * DEPRECATED:  Replaced by removeAll().
+     * De-selects the item at the specified {@code index}.
+     *
+     * @param index the index of the item to de-select
+     *
+     * @see List#deselect(int)
      */
-    void clear();
+    void deselect(int index);
 
     /**
-     * DEPRECATED:  Replaced by setMultipleMode(boolean).
+     * Makes sure that the item at the specified {@code index} is visible,
+     * by scrolling the list or similar.
+     *
+     * @param index the index of the item to make visible
+     *
+     * @see List#makeVisible(int)
      */
-    void setMultipleSelections(boolean v);
+    void makeVisible(int index);
 
     /**
-     * DEPRECATED:  Replaced by getPreferredSize(int).
+     * Toggles multiple selection mode on or off.
+     *
+     * @param m {@code true} for multiple selection mode,
+     *        {@code false} for single selection mode
+     *
+     * @see List#setMultipleMode(boolean)
      */
-    Dimension preferredSize(int v);
+    void setMultipleMode(boolean m);
 
     /**
-     * DEPRECATED:  Replaced by getMinimumSize(int).
+     * Returns the preferred size for a list with the specified number of rows.
+     *
+     * @param rows the number of rows
+     *
+     * @return the preferred size of the list
+     *
+     * @see List#getPreferredSize(int)
      */
-    Dimension minimumSize(int v);
+    Dimension getPreferredSize(int rows);
+
+    /**
+     * Returns the minimum size for a list with the specified number of rows.
+     *
+     * @param rows the number of rows
+     *
+     * @return the minimum size of the list
+     *
+     * @see List#getMinimumSize(int)
+     */
+    Dimension getMinimumSize(int rows);
+
 }
--- a/jdk/src/share/classes/java/awt/peer/MenuBarPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/peer/MenuBarPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -25,8 +25,11 @@
 package java.awt.peer;
 
 import java.awt.Menu;
+import java.awt.MenuBar;
 
 /**
+ * The peer interface for {@link MenuBar}.
+ *
  * The peer interfaces are intended only for use in porting
  * the AWT. They are not intended for use by application
  * developers, and developers should not implement peers
@@ -34,7 +37,31 @@
  * instances.
  */
 public interface MenuBarPeer extends MenuComponentPeer {
+
+    /**
+     * Adds a menu to the menu bar.
+     *
+     * @param m the menu to add
+     *
+     * @see MenuBar#add(Menu)
+     */
     void addMenu(Menu m);
+
+    /**
+     * Deletes a menu from the menu bar.
+     *
+     * @param index the index of the menu to remove
+     *
+     * @see MenuBar#remove(int)
+     */
     void delMenu(int index);
+
+    /**
+     * Adds a help menu to the menu bar.
+     *
+     * @param m the help menu to add
+     *
+     * @see MenuBar#setHelpMenu(Menu)
+     */
     void addHelpMenu(Menu m);
 }
--- a/jdk/src/share/classes/java/awt/peer/MenuComponentPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/peer/MenuComponentPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -25,8 +25,12 @@
 package java.awt.peer;
 
 import java.awt.Font;
+import java.awt.MenuComponent;
 
 /**
+ * The base interface for all kinds of menu components. This is used by
+ * {@link MenuComponent}.
+ *
  * The peer interfaces are intended only for use in porting
  * the AWT. They are not intended for use by application
  * developers, and developers should not implement peers
@@ -34,6 +38,20 @@
  * instances.
  */
 public interface MenuComponentPeer {
+
+    /**
+     * Disposes the menu component.
+     *
+     * @see MenuComponent#removeNotify()
+     */
     void dispose();
+
+    /**
+     * Sets the font for the menu component.
+     *
+     * @param f the font to use for the menu component
+     *
+     * @see MenuComponent#setFont(Font)
+     */
     void setFont(Font f);
 }
--- a/jdk/src/share/classes/java/awt/peer/MenuItemPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/peer/MenuItemPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -24,7 +24,11 @@
  */
 package java.awt.peer;
 
+import java.awt.MenuItem;
+
 /**
+ * The peer interface for menu items. This is used by {@link MenuItem}.
+ *
  * The peer interfaces are intended only for use in porting
  * the AWT. They are not intended for use by application
  * developers, and developers should not implement peers
@@ -32,16 +36,20 @@
  * instances.
  */
 public interface MenuItemPeer extends MenuComponentPeer {
+
+    /**
+     * Sets the label to be displayed in this menu item.
+     *
+     * @param label the label to be displayed
+     */
     void setLabel(String label);
-    void setEnabled(boolean b);
 
     /**
-     * DEPRECATED:  Replaced by setEnabled(boolean).
+     * Enables or disables the menu item.
+     *
+     * @param e {@code true} to enable the menu item, {@code false}
+     *        to disable it
      */
-    void enable();
+    void setEnabled(boolean e);
 
-    /**
-     * DEPRECATED:  Replaced by setEnabled(boolean).
-     */
-    void disable();
 }
--- a/jdk/src/share/classes/java/awt/peer/MenuPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/peer/MenuPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -24,9 +24,12 @@
  */
 package java.awt.peer;
 
+import java.awt.Menu;
 import java.awt.MenuItem;
 
 /**
+ * The peer interface for menus. This is used by {@link Menu}.
+ *
  * The peer interfaces are intended only for use in porting
  * the AWT. They are not intended for use by application
  * developers, and developers should not implement peers
@@ -34,7 +37,29 @@
  * instances.
  */
 public interface MenuPeer extends MenuItemPeer {
+
+    /**
+     * Adds a separator (e.g. a horizontal line or similar) to the menu.
+     *
+     * @see Menu#addSeparator()
+     */
     void addSeparator();
+
+    /**
+     * Adds the specified menu item to the menu.
+     *
+     * @param item the menu item to add
+     *
+     * @see Menu#add(MenuItem)
+     */
     void addItem(MenuItem item);
+
+    /**
+     * Removes the menu item at the specified index.
+     *
+     * @param index the index of the item to remove
+     *
+     * @see Menu#remove(int)
+     */
     void delItem(int index);
 }
--- a/jdk/src/share/classes/java/awt/peer/MouseInfoPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/peer/MouseInfoPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -29,6 +29,9 @@
 import java.awt.Point;
 
 /**
+ * Peer interface for {@link MouseInfo}. This is used to get some additional
+ * information about the mouse.
+ *
  * The peer interfaces are intended only for use in porting
  * the AWT. They are not intended for use by application
  * developers, and developers should not implement peers
--- a/jdk/src/share/classes/java/awt/peer/PanelPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/peer/PanelPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -25,6 +25,10 @@
 package java.awt.peer;
 
 /**
+ * The peer interface for {@link Panel}. This is a subinterface of
+ * ContainerPeer and does not declare any additional methods because a Panel
+ * is just that, a concrete Container.
+ *
  * The peer interfaces are intended only for use in porting
  * the AWT. They are not intended for use by application
  * developers, and developers should not implement peers
--- a/jdk/src/share/classes/java/awt/peer/PopupMenuPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/peer/PopupMenuPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -25,8 +25,11 @@
 package java.awt.peer;
 
 import java.awt.Event;
+import java.awt.PopupMenu;
 
 /**
+ * The peer interface for {@link PopupMenu}.
+ *
  * The peer interfaces are intended only for use in porting
  * the AWT. They are not intended for use by application
  * developers, and developers should not implement peers
@@ -34,5 +37,14 @@
  * instances.
  */
 public interface PopupMenuPeer extends MenuPeer {
+
+    /**
+     * Shows the popup menu.
+     *
+     * @param e a synthetic event describing the origin and location of the
+     *        popup menu
+     *
+     * @see PopupMenu#show(java.awt.Component, int, int)
+     */
     void show(Event e);
 }
--- a/jdk/src/share/classes/java/awt/peer/RobotPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/peer/RobotPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1999-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -39,17 +39,93 @@
  */
 public interface RobotPeer
 {
-    public void mouseMove(int x, int y);
-    public void mousePress(int buttons);
-    public void mouseRelease(int buttons);
+    /**
+     * Moves the mouse pointer to the specified screen location.
+     *
+     * @param x the X location on screen
+     * @param y the Y location on screen
+     *
+     * @see Robot#mouseMove(int, int)
+     */
+    void mouseMove(int x, int y);
 
-    public void mouseWheel(int wheelAmt);
+    /**
+     * Simulates a mouse press with the specified button(s).
+     *
+     * @param buttons the button mask
+     *
+     * @see Robot#mousePress(int)
+     */
+    void mousePress(int buttons);
+
+    /**
+     * Simulates a mouse release with the specified button(s).
+     *
+     * @param buttons the button mask
+     *
+     * @see Robot#mouseRelease(int)
+     */
+    void mouseRelease(int buttons);
+
+    /**
+     * Simulates mouse wheel action.
+     *
+     * @param wheelAmt number of notches to move the mouse wheel
+     *
+     * @see Robot#mouseWheel(int)
+     */
+    void mouseWheel(int wheelAmt);
 
-    public void keyPress(int keycode);
-    public void keyRelease(int keycode);
+    /**
+     * Simulates a key press of the specified key.
+     *
+     * @param keycode the key code to press
+     *
+     * @see Robot#keyPress(int)
+     */
+    void keyPress(int keycode);
+
+    /**
+     * Simulates a key release of the specified key.
+     *
+     * @param keycode the key code to release
+     *
+     * @see Robot#keyRelease(int)
+     */
+    void keyRelease(int keycode);
 
-    public int getRGBPixel(int x, int y);
-    public int [] getRGBPixels(Rectangle bounds);
+    /**
+     * Gets the RGB value of the specified pixel on screen.
+     *
+     * @param x the X screen coordinate
+     * @param y the Y screen coordinate
+     *
+     * @return the RGB value of the specified pixel on screen
+     *
+     * @see Robot#getPixelColor(int, int)
+     */
+    int getRGBPixel(int x, int y);
 
-    public void dispose();
+    /**
+     * Gets the RGB values of the specified screen area as an array.
+     *
+     * @param bounds the screen area to capture the RGB values from
+     *
+     * @return the RGB values of the specified screen area
+     *
+     * @see Robot#createScreenCapture(Rectangle)
+     */
+    int[] getRGBPixels(Rectangle bounds);
+
+    /**
+     * Disposes the robot peer when it is not needed anymore.
+     */
+    void dispose();
+
+    /**
+     * Returns the number of buttons that the robot simulates.
+     *
+     * @return the number of buttons that the robot simulates
+     */
+    int getNumberOfButtons();
 }
--- a/jdk/src/share/classes/java/awt/peer/ScrollPanePeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/peer/ScrollPanePeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -25,8 +25,12 @@
 package java.awt.peer;
 
 import java.awt.Adjustable;
+import java.awt.ScrollPane;
+import java.awt.ScrollPaneAdjustable;
 
 /**
+ * The peer interface for {@link ScrollPane}.
+ *
  * The peer interfaces are intended only for use in porting
  * the AWT. They are not intended for use by application
  * developers, and developers should not implement peers
@@ -34,10 +38,60 @@
  * instances.
  */
 public interface ScrollPanePeer extends ContainerPeer {
+
+    /**
+     * Returns the height of the horizontal scroll bar.
+     *
+     * @return the height of the horizontal scroll bar
+     *
+     * @see ScrollPane#getHScrollbarHeight()
+     */
     int getHScrollbarHeight();
+
+    /**
+     * Returns the width of the vertical scroll bar.
+     *
+     * @return the width of the vertical scroll bar
+     *
+     * @see ScrollPane#getVScrollbarWidth()
+     */
     int getVScrollbarWidth();
+
+    /**
+     * Sets the scroll position of the child.
+     *
+     * @param x the X coordinate of the scroll position
+     * @param y the Y coordinate of the scroll position
+     *
+     * @see ScrollPane#setScrollPosition(int, int)
+     */
     void setScrollPosition(int x, int y);
+
+    /**
+     * Called when the child component changes its size.
+     *
+     * @param w the new width of the child component
+     * @param h the new height of the child component
+     *
+     * @see ScrollPane#layout()
+     */
     void childResized(int w, int h);
+
+    /**
+     * Sets the unit increment of one of the scroll pane's adjustables.
+     *
+     * @param adj the scroll pane adjustable object
+     * @param u the unit increment
+     *
+     * @see ScrollPaneAdjustable#setUnitIncrement(int)
+     */
     void setUnitIncrement(Adjustable adj, int u);
+
+    /**
+     * Sets the value for one of the scroll pane's adjustables.
+     *
+     * @param adj the scroll pane adjustable object
+     * @param v the value to set
+     */
     void setValue(Adjustable adj, int v);
 }
--- a/jdk/src/share/classes/java/awt/peer/ScrollbarPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/peer/ScrollbarPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -24,7 +24,11 @@
  */
 package java.awt.peer;
 
+import java.awt.Scrollbar;
+
 /**
+ * The peer interface for {@link Scrollbar}.
+ *
  * The peer interfaces are intended only for use in porting
  * the AWT. They are not intended for use by application
  * developers, and developers should not implement peers
@@ -32,7 +36,34 @@
  * instances.
  */
 public interface ScrollbarPeer extends ComponentPeer {
+
+    /**
+     * Sets the parameters for the scrollbar.
+     *
+     * @param value the current value
+     * @param visible how much of the whole scale is visible
+     * @param minimum the minimum value
+     * @param maximum the maximum value
+     *
+     * @see Scrollbar#setValues(int, int, int, int)
+     */
     void setValues(int value, int visible, int minimum, int maximum);
+
+    /**
+     * Sets the line increment of the scrollbar.
+     *
+     * @param l the line increment
+     *
+     * @see Scrollbar#setLineIncrement(int)
+     */
     void setLineIncrement(int l);
+
+    /**
+     * Sets the page increment of the scrollbar.
+     *
+     * @param l the page increment
+     *
+     * @see Scrollbar#setPageIncrement(int)
+     */
     void setPageIncrement(int l);
 }
--- a/jdk/src/share/classes/java/awt/peer/SystemTrayPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/peer/SystemTrayPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -26,7 +26,20 @@
 package java.awt.peer;
 
 import java.awt.Dimension;
+import java.awt.SystemTray;
 
+/**
+ * The peer interface for {@link SystemTray}. This doesn't need to be
+ * implemented if {@link SystemTray#isSupported()} returns false.
+ */
 public interface SystemTrayPeer {
+
+    /**
+     * Returns the size of the system tray icon.
+     *
+     * @return the size of the system tray icon
+     *
+     * @see SystemTray#getTrayIconSize()
+     */
     Dimension getTrayIconSize();
 }
--- a/jdk/src/share/classes/java/awt/peer/TextAreaPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/peer/TextAreaPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -25,8 +25,11 @@
 package java.awt.peer;
 
 import java.awt.Dimension;
+import java.awt.TextArea;
 
 /**
+ * The peer interface for {@link TexTArea}.
+ *
  * The peer interfaces are intended only for use in porting
  * the AWT. They are not intended for use by application
  * developers, and developers should not implement peers
@@ -34,28 +37,52 @@
  * instances.
  */
 public interface TextAreaPeer extends TextComponentPeer {
-    void insert(String text, int pos);
-    void replaceRange(String text, int start, int end);
-    Dimension getPreferredSize(int rows, int columns);
-    Dimension getMinimumSize(int rows, int columns);
 
     /**
-     * DEPRECATED:  Replaced by insert(String, int).
+     * Inserts the specified text at the specified position in the document.
+     *
+     * @param text the text to insert
+     * @param pos the position to insert
+     *
+     * @see TextArea#insert(String, int)
      */
-    void insertText(String txt, int pos);
+    void insert(String text, int pos);
+
+    /**
+     * Replaces a range of text by the specified string
+     *
+     * @param text the replacement string
+     * @param start the begin of the range to replace
+     * @param end the end of the range to replace
+     *
+     * @see TextArea#replaceRange(String, int, int)
+     */
+    void replaceRange(String text, int start, int end);
 
     /**
-     * DEPRECATED:  Replaced by ReplaceRange(String, int, int).
+     * Returns the preferred size of a textarea with the specified number of
+     * columns and rows.
+     *
+     * @param rows the number of rows
+     * @param columns the number of columns
+     *
+     * @return the preferred size of a textarea
+     *
+     * @see TextArea#getPreferredSize(int, int)
      */
-    void replaceText(String txt, int start, int end);
+    Dimension getPreferredSize(int rows, int columns);
 
     /**
-     * DEPRECATED:  Replaced by getPreferredSize(int, int).
+     * Returns the minimum size of a textarea with the specified number of
+     * columns and rows.
+     *
+     * @param rows the number of rows
+     * @param columns the number of columns
+     *
+     * @return the minimum size of a textarea
+     *
+     * @see TextArea#getMinimumSize(int, int)
      */
-    Dimension preferredSize(int rows, int cols);
+    Dimension getMinimumSize(int rows, int columns);
 
-    /**
-     * DEPRECATED:  Replaced by getMinimumSize(int, int).
-     */
-    Dimension minimumSize(int rows, int cols);
 }
--- a/jdk/src/share/classes/java/awt/peer/TextComponentPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/peer/TextComponentPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -24,10 +24,12 @@
  */
 package java.awt.peer;
 
-import java.awt.Rectangle;
+import java.awt.TextComponent;
 import java.awt.im.InputMethodRequests;
 
 /**
+ * The peer interface for {@link TextComponent}.
+ *
  * The peer interfaces are intended only for use in porting
  * the AWT. They are not intended for use by application
  * developers, and developers should not implement peers
@@ -35,16 +37,85 @@
  * instances.
  */
 public interface TextComponentPeer extends ComponentPeer {
+
+    /**
+     * Sets if the text component should be editable or not.
+     *
+     * @param editable {@code true} for editable text components,
+     *        {@code false} for non-editable text components
+     *
+     * @see TextComponent#setEditable(boolean)
+     */
     void setEditable(boolean editable);
+
+    /**
+     * Returns the current content of the text component.
+     *
+     * @return the current content of the text component
+     *
+     * @see TextComponent#getText()
+     */
     String getText();
+
+    /**
+     * Sets the content for the text component.
+     *
+     * @param l the content to set
+     *
+     * @see TextComponent#setText(String)
+     */
     void setText(String l);
+
+    /**
+     * Returns the start index of the current selection.
+     *
+     * @return the start index of the current selection
+     *
+     * @see TextComponent#getSelectionStart()
+     */
     int getSelectionStart();
+
+    /**
+     * Returns the end index of the current selection.
+     *
+     * @return the end index of the current selection
+     *
+     * @see TextComponent#getSelectionEnd()
+     */
     int getSelectionEnd();
+
+    /**
+     * Selects an area of the text component.
+     *
+     * @param selStart the start index of the new selection
+     * @param selEnd the end index of the new selection
+     *
+     * @see TextComponent#select(int, int)
+     */
     void select(int selStart, int selEnd);
+
+    /**
+     * Sets the caret position of the text component.
+     *
+     * @param pos the caret position to set
+     *
+     * @see TextComponent#setCaretPosition(int)
+     */
     void setCaretPosition(int pos);
+
+    /**
+     * Returns the current caret position.
+     *
+     * @return the current caret position
+     *
+     * @see TextComponent#getCaretPosition()
+     */
     int getCaretPosition();
-    int getIndexAtPoint(int x, int y);
-    Rectangle getCharacterBounds(int i);
-    long filterEvents(long mask);
+
+    /**
+     * Returns the input method requests.
+     *
+     * @return the input method requests
+     */
     InputMethodRequests getInputMethodRequests();
 }
--- a/jdk/src/share/classes/java/awt/peer/TextFieldPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/peer/TextFieldPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -25,8 +25,11 @@
 package java.awt.peer;
 
 import java.awt.Dimension;
+import java.awt.TextField;
 
 /**
+ * The peer interface for {@link TextField}.
+ *
  * The peer interfaces are intended only for use in porting
  * the AWT. They are not intended for use by application
  * developers, and developers should not implement peers
@@ -34,22 +37,38 @@
  * instances.
  */
 public interface TextFieldPeer extends TextComponentPeer {
-    void setEchoChar(char echoChar);
-    Dimension getPreferredSize(int columns);
-    Dimension getMinimumSize(int columns);
 
     /**
-     * DEPRECATED:  Replaced by setEchoChar(char echoChar).
+     * Sets the echo character.
+     *
+     * @param echoChar the echo character to set
+     *
+     * @see TextField#getEchoChar()
      */
-    void setEchoCharacter(char c);
+    void setEchoChar(char echoChar);
 
     /**
-     * DEPRECATED:  Replaced by getPreferredSize(int).
+     * Returns the preferred size of the text field with the specified number
+     * of columns.
+     *
+     * @param columns the number of columns
+     *
+     * @return the preferred size of the text field
+     *
+     * @see TextField#getPreferredSize(int)
      */
-    Dimension preferredSize(int cols);
+    Dimension getPreferredSize(int columns);
 
     /**
-     * DEPRECATED:  Replaced by getMinimumSize(int).
+     * Returns the minimum size of the text field with the specified number
+     * of columns.
+     *
+     * @param columns the number of columns
+     *
+     * @return the minimum size of the text field
+     *
+     * @see TextField#getMinimumSize(int)
      */
-    Dimension minimumSize(int cols);
+    Dimension getMinimumSize(int columns);
+
 }
--- a/jdk/src/share/classes/java/awt/peer/TrayIconPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/peer/TrayIconPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -25,10 +25,56 @@
 
 package java.awt.peer;
 
+import java.awt.SystemTray;
+import java.awt.TrayIcon;
+
+/**
+ * The peer interface for the {@link TrayIcon}. This doesn't need to be
+ * implemented if {@link SystemTray#isSupported()} returns false.
+ */
 public interface TrayIconPeer {
+
+    /**
+     * Disposes the tray icon and releases and resources held by it.
+     *
+     * @see TrayIcon#removeNotify()
+     */
     void dispose();
+
+    /**
+     * Sets the tool tip for the tray icon.
+     *
+     * @param tooltip the tooltip to set
+     *
+     * @see TrayIcon#setToolTip(String)
+     */
     void setToolTip(String tooltip);
+
+    /**
+     * Updates the icon image. This is supposed to display the current icon
+     * from the TrayIcon component in the actual tray icon.
+     *
+     * @see TrayIcon#setImage(java.awt.Image)
+     * @see TrayIcon#setImageAutoSize(boolean)
+     */
     void updateImage();
+
+    /**
+     * Displays a message at the tray icon.
+     *
+     * @param caption the message caption
+     * @param text the actual message text
+     * @param messageType the message type
+     *
+     * @see TrayIcon#displayMessage(String, String, java.awt.TrayIcon.MessageType)
+     */
     void displayMessage(String caption, String text, String messageType);
+
+    /**
+     * Shows the popup menu of this tray icon at the specified position.
+     *
+     * @param x the X location for the popup menu
+     * @param y the Y location for the popup menu
+     */
     void showPopupMenu(int x, int y);
 }
--- a/jdk/src/share/classes/java/awt/peer/WindowPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/awt/peer/WindowPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -28,6 +28,8 @@
 import java.awt.*;
 
 /**
+ * The peer interface for {@link Window}.
+ *
  * The peer interfaces are intended only for use in porting
  * the AWT. They are not intended for use by application
  * developers, and developers should not implement peers
@@ -35,12 +37,59 @@
  * instances.
  */
 public interface WindowPeer extends ContainerPeer {
+
+    /**
+     * Makes this window the topmost window on the desktop.
+     *
+     * @see Window#toFront()
+     */
     void toFront();
+
+    /**
+     * Makes this window the bottommost window on the desktop.
+     *
+     * @see Window#toBack()
+     */
     void toBack();
+
+    /**
+     * Sets if the window should always stay on top of all other windows or
+     * not.
+     *
+     * @param alwaysOnTop if the window should always stay on top of all other
+     *        windows or not
+     *
+     * @see Window#setAlwaysOnTop(boolean)
+     */
     void setAlwaysOnTop(boolean alwaysOnTop);
+
+    /**
+     * Updates the window's focusable state.
+     *
+     * @see Window#setFocusableWindowState(boolean)
+     */
     void updateFocusableWindowState();
-    boolean requestWindowFocus();
+
+    /**
+     * Sets if this window is blocked by a modal dialog or not.
+     *
+     * @param blocker the blocking modal dialog
+     * @param blocked {@code true} to block the window, {@code false}
+     *        to unblock it
+     */
     void setModalBlocked(Dialog blocker, boolean blocked);
+
+    /**
+     * Updates the minimum size on the peer.
+     *
+     * @see Window#setMinimumSize(Dimension)
+     */
     void updateMinimumSize();
+
+    /**
+     * Updates the icons for the window.
+     *
+     * @see Window#setIconImages(java.util.List)
+     */
     void updateIconImages();
 }
--- a/jdk/src/share/classes/java/io/InputStream.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/io/InputStream.java	Wed Jul 05 16:47:27 2017 +0200
@@ -90,7 +90,7 @@
      *
      * @param      b   the buffer into which the data is read.
      * @return     the total number of bytes read into the buffer, or
-     *             <code>-1</code> is there is no more data because the end of
+     *             <code>-1</code> if there is no more data because the end of
      *             the stream has been reached.
      * @exception  IOException  If the first byte cannot be read for any reason
      * other than the end of the file, if the input stream has been closed, or
--- a/jdk/src/share/classes/java/lang/Enum.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/lang/Enum.java	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 2003-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2003-2009 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -34,6 +34,13 @@
 /**
  * This is the common base class of all Java language enumeration types.
  *
+ * More information about enums, including descriptions of the
+ * implicitly declared methods synthesized by the compiler, can be
+ * found in <i>The Java&trade; Language Specification, Third
+ * Edition</i>, <a
+ * href="http://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.9">&sect;8.9</a>.
+ *
+ * @param <E> The enum type subclass
  * @author  Josh Bloch
  * @author  Neal Gafter
  * @see     Class#getEnumConstants()
@@ -192,6 +199,15 @@
      * to declare an enum constant in this type.  (Extraneous whitespace
      * characters are not permitted.)
      *
+     * <p>Note that for a particular enum type {@code T}, the
+     * implicitly declared {@code public static T valueOf(String)}
+     * method on that enum may be used instead of this method to map
+     * from a name to the corresponding enum constant.  All the
+     * constants of an enum type can be obtained by calling the
+     * implicit {@code public static T[] values()} method of that
+     * type.
+     *
+     * @param <T> The enum type whose constant is to be returned
      * @param enumType the {@code Class} object of the enum type from which
      *      to return a constant
      * @param name the name of the constant to return
@@ -212,7 +228,7 @@
         if (name == null)
             throw new NullPointerException("Name is null");
         throw new IllegalArgumentException(
-            "No enum const " + enumType +"." + name);
+            "No enum constant " + enumType.getCanonicalName() + "." + name);
     }
 
     /**
@@ -225,10 +241,10 @@
      */
     private void readObject(ObjectInputStream in) throws IOException,
         ClassNotFoundException {
-            throw new InvalidObjectException("can't deserialize enum");
+        throw new InvalidObjectException("can't deserialize enum");
     }
 
     private void readObjectNoData() throws ObjectStreamException {
-            throw new InvalidObjectException("can't deserialize enum");
+        throw new InvalidObjectException("can't deserialize enum");
     }
 }
--- a/jdk/src/share/classes/java/lang/Object.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/lang/Object.java	Wed Jul 05 16:47:27 2017 +0200
@@ -26,8 +26,8 @@
 package java.lang;
 
 /**
- * Class <code>Object</code> is the root of the class hierarchy.
- * Every class has <code>Object</code> as a superclass. All objects,
+ * Class {@code Object} is the root of the class hierarchy.
+ * Every class has {@code Object} as a superclass. All objects,
  * including arrays, implement the methods of this class.
  *
  * @author  unascribed
@@ -66,30 +66,30 @@
 
     /**
      * Returns a hash code value for the object. This method is
-     * supported for the benefit of hashtables such as those provided by
-     * <code>java.util.Hashtable</code>.
+     * supported for the benefit of hash tables such as those provided by
+     * {@link java.util.HashMap}.
      * <p>
-     * The general contract of <code>hashCode</code> is:
+     * The general contract of {@code hashCode} is:
      * <ul>
      * <li>Whenever it is invoked on the same object more than once during
-     *     an execution of a Java application, the <tt>hashCode</tt> method
+     *     an execution of a Java application, the {@code hashCode} method
      *     must consistently return the same integer, provided no information
-     *     used in <tt>equals</tt> comparisons on the object is modified.
+     *     used in {@code equals} comparisons on the object is modified.
      *     This integer need not remain consistent from one execution of an
      *     application to another execution of the same application.
-     * <li>If two objects are equal according to the <tt>equals(Object)</tt>
-     *     method, then calling the <code>hashCode</code> method on each of
+     * <li>If two objects are equal according to the {@code equals(Object)}
+     *     method, then calling the {@code hashCode} method on each of
      *     the two objects must produce the same integer result.
      * <li>It is <em>not</em> required that if two objects are unequal
      *     according to the {@link java.lang.Object#equals(java.lang.Object)}
-     *     method, then calling the <tt>hashCode</tt> method on each of the
+     *     method, then calling the {@code hashCode} method on each of the
      *     two objects must produce distinct integer results.  However, the
      *     programmer should be aware that producing distinct integer results
-     *     for unequal objects may improve the performance of hashtables.
+     *     for unequal objects may improve the performance of hash tables.
      * </ul>
      * <p>
      * As much as is reasonably practical, the hashCode method defined by
-     * class <tt>Object</tt> does return distinct integers for distinct
+     * class {@code Object} does return distinct integers for distinct
      * objects. (This is typically implemented by converting the internal
      * address of the object into an integer, but this implementation
      * technique is not required by the
@@ -97,55 +97,55 @@
      *
      * @return  a hash code value for this object.
      * @see     java.lang.Object#equals(java.lang.Object)
-     * @see     java.util.Hashtable
+     * @see     java.lang.System#identityHashCode
      */
     public native int hashCode();
 
     /**
      * Indicates whether some other object is "equal to" this one.
      * <p>
-     * The <code>equals</code> method implements an equivalence relation
+     * The {@code equals} method implements an equivalence relation
      * on non-null object references:
      * <ul>
      * <li>It is <i>reflexive</i>: for any non-null reference value
-     *     <code>x</code>, <code>x.equals(x)</code> should return
-     *     <code>true</code>.
+     *     {@code x}, {@code x.equals(x)} should return
+     *     {@code true}.
      * <li>It is <i>symmetric</i>: for any non-null reference values
-     *     <code>x</code> and <code>y</code>, <code>x.equals(y)</code>
-     *     should return <code>true</code> if and only if
-     *     <code>y.equals(x)</code> returns <code>true</code>.
+     *     {@code x} and {@code y}, {@code x.equals(y)}
+     *     should return {@code true} if and only if
+     *     {@code y.equals(x)} returns {@code true}.
      * <li>It is <i>transitive</i>: for any non-null reference values
-     *     <code>x</code>, <code>y</code>, and <code>z</code>, if
-     *     <code>x.equals(y)</code> returns <code>true</code> and
-     *     <code>y.equals(z)</code> returns <code>true</code>, then
-     *     <code>x.equals(z)</code> should return <code>true</code>.
+     *     {@code x}, {@code y}, and {@code z}, if
+     *     {@code x.equals(y)} returns {@code true} and
+     *     {@code y.equals(z)} returns {@code true}, then
+     *     {@code x.equals(z)} should return {@code true}.
      * <li>It is <i>consistent</i>: for any non-null reference values
-     *     <code>x</code> and <code>y</code>, multiple invocations of
-     *     <tt>x.equals(y)</tt> consistently return <code>true</code>
-     *     or consistently return <code>false</code>, provided no
-     *     information used in <code>equals</code> comparisons on the
+     *     {@code x} and {@code y}, multiple invocations of
+     *     {@code x.equals(y)} consistently return {@code true}
+     *     or consistently return {@code false}, provided no
+     *     information used in {@code equals} comparisons on the
      *     objects is modified.
-     * <li>For any non-null reference value <code>x</code>,
-     *     <code>x.equals(null)</code> should return <code>false</code>.
+     * <li>For any non-null reference value {@code x},
+     *     {@code x.equals(null)} should return {@code false}.
      * </ul>
      * <p>
-     * The <tt>equals</tt> method for class <code>Object</code> implements
+     * The {@code equals} method for class {@code Object} implements
      * the most discriminating possible equivalence relation on objects;
-     * that is, for any non-null reference values <code>x</code> and
-     * <code>y</code>, this method returns <code>true</code> if and only
-     * if <code>x</code> and <code>y</code> refer to the same object
-     * (<code>x == y</code> has the value <code>true</code>).
+     * that is, for any non-null reference values {@code x} and
+     * {@code y}, this method returns {@code true} if and only
+     * if {@code x} and {@code y} refer to the same object
+     * ({@code x == y} has the value {@code true}).
      * <p>
-     * Note that it is generally necessary to override the <tt>hashCode</tt>
+     * Note that it is generally necessary to override the {@code hashCode}
      * method whenever this method is overridden, so as to maintain the
-     * general contract for the <tt>hashCode</tt> method, which states
+     * general contract for the {@code hashCode} method, which states
      * that equal objects must have equal hash codes.
      *
      * @param   obj   the reference object with which to compare.
-     * @return  <code>true</code> if this object is the same as the obj
-     *          argument; <code>false</code> otherwise.
+     * @return  {@code true} if this object is the same as the obj
+     *          argument; {@code false} otherwise.
      * @see     #hashCode()
-     * @see     java.util.Hashtable
+     * @see     java.util.HashMap
      */
     public boolean equals(Object obj) {
         return (this == obj);
@@ -154,7 +154,7 @@
     /**
      * Creates and returns a copy of this object.  The precise meaning
      * of "copy" may depend on the class of the object. The general
-     * intent is that, for any object <tt>x</tt>, the expression:
+     * intent is that, for any object {@code x}, the expression:
      * <blockquote>
      * <pre>
      * x.clone() != x</pre></blockquote>
@@ -162,49 +162,49 @@
      * <blockquote>
      * <pre>
      * x.clone().getClass() == x.getClass()</pre></blockquote>
-     * will be <tt>true</tt>, but these are not absolute requirements.
+     * will be {@code true}, but these are not absolute requirements.
      * While it is typically the case that:
      * <blockquote>
      * <pre>
      * x.clone().equals(x)</pre></blockquote>
-     * will be <tt>true</tt>, this is not an absolute requirement.
+     * will be {@code true}, this is not an absolute requirement.
      * <p>
      * By convention, the returned object should be obtained by calling
-     * <tt>super.clone</tt>.  If a class and all of its superclasses (except
-     * <tt>Object</tt>) obey this convention, it will be the case that
-     * <tt>x.clone().getClass() == x.getClass()</tt>.
+     * {@code super.clone}.  If a class and all of its superclasses (except
+     * {@code Object}) obey this convention, it will be the case that
+     * {@code x.clone().getClass() == x.getClass()}.
      * <p>
      * By convention, the object returned by this method should be independent
      * of this object (which is being cloned).  To achieve this independence,
      * it may be necessary to modify one or more fields of the object returned
-     * by <tt>super.clone</tt> before returning it.  Typically, this means
+     * by {@code super.clone} before returning it.  Typically, this means
      * copying any mutable objects that comprise the internal "deep structure"
      * of the object being cloned and replacing the references to these
      * objects with references to the copies.  If a class contains only
      * primitive fields or references to immutable objects, then it is usually
-     * the case that no fields in the object returned by <tt>super.clone</tt>
+     * the case that no fields in the object returned by {@code super.clone}
      * need to be modified.
      * <p>
-     * The method <tt>clone</tt> for class <tt>Object</tt> performs a
+     * The method {@code clone} for class {@code Object} performs a
      * specific cloning operation. First, if the class of this object does
-     * not implement the interface <tt>Cloneable</tt>, then a
-     * <tt>CloneNotSupportedException</tt> is thrown. Note that all arrays
-     * are considered to implement the interface <tt>Cloneable</tt>.
+     * not implement the interface {@code Cloneable}, then a
+     * {@code CloneNotSupportedException} is thrown. Note that all arrays
+     * are considered to implement the interface {@code Cloneable}.
      * Otherwise, this method creates a new instance of the class of this
      * object and initializes all its fields with exactly the contents of
      * the corresponding fields of this object, as if by assignment; the
      * contents of the fields are not themselves cloned. Thus, this method
      * performs a "shallow copy" of this object, not a "deep copy" operation.
      * <p>
-     * The class <tt>Object</tt> does not itself implement the interface
-     * <tt>Cloneable</tt>, so calling the <tt>clone</tt> method on an object
-     * whose class is <tt>Object</tt> will result in throwing an
+     * The class {@code Object} does not itself implement the interface
+     * {@code Cloneable}, so calling the {@code clone} method on an object
+     * whose class is {@code Object} will result in throwing an
      * exception at run time.
      *
      * @return     a clone of this instance.
      * @exception  CloneNotSupportedException  if the object's class does not
-     *               support the <code>Cloneable</code> interface. Subclasses
-     *               that override the <code>clone</code> method can also
+     *               support the {@code Cloneable} interface. Subclasses
+     *               that override the {@code clone} method can also
      *               throw this exception to indicate that an instance cannot
      *               be cloned.
      * @see java.lang.Cloneable
@@ -213,15 +213,15 @@
 
     /**
      * Returns a string representation of the object. In general, the
-     * <code>toString</code> method returns a string that
+     * {@code toString} method returns a string that
      * "textually represents" this object. The result should
      * be a concise but informative representation that is easy for a
      * person to read.
      * It is recommended that all subclasses override this method.
      * <p>
-     * The <code>toString</code> method for class <code>Object</code>
+     * The {@code toString} method for class {@code Object}
      * returns a string consisting of the name of the class of which the
-     * object is an instance, the at-sign character `<code>@</code>', and
+     * object is an instance, the at-sign character `{@code @}', and
      * the unsigned hexadecimal representation of the hash code of the
      * object. In other words, this method returns a string equal to the
      * value of:
@@ -241,7 +241,7 @@
      * monitor. If any threads are waiting on this object, one of them
      * is chosen to be awakened. The choice is arbitrary and occurs at
      * the discretion of the implementation. A thread waits on an object's
-     * monitor by calling one of the <code>wait</code> methods.
+     * monitor by calling one of the {@code wait} methods.
      * <p>
      * The awakened thread will not be able to proceed until the current
      * thread relinquishes the lock on this object. The awakened thread will
@@ -255,9 +255,9 @@
      * object's monitor in one of three ways:
      * <ul>
      * <li>By executing a synchronized instance method of that object.
-     * <li>By executing the body of a <code>synchronized</code> statement
+     * <li>By executing the body of a {@code synchronized} statement
      *     that synchronizes on the object.
-     * <li>For objects of type <code>Class,</code> by executing a
+     * <li>For objects of type {@code Class,} by executing a
      *     synchronized static method of that class.
      * </ul>
      * <p>
@@ -273,7 +273,7 @@
     /**
      * Wakes up all threads that are waiting on this object's monitor. A
      * thread waits on an object's monitor by calling one of the
-     * <code>wait</code> methods.
+     * {@code wait} methods.
      * <p>
      * The awakened threads will not be able to proceed until the current
      * thread relinquishes the lock on this object. The awakened threads
@@ -283,7 +283,7 @@
      * being the next thread to lock this object.
      * <p>
      * This method should only be called by a thread that is the owner
-     * of this object's monitor. See the <code>notify</code> method for a
+     * of this object's monitor. See the {@code notify} method for a
      * description of the ways in which a thread can become the owner of
      * a monitor.
      *
@@ -308,15 +308,15 @@
      * becomes disabled for thread scheduling purposes and lies dormant
      * until one of four things happens:
      * <ul>
-     * <li>Some other thread invokes the <tt>notify</tt> method for this
+     * <li>Some other thread invokes the {@code notify} method for this
      * object and thread <var>T</var> happens to be arbitrarily chosen as
      * the thread to be awakened.
-     * <li>Some other thread invokes the <tt>notifyAll</tt> method for this
+     * <li>Some other thread invokes the {@code notifyAll} method for this
      * object.
      * <li>Some other thread {@linkplain Thread#interrupt() interrupts}
      * thread <var>T</var>.
      * <li>The specified amount of real time has elapsed, more or less.  If
-     * <tt>timeout</tt> is zero, however, then real time is not taken into
+     * {@code timeout} is zero, however, then real time is not taken into
      * consideration and the thread simply waits until notified.
      * </ul>
      * The thread <var>T</var> is then removed from the wait set for this
@@ -324,11 +324,11 @@
      * usual manner with other threads for the right to synchronize on the
      * object; once it has gained control of the object, all its
      * synchronization claims on the object are restored to the status quo
-     * ante - that is, to the situation as of the time that the <tt>wait</tt>
+     * ante - that is, to the situation as of the time that the {@code wait}
      * method was invoked. Thread <var>T</var> then returns from the
-     * invocation of the <tt>wait</tt> method. Thus, on return from the
-     * <tt>wait</tt> method, the synchronization state of the object and of
-     * thread <tt>T</tt> is exactly as it was when the <tt>wait</tt> method
+     * invocation of the {@code wait} method. Thus, on return from the
+     * {@code wait} method, the synchronization state of the object and of
+     * thread {@code T} is exactly as it was when the {@code wait} method
      * was invoked.
      * <p>
      * A thread can also wake up without being notified, interrupted, or
@@ -351,18 +351,18 @@
      *
      * <p>If the current thread is {@linkplain java.lang.Thread#interrupt()
      * interrupted} by any thread before or while it is waiting, then an
-     * <tt>InterruptedException</tt> is thrown.  This exception is not
+     * {@code InterruptedException} is thrown.  This exception is not
      * thrown until the lock status of this object has been restored as
      * described above.
      *
      * <p>
-     * Note that the <tt>wait</tt> method, as it places the current thread
+     * Note that the {@code wait} method, as it places the current thread
      * into the wait set for this object, unlocks only this object; any
      * other objects on which the current thread may be synchronized remain
      * locked while the thread waits.
      * <p>
      * This method should only be called by a thread that is the owner
-     * of this object's monitor. See the <code>notify</code> method for a
+     * of this object's monitor. See the {@code notify} method for a
      * description of the ways in which a thread can become the owner of
      * a monitor.
      *
@@ -388,7 +388,7 @@
      * some other thread interrupts the current thread, or a certain
      * amount of real time has elapsed.
      * <p>
-     * This method is similar to the <code>wait</code> method of one
+     * This method is similar to the {@code wait} method of one
      * argument, but it allows finer control over the amount of time to
      * wait for a notification before giving up. The amount of real time,
      * measured in nanoseconds, is given by:
@@ -398,17 +398,17 @@
      * <p>
      * In all other respects, this method does the same thing as the
      * method {@link #wait(long)} of one argument. In particular,
-     * <tt>wait(0, 0)</tt> means the same thing as <tt>wait(0)</tt>.
+     * {@code wait(0, 0)} means the same thing as {@code wait(0)}.
      * <p>
      * The current thread must own this object's monitor. The thread
      * releases ownership of this monitor and waits until either of the
      * following two conditions has occurred:
      * <ul>
      * <li>Another thread notifies threads waiting on this object's monitor
-     *     to wake up either through a call to the <code>notify</code> method
-     *     or the <code>notifyAll</code> method.
-     * <li>The timeout period, specified by <code>timeout</code>
-     *     milliseconds plus <code>nanos</code> nanoseconds arguments, has
+     *     to wake up either through a call to the {@code notify} method
+     *     or the {@code notifyAll} method.
+     * <li>The timeout period, specified by {@code timeout}
+     *     milliseconds plus {@code nanos} nanoseconds arguments, has
      *     elapsed.
      * </ul>
      * <p>
@@ -425,7 +425,7 @@
      *     }
      * </pre>
      * This method should only be called by a thread that is the owner
-     * of this object's monitor. See the <code>notify</code> method for a
+     * of this object's monitor. See the {@code notify} method for a
      * description of the ways in which a thread can become the owner of
      * a monitor.
      *
@@ -465,13 +465,13 @@
      * {@link java.lang.Object#notify()} method or the
      * {@link java.lang.Object#notifyAll()} method for this object.
      * In other words, this method behaves exactly as if it simply
-     * performs the call <tt>wait(0)</tt>.
+     * performs the call {@code wait(0)}.
      * <p>
      * The current thread must own this object's monitor. The thread
      * releases ownership of this monitor and waits until another thread
      * notifies threads waiting on this object's monitor to wake up
-     * either through a call to the <code>notify</code> method or the
-     * <code>notifyAll</code> method. The thread then waits until it can
+     * either through a call to the {@code notify} method or the
+     * {@code notifyAll} method. The thread then waits until it can
      * re-obtain ownership of the monitor and resumes execution.
      * <p>
      * As in the one argument version, interrupts and spurious wakeups are
@@ -484,7 +484,7 @@
      *     }
      * </pre>
      * This method should only be called by a thread that is the owner
-     * of this object's monitor. See the <code>notify</code> method for a
+     * of this object's monitor. See the {@code notify} method for a
      * description of the ways in which a thread can become the owner of
      * a monitor.
      *
@@ -505,49 +505,49 @@
     /**
      * Called by the garbage collector on an object when garbage collection
      * determines that there are no more references to the object.
-     * A subclass overrides the <code>finalize</code> method to dispose of
+     * A subclass overrides the {@code finalize} method to dispose of
      * system resources or to perform other cleanup.
      * <p>
-     * The general contract of <tt>finalize</tt> is that it is invoked
+     * The general contract of {@code finalize} is that it is invoked
      * if and when the Java<font size="-2"><sup>TM</sup></font> virtual
      * machine has determined that there is no longer any
      * means by which this object can be accessed by any thread that has
      * not yet died, except as a result of an action taken by the
      * finalization of some other object or class which is ready to be
-     * finalized. The <tt>finalize</tt> method may take any action, including
+     * finalized. The {@code finalize} method may take any action, including
      * making this object available again to other threads; the usual purpose
-     * of <tt>finalize</tt>, however, is to perform cleanup actions before
+     * of {@code finalize}, however, is to perform cleanup actions before
      * the object is irrevocably discarded. For example, the finalize method
      * for an object that represents an input/output connection might perform
      * explicit I/O transactions to break the connection before the object is
      * permanently discarded.
      * <p>
-     * The <tt>finalize</tt> method of class <tt>Object</tt> performs no
+     * The {@code finalize} method of class {@code Object} performs no
      * special action; it simply returns normally. Subclasses of
-     * <tt>Object</tt> may override this definition.
+     * {@code Object} may override this definition.
      * <p>
      * The Java programming language does not guarantee which thread will
-     * invoke the <tt>finalize</tt> method for any given object. It is
+     * invoke the {@code finalize} method for any given object. It is
      * guaranteed, however, that the thread that invokes finalize will not
      * be holding any user-visible synchronization locks when finalize is
      * invoked. If an uncaught exception is thrown by the finalize method,
      * the exception is ignored and finalization of that object terminates.
      * <p>
-     * After the <tt>finalize</tt> method has been invoked for an object, no
+     * After the {@code finalize} method has been invoked for an object, no
      * further action is taken until the Java virtual machine has again
      * determined that there is no longer any means by which this object can
      * be accessed by any thread that has not yet died, including possible
      * actions by other objects or classes which are ready to be finalized,
      * at which point the object may be discarded.
      * <p>
-     * The <tt>finalize</tt> method is never invoked more than once by a Java
+     * The {@code finalize} method is never invoked more than once by a Java
      * virtual machine for any given object.
      * <p>
-     * Any exception thrown by the <code>finalize</code> method causes
+     * Any exception thrown by the {@code finalize} method causes
      * the finalization of this object to be halted, but is otherwise
      * ignored.
      *
-     * @throws Throwable the <code>Exception</code> raised by this method
+     * @throws Throwable the {@code Exception} raised by this method
      */
     protected void finalize() throws Throwable { }
 }
--- a/jdk/src/share/classes/java/lang/RuntimePermission.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/lang/RuntimePermission.java	Wed Jul 05 16:47:27 2017 +0200
@@ -100,6 +100,13 @@
  * </tr>
  *
  * <tr>
+ *   <td>closeClassLoader</td>
+ *   <td>Closing of a ClassLoader</td>
+ *   <td>Granting this permission allows code to close any URLClassLoader
+ * that it has a reference to.</td>
+ * </tr>
+ *
+ * <tr>
  *   <td>setSecurityManager</td>
  *   <td>Setting of the security manager (possibly replacing an existing one)
  * </td>
--- a/jdk/src/share/classes/java/lang/annotation/Annotation.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/lang/annotation/Annotation.java	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 2003-2004 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2003-2009 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -31,6 +31,10 @@
  * an annotation type.  Also note that this interface does not itself
  * define an annotation type.
  *
+ * More information about annotation types can be found in <i>The
+ * Java&trade; Language Specification, Third Edition</i>, <a
+ * href="http://java.sun.com/docs/books/jls/third_edition/html/interfaces.html#9.6">&sect;9.6</a>.
+ *
  * @author  Josh Bloch
  * @since   1.5
  */
--- a/jdk/src/share/classes/java/lang/instrument/package.html	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/lang/instrument/package.html	Wed Jul 05 16:47:27 2017 +0200
@@ -1,3 +1,28 @@
+<!--
+ Copyright 2003-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ This code is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License version 2 only, as
+ published by the Free Software Foundation.  Sun designates this
+ particular file as subject to the "Classpath" exception as provided
+ by Sun in the LICENSE file that accompanied this code.
+
+ This code is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ version 2 for more details (a copy is included in the LICENSE file that
+ accompanied this code).
+
+ You should have received a copy of the GNU General Public License version
+ 2 along with this work; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ CA 95054 USA or visit www.sun.com if you need additional information or
+ have any questions.
+-->
+
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <html>
 <head>
--- a/jdk/src/share/classes/java/net/CookieManager.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/net/CookieManager.java	Wed Jul 05 16:47:27 2017 +0200
@@ -107,8 +107,9 @@
  * </ul>
  * </blockquote>
  *
- * <p>The implementation conforms to RFC 2965, section 3.3.
+ * <p>The implementation conforms to <a href="http://www.ietf.org/rfc/rfc2965.txt">RFC 2965</a>, section 3.3.
  *
+ * @see CookiePolicy
  * @author Edward Wang
  * @since 1.6
  */
--- a/jdk/src/share/classes/java/net/HttpCookie.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/net/HttpCookie.java	Wed Jul 05 16:47:27 2017 +0200
@@ -33,6 +33,7 @@
 import java.util.Date;
 
 import java.lang.NullPointerException;  // for javadoc
+import java.util.Locale;
 
 /**
  * An HttpCookie object represents an http cookie, which carries state
@@ -1058,8 +1059,7 @@
         if (assignor != null) {
             assignor.assign(cookie, attrName, attrValue);
         } else {
-            // must be an error
-            throw new IllegalArgumentException("Illegal cookie attribute");
+            // Ignore the attribute as per RFC 2965
         }
     }
 
@@ -1097,7 +1097,7 @@
     static {
             cDateFormats = new SimpleDateFormat[COOKIE_DATE_FORMATS.length];
             for (int i = 0; i < COOKIE_DATE_FORMATS.length; i++) {
-                cDateFormats[i] = new SimpleDateFormat(COOKIE_DATE_FORMATS[i]);
+                cDateFormats[i] = new SimpleDateFormat(COOKIE_DATE_FORMATS[i], Locale.US);
                 cDateFormats[i].setTimeZone(TimeZone.getTimeZone("GMT"));
             }
     }
--- a/jdk/src/share/classes/java/net/URLClassLoader.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/net/URLClassLoader.java	Wed Jul 05 16:47:27 2017 +0200
@@ -31,10 +31,12 @@
 import java.io.FilePermission;
 import java.io.InputStream;
 import java.io.IOException;
+import java.io.Closeable;
 import java.net.URL;
 import java.net.URLConnection;
 import java.net.URLStreamHandlerFactory;
 import java.util.Enumeration;
+import java.util.List;
 import java.util.NoSuchElementException;
 import java.util.StringTokenizer;
 import java.util.jar.Manifest;
@@ -70,7 +72,7 @@
  * @author  David Connelly
  * @since   1.2
  */
-public class URLClassLoader extends SecureClassLoader {
+public class URLClassLoader extends SecureClassLoader implements Closeable {
     /* The search path for classes and resources */
     URLClassPath ucp;
 
@@ -85,13 +87,13 @@
      * to refer to a JAR file which will be downloaded and opened as needed.
      *
      * <p>If there is a security manager, this method first
-     * calls the security manager's <code>checkCreateClassLoader</code> method
+     * calls the security manager's {@code checkCreateClassLoader} method
      * to ensure creation of a class loader is allowed.
      *
      * @param urls the URLs from which to load classes and resources
      * @param parent the parent class loader for delegation
      * @exception  SecurityException  if a security manager exists and its
-     *             <code>checkCreateClassLoader</code> method doesn't allow
+     *             {@code checkCreateClassLoader} method doesn't allow
      *             creation of a class loader.
      * @see SecurityManager#checkCreateClassLoader
      */
@@ -169,12 +171,65 @@
         acc = AccessController.getContext();
     }
 
+
+   /**
+    * Closes this URLClassLoader, so that it can no longer be used to load
+    * new classes or resources that are defined by this loader.
+    * Classes and resources defined by any of this loader's parents in the
+    * delegation hierarchy are still accessible. Also, any classes or resources
+    * that are already loaded, are still accessible.
+    * <p>
+    * In the case of jar: and file: URLs, it also closes any class files,
+    * or JAR files that were opened by it. If another thread is loading a
+    * class when the {@code close} method is invoked, then the result of
+    * that load is undefined.
+    * <p>
+    * The method makes a best effort attempt to close all opened files,
+    * by catching {@link IOException}s internally. Unchecked exceptions
+    * and errors are not caught. Calling close on an already closed
+    * loader has no effect.
+    * <p>
+    * @throws IOException if closing any file opened by this class loader
+    * resulted in an IOException. Any such exceptions are caught, and a
+    * single IOException is thrown after the last file has been closed.
+    * If only one exception was thrown, it will be set as the <i>cause</i>
+    * of this IOException.
+    *
+    * @throws SecurityException if a security manager is set, and it denies
+    *   {@link RuntimePermission}<tt>("closeClassLoader")</tt>
+    *
+    * @since 1.7
+    */
+    public void close() throws IOException {
+        SecurityManager security = System.getSecurityManager();
+        if (security != null) {
+            security.checkPermission(new RuntimePermission("closeClassLoader"));
+        }
+        List<IOException> errors = ucp.closeLoaders();
+        if (errors.isEmpty()) {
+            return;
+        }
+        if (errors.size() == 1) {
+            throw new IOException (
+                "Error closing URLClassLoader resource",
+                errors.get(0)
+            );
+        }
+        // Several exceptions. So, just combine the error messages
+        String errormsg = "Error closing resources: ";
+        for (IOException error: errors) {
+            errormsg = errormsg + "[" + error.toString() + "] ";
+        }
+        throw new IOException (errormsg);
+    }
+
     /**
      * Appends the specified URL to the list of URLs to search for
      * classes and resources.
      * <p>
      * If the URL specified is <code>null</code> or is already in the
-     * list of URLs, then invoking this method has no effect.
+     * list of URLs, or if this loader is closed, then invoking this
+     * method has no effect.
      *
      * @param url the URL to be added to the search path of URLs
      */
@@ -199,7 +254,8 @@
      *
      * @param name the name of the class
      * @return the resulting class
-     * @exception ClassNotFoundException if the class could not be found
+     * @exception ClassNotFoundException if the class could not be found,
+     *            or if the loader is closed.
      */
     protected Class<?> findClass(final String name)
          throws ClassNotFoundException
@@ -370,7 +426,7 @@
      *
      * @param name the name of the resource
      * @return a <code>URL</code> for the resource, or <code>null</code>
-     * if the resource could not be found.
+     * if the resource could not be found, or if the loader is closed.
      */
     public URL findResource(final String name) {
         /*
@@ -393,6 +449,7 @@
      * @param name the resource name
      * @exception IOException if an I/O exception occurs
      * @return an <code>Enumeration</code> of <code>URL</code>s
+     *         If the loader is closed, the Enumeration will be empty.
      */
     public Enumeration<URL> findResources(final String name)
         throws IOException
--- a/jdk/src/share/classes/java/util/Formatter.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/util/Formatter.java	Wed Jul 05 16:47:27 2017 +0200
@@ -59,7 +59,7 @@
  * An interpreter for printf-style format strings.  This class provides support
  * for layout justification and alignment, common formats for numeric, string,
  * and date/time data, and locale-specific output.  Common Java types such as
- * <tt>byte</tt>, {@link java.math.BigDecimal BigDecimal}, and {@link Calendar}
+ * {@code byte}, {@link java.math.BigDecimal BigDecimal}, and {@link Calendar}
  * are supported.  Limited formatting customization for arbitrary user types is
  * provided through the {@link Formattable} interface.
  *
@@ -68,7 +68,7 @@
  * class.
  *
  * <p> Formatted printing for the Java language is heavily inspired by C's
- * <tt>printf</tt>.  Although the format strings are similar to C, some
+ * {@code printf}.  Although the format strings are similar to C, some
  * customizations have been made to accommodate the Java language and exploit
  * some of its features.  Also, Java formatting is more strict than C's; for
  * example, if a conversion is incompatible with a flag, an exception will be
@@ -115,7 +115,7 @@
  *   // -&gt; "Unable to open file 'food': No such file or directory"
  * </pre></blockquote>
  *
- * <p> Like C's <tt>sprintf(3)</tt>, Strings may be formatted using the static
+ * <p> Like C's {@code sprintf(3)}, Strings may be formatted using the static
  * method {@link String#format(String,Object...) String.format}:
  *
  * <blockquote><pre>
@@ -157,16 +157,16 @@
  *   String s = String.format("Duke's Birthday: %1$tm %1$te,%1$tY", c);
  * </pre></blockquote>
  *
- * This format string is the first argument to the <tt>format</tt> method.  It
- * contains three format specifiers "<tt>%1$tm</tt>", "<tt>%1$te</tt>", and
- * "<tt>%1$tY</tt>" which indicate how the arguments should be processed and
+ * This format string is the first argument to the {@code format} method.  It
+ * contains three format specifiers "{@code %1$tm}", "{@code %1$te}", and
+ * "{@code %1$tY}" which indicate how the arguments should be processed and
  * where they should be inserted in the text.  The remaining portions of the
- * format string are fixed text including <tt>"Dukes Birthday: "</tt> and any
+ * format string are fixed text including {@code "Dukes Birthday: "} and any
  * other spaces or punctuation.
  *
  * The argument list consists of all arguments passed to the method after the
  * format string.  In the above example, the argument list is of size one and
- * consists of the {@link java.util.Calendar Calendar} object <tt>c</tt>.
+ * consists of the {@link java.util.Calendar Calendar} object {@code c}.
  *
  * <ul>
  *
@@ -179,7 +179,7 @@
  *
  * <p> The optional <i>argument_index</i> is a decimal integer indicating the
  * position of the argument in the argument list.  The first argument is
- * referenced by "<tt>1$</tt>", the second by "<tt>2$</tt>", etc.
+ * referenced by "{@code 1$}", the second by "{@code 2$}", etc.
  *
  * <p> The optional <i>flags</i> is a set of characters that modify the output
  * format.  The set of valid flags depends on the conversion.
@@ -206,10 +206,10 @@
  * defined as above.
  *
  * <p> The required <i>conversion</i> is a two character sequence.  The first
- * character is <tt>'t'</tt> or <tt>'T'</tt>.  The second character indicates
+ * character is {@code 't'} or {@code 'T'}.  The second character indicates
  * the format to be used.  These characters are similar to but not completely
- * identical to those defined by GNU <tt>date</tt> and POSIX
- * <tt>strftime(3c)</tt>.
+ * identical to those defined by GNU {@code date} and POSIX
+ * {@code strftime(3c)}.
  *
  * <li> The format specifiers which do not correspond to arguments have the
  * following syntax:
@@ -235,31 +235,31 @@
  * type
  *
  * <li> <b>Character</b> - may be applied to basic types which represent
- * Unicode characters: <tt>char</tt>, {@link Character}, <tt>byte</tt>, {@link
- * Byte}, <tt>short</tt>, and {@link Short}. This conversion may also be
- * applied to the types <tt>int</tt> and {@link Integer} when {@link
- * Character#isValidCodePoint} returns <tt>true</tt>
+ * Unicode characters: {@code char}, {@link Character}, {@code byte}, {@link
+ * Byte}, {@code short}, and {@link Short}. This conversion may also be
+ * applied to the types {@code int} and {@link Integer} when {@link
+ * Character#isValidCodePoint} returns {@code true}
  *
  * <li> <b>Numeric</b>
  *
  * <ol>
  *
- * <li> <b>Integral</b> - may be applied to Java integral types: <tt>byte</tt>,
- * {@link Byte}, <tt>short</tt>, {@link Short}, <tt>int</tt> and {@link
- * Integer}, <tt>long</tt>, {@link Long}, and {@link java.math.BigInteger
+ * <li> <b>Integral</b> - may be applied to Java integral types: {@code byte},
+ * {@link Byte}, {@code short}, {@link Short}, {@code int} and {@link
+ * Integer}, {@code long}, {@link Long}, and {@link java.math.BigInteger
  * BigInteger}
  *
  * <li><b>Floating Point</b> - may be applied to Java floating-point types:
- * <tt>float</tt>, {@link Float}, <tt>double</tt>, {@link Double}, and {@link
+ * {@code float}, {@link Float}, {@code double}, {@link Double}, and {@link
  * java.math.BigDecimal BigDecimal}
  *
  * </ol>
  *
  * <li> <b>Date/Time</b> - may be applied to Java types which are capable of
- * encoding a date or time: <tt>long</tt>, {@link Long}, {@link Calendar}, and
+ * encoding a date or time: {@code long}, {@link Long}, {@link Calendar}, and
  * {@link Date}.
  *
- * <li> <b>Percent</b> - produces a literal <tt>'%'</tt>
+ * <li> <b>Percent</b> - produces a literal {@code '%'}
  * (<tt>'&#92;u0025'</tt>)
  *
  * <li> <b>Line Separator</b> - produces the platform-specific line separator
@@ -267,9 +267,9 @@
  * </ol>
  *
  * <p> The following table summarizes the supported conversions.  Conversions
- * denoted by an upper-case character (i.e. <tt>'B'</tt>, <tt>'H'</tt>,
- * <tt>'S'</tt>, <tt>'C'</tt>, <tt>'X'</tt>, <tt>'E'</tt>, <tt>'G'</tt>,
- * <tt>'A'</tt>, and <tt>'T'</tt>) are the same as those for the corresponding
+ * denoted by an upper-case character (i.e. {@code 'B'}, {@code 'H'},
+ * {@code 'S'}, {@code 'C'}, {@code 'X'}, {@code 'E'}, {@code 'G'},
+ * {@code 'A'}, and {@code 'T'}) are the same as those for the corresponding
  * lower-case conversion characters except that the result is converted to
  * upper case according to the rules of the prevailing {@link java.util.Locale
  * Locale}.  The result is equivalent to the following invocation of {@link
@@ -284,72 +284,72 @@
  *     <th valign="bottom"> Argument Category
  *     <th valign="bottom"> Description
  *
- * <tr><td valign="top"> <tt>'b'</tt>, <tt>'B'</tt>
+ * <tr><td valign="top"> {@code 'b'}, {@code 'B'}
  *     <td valign="top"> general
- *     <td> If the argument <i>arg</i> is <tt>null</tt>, then the result is
- *     "<tt>false</tt>".  If <i>arg</i> is a <tt>boolean</tt> or {@link
+ *     <td> If the argument <i>arg</i> is {@code null}, then the result is
+ *     "{@code false}".  If <i>arg</i> is a {@code boolean} or {@link
  *     Boolean}, then the result is the string returned by {@link
  *     String#valueOf(boolean) String.valueOf(arg)}.  Otherwise, the result is
  *     "true".
  *
- * <tr><td valign="top"> <tt>'h'</tt>, <tt>'H'</tt>
+ * <tr><td valign="top"> {@code 'h'}, {@code 'H'}
  *     <td valign="top"> general
- *     <td> If the argument <i>arg</i> is <tt>null</tt>, then the result is
- *     "<tt>null</tt>".  Otherwise, the result is obtained by invoking
- *     <tt>Integer.toHexString(arg.hashCode())</tt>.
- *
- * <tr><td valign="top"> <tt>'s'</tt>, <tt>'S'</tt>
+ *     <td> If the argument <i>arg</i> is {@code null}, then the result is
+ *     "{@code null}".  Otherwise, the result is obtained by invoking
+ *     {@code Integer.toHexString(arg.hashCode())}.
+ *
+ * <tr><td valign="top"> {@code 's'}, {@code 'S'}
  *     <td valign="top"> general
- *     <td> If the argument <i>arg</i> is <tt>null</tt>, then the result is
- *     "<tt>null</tt>".  If <i>arg</i> implements {@link Formattable}, then
+ *     <td> If the argument <i>arg</i> is {@code null}, then the result is
+ *     "{@code null}".  If <i>arg</i> implements {@link Formattable}, then
  *     {@link Formattable#formatTo arg.formatTo} is invoked. Otherwise, the
- *     result is obtained by invoking <tt>arg.toString()</tt>.
- *
- * <tr><td valign="top"><tt>'c'</tt>, <tt>'C'</tt>
+ *     result is obtained by invoking {@code arg.toString()}.
+ *
+ * <tr><td valign="top">{@code 'c'}, {@code 'C'}
  *     <td valign="top"> character
  *     <td> The result is a Unicode character
  *
- * <tr><td valign="top"><tt>'d'</tt>
+ * <tr><td valign="top">{@code 'd'}
  *     <td valign="top"> integral
  *     <td> The result is formatted as a decimal integer
  *
- * <tr><td valign="top"><tt>'o'</tt>
+ * <tr><td valign="top">{@code 'o'}
  *     <td valign="top"> integral
  *     <td> The result is formatted as an octal integer
  *
- * <tr><td valign="top"><tt>'x'</tt>, <tt>'X'</tt>
+ * <tr><td valign="top">{@code 'x'}, {@code 'X'}
  *     <td valign="top"> integral
  *     <td> The result is formatted as a hexadecimal integer
  *
- * <tr><td valign="top"><tt>'e'</tt>, <tt>'E'</tt>
+ * <tr><td valign="top">{@code 'e'}, {@code 'E'}
  *     <td valign="top"> floating point
  *     <td> The result is formatted as a decimal number in computerized
  *     scientific notation
  *
- * <tr><td valign="top"><tt>'f'</tt>
+ * <tr><td valign="top">{@code 'f'}
  *     <td valign="top"> floating point
  *     <td> The result is formatted as a decimal number
  *
- * <tr><td valign="top"><tt>'g'</tt>, <tt>'G'</tt>
+ * <tr><td valign="top">{@code 'g'}, {@code 'G'}
  *     <td valign="top"> floating point
  *     <td> The result is formatted using computerized scientific notation or
  *     decimal format, depending on the precision and the value after rounding.
  *
- * <tr><td valign="top"><tt>'a'</tt>, <tt>'A'</tt>
+ * <tr><td valign="top">{@code 'a'}, {@code 'A'}
  *     <td valign="top"> floating point
  *     <td> The result is formatted as a hexadecimal floating-point number with
  *     a significand and an exponent
  *
- * <tr><td valign="top"><tt>'t'</tt>, <tt>'T'</tt>
+ * <tr><td valign="top">{@code 't'}, {@code 'T'}
  *     <td valign="top"> date/time
  *     <td> Prefix for date and time conversion characters.  See <a
  *     href="#dt">Date/Time Conversions</a>.
  *
- * <tr><td valign="top"><tt>'%'</tt>
+ * <tr><td valign="top">{@code '%'}
  *     <td valign="top"> percent
- *     <td> The result is a literal <tt>'%'</tt> (<tt>'&#92;u0025'</tt>)
- *
- * <tr><td valign="top"><tt>'n'</tt>
+ *     <td> The result is a literal {@code '%'} (<tt>'&#92;u0025'</tt>)
+ *
+ * <tr><td valign="top">{@code 'n'}
  *     <td valign="top"> line separator
  *     <td> The result is the platform-specific line separator
  *
@@ -361,78 +361,78 @@
  * <h4><a name="dt">Date/Time Conversions</a></h4>
  *
  * <p> The following date and time conversion suffix characters are defined for
- * the <tt>'t'</tt> and <tt>'T'</tt> conversions.  The types are similar to but
- * not completely identical to those defined by GNU <tt>date</tt> and POSIX
- * <tt>strftime(3c)</tt>.  Additional conversion types are provided to access
- * Java-specific functionality (e.g. <tt>'L'</tt> for milliseconds within the
+ * the {@code 't'} and {@code 'T'} conversions.  The types are similar to but
+ * not completely identical to those defined by GNU {@code date} and POSIX
+ * {@code strftime(3c)}.  Additional conversion types are provided to access
+ * Java-specific functionality (e.g. {@code 'L'} for milliseconds within the
  * second).
  *
  * <p> The following conversion characters are used for formatting times:
  *
  * <table cellpadding=5 summary="time">
  *
- * <tr><td valign="top"> <tt>'H'</tt>
+ * <tr><td valign="top"> {@code 'H'}
  *     <td> Hour of the day for the 24-hour clock, formatted as two digits with
- *     a leading zero as necessary i.e. <tt>00 - 23</tt>.
- *
- * <tr><td valign="top"><tt>'I'</tt>
+ *     a leading zero as necessary i.e. {@code 00 - 23}.
+ *
+ * <tr><td valign="top">{@code 'I'}
  *     <td> Hour for the 12-hour clock, formatted as two digits with a leading
- *     zero as necessary, i.e.  <tt>01 - 12</tt>.
- *
- * <tr><td valign="top"><tt>'k'</tt>
- *     <td> Hour of the day for the 24-hour clock, i.e. <tt>0 - 23</tt>.
- *
- * <tr><td valign="top"><tt>'l'</tt>
- *     <td> Hour for the 12-hour clock, i.e. <tt>1 - 12</tt>.
- *
- * <tr><td valign="top"><tt>'M'</tt>
+ *     zero as necessary, i.e.  {@code 01 - 12}.
+ *
+ * <tr><td valign="top">{@code 'k'}
+ *     <td> Hour of the day for the 24-hour clock, i.e. {@code 0 - 23}.
+ *
+ * <tr><td valign="top">{@code 'l'}
+ *     <td> Hour for the 12-hour clock, i.e. {@code 1 - 12}.
+ *
+ * <tr><td valign="top">{@code 'M'}
  *     <td> Minute within the hour formatted as two digits with a leading zero
- *     as necessary, i.e.  <tt>00 - 59</tt>.
- *
- * <tr><td valign="top"><tt>'S'</tt>
+ *     as necessary, i.e.  {@code 00 - 59}.
+ *
+ * <tr><td valign="top">{@code 'S'}
  *     <td> Seconds within the minute, formatted as two digits with a leading
- *     zero as necessary, i.e. <tt>00 - 60</tt> ("<tt>60</tt>" is a special
+ *     zero as necessary, i.e. {@code 00 - 60} ("{@code 60}" is a special
  *     value required to support leap seconds).
  *
- * <tr><td valign="top"><tt>'L'</tt>
+ * <tr><td valign="top">{@code 'L'}
  *     <td> Millisecond within the second formatted as three digits with
- *     leading zeros as necessary, i.e. <tt>000 - 999</tt>.
- *
- * <tr><td valign="top"><tt>'N'</tt>
+ *     leading zeros as necessary, i.e. {@code 000 - 999}.
+ *
+ * <tr><td valign="top">{@code 'N'}
  *     <td> Nanosecond within the second, formatted as nine digits with leading
- *     zeros as necessary, i.e. <tt>000000000 - 999999999</tt>.
- *
- * <tr><td valign="top"><tt>'p'</tt>
+ *     zeros as necessary, i.e. {@code 000000000 - 999999999}.
+ *
+ * <tr><td valign="top">{@code 'p'}
  *     <td> Locale-specific {@linkplain
  *     java.text.DateFormatSymbols#getAmPmStrings morning or afternoon} marker
- *     in lower case, e.g."<tt>am</tt>" or "<tt>pm</tt>". Use of the conversion
- *     prefix <tt>'T'</tt> forces this output to upper case.
- *
- * <tr><td valign="top"><tt>'z'</tt>
+ *     in lower case, e.g."{@code am}" or "{@code pm}". Use of the conversion
+ *     prefix {@code 'T'} forces this output to upper case.
+ *
+ * <tr><td valign="top">{@code 'z'}
  *     <td> <a href="http://www.ietf.org/rfc/rfc0822.txt">RFC&nbsp;822</a>
- *     style numeric time zone offset from GMT, e.g. <tt>-0800</tt>.  This
+ *     style numeric time zone offset from GMT, e.g. {@code -0800}.  This
  *     value will be adjusted as necessary for Daylight Saving Time.  For
- *     <tt>long</tt>, {@link Long}, and {@link Date} the time zone used is
- *     the {@plainlink TimeZone#getDefault() default time zone} for this
+ *     {@code long}, {@link Long}, and {@link Date} the time zone used is
+ *     the {@linkplain TimeZone#getDefault() default time zone} for this
  *     instance of the Java virtual machine.
  *
- * <tr><td valign="top"><tt>'Z'</tt>
+ * <tr><td valign="top">{@code 'Z'}
  *     <td> A string representing the abbreviation for the time zone.  This
  *     value will be adjusted as necessary for Daylight Saving Time.  For
- *     <tt>long</tt>, {@link Long}, and {@link Date} the  time zone used is
- *     the {@plainlink TimeZone#getDefault() default time zone} for this
+ *     {@code long}, {@link Long}, and {@link Date} the  time zone used is
+ *     the {@linkplain TimeZone#getDefault() default time zone} for this
  *     instance of the Java virtual machine.  The Formatter's locale will
  *     supersede the locale of the argument (if any).
  *
- * <tr><td valign="top"><tt>'s'</tt>
+ * <tr><td valign="top">{@code 's'}
  *     <td> Seconds since the beginning of the epoch starting at 1 January 1970
- *     <tt>00:00:00</tt> UTC, i.e. <tt>Long.MIN_VALUE/1000</tt> to
- *     <tt>Long.MAX_VALUE/1000</tt>.
- *
- * <tr><td valign="top"><tt>'Q'</tt>
+ *     {@code 00:00:00} UTC, i.e. {@code Long.MIN_VALUE/1000} to
+ *     {@code Long.MAX_VALUE/1000}.
+ *
+ * <tr><td valign="top">{@code 'Q'}
  *     <td> Milliseconds since the beginning of the epoch starting at 1 January
- *     1970 <tt>00:00:00</tt> UTC, i.e. <tt>Long.MIN_VALUE</tt> to
- *     <tt>Long.MAX_VALUE</tt>.
+ *     1970 {@code 00:00:00} UTC, i.e. {@code Long.MIN_VALUE} to
+ *     {@code Long.MAX_VALUE}.
  *
  * </table>
  *
@@ -440,55 +440,55 @@
  *
  * <table cellpadding=5 summary="date">
  *
- * <tr><td valign="top"><tt>'B'</tt>
+ * <tr><td valign="top">{@code 'B'}
  *     <td> Locale-specific {@linkplain java.text.DateFormatSymbols#getMonths
- *     full month name}, e.g. <tt>"January"</tt>, <tt>"February"</tt>.
- *
- * <tr><td valign="top"><tt>'b'</tt>
+ *     full month name}, e.g. {@code "January"}, {@code "February"}.
+ *
+ * <tr><td valign="top">{@code 'b'}
  *     <td> Locale-specific {@linkplain
  *     java.text.DateFormatSymbols#getShortMonths abbreviated month name},
- *     e.g. <tt>"Jan"</tt>, <tt>"Feb"</tt>.
- *
- * <tr><td valign="top"><tt>'h'</tt>
- *     <td> Same as <tt>'b'</tt>.
- *
- * <tr><td valign="top"><tt>'A'</tt>
+ *     e.g. {@code "Jan"}, {@code "Feb"}.
+ *
+ * <tr><td valign="top">{@code 'h'}
+ *     <td> Same as {@code 'b'}.
+ *
+ * <tr><td valign="top">{@code 'A'}
  *     <td> Locale-specific full name of the {@linkplain
  *     java.text.DateFormatSymbols#getWeekdays day of the week},
- *     e.g. <tt>"Sunday"</tt>, <tt>"Monday"</tt>
- *
- * <tr><td valign="top"><tt>'a'</tt>
+ *     e.g. {@code "Sunday"}, {@code "Monday"}
+ *
+ * <tr><td valign="top">{@code 'a'}
  *     <td> Locale-specific short name of the {@linkplain
  *     java.text.DateFormatSymbols#getShortWeekdays day of the week},
- *     e.g. <tt>"Sun"</tt>, <tt>"Mon"</tt>
- *
- * <tr><td valign="top"><tt>'C'</tt>
- *     <td> Four-digit year divided by <tt>100</tt>, formatted as two digits
- *     with leading zero as necessary, i.e. <tt>00 - 99</tt>
- *
- * <tr><td valign="top"><tt>'Y'</tt>
+ *     e.g. {@code "Sun"}, {@code "Mon"}
+ *
+ * <tr><td valign="top">{@code 'C'}
+ *     <td> Four-digit year divided by {@code 100}, formatted as two digits
+ *     with leading zero as necessary, i.e. {@code 00 - 99}
+ *
+ * <tr><td valign="top">{@code 'Y'}
  *     <td> Year, formatted as at least four digits with leading zeros as
- *     necessary, e.g. <tt>0092</tt> equals <tt>92</tt> CE for the Gregorian
+ *     necessary, e.g. {@code 0092} equals {@code 92} CE for the Gregorian
  *     calendar.
  *
- * <tr><td valign="top"><tt>'y'</tt>
+ * <tr><td valign="top">{@code 'y'}
  *     <td> Last two digits of the year, formatted with leading zeros as
- *     necessary, i.e. <tt>00 - 99</tt>.
- *
- * <tr><td valign="top"><tt>'j'</tt>
+ *     necessary, i.e. {@code 00 - 99}.
+ *
+ * <tr><td valign="top">{@code 'j'}
  *     <td> Day of year, formatted as three digits with leading zeros as
- *     necessary, e.g. <tt>001 - 366</tt> for the Gregorian calendar.
- *
- * <tr><td valign="top"><tt>'m'</tt>
+ *     necessary, e.g. {@code 001 - 366} for the Gregorian calendar.
+ *
+ * <tr><td valign="top">{@code 'm'}
  *     <td> Month, formatted as two digits with leading zeros as necessary,
- *     i.e. <tt>01 - 13</tt>.
- *
- * <tr><td valign="top"><tt>'d'</tt>
+ *     i.e. {@code 01 - 13}.
+ *
+ * <tr><td valign="top">{@code 'd'}
  *     <td> Day of month, formatted as two digits with leading zeros as
- *     necessary, i.e. <tt>01 - 31</tt>
- *
- * <tr><td valign="top"><tt>'e'</tt>
- *     <td> Day of month, formatted as two digits, i.e. <tt>1 - 31</tt>.
+ *     necessary, i.e. {@code 01 - 31}
+ *
+ * <tr><td valign="top">{@code 'e'}
+ *     <td> Day of month, formatted as two digits, i.e. {@code 1 - 31}.
  *
  * </table>
  *
@@ -497,27 +497,27 @@
  *
  * <table cellpadding=5 summary="composites">
  *
- * <tr><td valign="top"><tt>'R'</tt>
- *     <td> Time formatted for the 24-hour clock as <tt>"%tH:%tM"</tt>
- *
- * <tr><td valign="top"><tt>'T'</tt>
- *     <td> Time formatted for the 24-hour clock as <tt>"%tH:%tM:%tS"</tt>.
- *
- * <tr><td valign="top"><tt>'r'</tt>
- *     <td> Time formatted for the 12-hour clock as <tt>"%tI:%tM:%tS %Tp"</tt>.
- *     The location of the morning or afternoon marker (<tt>'%Tp'</tt>) may be
+ * <tr><td valign="top">{@code 'R'}
+ *     <td> Time formatted for the 24-hour clock as {@code "%tH:%tM"}
+ *
+ * <tr><td valign="top">{@code 'T'}
+ *     <td> Time formatted for the 24-hour clock as {@code "%tH:%tM:%tS"}.
+ *
+ * <tr><td valign="top">{@code 'r'}
+ *     <td> Time formatted for the 12-hour clock as {@code "%tI:%tM:%tS %Tp"}.
+ *     The location of the morning or afternoon marker ({@code '%Tp'}) may be
  *     locale-dependent.
  *
- * <tr><td valign="top"><tt>'D'</tt>
- *     <td> Date formatted as <tt>"%tm/%td/%ty"</tt>.
- *
- * <tr><td valign="top"><tt>'F'</tt>
+ * <tr><td valign="top">{@code 'D'}
+ *     <td> Date formatted as {@code "%tm/%td/%ty"}.
+ *
+ * <tr><td valign="top">{@code 'F'}
  *     <td> <a href="http://www.w3.org/TR/NOTE-datetime">ISO&nbsp;8601</a>
- *     complete date formatted as <tt>"%tY-%tm-%td"</tt>.
- *
- * <tr><td valign="top"><tt>'c'</tt>
- *     <td> Date and time formatted as <tt>"%ta %tb %td %tT %tZ %tY"</tt>,
- *     e.g. <tt>"Sun Jul 20 16:17:00 EDT 1969"</tt>.
+ *     complete date formatted as {@code "%tY-%tm-%td"}.
+ *
+ * <tr><td valign="top">{@code 'c'}
+ *     <td> Date and time formatted as {@code "%ta %tb %td %tT %tZ %tY"},
+ *     e.g. {@code "Sun Jul 20 16:17:00 EDT 1969"}.
  *
  * </table>
  *
@@ -591,18 +591,18 @@
  *
  * <p> <sup>1</sup> Depends on the definition of {@link Formattable}.
  *
- * <p> <sup>2</sup> For <tt>'d'</tt> conversion only.
- *
- * <p> <sup>3</sup> For <tt>'o'</tt>, <tt>'x'</tt>, and <tt>'X'</tt>
+ * <p> <sup>2</sup> For {@code 'd'} conversion only.
+ *
+ * <p> <sup>3</sup> For {@code 'o'}, {@code 'x'}, and {@code 'X'}
  * conversions only.
  *
- * <p> <sup>4</sup> For <tt>'d'</tt>, <tt>'o'</tt>, <tt>'x'</tt>, and
- * <tt>'X'</tt> conversions applied to {@link java.math.BigInteger BigInteger}
- * or <tt>'d'</tt> applied to <tt>byte</tt>, {@link Byte}, <tt>short</tt>, {@link
- * Short}, <tt>int</tt> and {@link Integer}, <tt>long</tt>, and {@link Long}.
- *
- * <p> <sup>5</sup> For <tt>'e'</tt>, <tt>'E'</tt>, <tt>'f'</tt>,
- * <tt>'g'</tt>, and <tt>'G'</tt> conversions only.
+ * <p> <sup>4</sup> For {@code 'd'}, {@code 'o'}, {@code 'x'}, and
+ * {@code 'X'} conversions applied to {@link java.math.BigInteger BigInteger}
+ * or {@code 'd'} applied to {@code byte}, {@link Byte}, {@code short}, {@link
+ * Short}, {@code int} and {@link Integer}, {@code long}, and {@link Long}.
+ *
+ * <p> <sup>5</sup> For {@code 'e'}, {@code 'E'}, {@code 'f'},
+ * {@code 'g'}, and {@code 'G'} conversions only.
  *
  * <p> Any characters not explicitly defined as flags are illegal and are
  * reserved for future extensions.
@@ -618,11 +618,11 @@
  * <p> For general argument types, the precision is the maximum number of
  * characters to be written to the output.
  *
- * <p> For the floating-point conversions <tt>'e'</tt>, <tt>'E'</tt>, and
- * <tt>'f'</tt> the precision is the number of digits after the decimal
- * separator.  If the conversion is <tt>'g'</tt> or <tt>'G'</tt>, then the
+ * <p> For the floating-point conversions {@code 'e'}, {@code 'E'}, and
+ * {@code 'f'} the precision is the number of digits after the decimal
+ * separator.  If the conversion is {@code 'g'} or {@code 'G'}, then the
  * precision is the total number of digits in the resulting magnitude after
- * rounding.  If the conversion is <tt>'a'</tt> or <tt>'A'</tt>, then the
+ * rounding.  If the conversion is {@code 'a'} or {@code 'A'}, then the
  * precision must not be specified.
  *
  * <p> For character, integral, and date/time argument types and the percent
@@ -633,10 +633,10 @@
  *
  * <p> The argument index is a decimal integer indicating the position of the
  * argument in the argument list.  The first argument is referenced by
- * "<tt>1$</tt>", the second by "<tt>2$</tt>", etc.
+ * "{@code 1$}", the second by "{@code 2$}", etc.
  *
  * <p> Another way to reference arguments by position is to use the
- * <tt>'&lt;'</tt> (<tt>'&#92;u003c'</tt>) flag, which causes the argument for
+ * {@code '<'} (<tt>'&#92;u003c'</tt>) flag, which causes the argument for
  * the previous format specifier to be re-used.  For example, the following two
  * statements would produce identical strings:
  *
@@ -670,14 +670,14 @@
  * applicable to the corresponding argument, then an {@link
  * IllegalFormatConversionException} will be thrown.
  *
- * <p> All specified exceptions may be thrown by any of the <tt>format</tt>
- * methods of <tt>Formatter</tt> as well as by any <tt>format</tt> convenience
+ * <p> All specified exceptions may be thrown by any of the {@code format}
+ * methods of {@code Formatter} as well as by any {@code format} convenience
  * methods such as {@link String#format(String,Object...) String.format} and
  * {@link java.io.PrintStream#printf(String,Object...) PrintStream.printf}.
  *
- * <p> Conversions denoted by an upper-case character (i.e. <tt>'B'</tt>,
- * <tt>'H'</tt>, <tt>'S'</tt>, <tt>'C'</tt>, <tt>'X'</tt>, <tt>'E'</tt>,
- * <tt>'G'</tt>, <tt>'A'</tt>, and <tt>'T'</tt>) are the same as those for the
+ * <p> Conversions denoted by an upper-case character (i.e. {@code 'B'},
+ * {@code 'H'}, {@code 'S'}, {@code 'C'}, {@code 'X'}, {@code 'E'},
+ * {@code 'G'}, {@code 'A'}, and {@code 'T'}) are the same as those for the
  * corresponding lower-case conversion characters except that the result is
  * converted to upper case according to the rules of the prevailing {@link
  * java.util.Locale Locale}.  The result is equivalent to the following
@@ -692,56 +692,56 @@
  *
  * <table cellpadding=5 summary="dgConv">
  *
- * <tr><td valign="top"> <tt>'b'</tt>
+ * <tr><td valign="top"> {@code 'b'}
  *     <td valign="top"> <tt>'&#92;u0062'</tt>
- *     <td> Produces either "<tt>true</tt>" or "<tt>false</tt>" as returned by
+ *     <td> Produces either "{@code true}" or "{@code false}" as returned by
  *     {@link Boolean#toString(boolean)}.
  *
- *     <p> If the argument is <tt>null</tt>, then the result is
- *     "<tt>false</tt>".  If the argument is a <tt>boolean</tt> or {@link
+ *     <p> If the argument is {@code null}, then the result is
+ *     "{@code false}".  If the argument is a {@code boolean} or {@link
  *     Boolean}, then the result is the string returned by {@link
  *     String#valueOf(boolean) String.valueOf()}.  Otherwise, the result is
- *     "<tt>true</tt>".
- *
- *     <p> If the <tt>'#'</tt> flag is given, then a {@link
+ *     "{@code true}".
+ *
+ *     <p> If the {@code '#'} flag is given, then a {@link
  *     FormatFlagsConversionMismatchException} will be thrown.
  *
- * <tr><td valign="top"> <tt>'B'</tt>
+ * <tr><td valign="top"> {@code 'B'}
  *     <td valign="top"> <tt>'&#92;u0042'</tt>
- *     <td> The upper-case variant of <tt>'b'</tt>.
- *
- * <tr><td valign="top"> <tt>'h'</tt>
+ *     <td> The upper-case variant of {@code 'b'}.
+ *
+ * <tr><td valign="top"> {@code 'h'}
  *     <td valign="top"> <tt>'&#92;u0068'</tt>
  *     <td> Produces a string representing the hash code value of the object.
  *
- *     <p> If the argument, <i>arg</i> is <tt>null</tt>, then the
- *     result is "<tt>null</tt>".  Otherwise, the result is obtained
- *     by invoking <tt>Integer.toHexString(arg.hashCode())</tt>.
- *
- *     <p> If the <tt>'#'</tt> flag is given, then a {@link
+ *     <p> If the argument, <i>arg</i> is {@code null}, then the
+ *     result is "{@code null}".  Otherwise, the result is obtained
+ *     by invoking {@code Integer.toHexString(arg.hashCode())}.
+ *
+ *     <p> If the {@code '#'} flag is given, then a {@link
  *     FormatFlagsConversionMismatchException} will be thrown.
  *
- * <tr><td valign="top"> <tt>'H'</tt>
+ * <tr><td valign="top"> {@code 'H'}
  *     <td valign="top"> <tt>'&#92;u0048'</tt>
- *     <td> The upper-case variant of <tt>'h'</tt>.
- *
- * <tr><td valign="top"> <tt>'s'</tt>
+ *     <td> The upper-case variant of {@code 'h'}.
+ *
+ * <tr><td valign="top"> {@code 's'}
  *     <td valign="top"> <tt>'&#92;u0073'</tt>
  *     <td> Produces a string.
  *
- *     <p> If the argument is <tt>null</tt>, then the result is
- *     "<tt>null</tt>".  If the argument implements {@link Formattable}, then
+ *     <p> If the argument is {@code null}, then the result is
+ *     "{@code null}".  If the argument implements {@link Formattable}, then
  *     its {@link Formattable#formatTo formatTo} method is invoked.
  *     Otherwise, the result is obtained by invoking the argument's
- *     <tt>toString()</tt> method.
- *
- *     <p> If the <tt>'#'</tt> flag is given and the argument is not a {@link
+ *     {@code toString()} method.
+ *
+ *     <p> If the {@code '#'} flag is given and the argument is not a {@link
  *     Formattable} , then a {@link FormatFlagsConversionMismatchException}
  *     will be thrown.
  *
- * <tr><td valign="top"> <tt>'S'</tt>
+ * <tr><td valign="top"> {@code 'S'}
  *     <td valign="top"> <tt>'&#92;u0053'</tt>
- *     <td> The upper-case variant of <tt>'s'</tt>.
+ *     <td> The upper-case variant of {@code 's'}.
  *
  * </table>
  *
@@ -749,7 +749,7 @@
  *
  * <table cellpadding=5 summary="dFlags">
  *
- * <tr><td valign="top"> <tt>'-'</tt>
+ * <tr><td valign="top"> {@code '-'}
  *     <td valign="top"> <tt>'&#92;u002d'</tt>
  *     <td> Left justifies the output.  Spaces (<tt>'&#92;u0020'</tt>) will be
  *     added at the end of the converted value as required to fill the minimum
@@ -757,7 +757,7 @@
  *     MissingFormatWidthException} will be thrown.  If this flag is not given
  *     then the output will be right-justified.
  *
- * <tr><td valign="top"> <tt>'#'</tt>
+ * <tr><td valign="top"> {@code '#'}
  *     <td valign="top"> <tt>'&#92;u0023'</tt>
  *     <td> Requires the output use an alternate form.  The definition of the
  *     form is specified by the conversion.
@@ -767,47 +767,47 @@
  * <p> The <a name="genWidth">width</a> is the minimum number of characters to
  * be written to the
  * output.  If the length of the converted value is less than the width then
- * the output will be padded by <tt>'&nbsp;&nbsp;'</tt> (<tt>&#92;u0020'</tt>)
+ * the output will be padded by <tt>'&nbsp;&nbsp;'</tt> (<tt>'&#92;u0020'</tt>)
  * until the total number of characters equals the width.  The padding is on
- * the left by default.  If the <tt>'-'</tt> flag is given, then the padding
+ * the left by default.  If the {@code '-'} flag is given, then the padding
  * will be on the right.  If the width is not specified then there is no
  * minimum.
  *
  * <p> The precision is the maximum number of characters to be written to the
  * output.  The precision is applied before the width, thus the output will be
- * truncated to <tt>precision</tt> characters even if the width is greater than
+ * truncated to {@code precision} characters even if the width is greater than
  * the precision.  If the precision is not specified then there is no explicit
  * limit on the number of characters.
  *
  * <h4><a name="dchar">Character</a></h4>
  *
- * This conversion may be applied to <tt>char</tt> and {@link Character}.  It
- * may also be applied to the types <tt>byte</tt>, {@link Byte},
- * <tt>short</tt>, and {@link Short}, <tt>int</tt> and {@link Integer} when
- * {@link Character#isValidCodePoint} returns <tt>true</tt>.  If it returns
- * <tt>false</tt> then an {@link IllegalFormatCodePointException} will be
+ * This conversion may be applied to {@code char} and {@link Character}.  It
+ * may also be applied to the types {@code byte}, {@link Byte},
+ * {@code short}, and {@link Short}, {@code int} and {@link Integer} when
+ * {@link Character#isValidCodePoint} returns {@code true}.  If it returns
+ * {@code false} then an {@link IllegalFormatCodePointException} will be
  * thrown.
  *
  * <table cellpadding=5 summary="charConv">
  *
- * <tr><td valign="top"> <tt>'c'</tt>
+ * <tr><td valign="top"> {@code 'c'}
  *     <td valign="top"> <tt>'&#92;u0063'</tt>
  *     <td> Formats the argument as a Unicode character as described in <a
  *     href="../lang/Character.html#unicode">Unicode Character
- *     Representation</a>.  This may be more than one 16-bit <tt>char</tt> in
+ *     Representation</a>.  This may be more than one 16-bit {@code char} in
  *     the case where the argument represents a supplementary character.
  *
- *     <p> If the <tt>'#'</tt> flag is given, then a {@link
+ *     <p> If the {@code '#'} flag is given, then a {@link
  *     FormatFlagsConversionMismatchException} will be thrown.
  *
- * <tr><td valign="top"> <tt>'C'</tt>
+ * <tr><td valign="top"> {@code 'C'}
  *     <td valign="top"> <tt>'&#92;u0043'</tt>
- *     <td> The upper-case variant of <tt>'c'</tt>.
+ *     <td> The upper-case variant of {@code 'c'}.
  *
  * </table>
  *
- * <p> The <tt>'-'</tt> flag defined for <a href="#dFlags">General
- * conversions</a> applies.  If the <tt>'#'</tt> flag is given, then a {@link
+ * <p> The {@code '-'} flag defined for <a href="#dFlags">General
+ * conversions</a> applies.  If the {@code '#'} flag is given, then a {@link
  * FormatFlagsConversionMismatchException} will be thrown.
  *
  * <p> The width is defined as for <a href="#genWidth">General conversions</a>.
@@ -844,14 +844,14 @@
  * <li> Each digit character <i>d</i> in the string is replaced by a
  * locale-specific digit computed relative to the current locale's
  * {@linkplain java.text.DecimalFormatSymbols#getZeroDigit() zero digit}
- * <i>z</i>; that is <i>d&nbsp;-&nbsp;</i> <tt>'0'</tt>
+ * <i>z</i>; that is <i>d&nbsp;-&nbsp;</i> {@code '0'}
  * <i>&nbsp;+&nbsp;z</i>.
  *
  * <li> If a decimal separator is present, a locale-specific {@linkplain
  * java.text.DecimalFormatSymbols#getDecimalSeparator decimal separator} is
  * substituted.
  *
- * <li> If the <tt>','</tt> (<tt>'&#92;u002c'</tt>)
+ * <li> If the {@code ','} (<tt>'&#92;u002c'</tt>)
  * <a name="l10n group">flag</a> is given, then the locale-specific {@linkplain
  * java.text.DecimalFormatSymbols#getGroupingSeparator grouping separator} is
  * inserted by scanning the integer part of the string from least significant
@@ -859,111 +859,111 @@
  * the locale's {@linkplain java.text.DecimalFormat#getGroupingSize() grouping
  * size}.
  *
- * <li> If the <tt>'0'</tt> flag is given, then the locale-specific {@linkplain
+ * <li> If the {@code '0'} flag is given, then the locale-specific {@linkplain
  * java.text.DecimalFormatSymbols#getZeroDigit() zero digits} are inserted
  * after the sign character, if any, and before the first non-zero digit, until
  * the length of the string is equal to the requested field width.
  *
- * <li> If the value is negative and the <tt>'('</tt> flag is given, then a
- * <tt>'('</tt> (<tt>'&#92;u0028'</tt>) is prepended and a <tt>')'</tt>
+ * <li> If the value is negative and the {@code '('} flag is given, then a
+ * {@code '('} (<tt>'&#92;u0028'</tt>) is prepended and a {@code ')'}
  * (<tt>'&#92;u0029'</tt>) is appended.
  *
  * <li> If the value is negative (or floating-point negative zero) and
- * <tt>'('</tt> flag is not given, then a <tt>'-'</tt> (<tt>'&#92;u002d'</tt>)
+ * {@code '('} flag is not given, then a {@code '-'} (<tt>'&#92;u002d'</tt>)
  * is prepended.
  *
- * <li> If the <tt>'+'</tt> flag is given and the value is positive or zero (or
- * floating-point positive zero), then a <tt>'+'</tt> (<tt>'&#92;u002b'</tt>)
+ * <li> If the {@code '+'} flag is given and the value is positive or zero (or
+ * floating-point positive zero), then a {@code '+'} (<tt>'&#92;u002b'</tt>)
  * will be prepended.
  *
  * </ol>
  *
  * <p> If the value is NaN or positive infinity the literal strings "NaN" or
  * "Infinity" respectively, will be output.  If the value is negative infinity,
- * then the output will be "(Infinity)" if the <tt>'('</tt> flag is given
+ * then the output will be "(Infinity)" if the {@code '('} flag is given
  * otherwise the output will be "-Infinity".  These values are not localized.
  *
  * <p><a name="dnint"><b> Byte, Short, Integer, and Long </b></a>
  *
- * <p> The following conversions may be applied to <tt>byte</tt>, {@link Byte},
- * <tt>short</tt>, {@link Short}, <tt>int</tt> and {@link Integer},
- * <tt>long</tt>, and {@link Long}.
+ * <p> The following conversions may be applied to {@code byte}, {@link Byte},
+ * {@code short}, {@link Short}, {@code int} and {@link Integer},
+ * {@code long}, and {@link Long}.
  *
  * <table cellpadding=5 summary="IntConv">
  *
- * <tr><td valign="top"> <tt>'d'</tt>
+ * <tr><td valign="top"> {@code 'd'}
  *     <td valign="top"> <tt>'&#92;u0054'</tt>
  *     <td> Formats the argument as a decimal integer. The <a
  *     href="#l10n algorithm">localization algorithm</a> is applied.
  *
- *     <p> If the <tt>'0'</tt> flag is given and the value is negative, then
+ *     <p> If the {@code '0'} flag is given and the value is negative, then
  *     the zero padding will occur after the sign.
  *
- *     <p> If the <tt>'#'</tt> flag is given then a {@link
+ *     <p> If the {@code '#'} flag is given then a {@link
  *     FormatFlagsConversionMismatchException} will be thrown.
  *
- * <tr><td valign="top"> <tt>'o'</tt>
+ * <tr><td valign="top"> {@code 'o'}
  *     <td valign="top"> <tt>'&#92;u006f'</tt>
  *     <td> Formats the argument as an integer in base eight.  No localization
  *     is applied.
  *
  *     <p> If <i>x</i> is negative then the result will be an unsigned value
- *     generated by adding 2<sup>n</sup> to the value where <tt>n</tt> is the
- *     number of bits in the type as returned by the static <tt>SIZE</tt> field
+ *     generated by adding 2<sup>n</sup> to the value where {@code n} is the
+ *     number of bits in the type as returned by the static {@code SIZE} field
  *     in the {@linkplain Byte#SIZE Byte}, {@linkplain Short#SIZE Short},
  *     {@linkplain Integer#SIZE Integer}, or {@linkplain Long#SIZE Long}
  *     classes as appropriate.
  *
- *     <p> If the <tt>'#'</tt> flag is given then the output will always begin
- *     with the radix indicator <tt>'0'</tt>.
- *
- *     <p> If the <tt>'0'</tt> flag is given then the output will be padded
+ *     <p> If the {@code '#'} flag is given then the output will always begin
+ *     with the radix indicator {@code '0'}.
+ *
+ *     <p> If the {@code '0'} flag is given then the output will be padded
  *     with leading zeros to the field width following any indication of sign.
  *
- *     <p> If <tt>'('</tt>, <tt>'+'</tt>, '&nbsp&nbsp;', or <tt>','</tt> flags
+ *     <p> If {@code '('}, {@code '+'}, '&nbsp&nbsp;', or {@code ','} flags
  *     are given then a {@link FormatFlagsConversionMismatchException} will be
  *     thrown.
  *
- * <tr><td valign="top"> <tt>'x'</tt>
+ * <tr><td valign="top"> {@code 'x'}
  *     <td valign="top"> <tt>'&#92;u0078'</tt>
  *     <td> Formats the argument as an integer in base sixteen. No
  *     localization is applied.
  *
  *     <p> If <i>x</i> is negative then the result will be an unsigned value
- *     generated by adding 2<sup>n</sup> to the value where <tt>n</tt> is the
- *     number of bits in the type as returned by the static <tt>SIZE</tt> field
+ *     generated by adding 2<sup>n</sup> to the value where {@code n} is the
+ *     number of bits in the type as returned by the static {@code SIZE} field
  *     in the {@linkplain Byte#SIZE Byte}, {@linkplain Short#SIZE Short},
  *     {@linkplain Integer#SIZE Integer}, or {@linkplain Long#SIZE Long}
  *     classes as appropriate.
  *
- *     <p> If the <tt>'#'</tt> flag is given then the output will always begin
- *     with the radix indicator <tt>"0x"</tt>.
- *
- *     <p> If the <tt>'0'</tt> flag is given then the output will be padded to
+ *     <p> If the {@code '#'} flag is given then the output will always begin
+ *     with the radix indicator {@code "0x"}.
+ *
+ *     <p> If the {@code '0'} flag is given then the output will be padded to
  *     the field width with leading zeros after the radix indicator or sign (if
  *     present).
  *
- *     <p> If <tt>'('</tt>, <tt>'&nbsp;&nbsp;'</tt>, <tt>'+'</tt>, or
- *     <tt>','</tt> flags are given then a {@link
+ *     <p> If {@code '('}, <tt>'&nbsp;&nbsp;'</tt>, {@code '+'}, or
+ *     {@code ','} flags are given then a {@link
  *     FormatFlagsConversionMismatchException} will be thrown.
  *
- * <tr><td valign="top"> <tt>'X'</tt>
+ * <tr><td valign="top"> {@code 'X'}
  *     <td valign="top"> <tt>'&#92;u0058'</tt>
- *     <td> The upper-case variant of <tt>'x'</tt>.  The entire string
+ *     <td> The upper-case variant of {@code 'x'}.  The entire string
  *     representing the number will be converted to {@linkplain
- *     String#toUpperCase upper case} including the <tt>'x'</tt> (if any) and
- *     all hexadecimal digits <tt>'a'</tt> - <tt>'f'</tt>
+ *     String#toUpperCase upper case} including the {@code 'x'} (if any) and
+ *     all hexadecimal digits {@code 'a'} - {@code 'f'}
  *     (<tt>'&#92;u0061'</tt> -  <tt>'&#92;u0066'</tt>).
  *
  * </table>
  *
- * <p> If the conversion is <tt>'o'</tt>, <tt>'x'</tt>, or <tt>'X'</tt> and
- * both the <tt>'#'</tt> and the <tt>'0'</tt> flags are given, then result will
- * contain the radix indicator (<tt>'0'</tt> for octal and <tt>"0x"</tt> or
- * <tt>"0X"</tt> for hexadecimal), some number of zeros (based on the width),
+ * <p> If the conversion is {@code 'o'}, {@code 'x'}, or {@code 'X'} and
+ * both the {@code '#'} and the {@code '0'} flags are given, then result will
+ * contain the radix indicator ({@code '0'} for octal and {@code "0x"} or
+ * {@code "0X"} for hexadecimal), some number of zeros (based on the width),
  * and the value.
  *
- * <p> If the <tt>'-'</tt> flag is not given, then the space padding will occur
+ * <p> If the {@code '-'} flag is not given, then the space padding will occur
  * before the sign.
  *
  * <p> The following <a name="intFlags">flags</a> apply to numeric integral
@@ -971,13 +971,13 @@
  *
  * <table cellpadding=5 summary="intFlags">
  *
- * <tr><td valign="top"> <tt>'+'</tt>
+ * <tr><td valign="top"> {@code '+'}
  *     <td valign="top"> <tt>'&#92;u002b'</tt>
  *     <td> Requires the output to include a positive sign for all positive
  *     numbers.  If this flag is not given then only negative values will
  *     include a sign.
  *
- *     <p> If both the <tt>'+'</tt> and <tt>'&nbsp;&nbsp;'</tt> flags are given
+ *     <p> If both the {@code '+'} and <tt>'&nbsp;&nbsp;'</tt> flags are given
  *     then an {@link IllegalFormatFlagsException} will be thrown.
  *
  * <tr><td valign="top"> <tt>'&nbsp;&nbsp;'</tt>
@@ -985,10 +985,10 @@
  *     <td> Requires the output to include a single extra space
  *     (<tt>'&#92;u0020'</tt>) for non-negative values.
  *
- *     <p> If both the <tt>'+'</tt> and <tt>'&nbsp;&nbsp;'</tt> flags are given
+ *     <p> If both the {@code '+'} and <tt>'&nbsp;&nbsp;'</tt> flags are given
  *     then an {@link IllegalFormatFlagsException} will be thrown.
  *
- * <tr><td valign="top"> <tt>'0'</tt>
+ * <tr><td valign="top"> {@code '0'}
  *     <td valign="top"> <tt>'&#92;u0030'</tt>
  *     <td> Requires the output to be padded with leading {@linkplain
  *     java.text.DecimalFormatSymbols#getZeroDigit zeros} to the minimum field
@@ -996,20 +996,20 @@
  *     or infinity.  If the width is not provided, then a {@link
  *     MissingFormatWidthException} will be thrown.
  *
- *     <p> If both the <tt>'-'</tt> and <tt>'0'</tt> flags are given then an
+ *     <p> If both the {@code '-'} and {@code '0'} flags are given then an
  *     {@link IllegalFormatFlagsException} will be thrown.
  *
- * <tr><td valign="top"> <tt>','</tt>
+ * <tr><td valign="top"> {@code ','}
  *     <td valign="top"> <tt>'&#92;u002c'</tt>
  *     <td> Requires the output to include the locale-specific {@linkplain
  *     java.text.DecimalFormatSymbols#getGroupingSeparator group separators} as
  *     described in the <a href="#l10n group">"group" section</a> of the
  *     localization algorithm.
  *
- * <tr><td valign="top"> <tt>'('</tt>
+ * <tr><td valign="top"> {@code '('}
  *     <td valign="top"> <tt>'&#92;u0028'</tt>
- *     <td> Requires the output to prepend a <tt>'('</tt>
- *     (<tt>'&#92;u0028'</tt>) and append a <tt>')'</tt>
+ *     <td> Requires the output to prepend a {@code '('}
+ *     (<tt>'&#92;u0028'</tt>) and append a {@code ')'}
  *     (<tt>'&#92;u0029'</tt>) to negative values.
  *
  * </table>
@@ -1019,9 +1019,9 @@
  *
  * <ul>
  *
- * <li> The output is right-justified within the <tt>width</tt>
- *
- * <li> Negative numbers begin with a <tt>'-'</tt> (<tt>'&#92;u002d'</tt>)
+ * <li> The output is right-justified within the {@code width}
+ *
+ * <li> Negative numbers begin with a {@code '-'} (<tt>'&#92;u002d'</tt>)
  *
  * <li> Positive numbers and zero do not include a sign or extra leading
  * space
@@ -1035,7 +1035,7 @@
  * separators, radix indicator, and parentheses.  If the length of the
  * converted value is less than the width then the output will be padded by
  * spaces (<tt>'&#92;u0020'</tt>) until the total number of characters equals
- * width.  The padding is on the left by default.  If <tt>'-'</tt> flag is
+ * width.  The padding is on the left by default.  If {@code '-'} flag is
  * given then the padding will be on the right.  If width is not specified then
  * there is no minimum.
  *
@@ -1049,81 +1049,81 @@
  *
  * <table cellpadding=5 summary="BIntConv">
  *
- * <tr><td valign="top"> <tt>'d'</tt>
+ * <tr><td valign="top"> {@code 'd'}
  *     <td valign="top"> <tt>'&#92;u0054'</tt>
  *     <td> Requires the output to be formatted as a decimal integer. The <a
  *     href="#l10n algorithm">localization algorithm</a> is applied.
  *
- *     <p> If the <tt>'#'</tt> flag is given {@link
+ *     <p> If the {@code '#'} flag is given {@link
  *     FormatFlagsConversionMismatchException} will be thrown.
  *
- * <tr><td valign="top"> <tt>'o'</tt>
+ * <tr><td valign="top"> {@code 'o'}
  *     <td valign="top"> <tt>'&#92;u006f'</tt>
  *     <td> Requires the output to be formatted as an integer in base eight.
  *     No localization is applied.
  *
  *     <p> If <i>x</i> is negative then the result will be a signed value
- *     beginning with <tt>'-'</tt> (<tt>'&#92;u002d'</tt>).  Signed output is
+ *     beginning with {@code '-'} (<tt>'&#92;u002d'</tt>).  Signed output is
  *     allowed for this type because unlike the primitive types it is not
  *     possible to create an unsigned equivalent without assuming an explicit
  *     data-type size.
  *
- *     <p> If <i>x</i> is positive or zero and the <tt>'+'</tt> flag is given
- *     then the result will begin with <tt>'+'</tt> (<tt>'&#92;u002b'</tt>).
- *
- *     <p> If the <tt>'#'</tt> flag is given then the output will always begin
- *     with <tt>'0'</tt> prefix.
- *
- *     <p> If the <tt>'0'</tt> flag is given then the output will be padded
+ *     <p> If <i>x</i> is positive or zero and the {@code '+'} flag is given
+ *     then the result will begin with {@code '+'} (<tt>'&#92;u002b'</tt>).
+ *
+ *     <p> If the {@code '#'} flag is given then the output will always begin
+ *     with {@code '0'} prefix.
+ *
+ *     <p> If the {@code '0'} flag is given then the output will be padded
  *     with leading zeros to the field width following any indication of sign.
  *
- *     <p> If the <tt>','</tt> flag is given then a {@link
+ *     <p> If the {@code ','} flag is given then a {@link
  *     FormatFlagsConversionMismatchException} will be thrown.
  *
- * <tr><td valign="top"> <tt>'x'</tt>
+ * <tr><td valign="top"> {@code 'x'}
  *     <td valign="top"> <tt>'&#92;u0078'</tt>
  *     <td> Requires the output to be formatted as an integer in base
  *     sixteen.  No localization is applied.
  *
  *     <p> If <i>x</i> is negative then the result will be a signed value
- *     beginning with <tt>'-'</tt> (<tt>'&#92;u002d'</tt>).  Signed output is
+ *     beginning with {@code '-'} (<tt>'&#92;u002d'</tt>).  Signed output is
  *     allowed for this type because unlike the primitive types it is not
  *     possible to create an unsigned equivalent without assuming an explicit
  *     data-type size.
  *
- *     <p> If <i>x</i> is positive or zero and the <tt>'+'</tt> flag is given
- *     then the result will begin with <tt>'+'</tt> (<tt>'&#92;u002b'</tt>).
- *
- *     <p> If the <tt>'#'</tt> flag is given then the output will always begin
- *     with the radix indicator <tt>"0x"</tt>.
- *
- *     <p> If the <tt>'0'</tt> flag is given then the output will be padded to
+ *     <p> If <i>x</i> is positive or zero and the {@code '+'} flag is given
+ *     then the result will begin with {@code '+'} (<tt>'&#92;u002b'</tt>).
+ *
+ *     <p> If the {@code '#'} flag is given then the output will always begin
+ *     with the radix indicator {@code "0x"}.
+ *
+ *     <p> If the {@code '0'} flag is given then the output will be padded to
  *     the field width with leading zeros after the radix indicator or sign (if
  *     present).
  *
- *     <p> If the <tt>','</tt> flag is given then a {@link
+ *     <p> If the {@code ','} flag is given then a {@link
  *     FormatFlagsConversionMismatchException} will be thrown.
  *
- * <tr><td valign="top"> <tt>'X'</tt>
+ * <tr><td valign="top"> {@code 'X'}
  *     <td valign="top"> <tt>'&#92;u0058'</tt>
- *     <td> The upper-case variant of <tt>'x'</tt>.  The entire string
+ *     <td> The upper-case variant of {@code 'x'}.  The entire string
  *     representing the number will be converted to {@linkplain
- *     String#toUpperCase upper case} including the <tt>'x'</tt> (if any) and
- *     all hexadecimal digits <tt>'a'</tt> - <tt>'f'</tt>
+ *     String#toUpperCase upper case} including the {@code 'x'} (if any) and
+ *     all hexadecimal digits {@code 'a'} - {@code 'f'}
  *     (<tt>'&#92;u0061'</tt> - <tt>'&#92;u0066'</tt>).
  *
  * </table>
  *
- * <p> If the conversion is <tt>'o'</tt>, <tt>'x'</tt>, or <tt>'X'</tt> and
- * both the <tt>'#'</tt> and the <tt>'0'</tt> flags are given, then result will
- * contain the base indicator (<tt>'0'</tt> for octal and <tt>"0x"</tt> or
- * <tt>"0X"</tt> for hexadecimal), some number of zeros (based on the width),
+ * <p> If the conversion is {@code 'o'}, {@code 'x'}, or {@code 'X'} and
+ * both the {@code '#'} and the {@code '0'} flags are given, then result will
+ * contain the base indicator ({@code '0'} for octal and {@code "0x"} or
+ * {@code "0X"} for hexadecimal), some number of zeros (based on the width),
  * and the value.
  *
- * <p> If the <tt>'0'</tt> flag is given and the value is negative, then the
+ * <p> If the {@code '0'} flag is given and the value is negative, then the
  * zero padding will occur after the sign.
  *
- * <p> If the <tt>'-'</tt> flag is not given, then the space padding will occur
+ * <p> If the {@code '-'} flag is not given, then the space padding will occur
  * before the sign.
  *
  * <p> All <a href="#intFlags">flags</a> defined for Byte, Short, Integer, and
@@ -1138,12 +1138,12 @@
  *
  * <p><a name="dndec"><b> Float and Double</b></a>
  *
- * <p> The following conversions may be applied to <tt>float</tt>, {@link
- * Float}, <tt>double</tt> and {@link Double}.
+ * <p> The following conversions may be applied to {@code float}, {@link
+ * Float}, {@code double} and {@link Double}.
  *
  * <table cellpadding=5 summary="floatConv">
  *
- * <tr><td valign="top"> <tt>'e'</tt>
+ * <tr><td valign="top"> {@code 'e'}
  *     <td valign="top"> <tt>'&#92;u0065'</tt>
  *     <td> Requires the output to be formatted using <a
  *     name="scientific">computerized scientific notation</a>.  The <a
@@ -1156,7 +1156,7 @@
  *     localized.
  *
  *     <p> If <i>m</i> is positive-zero or negative-zero, then the exponent
- *     will be <tt>"+00"</tt>.
+ *     will be {@code "+00"}.
  *
  *     <p> Otherwise, the result is a string that represents the sign and
  *     magnitude (absolute value) of the argument.  The formatting of the sign
@@ -1170,7 +1170,7 @@
  *     that 1 &lt;= <i>a</i> &lt; 10. The magnitude is then represented as the
  *     integer part of <i>a</i>, as a single decimal digit, followed by the
  *     decimal separator followed by decimal digits representing the fractional
- *     part of <i>a</i>, followed by the exponent symbol <tt>'e'</tt>
+ *     part of <i>a</i>, followed by the exponent symbol {@code 'e'}
  *     (<tt>'&#92;u0065'</tt>), followed by the sign of the exponent, followed
  *     by a representation of <i>n</i> as a decimal integer, as produced by the
  *     method {@link Long#toString(long, int)}, and zero-padded to include at
@@ -1178,7 +1178,7 @@
  *
  *     <p> The number of digits in the result for the fractional part of
  *     <i>m</i> or <i>a</i> is equal to the precision.  If the precision is not
- *     specified then the default value is <tt>6</tt>. If the precision is less
+ *     specified then the default value is {@code 6}. If the precision is less
  *     than the number of digits which would appear after the decimal point in
  *     the string returned by {@link Float#toString(float)} or {@link
  *     Double#toString(double)} respectively, then the value will be rounded
@@ -1188,15 +1188,15 @@
  *     Float#toString(float)} or {@link Double#toString(double)} as
  *     appropriate.
  *
- *     <p>If the <tt>','</tt> flag is given, then an {@link
+ *     <p>If the {@code ','} flag is given, then an {@link
  *     FormatFlagsConversionMismatchException} will be thrown.
  *
- * <tr><td valign="top"> <tt>'E'</tt>
+ * <tr><td valign="top"> {@code 'E'}
  *     <td valign="top"> <tt>'&#92;u0045'</tt>
- *     <td> The upper-case variant of <tt>'e'</tt>.  The exponent symbol
- *     will be <tt>'E'</tt> (<tt>'&#92;u0045'</tt>).
- *
- * <tr><td valign="top"> <tt>'g'</tt>
+ *     <td> The upper-case variant of {@code 'e'}.  The exponent symbol
+ *     will be {@code 'E'} (<tt>'&#92;u0045'</tt>).
+ *
+ * <tr><td valign="top"> {@code 'g'}
  *     <td valign="top"> <tt>'&#92;u0067'</tt>
  *     <td> Requires the output to be formatted in general scientific notation
  *     as described below. The <a href="#l10n algorithm">localization
@@ -1215,17 +1215,17 @@
  *
  *     <p> The total number of significant digits in <i>m</i> is equal to the
  *     precision.  If the precision is not specified, then the default value is
- *     <tt>6</tt>.  If the precision is <tt>0</tt>, then it is taken to be
- *     <tt>1</tt>.
- *
- *     <p> If the <tt>'#'</tt> flag is given then an {@link
+ *     {@code 6}.  If the precision is {@code 0}, then it is taken to be
+ *     {@code 1}.
+ *
+ *     <p> If the {@code '#'} flag is given then an {@link
  *     FormatFlagsConversionMismatchException} will be thrown.
  *
- * <tr><td valign="top"> <tt>'G'</tt>
+ * <tr><td valign="top"> {@code 'G'}
  *     <td valign="top"> <tt>'&#92;u0047'</tt>
- *     <td> The upper-case variant of <tt>'g'</tt>.
- *
- * <tr><td valign="top"> <tt>'f'</tt>
+ *     <td> The upper-case variant of {@code 'g'}.
+ *
+ * <tr><td valign="top"> {@code 'f'}
  *     <td valign="top"> <tt>'&#92;u0066'</tt>
  *     <td> Requires the output to be formatted using <a name="decimal">decimal
  *     format</a>.  The <a href="#l10n algorithm">localization algorithm</a> is
@@ -1247,7 +1247,7 @@
  *
  *     <p> The number of digits in the result for the fractional part of
  *     <i>m</i> or <i>a</i> is equal to the precision.  If the precision is not
- *     specified then the default value is <tt>6</tt>. If the precision is less
+ *     specified then the default value is {@code 6}. If the precision is less
  *     than the number of digits which would appear after the decimal point in
  *     the string returned by {@link Float#toString(float)} or {@link
  *     Double#toString(double)} respectively, then the value will be rounded
@@ -1257,7 +1257,7 @@
  *     Float#toString(float)} or {@link Double#toString(double)} as
  *     appropriate.
  *
- * <tr><td valign="top"> <tt>'a'</tt>
+ * <tr><td valign="top"> {@code 'a'}
  *     <td valign="top"> <tt>'&#92;u0061'</tt>
  *     <td> Requires the output to be formatted in hexadecimal exponential
  *     form.  No localization is applied.
@@ -1266,10 +1266,10 @@
  *     (absolute value) of the argument <i>x</i>.
  *
  *     <p> If <i>x</i> is negative or a negative-zero value then the result
- *     will begin with <tt>'-'</tt> (<tt>'&#92;u002d'</tt>).
+ *     will begin with {@code '-'} (<tt>'&#92;u002d'</tt>).
  *
  *     <p> If <i>x</i> is positive or a positive-zero value and the
- *     <tt>'+'</tt> flag is given then the result will begin with <tt>'+'</tt>
+ *     {@code '+'} flag is given then the result will begin with {@code '+'}
  *     (<tt>'&#92;u002b'</tt>).
  *
  *     <p> The formatting of the magnitude <i>m</i> depends upon its value.
@@ -1280,43 +1280,43 @@
  *     "Infinity", respectively, will be output.
  *
  *     <li> If <i>m</i> is zero then it is represented by the string
- *     <tt>"0x0.0p0"</tt>.
- *
- *     <li> If <i>m</i> is a <tt>double</tt> value with a normalized
+ *     {@code "0x0.0p0"}.
+ *
+ *     <li> If <i>m</i> is a {@code double} value with a normalized
  *     representation then substrings are used to represent the significand and
  *     exponent fields.  The significand is represented by the characters
- *     <tt>"0x1."</tt> followed by the hexadecimal representation of the rest
+ *     {@code "0x1."} followed by the hexadecimal representation of the rest
  *     of the significand as a fraction.  The exponent is represented by
- *     <tt>'p'</tt> (<tt>'&#92;u0070'</tt>) followed by a decimal string of the
+ *     {@code 'p'} (<tt>'&#92;u0070'</tt>) followed by a decimal string of the
  *     unbiased exponent as if produced by invoking {@link
  *     Integer#toString(int) Integer.toString} on the exponent value.
  *
- *     <li> If <i>m</i> is a <tt>double</tt> value with a subnormal
+ *     <li> If <i>m</i> is a {@code double} value with a subnormal
  *     representation then the significand is represented by the characters
- *     <tt>'0x0.'</tt> followed by the hexadecimal representation of the rest
+ *     {@code '0x0.'} followed by the hexadecimal representation of the rest
  *     of the significand as a fraction.  The exponent is represented by
- *     <tt>'p-1022'</tt>.  Note that there must be at least one nonzero digit
+ *     {@code 'p-1022'}.  Note that there must be at least one nonzero digit
  *     in a subnormal significand.
  *
  *     </ul>
  *
- *     <p> If the <tt>'('</tt> or <tt>','</tt> flags are given, then a {@link
+ *     <p> If the {@code '('} or {@code ','} flags are given, then a {@link
  *     FormatFlagsConversionMismatchException} will be thrown.
  *
- * <tr><td valign="top"> <tt>'A'</tt>
+ * <tr><td valign="top"> {@code 'A'}
  *     <td valign="top"> <tt>'&#92;u0041'</tt>
- *     <td> The upper-case variant of <tt>'a'</tt>.  The entire string
+ *     <td> The upper-case variant of {@code 'a'}.  The entire string
  *     representing the number will be converted to upper case including the
- *     <tt>'x'</tt> (<tt>'&#92;u0078'</tt>) and <tt>'p'</tt>
- *     (<tt>'&#92;u0070'</tt> and all hexadecimal digits <tt>'a'</tt> -
- *     <tt>'f'</tt> (<tt>'&#92;u0061'</tt> - <tt>'&#92;u0066'</tt>).
+ *     {@code 'x'} (<tt>'&#92;u0078'</tt>) and {@code 'p'}
+ *     (<tt>'&#92;u0070'</tt> and all hexadecimal digits {@code 'a'} -
+ *     {@code 'f'} (<tt>'&#92;u0061'</tt> - <tt>'&#92;u0066'</tt>).
  *
  * </table>
  *
  * <p> All <a href="#intFlags">flags</a> defined for Byte, Short, Integer, and
  * Long apply.
  *
- * <p> If the <tt>'#'</tt> flag is given, then the decimal separator will
+ * <p> If the {@code '#'} flag is given, then the decimal separator will
  * always be present.
  *
  * <p> If no <a name="floatdFlags">flags</a> are given the default formatting
@@ -1324,9 +1324,9 @@
  *
  * <ul>
  *
- * <li> The output is right-justified within the <tt>width</tt>
- *
- * <li> Negative numbers begin with a <tt>'-'</tt>
+ * <li> The output is right-justified within the {@code width}
+ *
+ * <li> Negative numbers begin with a {@code '-'}
  *
  * <li> Positive numbers and positive zero do not include a sign or extra
  * leading space
@@ -1344,21 +1344,21 @@
  * the length of the converted value is less than the width then the output
  * will be padded by spaces (<tt>'&#92;u0020'</tt>) until the total number of
  * characters equals width.  The padding is on the left by default.  If the
- * <tt>'-'</tt> flag is given then the padding will be on the right.  If width
+ * {@code '-'} flag is given then the padding will be on the right.  If width
  * is not specified then there is no minimum.
  *
- * <p> If the <a name="floatDPrec">conversion</a> is <tt>'e'</tt>,
- * <tt>'E'</tt> or <tt>'f'</tt>, then the precision is the number of digits
+ * <p> If the <a name="floatDPrec">conversion</a> is {@code 'e'},
+ * {@code 'E'} or {@code 'f'}, then the precision is the number of digits
  * after the decimal separator.  If the precision is not specified, then it is
- * assumed to be <tt>6</tt>.
- *
- * <p> If the conversion is <tt>'g'</tt> or <tt>'G'</tt>, then the precision is
+ * assumed to be {@code 6}.
+ *
+ * <p> If the conversion is {@code 'g'} or {@code 'G'}, then the precision is
  * the total number of significant digits in the resulting magnitude after
  * rounding.  If the precision is not specified, then the default value is
- * <tt>6</tt>.  If the precision is <tt>0</tt>, then it is taken to be
- * <tt>1</tt>.
- *
- * <p> If the conversion is <tt>'a'</tt> or <tt>'A'</tt>, then the precision
+ * {@code 6}.  If the precision is {@code 0}, then it is taken to be
+ * {@code 1}.
+ *
+ * <p> If the conversion is {@code 'a'} or {@code 'A'}, then the precision
  * is the number of hexadecimal digits after the decimal separator.  If the
  * precision is not provided, then all of the digits as returned by {@link
  * Double#toHexString(double)} will be output.
@@ -1370,7 +1370,7 @@
  *
  * <table cellpadding=5 summary="floatConv">
  *
- * <tr><td valign="top"> <tt>'e'</tt>
+ * <tr><td valign="top"> {@code 'e'}
  *     <td valign="top"> <tt>'&#92;u0065'</tt>
  *     <td> Requires the output to be formatted using <a
  *     name="scientific">computerized scientific notation</a>.  The <a
@@ -1379,7 +1379,7 @@
  *     <p> The formatting of the magnitude <i>m</i> depends upon its value.
  *
  *     <p> If <i>m</i> is positive-zero or negative-zero, then the exponent
- *     will be <tt>"+00"</tt>.
+ *     will be {@code "+00"}.
  *
  *     <p> Otherwise, the result is a string that represents the sign and
  *     magnitude (absolute value) of the argument.  The formatting of the sign
@@ -1393,7 +1393,7 @@
  *     that 1 &lt;= <i>a</i> &lt; 10. The magnitude is then represented as the
  *     integer part of <i>a</i>, as a single decimal digit, followed by the
  *     decimal separator followed by decimal digits representing the fractional
- *     part of <i>a</i>, followed by the exponent symbol <tt>'e'</tt>
+ *     part of <i>a</i>, followed by the exponent symbol {@code 'e'}
  *     (<tt>'&#92;u0065'</tt>), followed by the sign of the exponent, followed
  *     by a representation of <i>n</i> as a decimal integer, as produced by the
  *     method {@link Long#toString(long, int)}, and zero-padded to include at
@@ -1401,7 +1401,7 @@
  *
  *     <p> The number of digits in the result for the fractional part of
  *     <i>m</i> or <i>a</i> is equal to the precision.  If the precision is not
- *     specified then the default value is <tt>6</tt>.  If the precision is
+ *     specified then the default value is {@code 6}.  If the precision is
  *     less than the number of digits which would appear after the decimal
  *     point in the string returned by {@link Float#toString(float)} or {@link
  *     Double#toString(double)} respectively, then the value will be rounded
@@ -1410,15 +1410,15 @@
  *     For a canonical representation of the value, use {@link
  *     BigDecimal#toString()}.
  *
- *     <p> If the <tt>','</tt> flag is given, then an {@link
+ *     <p> If the {@code ','} flag is given, then an {@link
  *     FormatFlagsConversionMismatchException} will be thrown.
  *
- * <tr><td valign="top"> <tt>'E'</tt>
+ * <tr><td valign="top"> {@code 'E'}
  *     <td valign="top"> <tt>'&#92;u0045'</tt>
- *     <td> The upper-case variant of <tt>'e'</tt>.  The exponent symbol
- *     will be <tt>'E'</tt> (<tt>'&#92;u0045'</tt>).
- *
- * <tr><td valign="top"> <tt>'g'</tt>
+ *     <td> The upper-case variant of {@code 'e'}.  The exponent symbol
+ *     will be {@code 'E'} (<tt>'&#92;u0045'</tt>).
+ *
+ * <tr><td valign="top"> {@code 'g'}
  *     <td valign="top"> <tt>'&#92;u0067'</tt>
  *     <td> Requires the output to be formatted in general scientific notation
  *     as described below. The <a href="#l10n algorithm">localization
@@ -1437,17 +1437,17 @@
  *
  *     <p> The total number of significant digits in <i>m</i> is equal to the
  *     precision.  If the precision is not specified, then the default value is
- *     <tt>6</tt>.  If the precision is <tt>0</tt>, then it is taken to be
- *     <tt>1</tt>.
- *
- *     <p> If the <tt>'#'</tt> flag is given then an {@link
+ *     {@code 6}.  If the precision is {@code 0}, then it is taken to be
+ *     {@code 1}.
+ *
+ *     <p> If the {@code '#'} flag is given then an {@link
  *     FormatFlagsConversionMismatchException} will be thrown.
  *
- * <tr><td valign="top"> <tt>'G'</tt>
+ * <tr><td valign="top"> {@code 'G'}
  *     <td valign="top"> <tt>'&#92;u0047'</tt>
- *     <td> The upper-case variant of <tt>'g'</tt>.
- *
- * <tr><td valign="top"> <tt>'f'</tt>
+ *     <td> The upper-case variant of {@code 'g'}.
+ *
+ * <tr><td valign="top"> {@code 'f'}
  *     <td valign="top"> <tt>'&#92;u0066'</tt>
  *     <td> Requires the output to be formatted using <a name="decimal">decimal
  *     format</a>.  The <a href="#l10n algorithm">localization algorithm</a> is
@@ -1465,7 +1465,7 @@
  *
  *     <p> The number of digits in the result for the fractional part of
  *     <i>m</i> or <i>a</i> is equal to the precision.  If the precision is not
- *     specified then the default value is <tt>6</tt>.  If the precision is
+ *     specified then the default value is {@code 6}.  If the precision is
  *     less than the number of digits which would appear after the decimal
  *     point in the string returned by {@link Float#toString(float)} or {@link
  *     Double#toString(double)} respectively, then the value will be rounded
@@ -1479,7 +1479,7 @@
  * <p> All <a href="#intFlags">flags</a> defined for Byte, Short, Integer, and
  * Long apply.
  *
- * <p> If the <tt>'#'</tt> flag is given, then the decimal separator will
+ * <p> If the {@code '#'} flag is given, then the decimal separator will
  * always be present.
  *
  * <p> The <a href="#floatdFlags">default behavior</a> when no flags are
@@ -1491,114 +1491,114 @@
  *
  * <h4><a name="ddt">Date/Time</a></h4>
  *
- * <p> This conversion may be applied to <tt>long</tt>, {@link Long}, {@link
+ * <p> This conversion may be applied to {@code long}, {@link Long}, {@link
  * Calendar}, and {@link Date}.
  *
  * <table cellpadding=5 summary="DTConv">
  *
- * <tr><td valign="top"> <tt>'t'</tt>
+ * <tr><td valign="top"> {@code 't'}
  *     <td valign="top"> <tt>'&#92;u0074'</tt>
  *     <td> Prefix for date and time conversion characters.
- * <tr><td valign="top"> <tt>'T'</tt>
+ * <tr><td valign="top"> {@code 'T'}
  *     <td valign="top"> <tt>'&#92;u0054'</tt>
- *     <td> The upper-case variant of <tt>'t'</tt>.
+ *     <td> The upper-case variant of {@code 't'}.
  *
  * </table>
  *
  * <p> The following date and time conversion character suffixes are defined
- * for the <tt>'t'</tt> and <tt>'T'</tt> conversions.  The types are similar to
- * but not completely identical to those defined by GNU <tt>date</tt> and
- * POSIX <tt>strftime(3c)</tt>.  Additional conversion types are provided to
- * access Java-specific functionality (e.g. <tt>'L'</tt> for milliseconds
+ * for the {@code 't'} and {@code 'T'} conversions.  The types are similar to
+ * but not completely identical to those defined by GNU {@code date} and
+ * POSIX {@code strftime(3c)}.  Additional conversion types are provided to
+ * access Java-specific functionality (e.g. {@code 'L'} for milliseconds
  * within the second).
  *
  * <p> The following conversion characters are used for formatting times:
  *
  * <table cellpadding=5 summary="time">
  *
- * <tr><td valign="top"> <tt>'H'</tt>
+ * <tr><td valign="top"> {@code 'H'}
  *     <td valign="top"> <tt>'&#92;u0048'</tt>
  *     <td> Hour of the day for the 24-hour clock, formatted as two digits with
- *     a leading zero as necessary i.e. <tt>00 - 23</tt>. <tt>00</tt>
+ *     a leading zero as necessary i.e. {@code 00 - 23}. {@code 00}
  *     corresponds to midnight.
  *
- * <tr><td valign="top"><tt>'I'</tt>
+ * <tr><td valign="top">{@code 'I'}
  *     <td valign="top"> <tt>'&#92;u0049'</tt>
  *     <td> Hour for the 12-hour clock, formatted as two digits with a leading
- *     zero as necessary, i.e.  <tt>01 - 12</tt>.  <tt>01</tt> corresponds to
+ *     zero as necessary, i.e.  {@code 01 - 12}.  {@code 01} corresponds to
  *     one o'clock (either morning or afternoon).
  *
- * <tr><td valign="top"><tt>'k'</tt>
+ * <tr><td valign="top">{@code 'k'}
  *     <td valign="top"> <tt>'&#92;u006b'</tt>
- *     <td> Hour of the day for the 24-hour clock, i.e. <tt>0 - 23</tt>.
- *     <tt>0</tt> corresponds to midnight.
- *
- * <tr><td valign="top"><tt>'l'</tt>
+ *     <td> Hour of the day for the 24-hour clock, i.e. {@code 0 - 23}.
+ *     {@code 0} corresponds to midnight.
+ *
+ * <tr><td valign="top">{@code 'l'}
  *     <td valign="top"> <tt>'&#92;u006c'</tt>
- *     <td> Hour for the 12-hour clock, i.e. <tt>1 - 12</tt>.  <tt>1</tt>
+ *     <td> Hour for the 12-hour clock, i.e. {@code 1 - 12}.  {@code 1}
  *     corresponds to one o'clock (either morning or afternoon).
  *
- * <tr><td valign="top"><tt>'M'</tt>
+ * <tr><td valign="top">{@code 'M'}
  *     <td valign="top"> <tt>'&#92;u004d'</tt>
  *     <td> Minute within the hour formatted as two digits with a leading zero
- *     as necessary, i.e.  <tt>00 - 59</tt>.
- *
- * <tr><td valign="top"><tt>'S'</tt>
+ *     as necessary, i.e.  {@code 00 - 59}.
+ *
+ * <tr><td valign="top">{@code 'S'}
  *     <td valign="top"> <tt>'&#92;u0053'</tt>
  *     <td> Seconds within the minute, formatted as two digits with a leading
- *     zero as necessary, i.e. <tt>00 - 60</tt> ("<tt>60</tt>" is a special
+ *     zero as necessary, i.e. {@code 00 - 60} ("{@code 60}" is a special
  *     value required to support leap seconds).
  *
- * <tr><td valign="top"><tt>'L'</tt>
+ * <tr><td valign="top">{@code 'L'}
  *     <td valign="top"> <tt>'&#92;u004c'</tt>
  *     <td> Millisecond within the second formatted as three digits with
- *     leading zeros as necessary, i.e. <tt>000 - 999</tt>.
- *
- * <tr><td valign="top"><tt>'N'</tt>
+ *     leading zeros as necessary, i.e. {@code 000 - 999}.
+ *
+ * <tr><td valign="top">{@code 'N'}
  *     <td valign="top"> <tt>'&#92;u004e'</tt>
  *     <td> Nanosecond within the second, formatted as nine digits with leading
- *     zeros as necessary, i.e. <tt>000000000 - 999999999</tt>.  The precision
+ *     zeros as necessary, i.e. {@code 000000000 - 999999999}.  The precision
  *     of this value is limited by the resolution of the underlying operating
  *     system or hardware.
  *
- * <tr><td valign="top"><tt>'p'</tt>
+ * <tr><td valign="top">{@code 'p'}
  *     <td valign="top"> <tt>'&#92;u0070'</tt>
  *     <td> Locale-specific {@linkplain
  *     java.text.DateFormatSymbols#getAmPmStrings morning or afternoon} marker
- *     in lower case, e.g."<tt>am</tt>" or "<tt>pm</tt>".  Use of the
- *     conversion prefix <tt>'T'</tt> forces this output to upper case.  (Note
- *     that <tt>'p'</tt> produces lower-case output.  This is different from
- *     GNU <tt>date</tt> and POSIX <tt>strftime(3c)</tt> which produce
+ *     in lower case, e.g."{@code am}" or "{@code pm}".  Use of the
+ *     conversion prefix {@code 'T'} forces this output to upper case.  (Note
+ *     that {@code 'p'} produces lower-case output.  This is different from
+ *     GNU {@code date} and POSIX {@code strftime(3c)} which produce
  *     upper-case output.)
  *
- * <tr><td valign="top"><tt>'z'</tt>
+ * <tr><td valign="top">{@code 'z'}
  *     <td valign="top"> <tt>'&#92;u007a'</tt>
  *     <td> <a href="http://www.ietf.org/rfc/rfc0822.txt">RFC&nbsp;822</a>
- *     style numeric time zone offset from GMT, e.g. <tt>-0800</tt>.  This
+ *     style numeric time zone offset from GMT, e.g. {@code -0800}.  This
  *     value will be adjusted as necessary for Daylight Saving Time.  For
- *     <tt>long</tt>, {@link Long}, and {@link Date} the time zone used is
- *     the {@plainlink TimeZone#getDefault() default time zone} for this
+ *     {@code long}, {@link Long}, and {@link Date} the time zone used is
+ *     the {@linkplain TimeZone#getDefault() default time zone} for this
  *     instance of the Java virtual machine.
  *
- * <tr><td valign="top"><tt>'Z'</tt>
+ * <tr><td valign="top">{@code 'Z'}
  *     <td> A string representing the abbreviation for the time zone.  This
  *     value will be adjusted as necessary for Daylight Saving Time.  For
- *     <tt>long</tt>, {@link Long}, and {@link Date} the time zone used is
- *     the {@plainlink TimeZone#getDefault() default time zone} for this
+ *     {@code long}, {@link Long}, and {@link Date} the time zone used is
+ *     the {@linkplain TimeZone#getDefault() default time zone} for this
  *     instance of the Java virtual machine.  The Formatter's locale will
  *     supersede the locale of the argument (if any).
  *
- * <tr><td valign="top"><tt>'s'</tt>
+ * <tr><td valign="top">{@code 's'}
  *     <td valign="top"> <tt>'&#92;u0073'</tt>
  *     <td> Seconds since the beginning of the epoch starting at 1 January 1970
- *     <tt>00:00:00</tt> UTC, i.e. <tt>Long.MIN_VALUE/1000</tt> to
- *     <tt>Long.MAX_VALUE/1000</tt>.
- *
- * <tr><td valign="top"><tt>'Q'</tt>
+ *     {@code 00:00:00} UTC, i.e. {@code Long.MIN_VALUE/1000} to
+ *     {@code Long.MAX_VALUE/1000}.
+ *
+ * <tr><td valign="top">{@code 'Q'}
  *     <td valign="top"> <tt>'&#92;u004f'</tt>
  *     <td> Milliseconds since the beginning of the epoch starting at 1 January
- *     1970 <tt>00:00:00</tt> UTC, i.e. <tt>Long.MIN_VALUE</tt> to
- *     <tt>Long.MAX_VALUE</tt>. The precision of this value is limited by
+ *     1970 {@code 00:00:00} UTC, i.e. {@code Long.MIN_VALUE} to
+ *     {@code Long.MAX_VALUE}. The precision of this value is limited by
  *     the resolution of the underlying operating system or hardware.
  *
  * </table>
@@ -1607,71 +1607,71 @@
  *
  * <table cellpadding=5 summary="date">
  *
- * <tr><td valign="top"><tt>'B'</tt>
+ * <tr><td valign="top">{@code 'B'}
  *     <td valign="top"> <tt>'&#92;u0042'</tt>
  *     <td> Locale-specific {@linkplain java.text.DateFormatSymbols#getMonths
- *     full month name}, e.g. <tt>"January"</tt>, <tt>"February"</tt>.
- *
- * <tr><td valign="top"><tt>'b'</tt>
+ *     full month name}, e.g. {@code "January"}, {@code "February"}.
+ *
+ * <tr><td valign="top">{@code 'b'}
  *     <td valign="top"> <tt>'&#92;u0062'</tt>
  *     <td> Locale-specific {@linkplain
  *     java.text.DateFormatSymbols#getShortMonths abbreviated month name},
- *     e.g. <tt>"Jan"</tt>, <tt>"Feb"</tt>.
- *
- * <tr><td valign="top"><tt>'h'</tt>
+ *     e.g. {@code "Jan"}, {@code "Feb"}.
+ *
+ * <tr><td valign="top">{@code 'h'}
  *     <td valign="top"> <tt>'&#92;u0068'</tt>
- *     <td> Same as <tt>'b'</tt>.
- *
- * <tr><td valign="top"><tt>'A'</tt>
+ *     <td> Same as {@code 'b'}.
+ *
+ * <tr><td valign="top">{@code 'A'}
  *     <td valign="top"> <tt>'&#92;u0041'</tt>
  *     <td> Locale-specific full name of the {@linkplain
  *     java.text.DateFormatSymbols#getWeekdays day of the week},
- *     e.g. <tt>"Sunday"</tt>, <tt>"Monday"</tt>
- *
- * <tr><td valign="top"><tt>'a'</tt>
+ *     e.g. {@code "Sunday"}, {@code "Monday"}
+ *
+ * <tr><td valign="top">{@code 'a'}
  *     <td valign="top"> <tt>'&#92;u0061'</tt>
  *     <td> Locale-specific short name of the {@linkplain
  *     java.text.DateFormatSymbols#getShortWeekdays day of the week},
- *     e.g. <tt>"Sun"</tt>, <tt>"Mon"</tt>
- *
- * <tr><td valign="top"><tt>'C'</tt>
+ *     e.g. {@code "Sun"}, {@code "Mon"}
+ *
+ * <tr><td valign="top">{@code 'C'}
  *     <td valign="top"> <tt>'&#92;u0043'</tt>
- *     <td> Four-digit year divided by <tt>100</tt>, formatted as two digits
- *     with leading zero as necessary, i.e. <tt>00 - 99</tt>
- *
- * <tr><td valign="top"><tt>'Y'</tt>
+ *     <td> Four-digit year divided by {@code 100}, formatted as two digits
+ *     with leading zero as necessary, i.e. {@code 00 - 99}
+ *
+ * <tr><td valign="top">{@code 'Y'}
  *     <td valign="top"> <tt>'&#92;u0059'</tt> <td> Year, formatted to at least
- *     four digits with leading zeros as necessary, e.g. <tt>0092</tt> equals
- *     <tt>92</tt> CE for the Gregorian calendar.
- *
- * <tr><td valign="top"><tt>'y'</tt>
+ *     four digits with leading zeros as necessary, e.g. {@code 0092} equals
+ *     {@code 92} CE for the Gregorian calendar.
+ *
+ * <tr><td valign="top">{@code 'y'}
  *     <td valign="top"> <tt>'&#92;u0079'</tt>
  *     <td> Last two digits of the year, formatted with leading zeros as
- *     necessary, i.e. <tt>00 - 99</tt>.
- *
- * <tr><td valign="top"><tt>'j'</tt>
+ *     necessary, i.e. {@code 00 - 99}.
+ *
+ * <tr><td valign="top">{@code 'j'}
  *     <td valign="top"> <tt>'&#92;u006a'</tt>
  *     <td> Day of year, formatted as three digits with leading zeros as
- *     necessary, e.g. <tt>001 - 366</tt> for the Gregorian calendar.
- *     <tt>001</tt> corresponds to the first day of the year.
- *
- * <tr><td valign="top"><tt>'m'</tt>
+ *     necessary, e.g. {@code 001 - 366} for the Gregorian calendar.
+ *     {@code 001} corresponds to the first day of the year.
+ *
+ * <tr><td valign="top">{@code 'm'}
  *     <td valign="top"> <tt>'&#92;u006d'</tt>
  *     <td> Month, formatted as two digits with leading zeros as necessary,
- *     i.e. <tt>01 - 13</tt>, where "<tt>01</tt>" is the first month of the
- *     year and ("<tt>13</tt>" is a special value required to support lunar
+ *     i.e. {@code 01 - 13}, where "{@code 01}" is the first month of the
+ *     year and ("{@code 13}" is a special value required to support lunar
  *     calendars).
  *
- * <tr><td valign="top"><tt>'d'</tt>
+ * <tr><td valign="top">{@code 'd'}
  *     <td valign="top"> <tt>'&#92;u0064'</tt>
  *     <td> Day of month, formatted as two digits with leading zeros as
- *     necessary, i.e. <tt>01 - 31</tt>, where "<tt>01</tt>" is the first day
+ *     necessary, i.e. {@code 01 - 31}, where "{@code 01}" is the first day
  *     of the month.
  *
- * <tr><td valign="top"><tt>'e'</tt>
+ * <tr><td valign="top">{@code 'e'}
  *     <td valign="top"> <tt>'&#92;u0065'</tt>
- *     <td> Day of month, formatted as two digits, i.e. <tt>1 - 31</tt> where
- *     "<tt>1</tt>" is the first day of the month.
+ *     <td> Day of month, formatted as two digits, i.e. {@code 1 - 31} where
+ *     "{@code 1}" is the first day of the month.
  *
  * </table>
  *
@@ -1680,45 +1680,45 @@
  *
  * <table cellpadding=5 summary="composites">
  *
- * <tr><td valign="top"><tt>'R'</tt>
+ * <tr><td valign="top">{@code 'R'}
  *     <td valign="top"> <tt>'&#92;u0052'</tt>
- *     <td> Time formatted for the 24-hour clock as <tt>"%tH:%tM"</tt>
- *
- * <tr><td valign="top"><tt>'T'</tt>
+ *     <td> Time formatted for the 24-hour clock as {@code "%tH:%tM"}
+ *
+ * <tr><td valign="top">{@code 'T'}
  *     <td valign="top"> <tt>'&#92;u0054'</tt>
- *     <td> Time formatted for the 24-hour clock as <tt>"%tH:%tM:%tS"</tt>.
- *
- * <tr><td valign="top"><tt>'r'</tt>
+ *     <td> Time formatted for the 24-hour clock as {@code "%tH:%tM:%tS"}.
+ *
+ * <tr><td valign="top">{@code 'r'}
  *     <td valign="top"> <tt>'&#92;u0072'</tt>
- *     <td> Time formatted for the 12-hour clock as <tt>"%tI:%tM:%tS
- *     %Tp"</tt>.  The location of the morning or afternoon marker
- *     (<tt>'%Tp'</tt>) may be locale-dependent.
- *
- * <tr><td valign="top"><tt>'D'</tt>
+ *     <td> Time formatted for the 12-hour clock as {@code "%tI:%tM:%tS
+ *     %Tp"}.  The location of the morning or afternoon marker
+ *     ({@code '%Tp'}) may be locale-dependent.
+ *
+ * <tr><td valign="top">{@code 'D'}
  *     <td valign="top"> <tt>'&#92;u0044'</tt>
- *     <td> Date formatted as <tt>"%tm/%td/%ty"</tt>.
- *
- * <tr><td valign="top"><tt>'F'</tt>
+ *     <td> Date formatted as {@code "%tm/%td/%ty"}.
+ *
+ * <tr><td valign="top">{@code 'F'}
  *     <td valign="top"> <tt>'&#92;u0046'</tt>
  *     <td> <a href="http://www.w3.org/TR/NOTE-datetime">ISO&nbsp;8601</a>
- *     complete date formatted as <tt>"%tY-%tm-%td"</tt>.
- *
- * <tr><td valign="top"><tt>'c'</tt>
+ *     complete date formatted as {@code "%tY-%tm-%td"}.
+ *
+ * <tr><td valign="top">{@code 'c'}
  *     <td valign="top"> <tt>'&#92;u0063'</tt>
- *     <td> Date and time formatted as <tt>"%ta %tb %td %tT %tZ %tY"</tt>,
- *     e.g. <tt>"Sun Jul 20 16:17:00 EDT 1969"</tt>.
+ *     <td> Date and time formatted as {@code "%ta %tb %td %tT %tZ %tY"},
+ *     e.g. {@code "Sun Jul 20 16:17:00 EDT 1969"}.
  *
  * </table>
  *
- * <p> The <tt>'-'</tt> flag defined for <a href="#dFlags">General
- * conversions</a> applies.  If the <tt>'#'</tt> flag is given, then a {@link
+ * <p> The {@code '-'} flag defined for <a href="#dFlags">General
+ * conversions</a> applies.  If the {@code '#'} flag is given, then a {@link
  * FormatFlagsConversionMismatchException} will be thrown.
  *
  * <p> The <a name="dtWidth">width</a> is the minimum number of characters to
  * be written to the output.  If the length of the converted value is less than
- * the <tt>width</tt> then the output will be padded by spaces
+ * the {@code width} then the output will be padded by spaces
  * (<tt>'&#92;u0020'</tt>) until the total number of characters equals width.
- * The padding is on the left by default.  If the <tt>'-'</tt> flag is given
+ * The padding is on the left by default.  If the {@code '-'} flag is given
  * then the padding will be on the right.  If width is not specified then there
  * is no minimum.
  *
@@ -1731,17 +1731,17 @@
  *
  * <table cellpadding=5 summary="DTConv">
  *
- * <tr><td valign="top"><tt>'%'</tt>
- *     <td> The result is a literal <tt>'%'</tt> (<tt>'&#92;u0025'</tt>)
+ * <tr><td valign="top">{@code '%'}
+ *     <td> The result is a literal {@code '%'} (<tt>'&#92;u0025'</tt>)
  *
  * <p> The <a name="dtWidth">width</a> is the minimum number of characters to
- * be written to the output including the <tt>'%'</tt>.  If the length of the
- * converted value is less than the <tt>width</tt> then the output will be
+ * be written to the output including the {@code '%'}.  If the length of the
+ * converted value is less than the {@code width} then the output will be
  * padded by spaces (<tt>'&#92;u0020'</tt>) until the total number of
  * characters equals width.  The padding is on the left.  If width is not
- * specified then just the <tt>'%'</tt> is output.
- *
- * <p> The <tt>'-'</tt> flag defined for <a href="#dFlags">General
+ * specified then just the {@code '%'} is output.
+ *
+ * <p> The {@code '-'} flag defined for <a href="#dFlags">General
  * conversions</a> applies.  If any other flags are provided, then a
  * {@link FormatFlagsConversionMismatchException} will be thrown.
  *
@@ -1756,7 +1756,7 @@
  *
  * <table cellpadding=5 summary="DTConv">
  *
- * <tr><td valign="top"><tt>'n'</tt>
+ * <tr><td valign="top">{@code 'n'}
  *     <td> the platform-specific line separator as returned by {@link
  *     System#getProperty System.getProperty("line.separator")}.
  *
@@ -1775,7 +1775,7 @@
  * <li> <i>Explicit indexing</i> is used when the format specifier contains an
  * argument index.  The argument index is a decimal integer indicating the
  * position of the argument in the argument list.  The first argument is
- * referenced by "<tt>1$</tt>", the second by "<tt>2$</tt>", etc.  An argument
+ * referenced by "{@code 1$}", the second by "{@code 2$}", etc.  An argument
  * may be referenced more than once.
  *
  * <p> For example:
@@ -1787,7 +1787,7 @@
  * </pre></blockquote>
  *
  * <li> <i>Relative indexing</i> is used when the format specifier contains a
- * <tt>'&lt;'</tt> (<tt>'&#92;u003c'</tt>) flag which causes the argument for
+ * {@code '<'} (<tt>'&#92;u003c'</tt>) flag which causes the argument for
  * the previous format specifier to be re-used.  If there is no previous
  * argument, then a {@link MissingFormatArgumentException} is thrown.
  *
@@ -1798,7 +1798,7 @@
  * </pre></blockquote>
  *
  * <li> <i>Ordinary indexing</i> is used when the format specifier contains
- * neither an argument index nor a <tt>'&lt;'</tt> flag.  Each format specifier
+ * neither an argument index nor a {@code '<'} flag.  Each format specifier
  * which uses ordinary indexing is assigned a sequential implicit index into
  * argument list which is independent of the indices used by explicit or
  * relative indexing.
@@ -1828,7 +1828,7 @@
  * <p> If there are more arguments than format specifiers, the extra arguments
  * are ignored.
  *
- * <p> Unless otherwise specified, passing a <tt>null</tt> argument to any
+ * <p> Unless otherwise specified, passing a {@code null} argument to any
  * method or constructor in this class will cause a {@link
  * NullPointerException} to be thrown.
  *
@@ -1876,8 +1876,8 @@
      * locale} for this instance of the Java virtual machine.
      *
      * @param  a
-     *         Destination for the formatted output.  If <tt>a</tt> is
-     *         <tt>null</tt> then a {@link StringBuilder} will be created.
+     *         Destination for the formatted output.  If {@code a} is
+     *         {@code null} then a {@link StringBuilder} will be created.
      */
     public Formatter(Appendable a) {
         if (a == null)
@@ -1895,7 +1895,7 @@
      *
      * @param  l
      *         The {@linkplain java.util.Locale locale} to apply during
-     *         formatting.  If <tt>l</tt> is <tt>null</tt> then no localization
+     *         formatting.  If {@code l} is {@code null} then no localization
      *         is applied.
      */
     public Formatter(Locale l) {
@@ -1906,12 +1906,12 @@
      * Constructs a new formatter with the specified destination and locale.
      *
      * @param  a
-     *         Destination for the formatted output.  If <tt>a</tt> is
-     *         <tt>null</tt> then a {@link StringBuilder} will be created.
+     *         Destination for the formatted output.  If {@code a} is
+     *         {@code null} then a {@link StringBuilder} will be created.
      *
      * @param  l
      *         The {@linkplain java.util.Locale locale} to apply during
-     *         formatting.  If <tt>l</tt> is <tt>null</tt> then no localization
+     *         formatting.  If {@code l} is {@code null} then no localization
      *         is applied.
      */
     public Formatter(Appendable a, Locale l) {
@@ -2004,7 +2004,7 @@
      *
      * @param  l
      *         The {@linkplain java.util.Locale locale} to apply during
-     *         formatting.  If <tt>l</tt> is <tt>null</tt> then no localization
+     *         formatting.  If {@code l} is {@code null} then no localization
      *         is applied.
      *
      * @throws  FileNotFoundException
@@ -2112,7 +2112,7 @@
      *
      * @param  l
      *         The {@linkplain java.util.Locale locale} to apply during
-     *         formatting.  If <tt>l</tt> is <tt>null</tt> then no localization
+     *         formatting.  If {@code l} is {@code null} then no localization
      *         is applied.
      *
      * @throws  FileNotFoundException
@@ -2212,7 +2212,7 @@
      *
      * @param  l
      *         The {@linkplain java.util.Locale locale} to apply during
-     *         formatting.  If <tt>l</tt> is <tt>null</tt> then no localization
+     *         formatting.  If {@code l} is {@code null} then no localization
      *         is applied.
      *
      * @throws  UnsupportedEncodingException
@@ -2237,7 +2237,7 @@
      * <p> The {@link #format(java.util.Locale,String,Object...) format} method
      * for this object which has a locale argument does not change this value.
      *
-     * @return  <tt>null</tt> if no localization is applied, otherwise a
+     * @return  {@code null} if no localization is applied, otherwise a
      *          locale
      *
      * @throws  FormatterClosedException
@@ -2264,7 +2264,7 @@
     }
 
     /**
-     * Returns the result of invoking <tt>toString()</tt> on the destination
+     * Returns the result of invoking {@code toString()} on the destination
      * for the output.  For example, the following code formats text into a
      * {@link StringBuilder} then retrieves the resultant string:
      *
@@ -2281,13 +2281,13 @@
      * <pre>
      *     out().toString() </pre>
      *
-     * <p> Depending on the specification of <tt>toString</tt> for the {@link
+     * <p> Depending on the specification of {@code toString} for the {@link
      * Appendable}, the returned string may or may not contain the characters
      * written to the destination.  For instance, buffers typically return
-     * their contents in <tt>toString()</tt>, but streams cannot since the
+     * their contents in {@code toString()}, but streams cannot since the
      * data is discarded.
      *
-     * @return  The result of invoking <tt>toString()</tt> on the destination
+     * @return  The result of invoking {@code toString()} on the destination
      *          for the output
      *
      * @throws  FormatterClosedException
@@ -2301,7 +2301,7 @@
 
     /**
      * Flushes this formatter.  If the destination implements the {@link
-     * java.io.Flushable} interface, its <tt>flush</tt> method will be invoked.
+     * java.io.Flushable} interface, its {@code flush} method will be invoked.
      *
      * <p> Flushing a formatter writes any buffered output in the destination
      * to the underlying stream.
@@ -2323,7 +2323,7 @@
 
     /**
      * Closes this formatter.  If the destination implements the {@link
-     * java.io.Closeable} interface, its <tt>close</tt> method will be invoked.
+     * java.io.Closeable} interface, its {@code close} method will be invoked.
      *
      * <p> Closing a formatter allows it to release resources it may be holding
      * (such as open files).  If the formatter is already closed, then invoking
@@ -2352,13 +2352,13 @@
     }
 
     /**
-     * Returns the <tt>IOException</tt> last thrown by this formatter's {@link
+     * Returns the {@code IOException} last thrown by this formatter's {@link
      * Appendable}.
      *
-     * <p> If the destination's <tt>append()</tt> method never throws
-     * <tt>IOException</tt>, then this method will always return <tt>null</tt>.
+     * <p> If the destination's {@code append()} method never throws
+     * {@code IOException}, then this method will always return {@code null}.
      *
-     * @return  The last exception thrown by the Appendable or <tt>null</tt> if
+     * @return  The last exception thrown by the Appendable or {@code null} if
      *          no such exception exists.
      */
     public IOException ioException() {
@@ -2406,7 +2406,7 @@
      *
      * @param  l
      *         The {@linkplain java.util.Locale locale} to apply during
-     *         formatting.  If <tt>l</tt> is <tt>null</tt> then no localization
+     *         formatting.  If {@code l} is {@code null} then no localization
      *         is applied.  This does not change this object's locale that was
      *         set during construction.
      *
@@ -4196,7 +4196,7 @@
             }
         }
 
-        // Returns a string representation of the current <tt>Flags</tt>.
+        // Returns a string representation of the current {@code Flags}.
         public static String toString(Flags f) {
             return f.toString();
         }
--- a/jdk/src/share/classes/java/util/logging/Logger.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/java/util/logging/Logger.java	Wed Jul 05 16:47:27 2017 +0200
@@ -27,6 +27,7 @@
 package java.util.logging;
 
 import java.util.*;
+import java.util.concurrent.CopyOnWriteArrayList;
 import java.security.*;
 import java.lang.ref.WeakReference;
 
@@ -165,10 +166,11 @@
     private static final int offValue = Level.OFF.intValue();
     private LogManager manager;
     private String name;
-    private ArrayList<Handler> handlers;
+    private final CopyOnWriteArrayList<Handler> handlers =
+        new CopyOnWriteArrayList<Handler>();
     private String resourceBundleName;
-    private boolean useParentHandlers = true;
-    private Filter filter;
+    private volatile boolean useParentHandlers = true;
+    private volatile Filter filter;
     private boolean anonymous;
 
     private ResourceBundle catalog;     // Cached resource bundle
@@ -180,9 +182,9 @@
     private static Object treeLock = new Object();
     // We keep weak references from parents to children, but strong
     // references from children to parents.
-    private Logger parent;    // our nearest parent.
+    private volatile Logger parent;    // our nearest parent.
     private ArrayList<WeakReference<Logger>> kids;   // WeakReferences to loggers that have us as parent
-    private Level levelObject;
+    private volatile Level levelObject;
     private volatile int levelValue;  // current effective level value
 
     /**
@@ -438,7 +440,7 @@
      * @exception  SecurityException  if a security manager exists and if
      *             the caller does not have LoggingPermission("control").
      */
-    public synchronized void setFilter(Filter newFilter) throws SecurityException {
+    public void setFilter(Filter newFilter) throws SecurityException {
         checkAccess();
         filter = newFilter;
     }
@@ -448,7 +450,7 @@
      *
      * @return  a filter object (may be null)
      */
-    public synchronized Filter getFilter() {
+    public Filter getFilter() {
         return filter;
     }
 
@@ -465,10 +467,9 @@
         if (record.getLevel().intValue() < levelValue || levelValue == offValue) {
             return;
         }
-        synchronized (this) {
-            if (filter != null && !filter.isLoggable(record)) {
-                return;
-            }
+        Filter theFilter = filter;
+        if (theFilter != null && !theFilter.isLoggable(record)) {
+            return;
         }
 
         // Post the LogRecord to all our Handlers, and then to
@@ -476,12 +477,8 @@
 
         Logger logger = this;
         while (logger != null) {
-            Handler targets[] = logger.getHandlers();
-
-            if (targets != null) {
-                for (int i = 0; i < targets.length; i++) {
-                    targets[i].publish(record);
-                }
+            for (Handler handler : logger.handlers) {
+                handler.publish(record);
             }
 
             if (!logger.getUseParentHandlers()) {
@@ -1182,13 +1179,10 @@
      * @exception  SecurityException  if a security manager exists and if
      *             the caller does not have LoggingPermission("control").
      */
-    public synchronized void addHandler(Handler handler) throws SecurityException {
+    public void addHandler(Handler handler) throws SecurityException {
         // Check for null handler
         handler.getClass();
         checkAccess();
-        if (handlers == null) {
-            handlers = new ArrayList<Handler>();
-        }
         handlers.add(handler);
     }
 
@@ -1201,14 +1195,11 @@
      * @exception  SecurityException  if a security manager exists and if
      *             the caller does not have LoggingPermission("control").
      */
-    public synchronized void removeHandler(Handler handler) throws SecurityException {
+    public void removeHandler(Handler handler) throws SecurityException {
         checkAccess();
         if (handler == null) {
             return;
         }
-        if (handlers == null) {
-            return;
-        }
         handlers.remove(handler);
     }
 
@@ -1217,11 +1208,8 @@
      * <p>
      * @return  an array of all registered Handlers
      */
-    public synchronized Handler[] getHandlers() {
-        if (handlers == null) {
-            return emptyHandlers;
-        }
-        return handlers.toArray(new Handler[handlers.size()]);
+    public Handler[] getHandlers() {
+        return handlers.toArray(emptyHandlers);
     }
 
     /**
@@ -1235,7 +1223,7 @@
      * @exception  SecurityException  if a security manager exists and if
      *             the caller does not have LoggingPermission("control").
      */
-    public synchronized void setUseParentHandlers(boolean useParentHandlers) {
+    public void setUseParentHandlers(boolean useParentHandlers) {
         checkAccess();
         this.useParentHandlers = useParentHandlers;
     }
@@ -1246,7 +1234,7 @@
      *
      * @return  true if output is to be sent to the logger's parent
      */
-    public synchronized boolean getUseParentHandlers() {
+    public boolean getUseParentHandlers() {
         return useParentHandlers;
     }
 
@@ -1354,9 +1342,12 @@
      * @return nearest existing parent Logger
      */
     public Logger getParent() {
-        synchronized (treeLock) {
-            return parent;
-        }
+        // Note: this used to be synchronized on treeLock.  However, this only
+        // provided memory semantics, as there was no guarantee that the caller
+        // would synchronize on treeLock (in fact, there is no way for external
+        // callers to so synchronize).  Therefore, we have made parent volatile
+        // instead.
+        return parent;
     }
 
     /**
--- a/jdk/src/share/classes/javax/swing/JRootPane.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/JRootPane.java	Wed Jul 05 16:47:27 2017 +0200
@@ -34,6 +34,7 @@
 import java.util.Vector;
 import java.io.Serializable;
 import javax.swing.border.*;
+import sun.awt.AWTAccessor;
 import sun.security.action.GetBooleanAction;
 
 
@@ -688,6 +689,9 @@
             throw new NullPointerException("glassPane cannot be set to null.");
         }
 
+        AWTAccessor.getComponentAccessor().setMixingCutoutShape(glass,
+                new Rectangle());
+
         boolean visible = false;
         if (glassPane != null && glassPane.getParent() == this) {
             this.remove(glassPane);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/sun/awt/AWTAccessor.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,77 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package sun.awt;
+
+import java.awt.*;
+import sun.misc.Unsafe;
+
+/** The AWTAccessor utility class.
+ * The main purpose of this class is to enable accessing
+ * private and package-private fields of classes from
+ * different classes/packages. See sun.misc.SharedSecretes
+ * for another example.
+ */
+public final class AWTAccessor {
+    private static final Unsafe unsafe = Unsafe.getUnsafe();
+
+    /** We don't need any objects of this class.
+     * It's rather a collection of static methods
+     * and interfaces.
+     */
+    private AWTAccessor() {
+    }
+
+    /** An accessor for the java.awt.Component class.
+     */
+    public interface ComponentAccessor {
+        // See 6797587
+        // Also see: 6776743, 6768307, and 6768332.
+        /**
+         * Sets the shape of a lw component to cut out from hw components.
+         */
+        void setMixingCutoutShape(Component comp, Shape shape);
+    }
+
+    /* The java.awt.Component class accessor object.
+     */
+    private static ComponentAccessor componentAccessor;
+
+    /** Set an accessor object for the java.awt.Component class.
+     */
+    public static void setComponentAccessor(ComponentAccessor ca) {
+        componentAccessor = ca;
+    }
+
+    /** Retrieve the accessor object for the java.awt.Window class.
+     */
+    public static ComponentAccessor getComponentAccessor() {
+        if (componentAccessor == null) {
+            unsafe.ensureClassInitialized(Component.class);
+        }
+
+        return componentAccessor;
+    }
+}
--- a/jdk/src/share/classes/sun/awt/HeadlessToolkit.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/sun/awt/HeadlessToolkit.java	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -456,6 +456,10 @@
         return tk.getAWTEventListeners();
     }
 
+    public AWTEventListener[] getAWTEventListeners(long eventMask) {
+        return tk.getAWTEventListeners(eventMask);
+    }
+
     public boolean isDesktopSupported() {
         return false;
     }
@@ -464,4 +468,8 @@
     throws HeadlessException{
         throw new HeadlessException();
     }
+
+    public boolean areExtraMouseButtonsEnabled() throws HeadlessException{
+        throw new HeadlessException();
+    }
 }
--- a/jdk/src/share/classes/sun/awt/SunToolkit.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/sun/awt/SunToolkit.java	Wed Jul 05 16:47:27 2017 +0200
@@ -1972,6 +1972,21 @@
         AWTAutoShutdown.getInstance().dumpPeers(aLog);
     }
 
+    private static Boolean sunAwtDisableMixing = null;
+
+    /**
+     * Returns the value of "sun.awt.disableMixing" property. Default
+     * value is {@code false}.
+     */
+    public synchronized static boolean getSunAwtDisableMixing() {
+        if (sunAwtDisableMixing == null) {
+            sunAwtDisableMixing = Boolean.valueOf(
+                    AccessController.doPrivileged(
+                        new GetBooleanAction("sun.awt.disableMixing")));
+        }
+        return sunAwtDisableMixing.booleanValue();
+    }
+
     /**
      * Returns true if the native GTK libraries are available.  The
      * default implementation returns false, but UNIXToolkit overrides this
@@ -2008,26 +2023,12 @@
     /*
      * Continually post pending AWTEvents to the Java EventQueue.
      */
-    public void flush() {
-        if (queueHead != null) {
-            EventQueueItem tempQueue;
-            /*
-             * We have to execute the loop inside the synchronized block
-             * to ensure that the flush is completed before a new event
-             * can be posted to this queue.
-             */
-            synchronized (this) {
-                tempQueue = queueHead;
-                queueHead = queueTail = null;
-                /*
-                 * If this PostEventQueue is flushed in parallel on two
-                 * different threads tempQueue will be null for one of them.
-                 */
-                while (tempQueue != null) {
-                    eventQueue.postEvent(tempQueue.event);
-                    tempQueue = tempQueue.next;
-                }
-            }
+    public synchronized void flush() {
+        EventQueueItem tempQueue = queueHead;
+        queueHead = queueTail = null;
+        while (tempQueue != null) {
+            eventQueue.postEvent(tempQueue.event);
+            tempQueue = tempQueue.next;
         }
     }
 
--- a/jdk/src/share/classes/sun/java2d/pipe/Region.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/sun/java2d/pipe/Region.java	Wed Jul 05 16:47:27 2017 +0200
@@ -28,6 +28,7 @@
 import java.awt.Rectangle;
 import java.awt.Shape;
 import java.awt.geom.AffineTransform;
+import java.awt.geom.RectangularShape;
 
 /**
  * This class encapsulates a definition of a two dimensional region which
@@ -63,11 +64,28 @@
     static final int INIT_SIZE = 50;
     static final int GROW_SIZE = 50;
 
-    static final Region EMPTY_REGION = new Region(0, 0, 0, 0);
-    static final Region WHOLE_REGION = new Region(Integer.MIN_VALUE,
-                                                  Integer.MIN_VALUE,
-                                                  Integer.MAX_VALUE,
-                                                  Integer.MAX_VALUE);
+    /**
+     * Immutable Region.
+     */
+    private static final class ImmutableRegion extends Region {
+        protected ImmutableRegion(int lox, int loy, int hix, int hiy) {
+            super(lox, loy, hix, hiy);
+        }
+
+        // Override all the methods that mutate the object
+        public void appendSpans(sun.java2d.pipe.SpanIterator si) {}
+        public void setOutputArea(java.awt.Rectangle r) {}
+        public void setOutputAreaXYWH(int x, int y, int w, int h) {}
+        public void setOutputArea(int[] box) {}
+        public void setOutputAreaXYXY(int lox, int loy, int hix, int hiy) {}
+    }
+
+    public static final Region EMPTY_REGION = new ImmutableRegion(0, 0, 0, 0);
+    public static final Region WHOLE_REGION = new ImmutableRegion(
+            Integer.MIN_VALUE,
+            Integer.MIN_VALUE,
+            Integer.MAX_VALUE,
+            Integer.MAX_VALUE);
 
     int lox;
     int loy;
@@ -113,7 +131,7 @@
         return newv;
     }
 
-    private Region(int lox, int loy, int hix, int hiy) {
+    protected Region(int lox, int loy, int hix, int hiy) {
         this.lox = lox;
         this.loy = loy;
         this.hix = hix;
@@ -194,6 +212,13 @@
     public static Region getInstance(Region devBounds, boolean normalize,
                                      Shape s, AffineTransform at)
     {
+        // Optimize for empty shapes to avoid involving the SpanIterator
+        if (s instanceof RectangularShape &&
+                ((RectangularShape)s).isEmpty())
+        {
+            return EMPTY_REGION;
+        }
+
         int box[] = new int[4];
         ShapeSpanIterator sr = new ShapeSpanIterator(normalize);
         try {
@@ -1206,7 +1231,7 @@
             return false;
         }
         if (r.lox != this.lox || r.loy != this.loy ||
-            r.hiy != this.hiy || r.hiy != this.hiy)
+            r.hix != this.hix || r.hiy != this.hiy)
         {
             return false;
         }
--- a/jdk/src/share/classes/sun/misc/URLClassPath.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/sun/misc/URLClassPath.java	Wed Jul 05 16:47:27 2017 +0200
@@ -25,17 +25,7 @@
 
 package sun.misc;
 
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.Hashtable;
-import java.util.NoSuchElementException;
-import java.util.Stack;
-import java.util.Set;
-import java.util.HashSet;
-import java.util.StringTokenizer;
-import java.util.ArrayList;
-import java.util.Iterator;
+import java.util.*;
 import java.util.jar.JarFile;
 import sun.misc.JarIndex;
 import sun.misc.InvalidJarIndexException;
@@ -52,12 +42,7 @@
 import java.net.HttpURLConnection;
 import java.net.URLStreamHandler;
 import java.net.URLStreamHandlerFactory;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.InputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
+import java.io.*;
 import java.security.AccessController;
 import java.security.AccessControlException;
 import java.security.CodeSigner;
@@ -100,6 +85,9 @@
     /* The jar protocol handler to use when creating new URLs */
     private URLStreamHandler jarHandler;
 
+    /* Whether this URLClassLoader has been closed yet */
+    private boolean closed = false;
+
     /**
      * Creates a new URLClassPath for the given URLs. The URLs will be
      * searched in the order specified for classes and resources. A URL
@@ -124,6 +112,22 @@
         this(urls, null);
     }
 
+    public synchronized List<IOException> closeLoaders() {
+        if (closed) {
+            return Collections.emptyList();
+        }
+        List<IOException> result = new LinkedList<IOException>();
+        for (Loader loader : loaders) {
+            try {
+                loader.close();
+            } catch (IOException e) {
+                result.add (e);
+            }
+        }
+        closed = true;
+        return result;
+    }
+
     /**
      * Appends the specified URL to the search path of directory and JAR
      * file URLs from which to load classes and resources.
@@ -293,6 +297,9 @@
      * if the specified index is out of range.
      */
      private synchronized Loader getLoader(int index) {
+        if (closed) {
+            return null;
+        }
          // Expand URL search path until the request can be satisfied
          // or the URL stack is empty.
         while (loaders.size() < index + 1) {
@@ -453,7 +460,7 @@
      * Inner class used to represent a loader of resources and classes
      * from a base URL.
      */
-    private static class Loader {
+    private static class Loader implements Closeable {
         private final URL base;
 
         /*
@@ -545,6 +552,12 @@
         }
 
         /*
+         * close this loader and release all resources
+         * method overridden in sub-classes
+         */
+        public void close () throws IOException {}
+
+        /*
          * Returns the local class path for this loader, or null if none.
          */
         URL[] getClassPath() throws IOException {
@@ -562,6 +575,7 @@
         private MetaIndex metaIndex;
         private URLStreamHandler handler;
         private HashMap<URL, Loader> lmap;
+        private boolean closed = false;
 
         /*
          * Creates a new JarLoader for the specified URL referring to
@@ -604,6 +618,17 @@
             }
         }
 
+        @Override
+        public void close () throws IOException {
+            // closing is synchronized at higher level
+            if (!closed) {
+                closed = true;
+                // in case not already open.
+                ensureOpen();
+                jar.close();
+            }
+        }
+
         JarFile getJarFile () {
             return jar;
         }
--- a/jdk/src/share/classes/sun/security/krb5/Config.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/sun/security/krb5/Config.java	Wed Jul 05 16:47:27 2017 +0200
@@ -39,7 +39,6 @@
 import java.io.InputStreamReader;
 import java.io.IOException;
 import java.util.Enumeration;
-import java.util.List;
 import java.util.StringTokenizer;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
@@ -156,11 +155,7 @@
                 configFile = loadConfigFile();
                 stanzaTable = parseStanzaTable(configFile);
             } catch (IOException ioe) {
-                KrbException ke = new KrbException("Could not load " +
-                                                   "configuration file " +
-                                                   ioe.getMessage());
-                ke.initCause(ioe);
-                throw(ke);
+                // No krb5.conf, no problem. We'll use DNS etc.
             }
         }
     }
@@ -1057,7 +1052,12 @@
     public boolean useDNS(String name) {
         String value = getDefault(name, "libdefaults");
         if (value == null) {
-            return getDefaultBooleanValue("dns_fallback", "libdefaults");
+            value = getDefault("dns_fallback", "libdefaults");
+            if ("false".equalsIgnoreCase(value)) {
+                return false;
+            } else {
+                return true;
+            }
         } else {
             return value.equalsIgnoreCase("true");
         }
@@ -1079,12 +1079,39 @@
 
     /**
      * Gets default realm.
+     * @throws KrbException where no realm can be located
+     * @return the default realm, always non null
      */
     public String getDefaultRealm() throws KrbException {
+        Exception cause = null;
         String realm = getDefault("default_realm", "libdefaults");
         if ((realm == null) && useDNS_Realm()) {
             // use DNS to locate Kerberos realm
-            realm = getRealmFromDNS();
+            try {
+                realm = getRealmFromDNS();
+            } catch (KrbException ke) {
+                cause = ke;
+            }
+        }
+        if (realm == null) {
+            realm = java.security.AccessController.doPrivileged(
+                    new java.security.PrivilegedAction<String>() {
+                @Override
+                public String run() {
+                    String osname = System.getProperty("os.name");
+                    if (osname.startsWith("Windows")) {
+                        return System.getenv("USERDNSDOMAIN");
+                    }
+                    return null;
+                }
+            });
+        }
+        if (realm == null) {
+            KrbException ke = new KrbException("Cannot locate default realm");
+            if (cause != null) {
+                ke.initCause(cause);
+            }
+            throw ke;
         }
         return realm;
     }
@@ -1092,17 +1119,48 @@
     /**
      * Returns a list of KDC's with each KDC separated by a space
      *
-     * @param realm the realm for which the master KDC is desired
-     * @return the list of KDCs
+     * @param realm the realm for which the KDC list is desired
+     * @throws KrbException if there's no way to find KDC for the realm
+     * @return the list of KDCs separated by a space, always non null
      */
     public String getKDCList(String realm) throws KrbException {
         if (realm == null) {
             realm = getDefaultRealm();
         }
+        Exception cause = null;
         String kdcs = getDefault("kdc", realm);
         if ((kdcs == null) && useDNS_KDC()) {
             // use DNS to locate KDC
-            kdcs = getKDCFromDNS(realm);
+            try {
+                kdcs = getKDCFromDNS(realm);
+            } catch (KrbException ke) {
+                cause = ke;
+            }
+        }
+        if (kdcs == null) {
+            kdcs = java.security.AccessController.doPrivileged(
+                    new java.security.PrivilegedAction<String>() {
+                @Override
+                public String run() {
+                    String osname = System.getProperty("os.name");
+                    if (osname.startsWith("Windows")) {
+                        String logonServer = System.getenv("LOGONSERVER");
+                        if (logonServer != null
+                                && logonServer.startsWith("\\\\")) {
+                            logonServer = logonServer.substring(2);
+                        }
+                        return logonServer;
+                    }
+                    return null;
+                }
+            });
+        }
+        if (kdcs == null) {
+            KrbException ke = new KrbException("Cannot locate KDC");
+            if (cause != null) {
+                ke.initCause(cause);
+            }
+            throw ke;
         }
         return kdcs;
     }
@@ -1117,7 +1175,7 @@
         String realm = null;
         String hostName = null;
         try {
-            hostName = InetAddress.getLocalHost().getHostName();
+            hostName = InetAddress.getLocalHost().getCanonicalHostName();
         } catch (UnknownHostException e) {
             KrbException ke = new KrbException(Krb5.KRB_ERR_GENERIC,
                 "Unable to locate Kerberos realm: " + e.getMessage());
--- a/jdk/src/share/classes/sun/security/krb5/KrbServiceLocator.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/share/classes/sun/security/krb5/KrbServiceLocator.java	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2006-2009 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -133,7 +133,7 @@
      */
     static String[] getKerberosService(String realmName, String protocol) {
 
-        String dnsUrl = "dns:///_kerberos." + protocol + realmName;
+        String dnsUrl = "dns:///_kerberos." + protocol + "." + realmName;
         String[] hostports = null;
 
         try {
--- a/jdk/src/solaris/classes/sun/awt/X11/WindowDimensions.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/solaris/classes/sun/awt/X11/WindowDimensions.java	Wed Jul 05 16:47:27 2017 +0200
@@ -32,10 +32,18 @@
     private Insets insets;
     private boolean isClientSizeSet;
 
+    /**
+     * If isClient is true, the bounds represent the client window area.
+     * Otherwise, they represent the entire window area, with the insets included
+     */
     public WindowDimensions(int x, int y, int width, int height, boolean isClient) {
         this(new Rectangle(x, y, width, height), null, isClient);
     }
 
+    /**
+     * If isClient is true, the bounds represent the client window area.
+     * Otherwise, they represent the entire window area, with the insets included
+     */
     public WindowDimensions(Rectangle rec, Insets ins, boolean isClient) {
         if (rec == null) {
             throw new IllegalArgumentException("Client bounds can't be null");
@@ -46,10 +54,18 @@
         setInsets(ins);
     }
 
+    /**
+     * If isClient is true, the bounds represent the client window area.
+     * Otherwise, they represent the entire window area, with the insets included
+     */
     public WindowDimensions(Point loc, Dimension size, Insets in, boolean isClient) {
         this(new Rectangle(loc, size), in, isClient);
     }
 
+    /**
+     * If isClient is true, the bounds represent the client window area.
+     * Otherwise, they represent the entire window area, with the insets included
+     */
     public WindowDimensions(Rectangle bounds, boolean isClient) {
         this(bounds, null, isClient);
     }
--- a/jdk/src/solaris/classes/sun/awt/X11/XBaseWindow.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/solaris/classes/sun/awt/X11/XBaseWindow.java	Wed Jul 05 16:47:27 2017 +0200
@@ -979,8 +979,13 @@
      */
     public void handleButtonPressRelease(XEvent xev) {
         XButtonEvent xbe = xev.get_xbutton();
-        final int buttonState = xbe.get_state() & (XConstants.Button1Mask | XConstants.Button2Mask
-            | XConstants.Button3Mask | XConstants.Button4Mask | XConstants.Button5Mask);
+        int buttonState = 0;
+        for (int i = 0; i<XToolkit.getNumMouseButtons(); i++){
+            // A bug in WM implementation: extra buttons doesn't have state!=0 as they should on Release message.
+            if ((i != 4) && (i != 5)){
+                buttonState |= (xbe.get_state() & XConstants.buttonsMask[i]);
+            }
+        }
         switch (xev.get_type()) {
         case XConstants.ButtonPress:
             if (buttonState == 0) {
@@ -1011,19 +1016,11 @@
      * Checks ButtonRelease released all Mouse buttons
      */
     static boolean isFullRelease(int buttonState, int button) {
-        switch (button) {
-        case XConstants.Button1:
-            return buttonState == XConstants.Button1Mask;
-        case XConstants.Button2:
-            return buttonState == XConstants.Button2Mask;
-        case XConstants.Button3:
-            return buttonState == XConstants.Button3Mask;
-        case XConstants.Button4:
-            return buttonState == XConstants.Button4Mask;
-        case XConstants.Button5:
-            return buttonState == XConstants.Button5Mask;
+        if (button < 0 || button > XToolkit.getNumMouseButtons()) {
+            return buttonState == 0;
+        } else {
+            return buttonState == XConstants.buttonsMask[button - 1];
         }
-        return buttonState == 0;
     }
 
     static boolean isGrabbedEvent(XEvent ev, XBaseWindow target) {
--- a/jdk/src/solaris/classes/sun/awt/X11/XComponentPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/solaris/classes/sun/awt/X11/XComponentPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -1534,13 +1534,23 @@
             }
             XToolkit.awtLock();
             try {
-                XlibWrapper.SetRectangularShape(
-                        XToolkit.getDisplay(),
-                        getWindow(),
-                        shape.getLoX(), shape.getLoY(),
-                        shape.getHiX(), shape.getHiY(),
-                        (shape.isRectangular() ? null : shape)
-                        );
+                if (shape != null) {
+                    XlibWrapper.SetRectangularShape(
+                            XToolkit.getDisplay(),
+                            getWindow(),
+                            shape.getLoX(), shape.getLoY(),
+                            shape.getHiX(), shape.getHiY(),
+                            (shape.isRectangular() ? null : shape)
+                            );
+                } else {
+                    XlibWrapper.SetRectangularShape(
+                            XToolkit.getDisplay(),
+                            getWindow(),
+                            0, 0,
+                            0, 0,
+                            null
+                            );
+                }
             } finally {
                 XToolkit.awtUnlock();
             }
--- a/jdk/src/solaris/classes/sun/awt/X11/XConstants.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/solaris/classes/sun/awt/X11/XConstants.java	Wed Jul 05 16:47:27 2017 +0200
@@ -197,12 +197,30 @@
 
     /* button masks.  Used in same manner as Key masks above. Not to be confused
        with button names below. */
-
-    public static final int Button1Mask = (1<<8) ;
-    public static final int Button2Mask = (1<<9) ;
-    public static final int Button3Mask = (1<<10) ;
-    public static final int Button4Mask = (1<<11) ;
-    public static final int Button5Mask = (1<<12) ;
+    public static final int [] buttonsMask = new int []{ 1<<8,
+                                                         1<<9,
+                                                         1<<10,
+                                                         1<<11,
+                                                         1<<12,
+                                                         1<<13,
+                                                         1<<14,
+                                                         1<<15,
+                                                         1<<16,
+                                                         1<<17,
+                                                         1<<18,
+                                                         1<<19,
+                                                         1<<20,
+                                                         1<<21,
+                                                         1<<22,
+                                                         1<<23,
+                                                         1<<24,
+                                                         1<<25,
+                                                         1<<26,
+                                                         1<<27,
+                                                         1<<28,
+                                                         1<<29,
+                                                         1<<30,
+                                                         1<<31 };
 
     public static final int AnyModifier = (1<<15) ; /* used in GrabButton, GrabKey */
 
@@ -211,11 +229,7 @@
        and ButtonRelease events.  Not to be confused with button masks above.
        Note that 0 is already defined above as "AnyButton".  */
 
-    public static final int Button1 = 1 ;
-    public static final int Button2 = 2 ;
-    public static final int Button3 = 3 ;
-    public static final int Button4 = 4 ;
-    public static final int Button5 = 5 ;
+    public static final int buttons [] = new int [] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24};
 
     /* Notify modes */
 
--- a/jdk/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -492,7 +492,14 @@
             // do nothing but accept it.
             Rectangle reqBounds = newDimensions.getBounds();
             Rectangle newBounds = constrainBounds(reqBounds.x, reqBounds.y, reqBounds.width, reqBounds.height);
-            newDimensions = new WindowDimensions(newBounds, newDimensions.getInsets(), newDimensions.isClientSizeSet());
+            Insets insets = newDimensions.getInsets();
+            // Inherit isClientSizeSet from newDimensions
+            if (newDimensions.isClientSizeSet()) {
+                newBounds = new Rectangle(newBounds.x, newBounds.y,
+                                          newBounds.width - insets.left - insets.right,
+                                          newBounds.height - insets.top - insets.bottom);
+            }
+            newDimensions = new WindowDimensions(newBounds, insets, newDimensions.isClientSizeSet());
         }
         XToolkit.awtLock();
         try {
--- a/jdk/src/solaris/classes/sun/awt/X11/XDragSourceContextPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/solaris/classes/sun/awt/X11/XDragSourceContextPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -694,8 +694,8 @@
             } finally {
                 xmotion.dispose();
             }
-            if (xbutton.get_button() == XConstants.Button1
-                    || xbutton.get_button() == XConstants.Button2) {
+            if (xbutton.get_button() == XConstants.buttons[0]
+                || xbutton.get_button() == XConstants.buttons[1]) {
                 // drag is initiated with Button1 or Button2 pressed and
                 // ended on release of either of these buttons (as the same
                 // behavior was with our old Motif DnD-based implementation)
--- a/jdk/src/solaris/classes/sun/awt/X11/XEmbedClientHelper.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/solaris/classes/sun/awt/X11/XEmbedClientHelper.java	Wed Jul 05 16:47:27 2017 +0200
@@ -31,6 +31,9 @@
 import java.awt.Component;
 import java.awt.Container;
 
+import sun.awt.X11GraphicsConfig;
+import sun.awt.X11GraphicsDevice;
+
 /**
  * Helper class implementing XEmbed protocol handling routines(client side)
  * Window which wants to participate in a protocol should create an instance,
@@ -39,20 +42,34 @@
 public class XEmbedClientHelper extends XEmbedHelper implements XEventDispatcher {
     private static final Logger xembedLog = Logger.getLogger("sun.awt.X11.xembed.XEmbedClientHelper");
 
-    private XEmbeddedFramePeer embedded;
+    private XEmbeddedFramePeer embedded; // XEmbed client
+    private long server; // XEmbed server
+
     private boolean active;
-    private long server;
     private boolean applicationActive;
 
     XEmbedClientHelper() {
         super();
     }
 
-    void install(XEmbeddedFramePeer embedded) {
-        this.embedded = embedded;
+    void setClient(XEmbeddedFramePeer client) {
+        if (xembedLog.isLoggable(Level.FINE)) {
+            xembedLog.fine("XEmbed client: " + client);
+        }
+        if (embedded != null) {
+            XToolkit.removeEventDispatcher(embedded.getWindow(), this);
+            active = false;
+        }
+        embedded = client;
+        if (embedded != null) {
+            XToolkit.addEventDispatcher(embedded.getWindow(), this);
+        }
+    }
 
-        if (xembedLog.isLoggable(Level.FINE)) xembedLog.fine("Installing xembedder on " + embedded);
-        XToolkit.addEventDispatcher(embedded.getWindow(), this);
+    void install() {
+        if (xembedLog.isLoggable(Level.FINE)) {
+            xembedLog.fine("Installing xembedder on " + embedded);
+        }
         long[] info = new long[] { XEMBED_VERSION, XEMBED_MAPPED };
         long data = Native.card32ToData(info);
         try {
@@ -155,7 +172,24 @@
     }
     public void handleReparentNotify(XEvent xev) {
         XReparentEvent re = xev.get_xreparent();
-        server = re.get_parent();
+        long newParent = re.get_parent();
+        if (active) {
+            // unregister accelerators, etc. for old parent
+            embedded.notifyStopped();
+            // check if newParent is a root window
+            X11GraphicsConfig gc = (X11GraphicsConfig)embedded.getGraphicsConfiguration();
+            X11GraphicsDevice gd = (X11GraphicsDevice)gc.getDevice();
+            if ((newParent == XlibUtil.getRootWindow(gd.getScreen())) ||
+                (newParent == XToolkit.getDefaultRootWindow()))
+            {
+                // reparenting to root means XEmbed termination
+                active = false;
+            } else {
+                // continue XEmbed with a new parent
+                server = newParent;
+                embedded.notifyStarted();
+            }
+        }
     }
     boolean requestFocus() {
         if (active && embedded.focusAllowedFor()) {
@@ -201,12 +235,16 @@
     }
 
     void registerAccelerator(AWTKeyStroke stroke, int id) {
-        long sym = getX11KeySym(stroke);
-        long mods = getX11Mods(stroke);
-        sendMessage(server, XEMBED_REGISTER_ACCELERATOR, id, sym, mods);
+        if (active) {
+            long sym = getX11KeySym(stroke);
+            long mods = getX11Mods(stroke);
+            sendMessage(server, XEMBED_REGISTER_ACCELERATOR, id, sym, mods);
+        }
     }
     void unregisterAccelerator(int id) {
-        sendMessage(server, XEMBED_UNREGISTER_ACCELERATOR, id, 0, 0);
+        if (active) {
+            sendMessage(server, XEMBED_UNREGISTER_ACCELERATOR, id, 0, 0);
+        }
     }
 
     long getX11KeySym(AWTKeyStroke stroke) {
--- a/jdk/src/solaris/classes/sun/awt/X11/XEmbeddedFramePeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/solaris/classes/sun/awt/X11/XEmbeddedFramePeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -63,7 +63,10 @@
     void postInit(XCreateWindowParams params) {
         super.postInit(params);
         if (embedder != null) {
-            embedder.install(this);
+            // install X11 event dispatcher
+            embedder.setClient(this);
+            // reparent to XEmbed server
+            embedder.install();
         } else if (getParentWindowHandle() != 0) {
             XToolkit.awtLock();
             try {
@@ -77,6 +80,15 @@
         }
     }
 
+    @Override
+    public void dispose() {
+        if (embedder != null) {
+            // uninstall X11 event dispatcher
+            embedder.setClient(null);
+        }
+        super.dispose();
+    }
+
     public void updateMinimumSize() {
     }
 
@@ -249,6 +261,14 @@
         // XEmbed.
         updateDropTarget();
     }
+    void notifyStopped() {
+        if (embedder != null && embedder.isActive()) {
+            for (int i = strokes.size() - 1; i >= 0; i--) {
+                embedder.unregisterAccelerator(i);
+            }
+        }
+    }
+
     long getFocusTargetWindow() {
         return getWindow();
     }
--- a/jdk/src/solaris/classes/sun/awt/X11/XKeysym.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/solaris/classes/sun/awt/X11/XKeysym.java	Wed Jul 05 16:47:27 2017 +0200
@@ -63,6 +63,8 @@
     // TODO: or not to do: add reverse lookup javakeycode2keysym,
     // for robot only it seems to me. After that, we can remove lookup table
     // from XWindow.c altogether.
+    // Another use for reverse lookup: query keyboard state, for some keys.
+    static Hashtable<Integer, Long> javaKeycode2KeysymHash = new Hashtable<Integer, Long>();
     static long keysym_lowercase = unsafe.allocateMemory(Native.getLongSize());
     static long keysym_uppercase = unsafe.allocateMemory(Native.getLongSize());
     public static char convertKeysym( long ks, int state ) {
@@ -196,6 +198,10 @@
         Keysym2JavaKeycode jkc = getJavaKeycode( ev );
         return jkc == null ? java.awt.event.KeyEvent.VK_UNDEFINED : jkc.getJavaKeycode();
     }
+    static long javaKeycode2Keysym( int jkey ) {
+        Long ks = javaKeycode2KeysymHash.get( jkey );
+        return  (ks == null ? 0 : ks.longValue());
+    }
     /**
         Return keysym derived from a keycode and modifiers.
         Usually an input method does this. However non-system input methods (e.g. Java IMs) do not.
@@ -1583,6 +1589,14 @@
         keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.hpXK_mute_asciitilde),     new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_TILDE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
 
         keysym2JavaKeycodeHash.put( Long.valueOf(XConstants.NoSymbol),     new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_UNDEFINED, java.awt.event.KeyEvent.KEY_LOCATION_UNKNOWN));
+
+        /* Reverse search of keysym by keycode. */
+
+        /* Add keyboard locking codes. */
+        javaKeycode2KeysymHash.put( java.awt.event.KeyEvent.VK_CAPS_LOCK, XKeySymConstants.XK_Caps_Lock);
+        javaKeycode2KeysymHash.put( java.awt.event.KeyEvent.VK_NUM_LOCK, XKeySymConstants.XK_Num_Lock);
+        javaKeycode2KeysymHash.put( java.awt.event.KeyEvent.VK_SCROLL_LOCK, XKeySymConstants.XK_Scroll_Lock);
+        javaKeycode2KeysymHash.put( java.awt.event.KeyEvent.VK_KANA_LOCK, XKeySymConstants.XK_Kana_Lock);
     };
 
 }
--- a/jdk/src/solaris/classes/sun/awt/X11/XRobotPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/solaris/classes/sun/awt/X11/XRobotPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 2003-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -81,11 +81,16 @@
         return pixelArray;
     }
 
+    public int getNumberOfButtons(){
+        return getNumberOfButtonsImpl();
+    }
+
     private static native synchronized void setup();
 
     private static native synchronized void mouseMoveImpl(X11GraphicsConfig xgc, int x, int y);
     private static native synchronized void mousePressImpl(int buttons);
     private static native synchronized void mouseReleaseImpl(int buttons);
+    private static native synchronized int getNumberOfButtonsImpl();
     private static native synchronized void mouseWheelImpl(int wheelAmt);
 
     private static native synchronized void keyPressImpl(int keycode);
--- a/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java	Wed Jul 05 16:47:27 2017 +0200
@@ -27,6 +27,7 @@
 import java.awt.*;
 import java.awt.event.InputEvent;
 import java.awt.event.MouseEvent;
+import java.awt.event.KeyEvent;
 import java.awt.datatransfer.Clipboard;
 import java.awt.dnd.DragSource;
 import java.awt.dnd.DragGestureListener;
@@ -61,6 +62,10 @@
     private static Logger keyEventLog = Logger.getLogger("sun.awt.X11.kye.XToolkit");
     private static final Logger backingStoreLog = Logger.getLogger("sun.awt.X11.backingStore.XToolkit");
 
+    //There is 400 ms is set by default on Windows and 500 by default on KDE and GNOME.
+    //We use the same hardcoded constant.
+    private final static int AWT_MULTICLICK_DEFAULT_TIME = 500;
+
     static final boolean PRIMARY_LOOP = false;
     static final boolean SECONDARY_LOOP = true;
 
@@ -74,6 +79,25 @@
     // Dynamic Layout Resize client code setting
     protected static boolean dynamicLayoutSetting = false;
 
+    //Is it allowed to generate events assigned to extra mouse buttons.
+    //Set to true by default.
+    private static boolean areExtraMouseButtonsEnabled = true;
+
+    /**
+     * Number of buttons.
+     * By default it's taken from the system. If system value does not
+     * fit into int type range, use our own MAX_BUTTONS_SUPPORT value.
+     */
+    private static int numberOfButtons = 0;
+
+    /* XFree standard mention 24 buttons as maximum:
+     * http://www.xfree86.org/current/mouse.4.html
+     * We workaround systems supporting more than 24 buttons.
+     * Otherwise, we have to use long type values as masks
+     * which leads to API change.
+     */
+    private static int MAX_BUTTONS_SUPPORT = 24;
+
     /**
      * True when the x settings have been loaded.
      */
@@ -273,6 +297,9 @@
 
             arrowCursor = XlibWrapper.XCreateFontCursor(XToolkit.getDisplay(),
                 XCursorFontConstants.XC_arrow);
+            areExtraMouseButtonsEnabled = Boolean.parseBoolean(System.getProperty("sun.awt.enableExtraMouseButtons", "true"));
+            //set system property if not yet assigned
+            System.setProperty("sun.awt.enableExtraMouseButtons", ""+areExtraMouseButtonsEnabled);
         } finally {
             awtUnlock();
         }
@@ -1080,6 +1107,19 @@
     public Map mapInputMethodHighlight(InputMethodHighlight highlight)     {
         return XInputMethod.mapInputMethodHighlight(highlight);
     }
+    @Override
+    public boolean getLockingKeyState(int key) {
+        if (! (key == KeyEvent.VK_CAPS_LOCK || key == KeyEvent.VK_NUM_LOCK ||
+               key == KeyEvent.VK_SCROLL_LOCK || key == KeyEvent.VK_KANA_LOCK)) {
+            throw new IllegalArgumentException("invalid key for Toolkit.getLockingKeyState");
+        }
+        awtLock();
+        try {
+            return getModifierState( key );
+        } finally {
+            awtUnlock();
+        }
+    }
 
     public  Clipboard getSystemClipboard() {
         SecurityManager security = System.getSecurityManager();
@@ -1216,7 +1256,6 @@
                 String multiclick_time_query = XlibWrapper.XGetDefault(XToolkit.getDisplay(), "*", "multiClickTime");
                 if (multiclick_time_query != null) {
                     awt_multiclick_time = (int)Long.parseLong(multiclick_time_query);
-    //             awt_multiclick_time = XtGetMultiClickTime(awt_display);
                 } else {
                     multiclick_time_query = XlibWrapper.XGetDefault(XToolkit.getDisplay(),
                                                                     "OpenWindows", "MultiClickTimeout");
@@ -1226,20 +1265,19 @@
                            milliseconds */
                         awt_multiclick_time = (int)Long.parseLong(multiclick_time_query) * 100;
                     } else {
-                        awt_multiclick_time = 200;
-    //                 awt_multiclick_time = XtGetMultiClickTime(awt_display);
+                        awt_multiclick_time = AWT_MULTICLICK_DEFAULT_TIME;
                     }
                 }
             } catch (NumberFormatException nf) {
-                awt_multiclick_time = 200;
+                awt_multiclick_time = AWT_MULTICLICK_DEFAULT_TIME;
             } catch (NullPointerException npe) {
-                awt_multiclick_time = 200;
+                awt_multiclick_time = AWT_MULTICLICK_DEFAULT_TIME;
             }
         } finally {
             awtUnlock();
         }
         if (awt_multiclick_time == 0) {
-            awt_multiclick_time = 200;
+            awt_multiclick_time = AWT_MULTICLICK_DEFAULT_TIME;
         }
     }
 
@@ -1383,10 +1421,15 @@
         }
     }
 
-    private int getNumMouseButtons() {
+    public static int getNumMouseButtons() {
         awtLock();
         try {
-            return XlibWrapper.XGetPointerMapping(XToolkit.getDisplay(), 0, 0);
+            if (numberOfButtons == 0) {
+                numberOfButtons = Math.min(
+                    XlibWrapper.XGetPointerMapping(XToolkit.getDisplay(), 0, 0),
+                    MAX_BUTTONS_SUPPORT);
+            }
+            return numberOfButtons;
         } finally {
             awtUnlock();
         }
@@ -1542,6 +1585,66 @@
             awtUnlock();
         }
     }
+    static boolean getModifierState( int jkc ) {
+        int iKeyMask = 0;
+        long ks = XKeysym.javaKeycode2Keysym( jkc );
+        int  kc = XlibWrapper.XKeysymToKeycode(getDisplay(), ks);
+        if (kc == 0) {
+            return false;
+        }
+        awtLock();
+        try {
+            XModifierKeymap modmap = new XModifierKeymap(
+                 XlibWrapper.XGetModifierMapping(getDisplay()));
+
+            int nkeys = modmap.get_max_keypermod();
+
+            long map_ptr = modmap.get_modifiermap();
+            for( int k = 0; k < 8; k++ ) {
+                for (int i = 0; i < nkeys; ++i) {
+                    int keycode = Native.getUByte(map_ptr, k * nkeys + i);
+                    if (keycode == 0) {
+                        continue; // ignore zero keycode
+                    }
+                    if (kc == keycode) {
+                        iKeyMask = 1 << k;
+                        break;
+                    }
+                }
+                if( iKeyMask != 0 ) {
+                    break;
+                }
+            }
+            XlibWrapper.XFreeModifiermap(modmap.pData);
+            if (iKeyMask == 0 ) {
+                return false;
+            }
+            // Now we know to which modifier is assigned the keycode
+            // correspondent to the keysym correspondent to the java
+            // keycode. We are going to check a state of this modifier.
+            // If a modifier is a weird one, we cannot help it.
+            long window = 0;
+            try{
+                // get any application window
+                window = ((Long)(winMap.firstKey())).longValue();
+            }catch(NoSuchElementException nex) {
+                // get root window
+                window = getDefaultRootWindow();
+            }
+            boolean res = XlibWrapper.XQueryPointer(getDisplay(), window,
+                                            XlibWrapper.larg1, //root
+                                            XlibWrapper.larg2, //child
+                                            XlibWrapper.larg3, //root_x
+                                            XlibWrapper.larg4, //root_y
+                                            XlibWrapper.larg5, //child_x
+                                            XlibWrapper.larg6, //child_y
+                                            XlibWrapper.larg7);//mask
+            int mask = Native.getInt(XlibWrapper.larg7);
+            return ((mask & iKeyMask) != 0);
+        } finally {
+            awtUnlock();
+        }
+    }
 
     /* Assign meaning - alt, meta, etc. - to X modifiers mod1 ... mod5.
      * Only consider primary symbols on keycodes attached to modifiers.
@@ -2166,4 +2269,8 @@
     }
 
     public static native void setNoisyXErrorHandler();
+
+    public boolean areExtraMouseButtonsEnabled() throws HeadlessException {
+        return areExtraMouseButtonsEnabled;
+    }
 }
--- a/jdk/src/solaris/classes/sun/awt/X11/XWindow.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/solaris/classes/sun/awt/X11/XWindow.java	Wed Jul 05 16:47:27 2017 +0200
@@ -553,6 +553,10 @@
     }
 
     static int getModifiers(int state, int button, int keyCode) {
+        return getModifiers(state, button, keyCode, 0,  false);
+    }
+
+    static int getModifiers(int state, int button, int keyCode, int type, boolean wheel_mouse) {
         int modifiers = 0;
 
         if (((state & XConstants.ShiftMask) != 0) ^ (keyCode == KeyEvent.VK_SHIFT)) {
@@ -570,14 +574,23 @@
         if (((state & XToolkit.modeSwitchMask) != 0) ^ (keyCode == KeyEvent.VK_ALT_GRAPH)) {
             modifiers |= InputEvent.ALT_GRAPH_DOWN_MASK;
         }
-        if (((state & XConstants.Button1Mask) != 0) ^ (button == MouseEvent.BUTTON1)) {
-            modifiers |= InputEvent.BUTTON1_DOWN_MASK;
-        }
-        if (((state & XConstants.Button2Mask) != 0) ^ (button == MouseEvent.BUTTON2)) {
-            modifiers |= InputEvent.BUTTON2_DOWN_MASK;
-        }
-        if (((state & XConstants.Button3Mask) != 0) ^ (button == MouseEvent.BUTTON3)) {
-            modifiers |= InputEvent.BUTTON3_DOWN_MASK;
+        //InputEvent.BUTTON_DOWN_MASK array is starting from BUTTON1_DOWN_MASK on index == 0.
+        // button currently reflects a real button number and starts from 1. (except NOBUTTON which is zero )
+
+        /* this is an attempt to refactor button IDs in : MouseEvent, InputEvent, XlibWrapper and XWindow.*/
+
+        //reflects a button number similar to MouseEvent.BUTTON1, 2, 3 etc.
+        for (int i = 0; i < XConstants.buttonsMask.length; i ++){
+            //modifier should be added if :
+            // 1) current button is now still in PRESSED state (means that user just pressed mouse but not released yet) or
+            // 2) if Xsystem reports that "state" represents that button was just released. This only happens on RELEASE with 1,2,3 buttons.
+            // ONLY one of these conditions should be TRUE to add that modifier.
+            if (((state & XConstants.buttonsMask[i]) != 0) != (button == XConstants.buttons[i])){
+                //exclude wheel buttons from adding their numbers as modifiers
+                if (!wheel_mouse) {
+                    modifiers |= InputEvent.getMaskForButton(i+1);
+                }
+            }
         }
         return modifiers;
     }
@@ -603,17 +616,6 @@
         return res;
     }
 
-    private static int getButtonMask(long mouseButton) {
-        if (mouseButton == XConstants.Button1) {
-            return XConstants.Button1Mask;
-        } else if (mouseButton == XConstants.Button2) {
-            return XConstants.Button2Mask;
-        } else if (mouseButton == XConstants.Button3) {
-            return XConstants.Button3Mask;
-        }
-        return 0;
-    }
-
     /**
      * Returns true if this event is disabled and shouldn't be passed to Java.
      * Default implementation returns false for all events.
@@ -648,7 +650,7 @@
         boolean popupTrigger = false;
         int button=0;
         boolean wheel_mouse = false;
-        long lbutton = xbe.get_button();
+        int lbutton = xbe.get_button();
         int type = xev.get_type();
         when = xbe.get_time();
         long jWhen = XToolkit.nowMillisUTC_offset(when);
@@ -663,7 +665,7 @@
 
         if (type == XConstants.ButtonPress) {
             //Allow this mouse button to generate CLICK event on next ButtonRelease
-            mouseButtonClickAllowed |= getButtonMask(lbutton);
+            mouseButtonClickAllowed |= XConstants.buttonsMask[lbutton];
             XWindow lastWindow = (lastWindowRef != null) ? ((XWindow)lastWindowRef.get()):(null);
             /*
                multiclick checking
@@ -693,21 +695,22 @@
             }
         }
 
-        if (lbutton == XConstants.Button1)
-            button = MouseEvent.BUTTON1;
-        else if (lbutton ==  XConstants.Button2 )
-            button = MouseEvent.BUTTON2;
-        else if (lbutton == XConstants.Button3)
-            button = MouseEvent.BUTTON3;
-        else if (lbutton == XConstants.Button4) {
-            button = 4;
-            wheel_mouse = true;
-        } else if (lbutton == XConstants.Button5) {
-            button = 5;
+        button = XConstants.buttons[lbutton - 1];
+        // 4 and 5 buttons are usually considered assigned to a first wheel
+        if (lbutton == XConstants.buttons[3] ||
+            lbutton == XConstants.buttons[4]) {
             wheel_mouse = true;
         }
 
-        modifiers = getModifiers(xbe.get_state(),button,0);
+        // mapping extra buttons to numbers starting from 4.
+        if ((button > XConstants.buttons[4]) && (!Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled())){
+            return;
+        }
+
+        if (button > XConstants.buttons[4]){
+            button -= 2;
+        }
+        modifiers = getModifiers(xbe.get_state(),button,0, type, wheel_mouse);
 
         if (!wheel_mouse) {
             MouseEvent me = new MouseEvent((Component)getEventSource(),
@@ -720,7 +723,7 @@
             postEventToEventQueue(me);
 
             if ((type == XConstants.ButtonRelease) &&
-                ((mouseButtonClickAllowed & getButtonMask(lbutton)) != 0) ) // No up-button in the drag-state
+                ((mouseButtonClickAllowed & XConstants.buttonsMask[lbutton]) != 0) ) // No up-button in the drag-state
             {
                 postEventToEventQueue(me = new MouseEvent((Component)getEventSource(),
                                                      MouseEvent.MOUSE_CLICKED,
@@ -750,7 +753,7 @@
         /* Update the state variable AFTER the CLICKED event post. */
         if (type == XConstants.ButtonRelease) {
             /* Exclude this mouse button from allowed list.*/
-            mouseButtonClickAllowed &= ~getButtonMask(lbutton);
+            mouseButtonClickAllowed &= ~XConstants.buttonsMask[lbutton];
         }
     }
 
@@ -761,7 +764,19 @@
             return;
         }
 
-        int mouseKeyState = (xme.get_state() & (XConstants.Button1Mask | XConstants.Button2Mask | XConstants.Button3Mask));
+        int mouseKeyState = 0; //(xme.get_state() & (XConstants.buttonsMask[0] | XConstants.buttonsMask[1] | XConstants.buttonsMask[2]));
+
+        //this doesn't work for extra buttons because Xsystem is sending state==0 for every extra button event.
+        // we can't correct it in MouseEvent class as we done it with modifiers, because exact type (DRAG|MOVE)
+        // should be passed from XWindow.
+        //TODO: eliminate it with some other value obtained w/o AWTLock.
+        for (int i = 0; i < XToolkit.getNumMouseButtons(); i++){
+            // TODO : here is the bug in WM: extra buttons doesn't have state!=0 as they should.
+            if ((i != 4) && (i != 5)) {
+                mouseKeyState = mouseKeyState | (xme.get_state() & XConstants.buttonsMask[i]);
+            }
+        }
+
         boolean isDragging = (mouseKeyState != 0);
         int mouseEventType = 0;
 
--- a/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -1936,7 +1936,13 @@
                         new Object[] {xme, isGrabbed(), containsGlobal(xme.get_x_root(), xme.get_y_root())});
         }
         if (isGrabbed()) {
-            boolean dragging = (xme.get_state() & (XConstants.Button1Mask | XConstants.Button2Mask | XConstants.Button3Mask)) != 0;
+            boolean dragging = false;
+            for (int i = 0; i<XToolkit.getNumMouseButtons(); i++){
+                // here is the bug in WM: extra buttons doesn't have state!=0 as they should.
+                if ((i != 4) && (i != 5)){
+                    dragging = dragging || ((xme.get_state() & XConstants.buttonsMask[i]) != 0);
+                }
+            }
             // When window is grabbed, all events are dispatched to
             // it.  Retarget them to the corresponding windows (notice
             // that XBaseWindow.dispatchEvent does the opposite
@@ -1990,12 +1996,12 @@
             try {
                 grabLog.log(Level.FINER, "  -  Grab event target {0} (press target {1})", new Object[] {target, pressTarget});
                 if (xbe.get_type() == XConstants.ButtonPress
-                    && xbe.get_button() == XConstants.Button1)
+                    && xbe.get_button() == XConstants.buttons[0])
                 {
                     // need to keep it to retarget mouse release
                     pressTarget = target;
                 } else if (xbe.get_type() == XConstants.ButtonRelease
-                           && xbe.get_button() == XConstants.Button1
+                           && xbe.get_button() == XConstants.buttons[0]
                            && pressTarget != target)
                 {
                     // during grab we do receive mouse release on different component (not on the source
--- a/jdk/src/solaris/classes/sun/awt/X11/XlibWrapper.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/solaris/classes/sun/awt/X11/XlibWrapper.java	Wed Jul 05 16:47:27 2017 +0200
@@ -485,6 +485,7 @@
     static native int XdbeEndIdiom(long display);
     static native int XdbeSwapBuffers(long display, long swap_info, int num_windows);
 
+    static native void XQueryKeymap(long display, long vector);
     static native long XKeycodeToKeysym(long display, int keycode, int index);
 
     static native int XKeysymToKeycode(long display, long keysym);
--- a/jdk/src/solaris/classes/sun/awt/X11/keysym2ucs.h	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/solaris/classes/sun/awt/X11/keysym2ucs.h	Wed Jul 05 16:47:27 2017 +0200
@@ -101,6 +101,8 @@
 tojava     // TODO: or not to do: add reverse lookup javakeycode2keysym,
 tojava     // for robot only it seems to me. After that, we can remove lookup table
 tojava     // from XWindow.c altogether.
+tojava     // Another use for reverse lookup: query keyboard state, for some keys.
+tojava     static Hashtable<Integer, Long> javaKeycode2KeysymHash = new Hashtable<Integer, Long>();
 tojava     static long keysym_lowercase = unsafe.allocateMemory(Native.getLongSize());
 tojava     static long keysym_uppercase = unsafe.allocateMemory(Native.getLongSize());
 tojava     public static char convertKeysym( long ks, int state ) {
@@ -234,6 +236,10 @@
 tojava         Keysym2JavaKeycode jkc = getJavaKeycode( ev );
 tojava         return jkc == null ? java.awt.event.KeyEvent.VK_UNDEFINED : jkc.getJavaKeycode();
 tojava     }
+tojava     static long javaKeycode2Keysym( int jkey ) {
+tojava         Long ks = javaKeycode2KeysymHash.get( jkey );
+tojava         return  (ks == null ? 0 : ks.longValue());
+tojava     }
 tojava     /**
 tojava         Return keysym derived from a keycode and modifiers.
 tojava         Usually an input method does this. However non-system input methods (e.g. Java IMs) do not.
@@ -2634,6 +2640,14 @@
 tojava         keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.hpXK_mute_asciitilde),     new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_TILDE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
 tojava
 tojava         keysym2JavaKeycodeHash.put( Long.valueOf(XConstants.NoSymbol),     new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_UNDEFINED, java.awt.event.KeyEvent.KEY_LOCATION_UNKNOWN));
+tojava
+tojava         /* Reverse search of keysym by keycode. */
+tojava
+tojava         /* Add keyboard locking codes. */
+tojava         javaKeycode2KeysymHash.put( java.awt.event.KeyEvent.VK_CAPS_LOCK, XKeySymConstants.XK_Caps_Lock);
+tojava         javaKeycode2KeysymHash.put( java.awt.event.KeyEvent.VK_NUM_LOCK, XKeySymConstants.XK_Num_Lock);
+tojava         javaKeycode2KeysymHash.put( java.awt.event.KeyEvent.VK_SCROLL_LOCK, XKeySymConstants.XK_Scroll_Lock);
+tojava         javaKeycode2KeysymHash.put( java.awt.event.KeyEvent.VK_KANA_LOCK, XKeySymConstants.XK_Kana_Lock);
 tojava     };
 tojava
 tojava }
--- a/jdk/src/solaris/native/java/lang/UNIXProcess_md.c	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/solaris/native/java/lang/UNIXProcess_md.c	Wed Jul 05 16:47:27 2017 +0200
@@ -260,6 +260,12 @@
 }
 
 static int
+isAsciiDigit(char c)
+{
+  return c >= '0' && c <= '9';
+}
+
+static int
 closeDescriptors(void)
 {
     DIR *dp;
@@ -284,7 +290,7 @@
      */
     while ((dirp = readdir64(dp)) != NULL) {
         int fd;
-        if (isdigit(dirp->d_name[0]) &&
+        if (isAsciiDigit(dirp->d_name[0]) &&
             (fd = strtol(dirp->d_name, NULL, 10)) >= from_fd + 2)
             close(fd);
     }
--- a/jdk/src/solaris/native/sun/awt/awt_Robot.c	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/solaris/native/sun/awt/awt_Robot.c	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1999-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -54,6 +54,7 @@
 // 2 would be more correct, however that's how Robot originally worked
 // and tests start to fail if this value is changed
 static int32_t num_buttons = 3;
+static jint * masks;
 
 static int32_t isXTestAvailable() {
     int32_t major_opcode, first_event, first_error;
@@ -208,6 +209,26 @@
 Java_sun_awt_X11_XRobotPeer_setup (JNIEnv * env, jclass cls) {
     int32_t xtestAvailable;
 
+// this should be called from XRobotPeer constructor
+    jclass inputEventClazz = (*env)->FindClass(env, "java/awt/event/InputEvent");
+    jmethodID getButtonDownMasksID = (*env)->GetStaticMethodID(env, inputEventClazz, "getButtonDownMasks", "()[I");
+    jintArray obj = (jintArray)(*env)->CallStaticObjectMethod(env, inputEventClazz, getButtonDownMasksID);
+    jsize len = (*env)->GetArrayLength(env, obj);
+    jint * tmp = (*env)->GetIntArrayElements(env, obj, JNI_FALSE);
+
+    masks  = (jint *)malloc(sizeof(jint)*len);
+    if (masks == (jint *) NULL) {
+        JNU_ThrowOutOfMemoryError((JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2), NULL);
+        goto finally;
+    }
+
+    int i;
+    for (i = 0; i < len; i++) {
+        masks[i] = tmp[i];
+    }
+    (*env)->ReleaseIntArrayElements(env, obj, tmp, 0);
+    (*env)->DeleteLocalRef(env, obj);
+
     DTRACE_PRINTLN("RobotPeer: setup()");
 
     AWT_LOCK();
@@ -221,8 +242,15 @@
     }
 
     getNumButtons();
+    finally:
+    AWT_UNLOCK();
+}
 
-    AWT_UNLOCK();
+JNIEXPORT jint JNICALL
+Java_sun_awt_X11_XRobotPeer_getNumberOfButtonsImpl(JNIEnv *env,
+                                                   jclass cls) {
+    // At the moment this routine being called we already should have an initialized num_buttons variable.
+    return num_buttons;
 }
 
 JNIEXPORT void JNICALL
@@ -348,52 +376,65 @@
     AWT_UNLOCK();
 }
 
+/*
+  * Function joining the code of mousePressImpl and mouseReleaseImpl
+  */
+void mouseAction(JNIEnv *env,
+                 jclass cls,
+                 jint buttonMask,
+                 Bool isMousePress)
+{
+    AWT_LOCK();
+
+    DTRACE_PRINTLN1("RobotPeer: mouseAction(%i)", buttonMask);
+    DTRACE_PRINTLN1("RobotPeer: mouseAction, press = %d", isMousePress);
+
+    if (buttonMask & java_awt_event_InputEvent_BUTTON1_MASK ||
+        buttonMask & java_awt_event_InputEvent_BUTTON1_DOWN_MASK )
+    {
+        XTestFakeButtonEvent(awt_display, 1, isMousePress, CurrentTime);
+    }
+    if ((buttonMask & java_awt_event_InputEvent_BUTTON2_MASK ||
+         buttonMask & java_awt_event_InputEvent_BUTTON2_DOWN_MASK) &&
+        (num_buttons >= 2)) {
+        XTestFakeButtonEvent(awt_display, 2, isMousePress, CurrentTime);
+    }
+    if ((buttonMask & java_awt_event_InputEvent_BUTTON3_MASK ||
+         buttonMask & java_awt_event_InputEvent_BUTTON3_DOWN_MASK) &&
+        (num_buttons >= 3)) {
+        XTestFakeButtonEvent(awt_display, 3, isMousePress, CurrentTime);
+    }
+
+    if (num_buttons > 3){
+        int32_t i;
+        int32_t button = 0;
+        for (i = 3; i<num_buttons; i++){
+            if ((buttonMask & masks[i])) {
+                // arrays starts from zero index => +1
+                // users wants to affect 4 or 5 button but they are assigned
+                // to the wheel so => we have to shift it to the right by 2.
+                button = i + 3;
+                XTestFakeButtonEvent(awt_display, button, isMousePress, CurrentTime);
+            }
+        }
+    }
+
+    XSync(awt_display, False);
+    AWT_UNLOCK();
+}
+
 JNIEXPORT void JNICALL
 Java_sun_awt_X11_XRobotPeer_mousePressImpl (JNIEnv *env,
                            jclass cls,
                            jint buttonMask) {
-    AWT_LOCK();
-
-    DTRACE_PRINTLN1("RobotPeer: mousePressImpl(%i)", buttonMask);
-
-    if (buttonMask & java_awt_event_InputEvent_BUTTON1_MASK) {
-        XTestFakeButtonEvent(awt_display, 1, True, CurrentTime);
-    }
-    if ((buttonMask & java_awt_event_InputEvent_BUTTON2_MASK) &&
-        (num_buttons >= 2)) {
-        XTestFakeButtonEvent(awt_display, 2, True, CurrentTime);
-    }
-    if ((buttonMask & java_awt_event_InputEvent_BUTTON3_MASK) &&
-        (num_buttons >= 3)) {
-        XTestFakeButtonEvent(awt_display, 3, True, CurrentTime);
-    }
-    XSync(awt_display, False);
-
-    AWT_UNLOCK();
+    mouseAction(env, cls, buttonMask, True);
 }
 
 JNIEXPORT void JNICALL
 Java_sun_awt_X11_XRobotPeer_mouseReleaseImpl (JNIEnv *env,
                              jclass cls,
                              jint buttonMask) {
-    AWT_LOCK();
-
-    DTRACE_PRINTLN1("RobotPeer: mouseReleaseImpl(%i)", buttonMask);
-
-    if (buttonMask & java_awt_event_InputEvent_BUTTON1_MASK) {
-        XTestFakeButtonEvent(awt_display, 1, False, CurrentTime);
-    }
-    if ((buttonMask & java_awt_event_InputEvent_BUTTON2_MASK) &&
-        (num_buttons >= 2)) {
-        XTestFakeButtonEvent(awt_display, 2, False, CurrentTime);
-    }
-    if ((buttonMask & java_awt_event_InputEvent_BUTTON3_MASK) &&
-        (num_buttons >= 3)) {
-        XTestFakeButtonEvent(awt_display, 3, False, CurrentTime);
-    }
-    XSync(awt_display, False);
-
-    AWT_UNLOCK();
+    mouseAction(env, cls, buttonMask, False);
 }
 
 JNIEXPORT void JNICALL
--- a/jdk/src/solaris/native/sun/xawt/XlibWrapper.c	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/solaris/native/sun/xawt/XlibWrapper.c	Wed Jul 05 16:47:27 2017 +0200
@@ -1641,6 +1641,13 @@
     AWT_CHECK_HAVE_LOCK();
     return XdbeSwapBuffers((Display*) jlong_to_ptr(display), (XdbeSwapInfo *) jlong_to_ptr(swap_info), num_windows);
 }
+JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XQueryKeymap
+(JNIEnv *env, jclass clazz, jlong display, jlong vector)
+{
+
+    AWT_CHECK_HAVE_LOCK();
+    XQueryKeymap( (Display *) jlong_to_ptr(display), (char *) jlong_to_ptr(vector));
+}
 
 JNIEXPORT jlong JNICALL
 Java_sun_awt_X11_XlibWrapper_XKeycodeToKeysym(JNIEnv *env, jclass clazz,
@@ -1911,19 +1918,30 @@
  jint x1, jint y1, jint x2, jint y2,
  jobject region)
 {
-    XRectangle rects[256];
-    XRectangle *pRect = rects;
-    int numrects;
-
     AWT_CHECK_HAVE_LOCK();
 
-    numrects = RegionToYXBandedRectangles(env, x1, y1, x2, y2, region,
-            &pRect, 256);
+    // If all the params are zeros, the shape must be simply reset.
+    // Otherwise, the shape may be not rectangular.
+    if (region || x1 || x2 || y1 || y2) {
+        XRectangle rects[256];
+        XRectangle *pRect = rects;
 
-    XShapeCombineRectangles((Display *)jlong_to_ptr(display), (Window)jlong_to_ptr(window),
+        int numrects = RegionToYXBandedRectangles(env, x1, y1, x2, y2, region,
+                &pRect, 256);
+
+        XShapeCombineRectangles((Display *)jlong_to_ptr(display), (Window)jlong_to_ptr(window),
+                ShapeClip, 0, 0, pRect, numrects, ShapeSet, YXBanded);
+        XShapeCombineRectangles((Display *)jlong_to_ptr(display), (Window)jlong_to_ptr(window),
                 ShapeBounding, 0, 0, pRect, numrects, ShapeSet, YXBanded);
 
-    if (pRect != rects) {
-        free(pRect);
+        if (pRect != rects) {
+            free(pRect);
+        }
+    } else {
+        // Reset the shape to a rectangular form.
+        XShapeCombineMask((Display *)jlong_to_ptr(display), (Window)jlong_to_ptr(window),
+                ShapeClip, 0, 0, None, ShapeSet);
+        XShapeCombineMask((Display *)jlong_to_ptr(display), (Window)jlong_to_ptr(window),
+                ShapeBounding, 0, 0, None, ShapeSet);
     }
 }
--- a/jdk/src/windows/classes/sun/awt/windows/WComponentPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/classes/sun/awt/windows/WComponentPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -68,13 +68,6 @@
     private static final Logger log = Logger.getLogger("sun.awt.windows.WComponentPeer");
     private static final Logger shapeLog = Logger.getLogger("sun.awt.windows.shape.WComponentPeer");
 
-    static {
-        wheelInit();
-    }
-
-    // Only actually does stuff if running on 95
-    native static void wheelInit();
-
     // ComponentPeer implementation
     SurfaceData surfaceData;
 
@@ -964,8 +957,12 @@
                     + "; SHAPE: " + shape);
         }
 
-        setRectangularShape(shape.getLoX(), shape.getLoY(), shape.getHiX(), shape.getHiY(),
-                (shape.isRectangular() ? null : shape));
+        if (shape != null) {
+            setRectangularShape(shape.getLoX(), shape.getLoY(), shape.getHiX(), shape.getHiY(),
+                    (shape.isRectangular() ? null : shape));
+        } else {
+            setRectangularShape(0, 0, 0, 0, null);
+        }
     }
 
 }
--- a/jdk/src/windows/classes/sun/awt/windows/WInputMethod.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/classes/sun/awt/windows/WInputMethod.java	Wed Jul 05 16:47:27 2017 +0200
@@ -548,11 +548,15 @@
 
     public void inquireCandidatePosition()
     {
+        Component source = getClientComponent();
+        if (source == null) {
+            return;
+        }
         // This call should return immediately just to cause
         // InputMethodRequests.getTextLocation be called within
         // AWT Event thread.  Otherwise, a potential deadlock
         // could happen.
-        java.awt.EventQueue.invokeLater(new Runnable() {
+        Runnable r = new Runnable() {
             public void run() {
                 int x = 0;
                 int y = 0;
@@ -573,7 +577,9 @@
 
                 openCandidateWindow(awtFocussedComponentPeer, x, y);
             }
-        });
+        };
+        WToolkit.postEvent(WToolkit.targetToAppContext(source),
+                           new InvocationEvent(source, r));
     }
 
     // java.awt.Toolkit#getNativeContainer() is not available
--- a/jdk/src/windows/classes/sun/awt/windows/WRobotPeer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/classes/sun/awt/windows/WRobotPeer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1998-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1998-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -60,6 +60,8 @@
     }
     public native int getRGBPixelImpl(int x, int y);
 
+    public native int getNumberOfButtons();
+
     public int [] getRGBPixels(Rectangle bounds) {
         int pixelArray[] = new int[bounds.width*bounds.height];
         getRGBPixels(bounds.x, bounds.y, bounds.width, bounds.height, pixelArray);
--- a/jdk/src/windows/classes/sun/awt/windows/WToolkit.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/classes/sun/awt/windows/WToolkit.java	Wed Jul 05 16:47:27 2017 +0200
@@ -80,6 +80,10 @@
     // Dynamic Layout Resize client code setting
     protected boolean dynamicLayoutSetting = false;
 
+    //Is it allowed to generate events assigned to extra mouse buttons.
+    //Set to true by default.
+    private static boolean areExtraMouseButtonsEnabled = true;
+
     /**
      * Initialize JNI field and method IDs
      */
@@ -249,6 +253,11 @@
         // Enabled "live resizing" by default.  It remains controlled
         // by the native system though.
         setDynamicLayout(true);
+
+        areExtraMouseButtonsEnabled = Boolean.parseBoolean(System.getProperty("sun.awt.enableExtraMouseButtons", "true"));
+        //set system property if not yet assigned
+        System.setProperty("sun.awt.enableExtraMouseButtons", ""+areExtraMouseButtonsEnabled);
+        setExtraMouseButtonsEnabledNative(areExtraMouseButtonsEnabled);
     }
 
     public void run() {
@@ -961,4 +970,9 @@
         return new WDesktopPeer();
     }
 
+    public static native void setExtraMouseButtonsEnabledNative(boolean enable);
+
+    public boolean areExtraMouseButtonsEnabled() throws HeadlessException {
+        return areExtraMouseButtonsEnabled;
+    }
 }
--- a/jdk/src/windows/native/sun/awt/splashscreen/splashscreen_sys.c	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/awt/splashscreen/splashscreen_sys.c	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,24 +23,21 @@
  * have any questions.
  */
 
+// copy from awt.h
+#ifndef _WIN32_WINNT
+#define _WIN32_WINNT 0x0600
+#endif
+
+// copy from awt.h
+#ifndef _WIN32_IE
+#define _WIN32_IE 0x0600
+#endif
+
 #include "splashscreen_impl.h"
 #include <windowsx.h>
 #include <windows.h>
 #include <winuser.h>
 
-/* layered windows api prototypes. wouldn't be needed if we could use an updated version of the MS PSDK. */
-
-typedef BOOL WINAPI UpdateLayeredWindowT(HWND hwnd,     // handle to layered window
-                                         HDC hdcDst,    // handle to screen DC
-                                         POINT * pptDst,        // new screen position
-                                         SIZE * psize,  // new size of the layered window
-                                         HDC hdcSrc,    // handle to surface DC
-                                         POINT * pptSrc,        // layer position
-                                         COLORREF crKey,        // color key
-                                         BLENDFUNCTION * pblend,        // blend function
-                                         DWORD dwFlags  // options
-    );
-
 #ifndef WS_EX_LAYERED
 #define WS_EX_LAYERED 0x80000
 #endif
@@ -57,21 +54,6 @@
 #define AC_SRC_ALPHA                0x01
 #endif
 
-static UpdateLayeredWindowT *UpdateLayeredWindow = NULL;
-
-/*      Get/SetWindowLongPtr prototypes, for the case we're compiling with old headers for a 32-bit platform
-        copied from Component.cpp
-        FIXME: remove this as soon as the build process is using up-to-date headers */
-#if !defined(__int3264)
-#define GetWindowLongPtr GetWindowLong
-#define SetWindowLongPtr SetWindowLong
-#define GWLP_USERDATA GWL_USERDATA
-#define GWLP_WNDPROC  GWL_WNDPROC
-typedef __int32 LONG_PTR;
-typedef unsigned __int32 ULONG_PTR;
-#endif // __int3264
-
-
 #define WM_SPLASHUPDATE         WM_USER+1
 #define WM_SPLASHRECONFIGURE    WM_USER+2
 
@@ -436,16 +418,11 @@
 void
 SplashInitPlatform(Splash * splash)
 {
-    HMODULE user32 = LoadLibrary("user32.dll");
     HDC hdc;
     int paletteMode;
 
     InitializeCriticalSection(&splash->lock);
     splash->isLayered = FALSE;
-    if (user32) {
-        UpdateLayeredWindow = (UpdateLayeredWindowT *)
-            GetProcAddress(user32, "UpdateLayeredWindow");
-    }
     hdc = GetDC(NULL);
     paletteMode = (GetDeviceCaps(hdc, RASTERCAPS) & RC_PALETTE) != 0;
     if (UpdateLayeredWindow && !paletteMode) {
--- a/jdk/src/windows/native/sun/java2d/d3d/D3DPipelineManager.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/java2d/d3d/D3DPipelineManager.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -184,7 +184,7 @@
     pMgr = D3DPipelineManager::GetInstance();
     RETURN_IF_NULL(pMgr);
     hMon = pMgr->pd3d9->GetAdapterMonitor(adapter);
-    gdiScreen = AwtWin32GraphicsDevice::GetScreenFromMHND((MHND)hMon);
+    gdiScreen = AwtWin32GraphicsDevice::GetScreenFromHMONITOR(hMon);
 
     JNU_CallStaticMethodByName(env, NULL,
         "sun/java2d/pipe/hw/AccelDeviceEventNotifier",
@@ -194,21 +194,21 @@
 
 UINT D3DPipelineManager::GetAdapterOrdinalForScreen(jint gdiScreen)
 {
-    MHND mHnd = AwtWin32GraphicsDevice::GetMonitor(gdiScreen);
-    if (mHnd == (MHND)0) {
+    HMONITOR mHnd = AwtWin32GraphicsDevice::GetMonitor(gdiScreen);
+    if (mHnd == (HMONITOR)0) {
         return D3DADAPTER_DEFAULT;
     }
     return GetAdapterOrdinalByHmon((HMONITOR)mHnd);
 }
 
 // static
-HRESULT D3DPipelineManager::HandleAdaptersChange(HMONITOR *pMHNDs, UINT monNum)
+HRESULT D3DPipelineManager::HandleAdaptersChange(HMONITOR *pHMONITORs, UINT monNum)
 {
     HRESULT res = S_OK;
     BOOL bResetD3D = FALSE, bFound;
 
     D3DPipelineManager *pMgr = D3DPipelineManager::GetInstance();
-    RETURN_STATUS_IF_NULL(pMHNDs, E_FAIL);
+    RETURN_STATUS_IF_NULL(pHMONITORs, E_FAIL);
     if (pMgr == NULL) {
         // NULL pMgr is valid when the pipeline is not enabled or if it hasn't
         // been created yet
@@ -234,7 +234,7 @@
             }
             bFound = FALSE;
             for (UINT mon = 0; mon < monNum; mon++) {
-                if (pMHNDs[mon] == hMon) {
+                if (pHMONITORs[mon] == hMon) {
                     J2dTraceLn3(J2D_TRACE_VERBOSE,
                             "  adapter %d: found hmnd[%d]=0x%x", i, mon, hMon);
                     bFound = TRUE;
@@ -364,8 +364,8 @@
 HRESULT
 D3DPipelineManager::GDICheckForBadHardware()
 {
-    _DISPLAY_DEVICE dd;
-    dd.dwSize = sizeof(DISPLAY_DEVICE);
+    DISPLAY_DEVICE dd;
+    dd.cb = sizeof(DISPLAY_DEVICE);
 
     int failedDevices = 0;
     int attachedDevices = 0;
@@ -379,9 +379,9 @@
 
     // i<20 is to guard against buggy drivers
     while (EnumDisplayDevices(NULL, i, &dd, 0) && i < 20) {
-        if (dd.dwFlags & DISPLAY_DEVICE_ATTACHED_TO_DESKTOP) {
+        if (dd.StateFlags & DISPLAY_DEVICE_ATTACHED_TO_DESKTOP) {
             attachedDevices++;
-            id = dd.deviceID;
+            id = dd.DeviceID;
             if (wcslen(id) > 21) {
                 // get vendor ID
                 wcsncpy(vendorId, id+8, 4);
@@ -796,7 +796,7 @@
     ZeroMemory(&mi, sizeof(MONITORINFO));
     mi.cbSize = sizeof(MONITORINFO);
     HMONITOR hMon = pd3d9->GetAdapterMonitor(adapterOrdinal);
-    if (hMon == 0 || !GetMonitorInfo(hMon, (PMONITOR_INFO)&mi)) {
+    if (hMon == 0 || !GetMonitorInfo(hMon, (LPMONITORINFO)&mi)) {
         J2dRlsTraceLn1(J2D_TRACE_ERROR,
             "D3DPPLM::CreateDefaultFocusWindow: "\
             "error getting monitor info for adapter=%d", adapterOrdinal);
--- a/jdk/src/windows/native/sun/java2d/d3d/D3DRenderQueue.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/java2d/d3d/D3DRenderQueue.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -23,8 +23,8 @@
  * have any questions.
  */
 
+#include "D3DPipeline.h"
 #include <malloc.h>
-#include <jni.h>
 #include "sun_java2d_pipe_BufferedOpCodes.h"
 
 #include "jlong.h"
--- a/jdk/src/windows/native/sun/java2d/d3d/D3DRenderer.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/java2d/d3d/D3DRenderer.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -23,6 +23,8 @@
  * have any questions.
  */
 
+#include "D3DPipeline.h"
+
 #include "sun_java2d_d3d_D3DRenderer.h"
 
 #include "D3DContext.h"
--- a/jdk/src/windows/native/sun/java2d/d3d/D3DSurfaceData.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/java2d/d3d/D3DSurfaceData.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -23,8 +23,7 @@
  * have any questions.
  */
 
-#include <jni.h>
-#include <jni_util.h>
+#include "D3DPipeline.h"
 #include <jlong.h>
 #include "D3DSurfaceData.h"
 #include "D3DPipelineManager.h"
--- a/jdk/src/windows/native/sun/java2d/windows/GDIBlitLoops.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/java2d/windows/GDIBlitLoops.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -23,6 +23,7 @@
  * have any questions.
  */
 
+#include "awt.h"
 #include <sun_java2d_windows_GDIBlitLoops.h>
 #include "gdefs.h"
 #include "Trace.h"
--- a/jdk/src/windows/native/sun/java2d/windows/GDIRenderer.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/java2d/windows/GDIRenderer.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -23,6 +23,7 @@
  * have any questions.
  */
 
+#include "awt.h"
 #include "sun_java2d_windows_GDIRenderer.h"
 #include "java_awt_geom_PathIterator.h"
 
@@ -31,11 +32,8 @@
 #include "awt_Pen.h"
 #include "awt_Brush.h"
 
-#include "jni.h"
-
 #include "GraphicsPrimitiveMgr.h"
 
-#include <windows.h>
 #include <math.h>                /* for cos(), sin(), etc */
 
 #define MAX_CLAMP_BND (1<<26)
--- a/jdk/src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -246,7 +246,7 @@
     }
     if( numScreens > 1 ) {
 
-        MONITOR_INFO *miInfo;
+        LPMONITORINFO miInfo;
         RECT rSect ={0,0,0,0};
         RECT rView ={bounds->x1, bounds->y1, bounds->x2, bounds->y2};
         retCode = FALSE;
@@ -258,7 +258,7 @@
         ::OffsetRect(&rView,
             (ptOrig.x), (ptOrig.y));
 
-        ::IntersectRect(&rSect,&rView,&(miInfo->rMonitor));
+        ::IntersectRect(&rSect,&rView,&(miInfo->rcMonitor));
 
         if( FALSE == ::IsRectEmpty(&rSect) ) {
             if( TRUE == ::EqualRect(&rSect,&rView) ) {
--- a/jdk/src/windows/native/sun/java2d/windows/WindowsFlags.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/java2d/windows/WindowsFlags.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -23,8 +23,6 @@
  * have any questions.
  */
 
-
-#include <jni.h>
 #include <awt.h>
 #include "Trace.h"
 #include "WindowsFlags.h"
--- a/jdk/src/windows/native/sun/windows/ComCtl32Util.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/ComCtl32Util.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -23,54 +23,26 @@
  * have any questions.
  */
 
+#include "awt.h"
 #include "ComCtl32Util.h"
 
 ComCtl32Util::ComCtl32Util() {
-    hModComCtl32 = NULL;
-    m_bNewSubclassing = FALSE;
-
-    m_lpfnSetWindowSubclass = NULL;
-    m_lpfnRemoveWindowSubclass = NULL;
-    m_lpfnDefSubclassProc = NULL;
 }
 
 ComCtl32Util::~ComCtl32Util() {
-  DASSERT(hModComCtl32 == NULL);
 }
 
 void ComCtl32Util::InitLibraries() {
-    if (hModComCtl32 == NULL) {
-        hModComCtl32 = ::LoadLibrary(TEXT("comctl32.dll"));
-        if (hModComCtl32 != NULL) {
-            m_lpfnSetWindowSubclass = (PFNSETWINDOWSUBCLASS)::GetProcAddress(hModComCtl32, "SetWindowSubclass");
-            m_lpfnRemoveWindowSubclass = (PFNREMOVEWINDOWSUBCLASS)::GetProcAddress(hModComCtl32, "RemoveWindowSubclass");
-            m_lpfnDefSubclassProc = (PFNDEFSUBCLASSPROC)::GetProcAddress(hModComCtl32, "DefSubclassProc");
-
-            m_bNewSubclassing = (m_lpfnSetWindowSubclass != NULL) &&
-                                (m_lpfnRemoveWindowSubclass != NULL) &&
-                                (m_lpfnDefSubclassProc != NULL);
-
-            fn_InitCommonControlsEx = (ComCtl32Util::InitCommonControlsExType)::GetProcAddress(hModComCtl32, "InitCommonControlsEx");
-            InitCommonControls();
-        }
-    }
-}
-
-void ComCtl32Util::FreeLibraries() {
-    if (hModComCtl32 != NULL) {
-        m_lpfnSetWindowSubclass = NULL;
-        m_lpfnRemoveWindowSubclass = NULL;
-        m_lpfnDefSubclassProc = NULL;
-        ::FreeLibrary(hModComCtl32);
-        hModComCtl32 = NULL;
-    }
+    INITCOMMONCONTROLSEX iccex;
+    memset(&iccex, 0, sizeof(INITCOMMONCONTROLSEX));
+    iccex.dwSize = sizeof(INITCOMMONCONTROLSEX);
+    ::InitCommonControlsEx(&iccex);
 }
 
 WNDPROC ComCtl32Util::SubclassHWND(HWND hwnd, WNDPROC _WindowProc) {
-    if (m_bNewSubclassing) {
-        DASSERT(hModComCtl32 != NULL);
+    if (IS_WINXP) {
         const SUBCLASSPROC p = SharedWindowProc; // let compiler check type of SharedWindowProc
-        m_lpfnSetWindowSubclass(hwnd, p, (UINT_PTR)_WindowProc, NULL); // _WindowProc is used as subclass ID
+        ::SetWindowSubclass(hwnd, p, (UINT_PTR)_WindowProc, NULL); // _WindowProc is used as subclass ID
         return NULL;
     } else {
         return (WNDPROC)::SetWindowLongPtr(hwnd, GWLP_WNDPROC, (LONG_PTR)_WindowProc);
@@ -78,21 +50,17 @@
 }
 
 void ComCtl32Util::UnsubclassHWND(HWND hwnd, WNDPROC _WindowProc, WNDPROC _DefWindowProc) {
-    if (m_bNewSubclassing) {
-        DASSERT(hModComCtl32 != NULL);
-        DASSERT(_DefWindowProc == NULL);
+    if (IS_WINXP) {
         const SUBCLASSPROC p = SharedWindowProc; // let compiler check type of SharedWindowProc
-        m_lpfnRemoveWindowSubclass(hwnd, p, (UINT_PTR)_WindowProc); // _WindowProc is used as subclass ID
+        ::RemoveWindowSubclass(hwnd, p, (UINT_PTR)_WindowProc); // _WindowProc is used as subclass ID
     } else {
         ::SetWindowLongPtr(hwnd, GWLP_WNDPROC, (LONG_PTR)_DefWindowProc);
     }
 }
 
 LRESULT ComCtl32Util::DefWindowProc(WNDPROC _DefWindowProc, HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {
-    if (m_bNewSubclassing) {
-        DASSERT(hModComCtl32 != NULL);
-        DASSERT(_DefWindowProc == NULL);
-        return m_lpfnDefSubclassProc(hwnd, msg, wParam, lParam);
+    if (IS_WINXP) {
+        return ::DefSubclassProc(hwnd, msg, wParam, lParam);
     } else if (_DefWindowProc != NULL) {
         return ::CallWindowProc(_DefWindowProc, hwnd, msg, wParam, lParam);
     } else {
@@ -111,15 +79,3 @@
 
     CATCH_BAD_ALLOC_RET(0);
 }
-
-void ComCtl32Util::InitCommonControls()
-{
-    if (fn_InitCommonControlsEx == NULL) {
-        return;
-    }
-
-    INITCOMMONCONTROLSEX iccex;
-    memset(&iccex, 0, sizeof(INITCOMMONCONTROLSEX));
-    iccex.dwSize = sizeof(INITCOMMONCONTROLSEX);
-    fn_InitCommonControlsEx(&iccex);
-}
--- a/jdk/src/windows/native/sun/windows/ComCtl32Util.h	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/ComCtl32Util.h	Wed Jul 05 16:47:27 2017 +0200
@@ -30,20 +30,6 @@
 #ifndef _COMCTL32UTIL_H
 #define _COMCTL32UTIL_H
 
-
-/*
- * comctl32.dll version 6 subclassing - taken from PlatformSDK/Include/commctrl.h
- */
-typedef LRESULT (CALLBACK *SUBCLASSPROC)(HWND hWnd, UINT uMsg, WPARAM wParam, \
-    LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData);
-
-typedef BOOL (WINAPI *PFNSETWINDOWSUBCLASS)(HWND hWnd, SUBCLASSPROC pfnSubclass, UINT_PTR uIdSubclass, \
-    DWORD_PTR dwRefData);
-typedef BOOL (WINAPI *PFNREMOVEWINDOWSUBCLASS)(HWND hWnd, SUBCLASSPROC pfnSubclass, \
-    UINT_PTR uIdSubclass);
-
-typedef LRESULT (WINAPI *PFNDEFSUBCLASSPROC)(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
-
 class ComCtl32Util
 {
     public:
@@ -52,21 +38,8 @@
             return theInstance;
         }
 
-        // loads comctl32.dll and checks if required routines are available
-        // called from AwtToolkit::AwtToolkit()
         void InitLibraries();
-        // unloads comctl32.dll
-        // called from AwtToolkit::Dispose()
-        void FreeLibraries();
 
-        //-- comctl32.dll version 6 subclassing API --//
-
-        INLINE BOOL IsNewSubclassing() {
-            return m_bNewSubclassing;
-        }
-
-        // if comctl32.dll version 6 is used returns NULL, otherwise
-        // returns default window proc
         WNDPROC SubclassHWND(HWND hwnd, WNDPROC _WindowProc);
         // DefWindowProc is the same as returned from SubclassHWND
         void UnsubclassHWND(HWND hwnd, WNDPROC _WindowProc, WNDPROC _DefWindowProc);
@@ -77,19 +50,6 @@
         ComCtl32Util();
         ~ComCtl32Util();
 
-        HMODULE hModComCtl32;
-
-        PFNSETWINDOWSUBCLASS m_lpfnSetWindowSubclass;
-        PFNREMOVEWINDOWSUBCLASS m_lpfnRemoveWindowSubclass;
-        PFNDEFSUBCLASSPROC m_lpfnDefSubclassProc;
-
-        typedef BOOL (WINAPI * InitCommonControlsExType)(const LPINITCOMMONCONTROLSEX lpInitCtrls);
-        InitCommonControlsExType fn_InitCommonControlsEx;
-
-        void InitCommonControls();
-
-        BOOL m_bNewSubclassing;
-
         // comctl32.dll version 6 window proc
         static LRESULT CALLBACK SharedWindowProc(HWND hwnd, UINT message,
                                                  WPARAM wParam, LPARAM lParam,
--- a/jdk/src/windows/native/sun/windows/Devices.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/Devices.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -83,9 +83,83 @@
 
 #include "Devices.h"
 #include "Trace.h"
-#include "awt_Multimon.h"
 #include "D3DPipelineManager.h"
 
+
+/* Some helper functions (from awt_MMStub.h/cpp) */
+
+int g_nMonitorCounter;
+int g_nMonitorLimit;
+HMONITOR* g_hmpMonitors;
+
+// Callback for CountMonitors below
+BOOL WINAPI clb_fCountMonitors(HMONITOR hMon, HDC hDC, LPRECT rRect, LPARAM lP)
+{
+    g_nMonitorCounter ++;
+    return TRUE;
+}
+
+int WINAPI CountMonitors(void)
+{
+    g_nMonitorCounter = 0;
+    ::EnumDisplayMonitors(NULL, NULL, clb_fCountMonitors, 0L);
+    return g_nMonitorCounter;
+
+}
+
+// Callback for CollectMonitors below
+BOOL WINAPI clb_fCollectMonitors(HMONITOR hMon, HDC hDC, LPRECT rRect, LPARAM lP)
+{
+
+    if ((g_nMonitorCounter < g_nMonitorLimit) && (NULL != g_hmpMonitors)) {
+        g_hmpMonitors[g_nMonitorCounter] = hMon;
+        g_nMonitorCounter ++;
+    }
+
+    return TRUE;
+}
+
+int WINAPI CollectMonitors(HMONITOR* hmpMonitors, int nNum)
+{
+    int retCode = 0;
+
+    if (NULL != hmpMonitors) {
+
+        g_nMonitorCounter   = 0;
+        g_nMonitorLimit     = nNum;
+        g_hmpMonitors       = hmpMonitors;
+
+        ::EnumDisplayMonitors(NULL, NULL, clb_fCollectMonitors, 0L);
+
+        retCode             = g_nMonitorCounter;
+
+        g_nMonitorCounter   = 0;
+        g_nMonitorLimit     = 0;
+        g_hmpMonitors       = NULL;
+
+    }
+    return retCode;
+}
+
+BOOL WINAPI MonitorBounds(HMONITOR hmMonitor, RECT* rpBounds)
+{
+    BOOL retCode = FALSE;
+
+    if ((NULL != hmMonitor) && (NULL != rpBounds)) {
+        MONITORINFOEX miInfo;
+
+        memset((void*)(&miInfo), 0, sizeof(MONITORINFOEX));
+        miInfo.cbSize = sizeof(MONITORINFOEX);
+
+        if (TRUE == (retCode = ::GetMonitorInfo(hmMonitor, &miInfo))) {
+            (*rpBounds) = miInfo.rcMonitor;
+        }
+    }
+    return retCode;
+}
+
+/* End of helper functions */
+
 Devices* Devices::theInstance = NULL;
 CriticalSection Devices::arrayLock;
 
@@ -113,9 +187,9 @@
 {
     J2dTraceLn(J2D_TRACE_INFO, "Devices::UpdateInstance");
 
-    int numScreens = ::CountMonitors();
-    MHND *monHds = (MHND *)safe_Malloc(numScreens * sizeof(MHND));
-    if (numScreens != ::CollectMonitors(monHds, numScreens)) {
+    int numScreens = CountMonitors();
+    HMONITOR *monHds = (HMONITOR *)safe_Malloc(numScreens * sizeof(HMONITOR));
+    if (numScreens != CollectMonitors(monHds, numScreens)) {
         J2dRlsTraceLn(J2D_TRACE_ERROR,
                       "Devices::UpdateInstance: Failed to get all "\
                       "monitor handles.");
--- a/jdk/src/windows/native/sun/windows/Devices.h	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/Devices.h	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 2001-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2001-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -70,4 +70,8 @@
 
 };
 
+// Some helper functions (from awt_MMStub.h/cpp)
+
+BOOL WINAPI MonitorBounds (HMONITOR, RECT*);
+
 #endif _DEVICES_H_
--- a/jdk/src/windows/native/sun/windows/GDIHashtable.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/GDIHashtable.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1999-2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,6 @@
 
 #include "GDIHashtable.h"
 #include "awt_GDIObject.h"
-#include "awt_dlls.h"
 
 GDIHashtable::BatchDestructionManager GDIHashtable::manager;
 
@@ -46,7 +45,6 @@
         DASSERT(value != NULL);
         m_deleteProc(value);
     }
-    manager.update();
 }
 
 void GDIHashtable::flush() {
@@ -128,9 +126,6 @@
     }
 }
 
-#undef GFSR_GDIRESOURCES
-#define GFSR_GDIRESOURCES     0x0001
-
 GDIHashtable::BatchDestructionManager::BatchDestructionManager(UINT nFirstThreshold,
                                                                UINT nSecondThreshold,
                                                                UINT nDestroyPeriod) :
@@ -138,48 +133,6 @@
   m_nSecondThreshold(nSecondThreshold),
   m_nDestroyPeriod(nDestroyPeriod),
   m_nCounter(0),
-  m_bBatchingEnabled(TRUE) {
-    load_rsrc32_procs();
+  m_bBatchingEnabled(TRUE)
+{
 }
-
-void GDIHashtable::BatchDestructionManager::update() {
-
-    if (get_free_system_resources != NULL) {
-
-        CriticalSection::Lock l(m_managerLock);
-
-        if (m_nCounter < 0) {
-            UINT nFreeResources = (*get_free_system_resources)(GFSR_GDIRESOURCES);
-            /*
-             * If m_bBatchingEnabled is FALSE there is no need
-             * to flush since we have been destroying all
-             * GDI resources as soon as they were released.
-             */
-            if (m_bBatchingEnabled) {
-                if (nFreeResources < m_nFirstThreshold) {
-                    flushAll();
-                    nFreeResources = (*get_free_system_resources)(GFSR_GDIRESOURCES);
-                }
-            }
-            if (nFreeResources < m_nSecondThreshold) {
-                m_bBatchingEnabled = FALSE;
-                m_nCounter = m_nDestroyPeriod;
-            } else {
-                m_bBatchingEnabled = TRUE;
-                /*
-                 * The frequency of checks must depend on the currect amount
-                 * of free space in GDI heaps. Otherwise we can run into the
-                 * Resource Meter warning dialog when GDI resources are low.
-                 * This is a heuristic rule that provides this dependency.
-                 * These numbers have been chosen because:
-                 * Resource Meter posts a warning dialog when less than 10%
-                 * of GDI resources are free.
-                 * 5 pens/brushes take 1%. So 3 is the upper bound.
-                 * When changing this rule you should check that performance
-                 * isn't affected (with Caffeine Mark and JMark).
-                 */
-                m_nCounter = (nFreeResources - 10) * 3;
-            }
-        }
-    }
-}
--- a/jdk/src/windows/native/sun/windows/GDIHashtable.h	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/GDIHashtable.h	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1999 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -151,12 +151,6 @@
          */
         INLINE void decrementCounter() { m_nCounter--; }
 
-        /**
-         * Depending on the amount of free space in GDI heaps flushes
-         * all GDIHashtables and sets the initial counter value.
-         */
-        void update();
-
         INLINE CriticalSection& getLock() { return m_managerLock; }
     };
 
--- a/jdk/src/windows/native/sun/windows/ShellFolder2.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/ShellFolder2.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 2003-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -31,17 +31,27 @@
 // This file should stand independent of AWT and should ultimately be
 // put into its own DLL.
 #include <awt.h>
-#endif
+#else
+// Include jni_util.h first, so JNU_* macros can be redefined
+#include "jni_util.h"
+// Borrow some macros from awt.h
+#define JNU_NewStringPlatform(env, x) env->NewString(reinterpret_cast<jchar*>(x), static_cast<jsize>(_tcslen(x)))
+#define JNU_GetStringPlatformChars(env, x, y) reinterpret_cast<LPCWSTR>(env->GetStringChars(x, y))
+#define JNU_ReleaseStringPlatformChars(env, x, y) env->ReleaseStringChars(x, reinterpret_cast<const jchar*>(y))
+#endif // DEBUG
 
 #include <windows.h>
 #include <shlobj.h>
 #include <shellapi.h>
-#include "jni_util.h"
 #include "jlong.h"
 #include "alloc.h"
 
 #include "stdhdrs.h"
-#include "UnicowsLoader.h"
+
+// Copy from shlguid.h which is no longer in PlatformSDK
+#ifndef DEFINE_SHLGUID
+#define DEFINE_SHLGUID(name, l, w1, w2) DEFINE_GUID(name, l, w1, w2, 0xC0, 0, 0, 0, 0, 0, 0, 0x46)
+#endif
 
 // {93F2F68C-1D1B-11d3-A30E-00C04F79ABD1}
 DEFINE_GUID(IID_IShellFolder2, 0x93f2f68c, 0x1d1b, 0x11d3, 0xa3, 0xe, 0x0, 0xc0, 0x4f, 0x79, 0xab, 0xd1);
@@ -86,13 +96,15 @@
 static IMalloc* pMalloc;
 static IShellFolder* pDesktop;
 
-static BOOL isXP;
-
-// copied from awt.h, because it is not included in release
-#if defined (WIN32)
-    #define IS_WINVISTA (!(::GetVersion() & 0x80000000) && LOBYTE(LOWORD(::GetVersion())) >= 6)
-#else
-    #define IS_WINVISTA FALSE
+// Some macros from awt.h, because it is not included in release
+#ifndef IS_WIN2000
+#define IS_WIN2000 (LOBYTE(LOWORD(::GetVersion())) >= 5)
+#endif
+#ifndef IS_WINXP
+#define IS_WINXP ((IS_WIN2000 && HIBYTE(LOWORD(::GetVersion())) >= 1) || LOBYTE(LOWORD(::GetVersion())) > 5)
+#endif
+#ifndef IS_WINVISTA
+#define IS_WINVISTA (!(::GetVersion() & 0x80000000) && LOBYTE(LOWORD(::GetVersion())) >= 6)
 #endif
 
 
@@ -103,7 +115,6 @@
     static HMODULE libShell32 = NULL;
     static HMODULE libUser32 = NULL;
     static HMODULE libComCtl32 = NULL;
-    static HMODULE libUnicows = UnicowsLoader::GetModuleHandle();
     // If already initialized, return TRUE
     if (libShell32 != NULL && libUser32 != NULL) {
         return TRUE;
@@ -130,7 +141,7 @@
 
     // Set up procs - libShell32
         fn_FindExecutable = (FindExecutableType)GetProcAddress(
-                (libUnicows ? libUnicows : libShell32), "FindExecutableW");
+                libShell32, "FindExecutableW");
     if (fn_FindExecutable == NULL) {
         return FALSE;
     }
@@ -140,7 +151,7 @@
         return FALSE;
     }
         fn_SHGetFileInfo = (SHGetFileInfoType)GetProcAddress(
-                (libUnicows ? libUnicows : libShell32), "SHGetFileInfoW");
+                libShell32, "SHGetFileInfoW");
     if (fn_SHGetFileInfo == NULL) {
         return FALSE;
     }
@@ -154,7 +165,7 @@
         return FALSE;
     }
         fn_SHGetPathFromIDList = (SHGetPathFromIDListType)GetProcAddress(
-                (libUnicows ? libUnicows : libShell32), "SHGetPathFromIDListW");
+                libShell32, "SHGetPathFromIDListW");
     if (fn_SHGetPathFromIDList == NULL) {
         return FALSE;
     }
@@ -181,19 +192,19 @@
 static jstring jstringFromSTRRET(JNIEnv* env, LPITEMIDLIST pidl, STRRET* pStrret) {
     switch (pStrret->uType) {
         case STRRET_CSTR :
-            return JNU_NewStringPlatform(env, pStrret->cStr);
+            return JNU_NewStringPlatform(env, reinterpret_cast<const char*>(pStrret->cStr));
         case STRRET_OFFSET :
             // Note : this may need to be WCHAR instead
             return JNU_NewStringPlatform(env,
                                          (CHAR*)pidl + pStrret->uOffset);
         case STRRET_WSTR :
-            return env->NewString(pStrret->pOleStr,
+            return env->NewString(reinterpret_cast<const jchar*>(pStrret->pOleStr),
                 static_cast<jsize>(wcslen(pStrret->pOleStr)));
     }
     return NULL;
 }
 // restoring the original definition
-#define JNU_NewStringPlatform(env, x) env->NewString(x, static_cast<jsize>(_tcslen(x)))
+#define JNU_NewStringPlatform(env, x) env->NewString(reinterpret_cast<jchar*>(x), static_cast<jsize>(_tcslen(x)))
 
 /*
  * Class:     sun_awt_shell_Win32ShellFolder2
@@ -212,13 +223,6 @@
     MID_relativePIDL = env->GetMethodID(cls, "setRelativePIDL", "(J)V");
     FID_displayName = env->GetFieldID(cls, "displayName", "Ljava/lang/String;");
     FID_folderType = env->GetFieldID(cls, "folderType", "Ljava/lang/String;");
-
-    // Find out if we are on XP or later
-    long version = GetVersion();
-    isXP = (!(version & 0x80000000) &&
-            (LOBYTE(LOWORD(version)) == 5 &&
-             HIBYTE(LOWORD(version)) >= 1) ||
-            LOBYTE(LOWORD(version)) > 5);
 }
 
 static IShellIcon* getIShellIcon(IShellFolder* pIShellFolder) {
@@ -669,46 +673,24 @@
     if (!CoInit(doCoUninit)) {
         return 0;
     }
-    if (IS_NT) {
-        IShellLinkW* psl;
-        hres = ::CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLinkW, (LPVOID *)&psl);
+    IShellLinkW* psl;
+    hres = ::CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLinkW, (LPVOID *)&psl);
+    if (SUCCEEDED(hres)) {
+        IPersistFile* ppf;
+        hres = psl->QueryInterface(IID_IPersistFile, (void**)&ppf);
         if (SUCCEEDED(hres)) {
-            IPersistFile* ppf;
-            hres = psl->QueryInterface(IID_IPersistFile, (void**)&ppf);
+            hres = ppf->Load(wstr, STGM_READ);
             if (SUCCEEDED(hres)) {
-                hres = ppf->Load(wstr, STGM_READ);
-                if (SUCCEEDED(hres)) {
-                    if (resolve) {
-                        hres = psl->Resolve(NULL, 0);
-                        // Ignore failure
-                    }
-                    pidl = (LPITEMIDLIST)NULL;
-                    hres = psl->GetIDList(&pidl);
+                if (resolve) {
+                    hres = psl->Resolve(NULL, 0);
+                    // Ignore failure
                 }
-                ppf->Release();
+                pidl = (LPITEMIDLIST)NULL;
+                hres = psl->GetIDList(&pidl);
             }
-            psl->Release();
+            ppf->Release();
         }
-    } else {
-        IShellLinkA* psl;
-        hres = ::CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLinkA, (LPVOID *)&psl);
-        if (SUCCEEDED(hres)) {
-            IPersistFile* ppf;
-            hres = psl->QueryInterface(IID_IPersistFile, (void**)&ppf);
-            if (SUCCEEDED(hres)) {
-                hres = ppf->Load(wstr, STGM_READ);
-                if (SUCCEEDED(hres)) {
-                    if (resolve) {
-                        hres = psl->Resolve(NULL, 0);
-                        // Ignore failure
-                    }
-                    pidl = (LPITEMIDLIST)NULL;
-                    hres = psl->GetIDList(&pidl);
-                }
-                ppf->Release();
-            }
-            psl->Release();
-        }
+        psl->Release();
     }
     if (doCoUninit) {
         ::CoUninitialize();
@@ -742,10 +724,10 @@
     int nLength = env->GetStringLength(jname);
     jchar* wszPath = new jchar[nLength + 1];
     const jchar* strPath = env->GetStringChars(jname, NULL);
-    wcsncpy(wszPath, strPath, nLength);
+    wcsncpy(reinterpret_cast<LPWSTR>(wszPath), reinterpret_cast<LPCWSTR>(strPath), nLength);
     wszPath[nLength] = 0;
     HRESULT res = pIShellFolder->ParseDisplayName(NULL, NULL,
-                        const_cast<jchar*>(wszPath), NULL, &pIDL, NULL);
+                        reinterpret_cast<LPWSTR>(wszPath), NULL, &pIDL, NULL);
     if (res != S_OK) {
         JNU_ThrowIOException(env, "Could not parse name");
         pIDL = 0;
@@ -804,7 +786,7 @@
     (JNIEnv* env, jobject folder, jstring path)
 {
     TCHAR szBuf[MAX_PATH];
-    LPCTSTR szPath = (LPCTSTR)JNU_GetStringPlatformChars(env, path, NULL);
+    LPCTSTR szPath = JNU_GetStringPlatformChars(env, path, NULL);
     if (szPath == NULL) {
         return NULL;
     }
@@ -827,7 +809,7 @@
 {
     HICON hIcon = NULL;
     SHFILEINFO fileInfo;
-    LPCTSTR pathStr = (LPCTSTR)JNU_GetStringPlatformChars(env, absolutePath, NULL);
+    LPCTSTR pathStr = JNU_GetStringPlatformChars(env, absolutePath, NULL);
     if (fn_SHGetFileInfo(pathStr, 0L, &fileInfo, sizeof(fileInfo),
                          SHGFI_ICON | (getLargeIcon ? 0 : SHGFI_SMALLICON)) != 0) {
         hIcon = fileInfo.hIcon;
@@ -890,52 +872,27 @@
     }
 
     HRESULT hres;
-    if (IS_NT) {
-        IExtractIconW* pIcon;
-        hres = pIShellFolder->GetUIObjectOf(NULL, 1, const_cast<LPCITEMIDLIST*>(&pidl),
+    IExtractIconW* pIcon;
+    hres = pIShellFolder->GetUIObjectOf(NULL, 1, const_cast<LPCITEMIDLIST*>(&pidl),
                                         IID_IExtractIconW, NULL, (void**)&pIcon);
+    if (SUCCEEDED(hres)) {
+        WCHAR szBuf[MAX_PATH];
+        INT index;
+        UINT flags;
+        hres = pIcon->GetIconLocation(GIL_FORSHELL, szBuf, MAX_PATH, &index, &flags);
         if (SUCCEEDED(hres)) {
-            WCHAR szBuf[MAX_PATH];
-            INT index;
-            UINT flags;
-            hres = pIcon->GetIconLocation(GIL_FORSHELL, szBuf, MAX_PATH, &index, &flags);
+            HICON hIconLarge;
+            hres = pIcon->Extract(szBuf, index, &hIconLarge, &hIcon, (16 << 16) + 32);
             if (SUCCEEDED(hres)) {
-                HICON hIconLarge;
-                hres = pIcon->Extract(szBuf, index, &hIconLarge, &hIcon, (16 << 16) + 32);
-                if (SUCCEEDED(hres)) {
-                    if (getLargeIcon) {
-                        fn_DestroyIcon((HICON)hIcon);
-                        hIcon = hIconLarge;
-                    } else {
-                        fn_DestroyIcon((HICON)hIconLarge);
-                    }
+                if (getLargeIcon) {
+                    fn_DestroyIcon((HICON)hIcon);
+                    hIcon = hIconLarge;
+                } else {
+                    fn_DestroyIcon((HICON)hIconLarge);
                 }
             }
-            pIcon->Release();
         }
-    } else {
-        IExtractIconA* pIcon;
-        hres = pIShellFolder->GetUIObjectOf(NULL, 1, const_cast<LPCITEMIDLIST*>(&pidl),
-                                        IID_IExtractIconA, NULL, (void**)&pIcon);
-        if (SUCCEEDED(hres)) {
-            CHAR szBuf[MAX_PATH];
-            INT index;
-            UINT flags;
-            hres = pIcon->GetIconLocation(GIL_FORSHELL, szBuf, MAX_PATH, &index, &flags);
-            if (SUCCEEDED(hres)) {
-                HICON hIconLarge;
-                hres = pIcon->Extract(szBuf, index, &hIconLarge, &hIcon, (16 << 16) + 32);
-                if (SUCCEEDED(hres)) {
-                    if (getLargeIcon) {
-                        fn_DestroyIcon((HICON)hIcon);
-                        hIcon = hIconLarge;
-                    } else {
-                        fn_DestroyIcon((HICON)hIconLarge);
-                    }
-                }
-            }
-            pIcon->Release();
-        }
+        pIcon->Release();
     }
     if (doCoUninit) {
         ::CoUninitialize();
@@ -987,7 +944,7 @@
             // XP supports alpha in some icons, and depending on device.
             // This should take precedence over the icon mask bits.
             BOOL hasAlpha = FALSE;
-            if (isXP) {
+            if (IS_WINXP) {
                 for (int i = 0; i < nBits; i++) {
                     if ((colorBits[i] & 0xff000000) != 0) {
                         hasAlpha = TRUE;
@@ -1127,9 +1084,9 @@
     (JNIEnv* env, jclass cls, jstring libName, jint iconID,
      jint cxDesired, jint cyDesired, jboolean useVGAColors)
 {
-    HINSTANCE libHandle = LoadLibrary(env->GetStringChars(libName, NULL));
+    HINSTANCE libHandle = LoadLibrary(JNU_GetStringPlatformChars(env, libName, NULL));
     if (libHandle != NULL) {
-        UINT fuLoad = (useVGAColors && !isXP) ? LR_VGACOLOR : 0;
+        UINT fuLoad = (useVGAColors && !IS_WINXP) ? LR_VGACOLOR : 0;
         return ptr_to_jlong(LoadImage(libHandle, MAKEINTRESOURCE(iconID),
                                       IMAGE_ICON, cxDesired, cyDesired,
                                       fuLoad));
--- a/jdk/src/windows/native/sun/windows/UnicowsLoader.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,430 +0,0 @@
-/*
- * Copyright 2003-2005 Sun Microsystems, Inc.  All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-#include <float.h>
-#include "alloc.h"
-#include "UnicowsLoader.h"
-
-/*
- * Support functions for the Microsoft Layer for Unicode (MSLU).
- *
- * The MSLU maps the wide char version of Windows APIs with strings
- * to their ANSI version equivalent on Win98/ME platforms.
- *
- * For more details on the MSLU, please refer to the MSDN webpage at:
- * http://msdn.microsoft.com/library/default.asp?url=/library/en-us/mslu/winprog/microsoft_layer_for_unicode_on_windows_95_98_me_systems.asp
- */
-
-// The MSLU module handle.  Only initialized on Win9x/ME.
-HMODULE UnicowsLoader::hmodUnicows = NULL;
-
-// MSLU loader entry point, which is called when the module
-// is initialized.
-extern "C" HMODULE (__stdcall *_PfnLoadUnicows)(void) =
-        &UnicowsLoader::LoadUnicows;
-
-// Overriede APIs that are not supported by MSLU.
-extern "C" FARPROC Unicows_GetPrinterW =
-        (FARPROC)&UnicowsLoader::GetPrinterWImpl;
-extern "C" FARPROC Unicows_EnumPrintersW =
-        (FARPROC)&UnicowsLoader::EnumPrintersWImpl;
-
-HMODULE __stdcall UnicowsLoader::LoadUnicows(void)
-{
-    if (hmodUnicows != NULL) {
-        return hmodUnicows;
-    }
-
-    // Unfortunately, some DLLs that are loaded in conjunction with
-    // unicows.dll may blow the FPU's control word.  So save it here.
-    unsigned int fpu_cw = _CW_DEFAULT;
-    fpu_cw = _control87(0, 0);
-
-    // Loads the DLL, assuming that the DLL resides in the same directory
-    // as the AWT(_G).DLL.  We cannot use "sun.boot.library.path" system
-    // property since there is no way to issue JNI calls at this point
-    // (JNI_OnLoad is not yet called so it cannot obtain JavaVM structure)
-    //
-    // To obtain the AWT module handle, call GetModuleHandleA() directly,
-    // instead of AwtToolkit.GetModuleHandle().  Otherwise it could cause
-    // an infinite loop if some W call were made inside AwtToolkit class
-    // initialization.
-    HMODULE hmodAWT = GetModuleHandleA("awt");
-    LPSTR abspath = (LPSTR)safe_Malloc(MAX_PATH);
-    if (abspath != NULL) {
-        GetModuleFileNameA(hmodAWT, abspath, MAX_PATH);
-        *strrchr(abspath, '\\') = '\0';
-        strcat(abspath, "\\unicows.dll");
-        hmodUnicows = LoadLibraryA(abspath);
-        free(abspath);
-    }
-
-    // Restore the FPU control word if needed.
-    if ( _control87(0, 0) != fpu_cw) {
-        _control87(fpu_cw, 0xfffff);
-    }
-
-    return hmodUnicows;
-}
-
-HMODULE UnicowsLoader::GetModuleHandle(void)
-{
-    return hmodUnicows;
-}
-
-
-// Convenient functions to convert DEVMODEA -> DEVMODEW
-void UnicowsLoader::DevModeA2DevModeW(
-    const DEVMODEA * dma,
-    DEVMODEW * dmw)
-{
-    // convert string portions
-    ::MultiByteToWideChar(CP_ACP, 0, (CHAR *)dma->dmDeviceName, CCHDEVICENAME,
-        dmw->dmDeviceName, CCHDEVICENAME);
-    ::MultiByteToWideChar(CP_ACP, 0, (CHAR *)dma->dmFormName, CCHDEVICENAME,
-        dmw->dmFormName, CCHDEVICENAME);
-
-    // copy driver specific data if exists
-    if (dma->dmDriverExtra != 0) {
-        PBYTE pExtraA = (PBYTE)(dma + 1);
-        PBYTE pExtraW = (PBYTE)(dmw + 1);
-        memcpy(pExtraW, pExtraA, dma->dmDriverExtra);
-    }
-
-    // copy normal struct members
-    dmw->dmSpecVersion = dma->dmSpecVersion;
-    dmw->dmDriverVersion = dma->dmDriverVersion;
-    dmw->dmSize = dma->dmSize;
-    dmw->dmDriverExtra = dma->dmDriverExtra;
-    dmw->dmFields = dma->dmFields;
-    dmw->dmPosition = dma->dmPosition;
-    dmw->dmScale = dma->dmScale;
-    dmw->dmCopies = dma->dmCopies;
-    dmw->dmDefaultSource = dma->dmDefaultSource;
-    dmw->dmPrintQuality = dma->dmPrintQuality;
-    dmw->dmColor = dma->dmColor;
-    dmw->dmDuplex = dma->dmDuplex;
-    dmw->dmYResolution = dma->dmYResolution;
-    dmw->dmTTOption = dma->dmTTOption;
-    dmw->dmCollate = dma->dmCollate;
-    dmw->dmLogPixels = dma->dmLogPixels;
-    dmw->dmBitsPerPel = dma->dmBitsPerPel;
-    dmw->dmPelsWidth = dma->dmPelsWidth;
-    dmw->dmPelsHeight = dma->dmPelsHeight;
-    dmw->dmDisplayFlags = dma->dmDisplayFlags;
-    dmw->dmDisplayFrequency = dma->dmDisplayFrequency;
-#if(WINVER >= 0x0400)
-    dmw->dmICMMethod = dma->dmICMMethod;
-    dmw->dmICMIntent = dma->dmICMIntent;
-    dmw->dmMediaType = dma->dmMediaType;
-    dmw->dmDitherType = dma->dmDitherType;
-    dmw->dmReserved1 = dma->dmReserved1;
-    dmw->dmReserved2 = dma->dmReserved2;
-#if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)
-    dmw->dmPanningWidth = dma->dmPanningWidth;
-    dmw->dmPanningHeight = dma->dmPanningHeight;
-#endif
-#endif /* WINVER >= 0x0400 */
-}
-
-// PRINTER_INFO_1 struct converter
-void UnicowsLoader::PrinterInfo1A2W(
-    const LPPRINTER_INFO_1A pi1A,
-    LPPRINTER_INFO_1W pi1W,
-    const DWORD num)
-{
-    LPWSTR pwstrbuf = (LPWSTR)(pi1W + num);
-    DWORD current;
-
-    // loop through all structures
-    for (current = 0; current < num; current ++) {
-        LPPRINTER_INFO_1A curPi1A = pi1A + current;
-        LPPRINTER_INFO_1W curPi1W = pi1W + current;
-
-        // copy the structure itself
-        memcpy(curPi1W, curPi1A, sizeof(_PRINTER_INFO_1W));
-
-        // copy string members
-        StringA2W(curPi1A->pDescription, &(curPi1W->pDescription), &pwstrbuf);
-        StringA2W(curPi1A->pName, &(curPi1W->pName), &pwstrbuf);
-        StringA2W(curPi1A->pComment, &(curPi1W->pComment), &pwstrbuf);
-    }
-}
-
-// PRINTER_INFO_2 struct converter
-void UnicowsLoader::PrinterInfo2A2W(
-    const LPPRINTER_INFO_2A pi2A,
-    LPPRINTER_INFO_2W pi2W,
-    const DWORD num)
-{
-    PBYTE pbytebuf = (PBYTE)(pi2W + num);
-    DWORD current;
-
-    // loop through all structures
-    for (current = 0; current < num; current ++) {
-        LPPRINTER_INFO_2A curPi2A = pi2A + current;
-        LPPRINTER_INFO_2W curPi2W = pi2W + current;
-        // copy the structure itself
-        memcpy(curPi2W, curPi2A, sizeof(_PRINTER_INFO_2W));
-
-        // copy string members
-        StringA2W(curPi2A->pServerName, &(curPi2W->pServerName), (LPWSTR *)&pbytebuf);
-        StringA2W(curPi2A->pPrinterName, &(curPi2W->pPrinterName), (LPWSTR *)&pbytebuf);
-        StringA2W(curPi2A->pShareName, &(curPi2W->pShareName), (LPWSTR *)&pbytebuf);
-        StringA2W(curPi2A->pPortName, &(curPi2W->pPortName), (LPWSTR *)&pbytebuf);
-        StringA2W(curPi2A->pDriverName, &(curPi2W->pDriverName), (LPWSTR *)&pbytebuf);
-        StringA2W(curPi2A->pComment, &(curPi2W->pComment), (LPWSTR *)&pbytebuf);
-        StringA2W(curPi2A->pLocation, &(curPi2W->pLocation), (LPWSTR *)&pbytebuf);
-        StringA2W(curPi2A->pSepFile, &(curPi2W->pSepFile), (LPWSTR *)&pbytebuf);
-        StringA2W(curPi2A->pPrintProcessor, &(curPi2W->pPrintProcessor), (LPWSTR *)&pbytebuf);
-        StringA2W(curPi2A->pDatatype, &(curPi2W->pDatatype), (LPWSTR *)&pbytebuf);
-        StringA2W(curPi2A->pParameters, &(curPi2W->pParameters), (LPWSTR *)&pbytebuf);
-
-        // copy DEVMODE structure
-        if (curPi2A->pDevMode != NULL) {
-            curPi2W->pDevMode = (LPDEVMODEW)pbytebuf;
-            DevModeA2DevModeW(curPi2A->pDevMode, curPi2W->pDevMode);
-            pbytebuf += sizeof(DEVMODEW) + curPi2A->pDevMode->dmDriverExtra;
-        }
-    }
-}
-
-// PRINTER_INFO_5 struct converter
-void UnicowsLoader::PrinterInfo5A2W(
-    const LPPRINTER_INFO_5A pi5A,
-    LPPRINTER_INFO_5W pi5W,
-    const DWORD num)
-{
-    LPWSTR pbuf = (LPWSTR)(pi5W + num);
-    DWORD current;
-
-    // loop through all structures
-    for (current = 0; current < num; current ++) {
-        LPPRINTER_INFO_5A curPi5A = pi5A + current;
-        LPPRINTER_INFO_5W curPi5W = pi5W + current;
-
-        // copy the structure itself
-        memcpy(curPi5W, curPi5A, sizeof(_PRINTER_INFO_5W));
-
-        // copy string members
-        StringA2W(curPi5A->pPrinterName, &(curPi5W->pPrinterName), &pbuf);
-        StringA2W(curPi5A->pPortName, &(curPi5W->pPortName), &pbuf);
-    }
-}
-
-// PRINTER_INFO_* struct converter.  Supported levels are 1, 2, and 5.
-void UnicowsLoader::PrinterInfoA2W(
-    const PVOID piA,
-    PVOID piW,
-    const DWORD Level,
-    const DWORD num)
-{
-    switch (Level) {
-    case 1:
-        PrinterInfo1A2W((LPPRINTER_INFO_1A)piA, (LPPRINTER_INFO_1W)piW, num);
-        break;
-
-    case 2:
-        PrinterInfo2A2W((LPPRINTER_INFO_2A)piA, (LPPRINTER_INFO_2W)piW, num);
-        break;
-
-    case 5:
-        PrinterInfo5A2W((LPPRINTER_INFO_5A)piA, (LPPRINTER_INFO_5W)piW, num);
-        break;
-    }
-}
-
-// converts string members in PRINTER_INFO_* struct.
-void UnicowsLoader::StringA2W(
-    LPCSTR pSrcA,
-    LPWSTR * ppwstrDest,
-    LPWSTR * ppwstrbuf)
-{
-    if (pSrcA != NULL) {
-        DWORD cchWideChar = ::MultiByteToWideChar(CP_ACP, 0, pSrcA, -1, NULL, 0);
-        *ppwstrDest = *ppwstrbuf;
-        ::MultiByteToWideChar(CP_ACP, 0, pSrcA, -1, *ppwstrbuf, cchWideChar);
-        *ppwstrbuf += cchWideChar;
-    } else {
-        *ppwstrDest = NULL;
-    }
-}
-
-// GetPrinterW implementation.  Level 1, 2, and 5 are the only supported levels.
-BOOL __stdcall UnicowsLoader::GetPrinterWImpl(
-    HANDLE  hPrinter,
-    DWORD   Level,
-    LPBYTE  pPrinter,
-    DWORD   cbBuf,
-    LPDWORD pcbNeeded)
-{
-    if ((Level != 1) && (Level != 2) && (Level != 5)) {
-        SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-        return FALSE;
-    }
-
-    DWORD cbBufA = (cbBuf != 0 ? cbBuf / 2 : 0); // dirty estimation...
-    LPBYTE pPrinterA = NULL;
-    DWORD cbNeededA = 0;
-    BOOL ret;
-
-    if (cbBufA != 0) {
-        pPrinterA = (LPBYTE)safe_Malloc(cbBufA);
-        memset(pPrinterA, 0, cbBufA);
-    }
-
-    ret = ::GetPrinterA(hPrinter, Level, pPrinterA, cbBufA, &cbNeededA);
-    *pcbNeeded = cbNeededA * 2; // dirty estimation...
-
-    if (pPrinterA != NULL) {
-        if (ret) {
-            PrinterInfoA2W(pPrinterA, pPrinter, Level, 1);
-        }
-        free(pPrinterA);
-    }
-
-    return ret;
-}
-
-// EnumPrintersW implementation.  Level 1, 2, and 5 are the only supported levels.
-BOOL __stdcall UnicowsLoader::EnumPrintersWImpl(
-    DWORD   Flags,
-    LPWSTR Name,
-    DWORD   Level,
-    LPBYTE  pPrinterEnum,
-    DWORD   cbBuf,
-    LPDWORD pcbNeeded,
-    LPDWORD pcReturned)
-{
-    if ((Level != 1) && (Level != 2) && (Level != 5)) {
-        SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-        return FALSE;
-    }
-
-    LPSTR pNameA = NULL;
-    DWORD cbBufA = (cbBuf != 0 ? cbBuf / 2 : 0); // dirty estimation...
-    LPBYTE pPrinterEnumA = NULL;
-    DWORD cbNeededA = 0;
-    BOOL ret;
-
-    if (Name != NULL) {
-        DWORD len = static_cast<DWORD>(wcslen(Name)) + 1;
-        pNameA = (LPSTR)safe_Malloc(len);
-        ::WideCharToMultiByte(CP_ACP, 0, Name, -1, pNameA, len, NULL, NULL);
-    }
-
-    if (cbBufA != 0) {
-        pPrinterEnumA = (LPBYTE)safe_Malloc(cbBufA);
-        memset(pPrinterEnumA, 0, cbBufA);
-    }
-
-    ret = ::EnumPrintersA(Flags, pNameA, Level, pPrinterEnumA,
-                        cbBufA, &cbNeededA, pcReturned);
-    *pcbNeeded = cbNeededA * 2; // dirty estimation...
-
-    if (pPrinterEnumA != NULL) {
-        if (ret) {
-            PrinterInfoA2W(pPrinterEnumA, pPrinterEnum, Level, *pcReturned);
-        }
-        free(pPrinterEnumA);
-    }
-
-    if (pNameA != NULL) {
-        free(pNameA);
-    }
-
-    return ret;
-}
-
-// wchar CRT implementations that VC6 does not support on Win9x.
-// These implementations are used on both Win9x/ME *and* WinNT/2K/XP.
-#undef _waccess
-#undef _wchmod
-#undef _wfullpath
-#undef _wremove
-#undef _wrename
-#undef _wstat
-#undef _wstati64
-#undef _wstat64
-#undef _wunlink
-#undef _wfopen
-#undef _wfreopen
-#undef _wfsopen
-#undef _wcreat
-#undef _wopen
-#undef _wsopen
-#undef _wfindfirst
-#undef _wfindfirst64
-#undef _wfindnext
-#undef _wfindnext64
-#undef _wsystem
-#undef _wexcel
-#undef _wexcele
-#undef _wexelp
-#undef _wexelpe
-#undef _wexecv
-#undef _wexecve
-#undef _wexecvp
-#undef _wexecvpe
-#undef _wpopen
-#undef _wputenv
-#undef _wspawnl
-#undef _wspawnle
-#undef _wspawnlp
-#undef _wspawnlpe
-#undef _wspawnv
-#undef _wspawnve
-#undef _wspawnvp
-#undef _wspawnvpe
-
-// _wfullpath implementation
-wchar_t * __cdecl UnicowsLoader::_wfullpathImpl(
-    wchar_t * absPath,
-    const wchar_t * relPath,
-    size_t maxLength)
-{
-    if (IS_NT) {
-        return _wfullpath(absPath, relPath, maxLength);
-    } else {
-        wchar_t * ret = NULL;
-        char * absPathA = (char *)safe_Malloc(maxLength);
-        char * relPathA = (char *)safe_Malloc(maxLength);
-        ::WideCharToMultiByte(CP_ACP, 0, relPath, -1, relPathA,
-            static_cast<DWORD>(maxLength), NULL, NULL);
-
-        char * retA = _fullpath(absPathA, relPathA, maxLength);
-
-        if (retA != NULL) {
-            ::MultiByteToWideChar(CP_ACP, 0, absPathA, -1,
-                absPath, static_cast<DWORD>(maxLength));
-            ret = absPath;
-        }
-
-        free(absPathA);
-        free(relPathA);
-
-        return ret;
-    }
-}
--- a/jdk/src/windows/native/sun/windows/UnicowsLoader.h	Wed Jul 05 16:46:57 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,198 +0,0 @@
-/*
- * Copyright 2003-2004 Sun Microsystems, Inc.  All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-#ifndef UNICOWSLOADER_H
-#define UNICOWSLOADER_H
-
-#if !defined(UNICODE) || !defined(_UNICODE)
-#error UnicowsLoader module needs UNICODE and _UNICODE flags to be set on compiling
-#endif
-
-#include <winspool.h>
-
-// A class to load the Microsoft Layer for Unicode (unicows.dll)
-class UnicowsLoader {
-public:
-    // this is called when the client DLL (this case, AWT) is loaded
-    static HMODULE __stdcall LoadUnicows(void);
-
-    // this is provided to pass the MSLU module handle
-    static HMODULE GetModuleHandle(void);
-
-    // member functions that implements functions that MSLU does not support
-    static BOOL __stdcall GetPrinterWImpl(HANDLE, DWORD, LPBYTE, DWORD, LPDWORD);
-    static BOOL __stdcall EnumPrintersWImpl(DWORD, LPWSTR, DWORD, LPBYTE,
-                        DWORD, LPDWORD, LPDWORD);
-
-    // member functions that implements functions that VC6 CRT does not support
-    // on Win9x
-    static wchar_t * __cdecl _wfullpathImpl(wchar_t *, const wchar_t *, size_t);
-
-private:
-    // The module handle
-    static HMODULE hmodUnicows;
-
-    // utility member functions
-    static void DevModeA2DevModeW(const DEVMODEA *, DEVMODEW *);
-    static void PrinterInfo1A2W(const LPPRINTER_INFO_1A, LPPRINTER_INFO_1W, const DWORD);
-    static void PrinterInfo2A2W(const LPPRINTER_INFO_2A, LPPRINTER_INFO_2W, const DWORD);
-    static void PrinterInfo5A2W(const LPPRINTER_INFO_5A, LPPRINTER_INFO_5W, const DWORD);
-    static void PrinterInfoA2W(const PVOID, PVOID, DWORD, DWORD);
-    static void StringA2W(LPCSTR, LPWSTR *, LPWSTR *);
-};
-
-#ifndef AWT_H
-// copied from awt.h
-#if defined (WIN32)
-    #define IS_WIN32 TRUE
-#else
-    #define IS_WIN32 FALSE
-#endif
-#define IS_NT      (IS_WIN32 && !(::GetVersion() & 0x80000000))
-#endif // AWT_H
-
-// Now the platform encoding is Unicode (UTF-16), re-define JNU_ functions
-// to proper JNI functions.
-#define JNU_NewStringPlatform(env, x) env->NewString(x, static_cast<jsize>(_tcslen(x)))
-#define JNU_GetStringPlatformChars(env, x, y) (LPWSTR)env->GetStringChars(x, y)
-#define JNU_ReleaseStringPlatformChars(env, x, y) env->ReleaseStringChars(x, y)
-
-// The following Windows W-APIs are not supported by the MSLU.
-// You need to implement a stub to use these APIs. Or, if it is
-// apparent that the API is used only on WindowsNT/2K/XP, wrap
-// the call site with #undef - #define, e.g:
-//
-// #undef SomeFunctionW
-// call SomeFunctionW
-// #define SomeFunctionW NotSupportedByMSLU
-
-#define AcquireCredentialsHandleW               NotSupportedByMSLU
-#define CreateNamedPipeW                        NotSupportedByMSLU
-#define CryptAcquireContextW                    NotSupportedByMSLU
-#define CryptEnumProvidersW                     NotSupportedByMSLU
-#define CryptEnumProviderTypesW                 NotSupportedByMSLU
-#define CryptGetDefaultProviderW                NotSupportedByMSLU
-#define CryptSetProviderW                       NotSupportedByMSLU
-#define CryptSetProviderExW                     NotSupportedByMSLU
-#define CryptSignHashW                          NotSupportedByMSLU
-#define CryptVerifySignatureW                   NotSupportedByMSLU
-#define EnumerateSecurityPackagesW              NotSupportedByMSLU
-#define EnumMonitorsW                           NotSupportedByMSLU
-#define EnumPortsW                              NotSupportedByMSLU
-#define EnumPrinterDriversW                     NotSupportedByMSLU
-//#define EnumPrintersW                         NotSupportedByMSLU
-#define EnumPrintProcessorDatatypesW            NotSupportedByMSLU
-#define EnumPrintProcessorsW                    NotSupportedByMSLU
-#define FreeContextBufferW                      NotSupportedByMSLU
-#define GetCharABCWidthsFloatW                  NotSupportedByMSLU
-#define GetJobW                                 NotSupportedByMSLU
-#define GetOpenFileNamePreviewW                 NotSupportedByMSLU
-//#define GetPrinterW                           NotSupportedByMSLU
-#define GetPrinterDataW                         NotSupportedByMSLU
-#define GetPrinterDriverW                       NotSupportedByMSLU
-#define GetSaveFileNamePreviewW                 NotSupportedByMSLU
-#define InitializeSecurityContextW              NotSupportedByMSLU
-#define mciSendCommandW                         NotSupportedByMSLU
-#define mixerGetControlDetailsW                 NotSupportedByMSLU
-#define mixerGetLineControlsW                   NotSupportedByMSLU
-#define mixerGetLineInfoW                       NotSupportedByMSLU
-#define mmioInstallIOProcW                      NotSupportedByMSLU
-#define OleUIChangeSourceW                      NotSupportedByMSLU
-#define OleUIConvertW                           NotSupportedByMSLU
-#define OleUIEditLinksW                         NotSupportedByMSLU
-#define OleUIInsertObjectW                      NotSupportedByMSLU
-#define OleUIObjectPropertiesW                  NotSupportedByMSLU
-#define OleUIPasteSpecialW                      NotSupportedByMSLU
-#define OleUIPromptUserW                        NotSupportedByMSLU
-#define OleUIUpdateLinksW                       NotSupportedByMSLU
-#define PolyTextOutW                            NotSupportedByMSLU
-#define QueryContextAttributesW                 NotSupportedByMSLU
-#define QueryCredentialsAttributesW             NotSupportedByMSLU
-#define QuerySecurityPackageInfoW               NotSupportedByMSLU
-#define RasDeleteSubEntryW                      NotSupportedByMSLU
-#define RasSetSubEntryPropertiesW               NotSupportedByMSLU
-#define ResetPrinterW                           NotSupportedByMSLU
-
-// The following Shell COM interfaces are not supported by the MSLU.
-// See ShellFolder2.cpp
-#define IID_IFileViewerW                        NotSupportedByMSLU
-#define IID_IShellLinkW                         NotSupportedByMSLU
-#define IID_IExtractIconW                       NotSupportedByMSLU
-#define IID_IShellCopyHookW                     NotSupportedByMSLU
-#define IID_IShellExecuteHookW                  NotSupportedByMSLU
-#define IID_INewShortcutHookW                   NotSupportedByMSLU
-
-// The following CRT functions should fail on compiling, as it does not work on
-// Win9x/ME platform.  If you need these CRTs, write a wrapper for ANSI version
-// equivalents, in which it converts to/from Unicode using WideCharToMultiByte.
-//
-// Or, if it is apparent that the function is used only on WindowsNT/2K/XP, wrap
-// the call site with #undef - #define, e.g:
-//
-// #undef _wsomefunc
-// call _wsomefunc
-// #define _wsomefunc NotSupportedOnWin9X
-
-#define _waccess        NotSupportedOnWin9X
-#define _wchmod         NotSupportedOnWin9X
-#define _wfullpath      UnicowsLoader::_wfullpathImpl
-#define _wremove        NotSupportedOnWin9X
-#define _wrename        NotSupportedOnWin9X
-#define _wstat          NotSupportedOnWin9X
-#define _wstati64       NotSupportedOnWin9X
-#define _wstat64        NotSupportedOnWin9X
-#define _wunlink        NotSupportedOnWin9X
-#define _wfopen         NotSupportedOnWin9X
-#define _wfreopen       NotSupportedOnWin9X
-#define _wfsopen        NotSupportedOnWin9X
-#define _wcreat         NotSupportedOnWin9X
-#define _wopen          NotSupportedOnWin9X
-#define _wsopen         NotSupportedOnWin9X
-#define _wfindfirst     NotSupportedOnWin9X
-#define _wfindfirst64   NotSupportedOnWin9X
-#define _wfindnext      NotSupportedOnWin9X
-#define _wfindnext64    NotSupportedOnWin9X
-#define _wsystem        NotSupportedOnWin9X
-#define _wexcel         NotSupportedOnWin9X
-#define _wexcele        NotSupportedOnWin9X
-#define _wexelp         NotSupportedOnWin9X
-#define _wexelpe        NotSupportedOnWin9X
-#define _wexecv         NotSupportedOnWin9X
-#define _wexecve        NotSupportedOnWin9X
-#define _wexecvp        NotSupportedOnWin9X
-#define _wexecvpe       NotSupportedOnWin9X
-#define _wpopen         NotSupportedOnWin9X
-#define _wputenv        NotSupportedOnWin9X
-#define _wspawnl        NotSupportedOnWin9X
-#define _wspawnle       NotSupportedOnWin9X
-#define _wspawnlp       NotSupportedOnWin9X
-#define _wspawnlpe      NotSupportedOnWin9X
-#define _wspawnv        NotSupportedOnWin9X
-#define _wspawnve       NotSupportedOnWin9X
-#define _wspawnvp       NotSupportedOnWin9X
-#define _wspawnvpe      NotSupportedOnWin9X
-
-
-#endif // UNICOWSLOADER_H
--- a/jdk/src/windows/native/sun/windows/WPrinterJob.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/WPrinterJob.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,14 +23,14 @@
  * have any questions.
  */
 
+#include "awt.h"
+
 #include "stdhdrs.h"
 #include <commdlg.h>
 #include <winspool.h>
 #include <limits.h>
 #include <float.h>
 
-#include "awt.h"
-#include "awt_dlls.h"
 #include "awt_Toolkit.h"
 #include "awt_PrintControl.h"
 
@@ -74,7 +74,6 @@
     TRY;
 
     TCHAR cBuffer[250];
-    BOOL bFlag;
     OSVERSIONINFO osv;
     PRINTER_INFO_2 *ppi2 = NULL;
     DWORD dwNeeded = 0;
@@ -86,39 +85,8 @@
     osv.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
     GetVersionEx(&osv);
 
-    // If Windows 95 or 98, use EnumPrinters...
-    if (osv.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) {
-
-        // The first EnumPrinters() tells you how big our buffer should
-        // be in order to hold ALL of PRINTER_INFO_2. Note that this will
-        // usually return FALSE. This only means that the buffer (the 4th
-        // parameter) was not filled in. You don't want it filled in here...
-
-        EnumPrinters(PRINTER_ENUM_DEFAULT, NULL, 2,
-                     NULL, 0, &dwNeeded, &dwReturned);
-        if (dwNeeded == 0) {
-            return NULL;
-        }
-
-        // Allocate enough space for PRINTER_INFO_2...
-        ppi2 = (PRINTER_INFO_2 *)GlobalAlloc(GPTR, dwNeeded);
-        if (!ppi2) {
-           return NULL;
-        }
-
-        // The second EnumPrinters() will fill in all the current information.
-        bFlag = EnumPrinters(PRINTER_ENUM_DEFAULT, NULL, 2,
-                             (LPBYTE)ppi2, dwNeeded, &dwNeeded, &dwReturned);
-        if (!bFlag) {
-            GlobalFree(ppi2);
-            return NULL;
-        }
-
-        jPrinterName = JNU_NewStringPlatform(env, ppi2->pPrinterName);
-        GlobalFree(ppi2);
-        return jPrinterName;
-
-   } else if (osv.dwPlatformId == VER_PLATFORM_WIN32_NT) {
+    // If Windows 2000, XP, Vista
+    if (osv.dwPlatformId == VER_PLATFORM_WIN32_NT) {
 
        // Retrieve the default string from Win.ini (the registry).
        // String will be in form "printername,drivername,portname".
@@ -165,62 +133,32 @@
     jobjectArray nameArray;
 
     try {
-        if (IS_NT) {
-            ::EnumPrinters(PRINTER_ENUM_LOCAL | PRINTER_ENUM_CONNECTIONS,
-                           NULL, 4, NULL, 0, &cbNeeded, &cReturned);
-            pPrinterEnum = new BYTE[cbNeeded];
-            ::EnumPrinters(PRINTER_ENUM_LOCAL | PRINTER_ENUM_CONNECTIONS,
-                           NULL, 4, pPrinterEnum, cbNeeded, &cbNeeded,
-                           &cReturned);
+        ::EnumPrinters(PRINTER_ENUM_LOCAL | PRINTER_ENUM_CONNECTIONS,
+                       NULL, 4, NULL, 0, &cbNeeded, &cReturned);
+        pPrinterEnum = new BYTE[cbNeeded];
+        ::EnumPrinters(PRINTER_ENUM_LOCAL | PRINTER_ENUM_CONNECTIONS,
+                       NULL, 4, pPrinterEnum, cbNeeded, &cbNeeded,
+                       &cReturned);
 
-            if (cReturned > 0) {
-                nameArray = env->NewObjectArray(cReturned, clazz, NULL);
-                if (nameArray == NULL) {
-                    throw std::bad_alloc();
-                }
-            } else {
-                nameArray = NULL;
+        if (cReturned > 0) {
+            nameArray = env->NewObjectArray(cReturned, clazz, NULL);
+            if (nameArray == NULL) {
+                throw std::bad_alloc();
             }
+        } else {
+            nameArray = NULL;
+        }
 
 
-            for (DWORD i = 0; i < cReturned; i++) {
-                PRINTER_INFO_4 *info4 = (PRINTER_INFO_4 *)
-                    (pPrinterEnum + i * sizeof(PRINTER_INFO_4));
-                utf_str = JNU_NewStringPlatform(env, info4->pPrinterName);
-                if (utf_str == NULL) {
-                    throw std::bad_alloc();
-                }
-                env->SetObjectArrayElement(nameArray, i, utf_str);
-                env->DeleteLocalRef(utf_str);
+        for (DWORD i = 0; i < cReturned; i++) {
+            PRINTER_INFO_4 *info4 = (PRINTER_INFO_4 *)
+                (pPrinterEnum + i * sizeof(PRINTER_INFO_4));
+            utf_str = JNU_NewStringPlatform(env, info4->pPrinterName);
+            if (utf_str == NULL) {
+                throw std::bad_alloc();
             }
-        } else {
-            ::EnumPrinters(PRINTER_ENUM_LOCAL,
-                           NULL, 5, NULL, 0, &cbNeeded, &cReturned);
-            pPrinterEnum = new BYTE[cbNeeded];
-            ::EnumPrinters(PRINTER_ENUM_LOCAL,
-                           NULL, 5, pPrinterEnum, cbNeeded, &cbNeeded,
-                           &cReturned);
-
-            if (cReturned > 0) {
-                nameArray = env->NewObjectArray(cReturned, clazz, NULL);
-                if (nameArray == NULL) {
-                    throw std::bad_alloc();
-                }
-            } else {
-                nameArray = NULL;
-            }
-
-
-            for (DWORD i = 0; i < cReturned; i++) {
-                PRINTER_INFO_5 *info5 = (PRINTER_INFO_5 *)
-                    (pPrinterEnum + i * sizeof(PRINTER_INFO_5));
-                utf_str = JNU_NewStringPlatform(env, info5->pPrinterName);
-                if (utf_str == NULL) {
-                    throw std::bad_alloc();
-                }
-                env->SetObjectArrayElement(nameArray, i, utf_str);
-                env->DeleteLocalRef(utf_str);
-            }
+            env->SetObjectArrayElement(nameArray, i, utf_str);
+            env->DeleteLocalRef(utf_str);
         }
     } catch (std::bad_alloc&) {
         delete [] pPrinterEnum;
@@ -872,7 +810,7 @@
       int numSizes = ::DeviceCapabilities(printerName, printerPort,
                                           DC_PAPERS, NULL, NULL);
       if (numSizes > 0) {
-          LPWORD papers = (LPWORD)safe_Malloc(numSizes * sizeof(WORD));
+          LPTSTR papers = (LPTSTR)safe_Malloc(numSizes * sizeof(WORD));
           if (papers != NULL &&
               ::DeviceCapabilities(printerName, printerPort,
                                    DC_PAPERS, papers, NULL) != -1) {
--- a/jdk/src/windows/native/sun/windows/awt.h	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt.h	Wed Jul 05 16:47:27 2017 +0200
@@ -26,10 +26,21 @@
 #ifndef _AWT_H_
 #define _AWT_H_
 
+#ifndef _WIN32_WINNT
+#define _WIN32_WINNT 0x0600
+#endif
+
+#ifndef _WIN32_IE
+#define _WIN32_IE 0x0600
+#endif
+
+//#ifndef NTDDI_VERSION
+//#define NTDDI_VERSION NTDDI_LONGHORN
+//#endif
+
 #include "stdhdrs.h"
 #include "alloc.h"
 #include "awt_Debug.h"
-#include "UnicowsLoader.h"
 
 extern COLORREF DesktopColor2RGB(int colorIndex);
 
@@ -129,40 +140,23 @@
 /*  /NEW JNI */
 
 /*
- * IS_NT returns TRUE on NT, 2000, XP
- * IS_WIN2000 returns TRUE on 2000, XP
- * IS_WINXP returns TRUE on XP
- * IS_WIN95 returns TRUE on 95, 98, ME
- * IS_WIN98 returns TRUE on 98, ME
- * IS_WINME returns TRUE on ME
- * IS_WIN32 returns TRUE on 32-bit Pentium and
- * 64-bit Itanium.
  * IS_WIN64 returns TRUE on 64-bit Itanium
- *
- * uname -s returns Windows_95 on 95
- * uname -s returns Windows_98 on 98 and ME
- * uname -s returns Windows_NT on NT and 2000 and XP
  */
-#if defined (WIN32)
-    #define IS_WIN32 TRUE
-#else
-    #define IS_WIN32 FALSE
-#endif
 #if defined (_WIN64)
     #define IS_WIN64 TRUE
 #else
     #define IS_WIN64 FALSE
 #endif
-#define IS_NT      (IS_WIN32 && !(::GetVersion() & 0x80000000))
-#define IS_WIN2000 (IS_NT && LOBYTE(LOWORD(::GetVersion())) >= 5)
-#define IS_WIN2003 (IS_NT && LOBYTE(LOWORD(::GetVersion())) == 5 && HIBYTE(LOWORD(::GetVersion())) >= 2)
-#define IS_WINXP   (IS_NT && (IS_WIN2000 && HIBYTE(LOWORD(::GetVersion())) >= 1) || LOBYTE(LOWORD(::GetVersion())) > 5)
-#define IS_WINVISTA (IS_NT && LOBYTE(LOWORD(::GetVersion())) >= 6)
-#define IS_WIN32S  (IS_WIN32 && !IS_NT && LOBYTE(LOWORD(::GetVersion())) < 4)
-#define IS_WIN95   (IS_WIN32 && !IS_NT && LOBYTE(LOWORD(::GetVersion())) >= 4)
-#define IS_WIN98   (IS_WIN95 && HIBYTE(LOWORD(::GetVersion())) >= 10)
-#define IS_WINME   (IS_WIN95 && HIBYTE(LOWORD(::GetVersion())) >= 90)
-#define IS_WIN4X   (IS_WIN32 && LOBYTE(::GetVersion()) >= 4)
+
+/*
+ * IS_WIN2000 returns TRUE on 2000, XP and Vista
+ * IS_WINXP returns TRUE on XP and Vista
+ * IS_WINVISTA returns TRUE on Vista
+ */
+#define IS_WIN2000 (LOBYTE(LOWORD(::GetVersion())) >= 5)
+#define IS_WINXP ((IS_WIN2000 && HIBYTE(LOWORD(::GetVersion())) >= 1) || LOBYTE(LOWORD(::GetVersion())) > 5)
+#define IS_WINVISTA (LOBYTE(LOWORD(::GetVersion())) >= 6)
+
 #define IS_WINVER_ATLEAST(maj, min) \
                    ((maj) < LOBYTE(LOWORD(::GetVersion())) || \
                       (maj) == LOBYTE(LOWORD(::GetVersion())) && \
@@ -177,6 +171,12 @@
 
 extern JavaVM *jvm;
 
+// Platform encoding is Unicode (UTF-16), re-define JNU_ functions
+// to proper JNI functions.
+#define JNU_NewStringPlatform(env, x) env->NewString(reinterpret_cast<jchar*>(x), static_cast<jsize>(_tcslen(x)))
+#define JNU_GetStringPlatformChars(env, x, y) reinterpret_cast<LPCWSTR>(env->GetStringChars(x, y))
+#define JNU_ReleaseStringPlatformChars(env, x, y) env->ReleaseStringChars(x, reinterpret_cast<const jchar*>(y))
+
 /*
  * Itanium symbols needed for 64-bit compilation.
  * These are defined in winuser.h in the August 2001 MSDN update.
@@ -211,17 +211,12 @@
  * NOTE: float.h must be defined if using these macros
  */
 #define SAVE_CONTROLWORD  \
-   unsigned int fpu_cw = _CW_DEFAULT;   \
-   if (IS_WIN95) {  \
-       fpu_cw = _control87(0, 0);  \
-   }
+  unsigned int fpu_cw = _control87(0, 0);
 
-#define RESTORE_CONTROLWORD   \
-   if (IS_WIN95) { \
-       if ( _control87(0, 0) != fpu_cw) {  \
-              _control87(fpu_cw, 0xfffff);   \
-       }   \
-   }
+#define RESTORE_CONTROLWORD  \
+  if (_control87(0, 0) != fpu_cw) {  \
+    _control87(fpu_cw, 0xffffffff);  \
+  }
 
 /*
  * checks if the current thread is/isn't the toolkit thread
--- a/jdk/src/windows/native/sun/windows/awt_Button.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_Button.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1996-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
  * have any questions.
  */
 
-#include <jni.h>
+#include "awt.h"
 
 #include "awt_Object.h"    /* wop_pDataID */
 #include "awt_Toolkit.h"
@@ -106,7 +106,7 @@
         if (label == NULL) {
             labelStr = L"";
         } else {
-            labelStr = env->GetStringChars(label, JNI_FALSE);
+            labelStr = JNU_GetStringPlatformChars(env, label, JNI_FALSE);
         }
         style = 0;
 
@@ -128,7 +128,7 @@
         c->m_backgroundColorSet = TRUE;  // suppress inheriting parent's color
         c->UpdateBackground(env, target);
         if (label != NULL)
-            env->ReleaseStringChars(label, labelStr);
+            JNU_ReleaseStringPlatformChars(env, label, labelStr);
     } catch (...) {
         env->DeleteLocalRef(target);
         if (label != NULL)
--- a/jdk/src/windows/native/sun/windows/awt_Checkbox.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_Checkbox.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -23,6 +23,7 @@
  * have any questions.
  */
 
+#include "awt.h"
 #include "awt_Toolkit.h"
 #include "awt_Checkbox.h"
 #include "awt_KeyboardFocusManager.h"
@@ -106,7 +107,7 @@
 
             label = (jstring)env->GetObjectField(target, AwtCheckbox::labelID);
             if (label != NULL) {
-                labelStr = env->GetStringChars(label, 0);
+                labelStr = JNU_GetStringPlatformChars(env, label, 0);
             }
             if (labelStr != 0) {
                 jint x = env->GetIntField(target, AwtComponent::xID);
@@ -123,7 +124,7 @@
                                      peer);
 
                 if (labelStr != defaultLabelStr) {
-                    env->ReleaseStringChars(label, labelStr);
+                    JNU_ReleaseStringPlatformChars(env, label, labelStr);
                 }
             } else {
                 throw std::bad_alloc();
--- a/jdk/src/windows/native/sun/windows/awt_Choice.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_Choice.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1996-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -206,7 +206,7 @@
     fieldHeight =(int)::SendMessage(GetHWnd(), CB_GETITEMHEIGHT, (UINT)-1, 0);
     // add top and bottom border lines; border size is different for
     // Win 4.x (3d edge) vs 3.x (1 pixel line)
-    borderHeight = ::GetSystemMetrics(IS_WIN4X ? SM_CYEDGE : SM_CYBORDER);
+    borderHeight = ::GetSystemMetrics(SM_CYEDGE);
     fieldHeight += borderHeight*2;
     return fieldHeight;
 }
@@ -424,6 +424,9 @@
     case mrPassAlong:
         return AwtComponent::WmKillFocus(hWndGotFocus);
     }
+
+    DASSERT(false); // must never reach here
+    return mrDoDefault;
 }
 
 MsgRouting
--- a/jdk/src/windows/native/sun/windows/awt_Color.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_Color.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1996-1999 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -97,7 +97,7 @@
         iColor = COLOR_MENUTEXT;
         break;
     case sun_awt_windows_WColor_BUTTON_BKGND:
-        iColor = (IS_NT) ? COLOR_BTNFACE : COLOR_3DFACE;
+        iColor = COLOR_BTNFACE;
         break;
     case sun_awt_windows_WColor_BUTTON_TEXT:
         iColor = COLOR_BTNTEXT;
--- a/jdk/src/windows/native/sun/windows/awt_Component.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_Component.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -23,7 +23,8 @@
  * have any questions.
  */
 
-#include "windows.h"
+#include "awt.h"
+
 #include <windowsx.h>
 #include <zmouse.h>
 
@@ -42,7 +43,6 @@
 #include "awt_MouseEvent.h"
 #include "awt_Palette.h"
 #include "awt_Toolkit.h"
-#include "awt_Unicode.h"
 #include "awt_Window.h"
 #include "awt_Win32GraphicsDevice.h"
 #include "Hashtable.h"
@@ -67,30 +67,10 @@
 #include <java_awt_event_MouseWheelEvent.h>
 
 // Begin -- Win32 SDK include files
-#include <tchar.h>
 #include <imm.h>
 #include <ime.h>
 // End -- Win32 SDK include files
 
-#ifndef GET_KEYSTATE_WPARAM     // defined for (_WIN32_WINNT >= 0x0400)
-#define GET_KEYSTATE_WPARAM(wParam)     (LOWORD(wParam))
-#endif
-
-#ifndef GET_WHEEL_DELTA_WPARAM  // defined for (_WIN32_WINNT >= 0x0500)
-#define GET_WHEEL_DELTA_WPARAM(wParam)  ((short)HIWORD(wParam))
-#endif
-
-// <XXX> <!-- TEMPORARY HACK TO TEST AGAINST OLD VC INLCUDES -->
-#if !defined(__int3264)
-#define GetWindowLongPtr GetWindowLong
-#define SetWindowLongPtr SetWindowLong
-#define GWLP_USERDATA GWL_USERDATA
-#define GWLP_WNDPROC  GWL_WNDPROC
-typedef __int32 LONG_PTR;
-typedef unsigned __int32 ULONG_PTR;
-#endif // __int3264
-// </XXX>
-
 #include <awt_DnDDT.h>
 
 LPCTSTR szAwtComponentClassName = TEXT("SunAwtComponent");
@@ -207,9 +187,7 @@
 UINT   AwtComponent::m_CodePage
                        = AwtComponent::LangToCodePage(m_idLang);
 
-BOOL AwtComponent::m_isWin95 = IS_WIN95;
-BOOL AwtComponent::m_isWin2000 = IS_WIN2000;
-BOOL AwtComponent::m_isWinNT = IS_NT;
+jint *AwtComponent::masks;
 
 static BOOL bLeftShiftIsDown = false;
 static BOOL bRightShiftIsDown = false;
@@ -544,7 +522,7 @@
         jobject createError = NULL;
         if (dw == ERROR_OUTOFMEMORY)
         {
-            jstring errorMsg = env->NewStringUTF("too many window handles");
+            jstring errorMsg = JNU_NewStringPlatform(env, L"too many window handles");
             createError = JNU_NewObjectByName(env, "java/lang/OutOfMemoryError",
                                                       "(Ljava/lang/String;)V",
                                                       errorMsg);
@@ -1201,6 +1179,9 @@
         WIN_MSG(WM_MBUTTONDOWN)
         WIN_MSG(WM_MBUTTONUP)
         WIN_MSG(WM_MBUTTONDBLCLK)
+        WIN_MSG(WM_XBUTTONDBLCLK)
+        WIN_MSG(WM_XBUTTONDOWN)
+        WIN_MSG(WM_XBUTTONUP)
         WIN_MSG(WM_MOUSEWHEEL)
         WIN_MSG(WM_PARENTNOTIFY)
         WIN_MSG(WM_ENTERMENULOOP)
@@ -1347,17 +1328,9 @@
         return (LRESULT)TRUE;
     }
 
-    UINT switchMessage;
-    if (IS_WIN95 && !IS_WIN98 && message == Wheel95GetMsg()) {
-        // Wheel message is generated dynamically on 95.  A quick swap and
-        // we're good to go.
-        DTRACE_PRINTLN1("got wheel event on 95.  msg is %i\n", message);
-        switchMessage = WM_MOUSEWHEEL;
-    }
-    else {
-        switchMessage = message;
-    }
-
+    DWORD curPos = 0;
+
+    UINT switchMessage = message;
     switch (switchMessage) {
       case WM_AWT_GETDC:
       {
@@ -1644,67 +1617,87 @@
       case WM_MBUTTONDOWN:
       case WM_MBUTTONDBLCLK:
       case WM_MBUTTONUP:
+      case WM_XBUTTONDBLCLK:
+      case WM_XBUTTONDOWN:
+      case WM_XBUTTONUP:
       case WM_MOUSEMOVE:
       case WM_MOUSEWHEEL:
       case WM_AWT_MOUSEENTER:
       case WM_AWT_MOUSEEXIT:
-      {
-          DWORD curPos = ::GetMessagePos();
+          curPos = ::GetMessagePos();
           POINT myPos;
           myPos.x = GET_X_LPARAM(curPos);
           myPos.y = GET_Y_LPARAM(curPos);
           ::ScreenToClient(GetHWnd(), &myPos);
           switch(switchMessage) {
           case WM_AWT_MOUSEENTER:
-              mr = WmMouseEnter(static_cast<UINT>(wParam), myPos.x, myPos.y); break;
+              mr = WmMouseEnter(static_cast<UINT>(wParam), myPos.x, myPos.y);
+              break;
           case WM_LBUTTONDOWN:
           case WM_LBUTTONDBLCLK:
-                mr = WmMouseDown(static_cast<UINT>(wParam), myPos.x, myPos.y,
-                           LEFT_BUTTON); break;
-            case WM_LBUTTONUP:
-                mr = WmMouseUp(static_cast<UINT>(wParam), myPos.x, myPos.y,
-                               LEFT_BUTTON); break;
-            case WM_MOUSEMOVE:
-                mr = WmMouseMove(static_cast<UINT>(wParam), myPos.x, myPos.y); break;
-      case WM_MBUTTONDOWN:
-      case WM_MBUTTONDBLCLK:
-                mr = WmMouseDown(static_cast<UINT>(wParam), myPos.x, myPos.y,
-                           MIDDLE_BUTTON); break;
-      case WM_RBUTTONDOWN:
-      case WM_RBUTTONDBLCLK:
-                mr = WmMouseDown(static_cast<UINT>(wParam), myPos.x, myPos.y,
-                           RIGHT_BUTTON); break;
-      case WM_RBUTTONUP:
-                mr = WmMouseUp(static_cast<UINT>(wParam), myPos.x, myPos.y,
-                         RIGHT_BUTTON);
-          break;
-      case WM_MBUTTONUP:
-                mr = WmMouseUp(static_cast<UINT>(wParam), myPos.x, myPos.y,
-                         MIDDLE_BUTTON);
-          break;
-      case WM_AWT_MOUSEEXIT:
-                mr = WmMouseExit(static_cast<UINT>(wParam), myPos.x, myPos.y);
-          break;
-      case  WM_MOUSEWHEEL:
-          if (IS_WIN95 && !IS_WIN98) {
-              // On 95, the wParam doesn't contain the keystate flags, just
-              // the wheel rotation.  The keystates are fetched in WmMouseWheel
-              // using GetJavaModifiers().
-              mr = WmMouseWheel(0,
-                                GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam),
-                                (int)wParam);
-              return FALSE;
-          }
-          else {
+              mr = WmMouseDown(static_cast<UINT>(wParam), myPos.x, myPos.y,
+                               LEFT_BUTTON);
+              break;
+          case WM_LBUTTONUP:
+              mr = WmMouseUp(static_cast<UINT>(wParam), myPos.x, myPos.y,
+                             LEFT_BUTTON);
+              break;
+          case WM_MOUSEMOVE:
+              mr = WmMouseMove(static_cast<UINT>(wParam), myPos.x, myPos.y);
+              break;
+          case WM_MBUTTONDOWN:
+          case WM_MBUTTONDBLCLK:
+              mr = WmMouseDown(static_cast<UINT>(wParam), myPos.x, myPos.y,
+                               MIDDLE_BUTTON);
+              break;
+          case WM_XBUTTONDOWN:
+          case WM_XBUTTONDBLCLK:
+              if (AwtToolkit::GetInstance().areExtraMouseButtonsEnabled()) {
+                  if (HIWORD(wParam) == 1) {
+                      mr = WmMouseDown(static_cast<UINT>(wParam), myPos.x, myPos.y,
+                                       X1_BUTTON);
+                  }
+                  if (HIWORD(wParam) == 2) {
+                      mr = WmMouseDown(static_cast<UINT>(wParam), myPos.x, myPos.y,
+                                       X2_BUTTON);
+                  }
+              }
+              break;
+          case WM_XBUTTONUP:
+              if (AwtToolkit::GetInstance().areExtraMouseButtonsEnabled()) {
+                  if (HIWORD(wParam) == 1) {
+                      mr = WmMouseUp(static_cast<UINT>(wParam), myPos.x, myPos.y,
+                                     X1_BUTTON);
+                  }
+                  if (HIWORD(wParam) == 2) {
+                      mr = WmMouseUp(static_cast<UINT>(wParam), myPos.x, myPos.y,
+                                     X2_BUTTON);
+                  }
+              }
+              break;
+          case WM_RBUTTONDOWN:
+          case WM_RBUTTONDBLCLK:
+              mr = WmMouseDown(static_cast<UINT>(wParam), myPos.x, myPos.y,
+                               RIGHT_BUTTON);
+              break;
+          case WM_RBUTTONUP:
+              mr = WmMouseUp(static_cast<UINT>(wParam), myPos.x, myPos.y,
+                             RIGHT_BUTTON);
+              break;
+          case WM_MBUTTONUP:
+              mr = WmMouseUp(static_cast<UINT>(wParam), myPos.x, myPos.y,
+                             MIDDLE_BUTTON);
+              break;
+          case WM_AWT_MOUSEEXIT:
+              mr = WmMouseExit(static_cast<UINT>(wParam), myPos.x, myPos.y);
+              break;
+          case  WM_MOUSEWHEEL:
               mr = WmMouseWheel(GET_KEYSTATE_WPARAM(wParam),
                                 GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam),
                                 GET_WHEEL_DELTA_WPARAM(wParam));
+              break;
           }
           break;
-          }
-      }
-          break;
-
       case WM_SETCURSOR:
           mr = mrDoDefault;
           if (LOWORD(lParam) == HTCLIENT) {
@@ -2589,8 +2582,12 @@
         lastComp = this;
         lastX = x;
         lastY = y;
-
-        if ( (flags & ALL_MK_BUTTONS) != 0 ) {
+        BOOL extraButtonsEnabled = AwtToolkit::GetInstance().areExtraMouseButtonsEnabled();
+        if (((flags & (ALL_MK_BUTTONS)) != 0) ||
+            (extraButtonsEnabled && (flags & (X_BUTTONS)) != 0))
+//        if (( extraButtonsEnabled && ( (flags & (ALL_MK_BUTTONS | X_BUTTONS)) != 0 )) ||
+//            ( !extraButtonsEnabled && (((flags & (ALL_MK_BUTTONS)) != 0 )) && ((flags & (X_BUTTONS)) == 0) ))
+        {
             // 6404008 : if Dragged event fired we shouldn't fire
             // Clicked event: m_firstDragSent set to TRUE.
             // This is a partial backout of 5039416 fix.
@@ -2649,21 +2646,10 @@
     jdouble preciseWheelRotation = (jdouble) wheelRotation / (-1 * WHEEL_DELTA);
 
     MSG msg;
-
-    if (IS_WIN95 && !IS_WIN98) {
-        // 95 doesn't understand the SPI_GETWHEELSCROLLLINES - get the user
-        // preference by other means
-        DTRACE_PRINTLN("WmMouseWheel: using 95 branch");
-        platformLines = Wheel95GetScrLines();
-        result = true;
-        InitMessage(&msg, lastMessage, wheelRotation, MAKELPARAM(x, y));
-    }
-    else {
-        result = ::SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0,
-                                        &platformLines, 0);
-        InitMessage(&msg, lastMessage, MAKEWPARAM(flags, wheelRotation),
-                            MAKELPARAM(x, y));
-    }
+    result = ::SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0,
+                                    &platformLines, 0);
+    InitMessage(&msg, lastMessage, MAKEWPARAM(flags, wheelRotation),
+                MAKELPARAM(x, y));
 
     if (result) {
         if (platformLines == WHEEL_PAGESCROLL) {
@@ -2743,156 +2729,21 @@
       "AwtComponent::GetShiftKeyLocation  vkey = %d = 0x%x  scan = %d",
       vkey, vkey, keyScanCode);
 
-    if (m_isWinNT) {
-        leftShiftScancode = ::MapVirtualKey(VK_LSHIFT, 0);
-        rightShiftScancode = ::MapVirtualKey(VK_RSHIFT, 0);
-
-        if (keyScanCode == leftShiftScancode) {
-            return java_awt_event_KeyEvent_KEY_LOCATION_LEFT;
-        }
-        if (keyScanCode == rightShiftScancode) {
-            return java_awt_event_KeyEvent_KEY_LOCATION_RIGHT;
-        }
-
-        DASSERT(false);
-        // Note: the above should not fail on NT (or 2000),
-        // but just in case it does, try the more complicated method
-        // we use for Win9x below.
-    }
-
-    // "Transition" bit = 0 if keyPressed, 1 if keyReleased
-    BOOL released = ((1<<15) & flags);
-
-    DTRACE_PRINTLN2(
-      "AwtComponent::GetShiftKeyLocation  bLeftShiftIsDown = %d  bRightShiftIsDown == %d",
-      bLeftShiftIsDown, bRightShiftIsDown);
-    DTRACE_PRINTLN2(
-      "AwtComponent::GetShiftKeyLocation  lastShiftKeyPressed = %d  released = %d",
-      lastShiftKeyPressed, released);
-
-    jint keyLocation = java_awt_event_KeyEvent_KEY_LOCATION_UNKNOWN;
-
-    // It is possible for somebody to hold down one or both
-    // Shift keys, causing repeat key events.  We need to
-    // handle all the cases.
-    //
-    // Just a side-note: if two or more keys are being held down,
-    // and then one key is released, whether more key presses are
-    // generated for the keys that are still held down depends on
-    // which keys they are, and whether you released the right or
-    // the left shift/ctrl/etc. key first.  This also differs
-    // between Win9x and NT.  Just plain screwy.
-    //
-    // Note: on my PC, the repeat count is always 1.  Yup, we need
-    // 16 bits to handle that, all right.
-
-    // Handle the case where only one of the Shift keys
-    // was down before this event took place
-    if (bLeftShiftIsDown && !bRightShiftIsDown) {
-        if (released) {
-            // This is a left Shift release
-            keyLocation = java_awt_event_KeyEvent_KEY_LOCATION_LEFT;
-        } else {
-            // This is a right Shift press
-            keyLocation = java_awt_event_KeyEvent_KEY_LOCATION_RIGHT;
-        }
-    } else if (!bLeftShiftIsDown && bRightShiftIsDown) {
-        if (released) {
-            // This is a right Shift release
-            keyLocation = java_awt_event_KeyEvent_KEY_LOCATION_RIGHT;
-        } else {
-            // This is a left Shift press
-            keyLocation = java_awt_event_KeyEvent_KEY_LOCATION_LEFT;
-        }
-    }
-
-    // Handle the case where neither of the Shift keys
-    // were down before this event took place
-    if (!bLeftShiftIsDown && !bRightShiftIsDown) {
-        DASSERT(!released);
-        if (HIBYTE(::GetKeyState(VK_LSHIFT)) != 0) {
-            // This is a left Shift press
-            keyLocation = java_awt_event_KeyEvent_KEY_LOCATION_LEFT;
-        } else if (HIBYTE(::GetKeyState(VK_RSHIFT)) != 0) {
-            // This is a right Shift press
-            keyLocation = java_awt_event_KeyEvent_KEY_LOCATION_RIGHT;
-        } else {
-            DASSERT(false);
-        }
-    }
-
-    // Handle the case where both Shift keys were down before
-    // this event took place
-    if (bLeftShiftIsDown && bRightShiftIsDown) {
-        // If this is a key release event, we can just check to see
-        // what the keyboard state is after the event
-        if (released) {
-            if (HIBYTE(::GetKeyState(VK_RSHIFT)) == 0) {
-                // This is a right Shift release
-                keyLocation = java_awt_event_KeyEvent_KEY_LOCATION_RIGHT;
-            } else if (HIBYTE(::GetKeyState(VK_LSHIFT)) == 0) {
-                // This is a left Shift release
-                keyLocation = java_awt_event_KeyEvent_KEY_LOCATION_LEFT;
-            } else {
-                DASSERT(false);
-            }
-        } else {
-            // If this is a key press event, and both Shift keys were
-            // already down, this is going to be a repeat of the last
-            // Shift press
-            if (lastShiftKeyPressed == VK_LSHIFT) {
-                keyLocation = java_awt_event_KeyEvent_KEY_LOCATION_LEFT;
-            } else if (lastShiftKeyPressed == VK_RSHIFT) {
-                keyLocation = java_awt_event_KeyEvent_KEY_LOCATION_RIGHT;
-            } else {
-                DASSERT(false);
-            }
-        }
-    }
-
-    if (keyLocation == java_awt_event_KeyEvent_KEY_LOCATION_UNKNOWN) {
-        // Nothing we tried above worked for some reason.  Sigh.
-        // Make a last-ditch effort to guess what happened:
-        // guess that the Shift scancodes are usually the same
-        // from system to system, even though this isn't guaranteed.
-        DTRACE_PRINTLN("Last-ditch effort at guessing Shift keyLocation");
-
-        // Tested on a couple of Windows keyboards: these are standard values
-        leftShiftScancode = 42;
-        rightShiftScancode = 54;
-
-        if (keyScanCode == leftShiftScancode) {
-            keyLocation = java_awt_event_KeyEvent_KEY_LOCATION_LEFT;
-        } else if (keyScanCode == rightShiftScancode) {
-            keyLocation = java_awt_event_KeyEvent_KEY_LOCATION_RIGHT;
-        }
-    }
-
-    // Set the Shift flags with the new key state.
-    bLeftShiftIsDown = (HIBYTE(::GetKeyState(VK_LSHIFT)) != 0);
-    bRightShiftIsDown = (HIBYTE(::GetKeyState(VK_RSHIFT)) != 0);
-
-    // Update lastShiftKeyPressed
-    if (released) {
-        // At most one shift key is down now, so just check which one
-        if (bLeftShiftIsDown) {
-            lastShiftKeyPressed = VK_LSHIFT;
-            DASSERT(!bRightShiftIsDown);
-        } else if (bRightShiftIsDown) {
-            lastShiftKeyPressed = VK_RSHIFT;
-        } else {
-            lastShiftKeyPressed = 0;
-        }
-    } else {
-        // It was a press, so at least one shift key is down now
-        if (keyLocation == java_awt_event_KeyEvent_KEY_LOCATION_LEFT) {
-            lastShiftKeyPressed = VK_LSHIFT;
-        } else if (keyLocation == java_awt_event_KeyEvent_KEY_LOCATION_RIGHT) {
-            lastShiftKeyPressed = VK_RSHIFT;
-        }
-    }
-
-    return keyLocation;
+    leftShiftScancode = ::MapVirtualKey(VK_LSHIFT, 0);
+    rightShiftScancode = ::MapVirtualKey(VK_RSHIFT, 0);
+
+    if (keyScanCode == leftShiftScancode) {
+        return java_awt_event_KeyEvent_KEY_LOCATION_LEFT;
+    }
+    if (keyScanCode == rightShiftScancode) {
+        return java_awt_event_KeyEvent_KEY_LOCATION_RIGHT;
+    }
+
+    DASSERT(false);
+    // Note: the above should not fail on NT (or 2000)
+
+    // default value
+    return java_awt_event_KeyEvent_KEY_LOCATION_LEFT;
 }
 
 /* Returns Java extended InputEvent modifieres.
@@ -2914,7 +2765,7 @@
         modifiers |= java_awt_event_InputEvent_ALT_DOWN_MASK;
     }
     if (HIBYTE(::GetKeyState(VK_MBUTTON)) != 0) {
-        modifiers |= java_awt_event_InputEvent_BUTTON2_DOWN_MASK;
+       modifiers |= java_awt_event_InputEvent_BUTTON2_DOWN_MASK;
     }
     if (HIBYTE(::GetKeyState(VK_RBUTTON)) != 0) {
         modifiers |= java_awt_event_InputEvent_BUTTON3_DOWN_MASK;
@@ -2922,6 +2773,13 @@
     if (HIBYTE(::GetKeyState(VK_LBUTTON)) != 0) {
         modifiers |= java_awt_event_InputEvent_BUTTON1_DOWN_MASK;
     }
+
+    if (HIBYTE(::GetKeyState(VK_XBUTTON1)) != 0) {
+        modifiers |= masks[3];
+    }
+    if (HIBYTE(::GetKeyState(VK_XBUTTON2)) != 0) {
+        modifiers |= masks[4];
+    }
     return modifiers;
 }
 
@@ -2936,6 +2794,11 @@
         return java_awt_event_MouseEvent_BUTTON2;
     case RIGHT_BUTTON:
         return java_awt_event_MouseEvent_BUTTON3;
+    case X1_BUTTON: //16 :
+        //just assign 4 and 5 numbers because MouseEvent class doesn't contain const identifier for them now
+        return 4;
+    case X2_BUTTON: //32
+        return 5;
     }
     return java_awt_event_MouseEvent_NOBUTTON;
 }
@@ -2950,6 +2813,10 @@
         return MK_MBUTTON;
     case RIGHT_BUTTON:
         return MK_RBUTTON;
+    case X1_BUTTON:
+        return MK_XBUTTON1;
+    case X2_BUTTON:
+        return MK_XBUTTON2;
     }
     return 0;
 }
@@ -2967,6 +2834,14 @@
 #define VK_NONCONVERT     0x1D
 #endif
 
+#ifndef VK_XBUTTON1
+#define VK_XBUTTON1      0x05
+#endif
+
+#ifndef VK_XBUTTON2
+#define VK_XBUTTON2      0x06
+#endif
+
 typedef struct {
     UINT javaKey;
     UINT windowsKey;
@@ -3786,22 +3661,6 @@
     // via WM_AWT_FORWARD_BYTE, but the Edit classes don't seem to
     // like that.
 
-    // Begin pollution
-    if (!m_isWinNT && IsDBCSLeadByteEx(GetCodePage(), BYTE(character))) {
-        if (GetDBCSEditHandle() != NULL) {
-            return mrDoDefault;
-        } else {
-            // Kludge: Some Chinese IMEs, e.g. QuanPin, sends two WM_CHAR
-            // messages for some punctuations (e.g. full stop) without sending
-            // WM_IME_CHAR message beforehand.
-            if (m_PendingLeadByte == 0) {
-                m_PendingLeadByte = character;
-                return mrConsume;
-            }
-        }
-    }
-    // End pollution
-
     // We will simply create Java events here.
     UINT message = system ? WM_SYSCHAR : WM_CHAR;
 
@@ -3861,43 +3720,8 @@
 MsgRouting AwtComponent::WmForwardChar(WCHAR character, LPARAM lParam,
                                        BOOL synthetic)
 {
-    if (m_isWinNT) {
-        // just post WM_CHAR with unicode key value
-        DefWindowProc(WM_CHAR, (WPARAM)character, lParam);
-        return mrConsume;
-    }
-
-    // This message is sent from the Java key event handler.
-    CHAR mbChar[2] = {'\0', '\0'};
-
-    int cBytes = ::WideCharToMultiByte(GetCodePage(), 0, &character, 1, mbChar, 2, NULL, NULL);
-    if (cBytes!=1 && cBytes!=2)    return mrConsume;
-
-    HWND hDBCSEditHandle = GetDBCSEditHandle();
-
-    if (hDBCSEditHandle != NULL && cBytes==2)
-    {
-        // The first WM_CHAR message will get handled by the WmChar, but
-        // the second WM_CHAR message will get picked off by the Edit class.
-        // WmChar will never see it.
-        // If an Edit class gets a lead byte, it immediately calls PeekMessage
-        // and pulls the trail byte out of the message queue.
-        ::PostMessage(hDBCSEditHandle, WM_CHAR, mbChar[0] & 0x00ff, lParam);
-        ::PostMessage(hDBCSEditHandle, WM_CHAR, mbChar[1] & 0x00ff, lParam);
-    }
-    else
-    {
-        MSG* pMsg;
-        pMsg = CreateMessage(WM_CHAR, mbChar[0] & 0x00ff, lParam);
-        ::PostMessage(GetHWnd(), WM_AWT_FORWARD_BYTE, (WPARAM)synthetic,
-                      (LPARAM)pMsg);
-        if (mbChar[1])
-        {
-            pMsg = CreateMessage(WM_CHAR, mbChar[1] & 0x00ff, lParam);
-            ::PostMessage(GetHWnd(), WM_AWT_FORWARD_BYTE, (WPARAM)synthetic,
-                          (LPARAM)pMsg);
-        }
-    }
+    // just post WM_CHAR with unicode key value
+    DefWindowProc(WM_CHAR, (WPARAM)character, lParam);
     return mrConsume;
 }
 
@@ -3929,7 +3753,7 @@
             SetCandidateWindow(iCandType, x-rc.left, y-rc.top);
     }
     if (m_bitsCandType != 0) {
-        DefWindowProc(WM_IME_NOTIFY, IMN_OPENCANDIDATE, m_bitsCandType);
+        ::DefWindowProc(GetHWnd(), WM_IME_NOTIFY, IMN_OPENCANDIDATE, m_bitsCandType);
     }
 }
 
@@ -4543,7 +4367,7 @@
 
         // Special case for components with a sunken border. Windows does not
         // print the border correctly on PCL printers, so we have to do it ourselves.
-        if (IS_WIN4X && (GetStyleEx() & WS_EX_CLIENTEDGE)) {
+        if (GetStyleEx() & WS_EX_CLIENTEDGE) {
             RECT r;
             VERIFY(::GetWindowRect(GetHWnd(), &r));
             VERIFY(::OffsetRect(&r, -r.left, -r.top));
@@ -4559,7 +4383,7 @@
          * We will first print the non-client area with the original offset,
          * then the client area with a corrected offset.
          */
-        if (IS_WIN4X && (GetStyleEx() & WS_EX_CLIENTEDGE)) {
+        if (GetStyleEx() & WS_EX_CLIENTEDGE) {
 
             int nEdgeWidth = ::GetSystemMetrics(SM_CXEDGE);
             int nEdgeHeight = ::GetSystemMetrics(SM_CYEDGE);
@@ -5305,7 +5129,12 @@
           if (modifiers & java_awt_event_InputEvent_BUTTON3_DOWN_MASK) {
               wLow |= MK_MBUTTON;
           }
-
+          if (modifiers & X1_BUTTON) {
+              wLow |= GetButtonMK(X1_BUTTON);
+          }
+          if (modifiers & X2_BUTTON) {
+              wLow |= GetButtonMK(X2_BUTTON);
+          }
 
           wheelAmt = (jint)JNU_CallMethodByName(env,
                                                NULL,
@@ -5319,18 +5148,8 @@
           // convert Java wheel amount value to Win32
           wheelAmt *= -1 * WHEEL_DELTA;
 
-          if (IS_WIN95 && !IS_WIN98) {
-              // 95 doesn't understand WM_MOUSEWHEEL, so plug in value of
-              // mouse wheel event on 95
-              DTRACE_PRINTLN("awt_C::synthmm - 95 case");
-              DASSERT(Wheel95GetMsg() != NULL);
-              message = Wheel95GetMsg();
-              wParam = wheelAmt;
-          }
-          else {
-              message = WM_MOUSEWHEEL;
-              wParam = MAKEWPARAM(wLow, wheelAmt);
-          }
+          message = WM_MOUSEWHEEL;
+          wParam = MAKEWPARAM(wLow, wheelAmt);
 
           break;
       default:
@@ -5445,45 +5264,6 @@
     VerifyState();
 }
 
-/* Initialization of MouseWheel support on Windows 95 */
-void AwtComponent::Wheel95Init() {
-    DASSERT(IS_WIN95 && !IS_WIN98);
-
-    HWND mwHWND = NULL;
-    UINT wheelMSG = WM_NULL;
-    UINT suppMSG = WM_NULL;
-    UINT linesMSG = WM_NULL;
-    BOOL wheelActive;
-    INT lines;
-
-    mwHWND = HwndMSWheel(&wheelMSG, &suppMSG, &linesMSG, &wheelActive, &lines);
-    if (mwHWND != WM_NULL) {
-        sm_95WheelMessage = wheelMSG;
-        sm_95WheelSupport = suppMSG;
-    }
-}
-
-/* Win95 only
- * Return the user's preferred number of lines of test to scroll when the
- * mouse wheel is rotated.
- */
-UINT AwtComponent::Wheel95GetScrLines() {
-    DASSERT(IS_WIN95 && !IS_WIN98);
-    DASSERT(sm_95WheelSupport != NULL);
-
-    HWND mwHWND = NULL;
-    UINT linesMSG = WM_NULL;
-    INT numLines = 3;
-
-    linesMSG = RegisterWindowMessage(MSH_SCROLL_LINES);
-    mwHWND = FindWindow(MSH_WHEELMODULE_CLASS, MSH_WHEELMODULE_TITLE);
-
-    if (mwHWND && linesMSG) {
-        numLines = (INT)::SendMessage(mwHWND, linesMSG, 0, 0);
-    }
-    return numLines;
-}
-
 /*
  * associate an AwtDropTarget with this AwtComponent
  */
@@ -5983,7 +5763,7 @@
     {
         AwtFont *awtFont = (AwtFont *)env->GetLongField(font, AwtFont::pDataID);
         if (awtFont == NULL) {
-        /*arguments of AwtFont::Create are changed for multifont component */
+            /*arguments of AwtFont::Create are changed for multifont component */
             awtFont = AwtFont::Create(env, font);
         }
         env->SetLongField(font, AwtFont::pDataID, (jlong)awtFont);
@@ -6334,30 +6114,36 @@
     c = (AwtComponent *)pData;
     if (::IsWindow(c->GetHWnd()))
     {
-        RGNDATA *pRgnData = NULL;
-        RGNDATAHEADER *pRgnHdr;
-
-        /* reserving memory for the worst case */
-        size_t worstBufferSize = size_t(((x2 - x1) / 2 + 1) * (y2 - y1));
-        pRgnData = (RGNDATA *) safe_Malloc(sizeof(RGNDATAHEADER) +
-                sizeof(RECT_T) * worstBufferSize);
-        pRgnHdr = (RGNDATAHEADER *) pRgnData;
-
-        pRgnHdr->dwSize = sizeof(RGNDATAHEADER);
-        pRgnHdr->iType = RDH_RECTANGLES;
-        pRgnHdr->nRgnSize = 0;
-        pRgnHdr->rcBound.top = 0;
-        pRgnHdr->rcBound.left = 0;
-        pRgnHdr->rcBound.bottom = LONG(y2 - y1);
-        pRgnHdr->rcBound.right = LONG(x2 - x1);
-
-        RECT_T * pRect = (RECT_T *) (((BYTE *) pRgnData) + sizeof(RGNDATAHEADER));
-        pRgnHdr->nCount = RegionToYXBandedRectangles(env, x1, y1, x2, y2, region, &pRect, worstBufferSize);
-
-        HRGN hRgn = ::ExtCreateRegion(NULL,
-                sizeof(RGNDATAHEADER) + sizeof(RECT_T) * pRgnHdr->nCount, pRgnData);
-
-        free(pRgnData);
+        HRGN hRgn = NULL;
+
+        if (region || x1 || x2 || y1 || y2) {
+            // If all the params are zeros, the shape must be simply reset.
+            // Otherwise, convert it into a region.
+            RGNDATA *pRgnData = NULL;
+            RGNDATAHEADER *pRgnHdr;
+
+            /* reserving memory for the worst case */
+            size_t worstBufferSize = size_t(((x2 - x1) / 2 + 1) * (y2 - y1));
+            pRgnData = (RGNDATA *) safe_Malloc(sizeof(RGNDATAHEADER) +
+                    sizeof(RECT_T) * worstBufferSize);
+            pRgnHdr = (RGNDATAHEADER *) pRgnData;
+
+            pRgnHdr->dwSize = sizeof(RGNDATAHEADER);
+            pRgnHdr->iType = RDH_RECTANGLES;
+            pRgnHdr->nRgnSize = 0;
+            pRgnHdr->rcBound.top = 0;
+            pRgnHdr->rcBound.left = 0;
+            pRgnHdr->rcBound.bottom = LONG(y2 - y1);
+            pRgnHdr->rcBound.right = LONG(x2 - x1);
+
+            RECT_T * pRect = (RECT_T *) (((BYTE *) pRgnData) + sizeof(RGNDATAHEADER));
+            pRgnHdr->nCount = RegionToYXBandedRectangles(env, x1, y1, x2, y2, region, &pRect, worstBufferSize);
+
+            hRgn = ::ExtCreateRegion(NULL,
+                    sizeof(RGNDATAHEADER) + sizeof(RECT_T) * pRgnHdr->nCount, pRgnData);
+
+            free(pRgnData);
+        }
 
         ::SetWindowRgn(c->GetHWnd(), hRgn, TRUE);
     }
@@ -6451,6 +6237,18 @@
 Java_java_awt_Component_initIDs(JNIEnv *env, jclass cls)
 {
     TRY;
+    jclass inputEventClazz = env->FindClass("java/awt/event/InputEvent");
+    jmethodID getButtonDownMasksID = env->GetStaticMethodID(inputEventClazz, "getButtonDownMasks", "()[I");
+    jintArray obj = (jintArray)env->CallStaticObjectMethod(inputEventClazz, getButtonDownMasksID);
+    jint * tmp = env->GetIntArrayElements(obj, JNI_FALSE);
+
+    jsize len = env->GetArrayLength(obj);
+    AwtComponent::masks = new jint[len];
+    for (int i = 0; i < len; i++) {
+        AwtComponent::masks[i] = tmp[i];
+    }
+    env->ReleaseIntArrayElements(obj, tmp, 0);
+    env->DeleteLocalRef(obj);
 
     /* class ids */
     jclass peerCls = env->FindClass("sun/awt/windows/WComponentPeer");
@@ -7025,20 +6823,6 @@
     CATCH_BAD_ALLOC_RET(NULL);
 }
 
-/*
- * Class:     sun_awt_windows_WComponentPeer
- * Method:    wheelInit
- * Signature: ()V
- */
-JNIEXPORT void JNICALL
-Java_sun_awt_windows_WComponentPeer_wheelInit(JNIEnv *env, jclass cls)
-{
-    // Only necessary on Win95
-    if (IS_WIN95 && !IS_WIN98) {
-        AwtComponent::Wheel95Init();
-    }
-}
-
 JNIEXPORT jboolean JNICALL
 Java_sun_awt_windows_WComponentPeer_processSynchronousLightweightTransfer(JNIEnv *env, jclass cls,
                                                                           jobject heavyweight,
@@ -7217,7 +7001,9 @@
                                               "getName",
                                               "()Ljava/lang/String;").l;
             DASSERT(!safe_ExceptionOccurred(env));
-            printf("\t%S\n", TO_WSTRING(targetStr));
+            LPCWSTR targetStrW = JNU_GetStringPlatformChars(env, targetStr, NULL);
+            printf("\t%S\n", targetStrW);
+            JNU_ReleaseStringPlatformChars(env, targetStr, targetStrW);
         }
         printf("\twas:       [%d,%d,%dx%d]\n", x, y, width, height);
         if (!fSizeValid) {
--- a/jdk/src/windows/native/sun/windows/awt_Component.h	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_Component.h	Wed Jul 05 16:47:27 2017 +0200
@@ -53,6 +53,22 @@
 #define MIDDLE_BUTTON 2
 #define RIGHT_BUTTON 4
 #define DBL_CLICK 8
+#define X1_BUTTON 16
+#define X2_BUTTON 32
+
+#ifndef MK_XBUTTON1
+#define MK_XBUTTON1         0x0020
+#endif
+
+#ifndef MK_XBUTTON2
+#define MK_XBUTTON2         0x0040
+#endif
+
+// combination of standard mouse button flags
+const int ALL_MK_BUTTONS = MK_LBUTTON|MK_MBUTTON|MK_RBUTTON;
+const int X_BUTTONS = MK_XBUTTON1|MK_XBUTTON2;
+
+
 
 // Whether to check for embedded frame and adjust location
 #define CHECK_EMBEDDED 0
@@ -81,11 +97,6 @@
 
 class AwtComponent : public AwtObject {
 public:
-    enum {
-        // combination of all mouse button flags
-        ALL_MK_BUTTONS = MK_LBUTTON|MK_MBUTTON|MK_RBUTTON
-    };
-
     /* java.awt.Component fields and method IDs */
     static jfieldID peerID;
     static jfieldID xID;
@@ -112,6 +123,7 @@
     static jmethodID replaceSurfaceDataLaterMID;
 
     static const UINT WmAwtIsComponent;
+    static jint * masks; //InputEvent mask array
     AwtComponent();
     virtual ~AwtComponent();
 
@@ -675,10 +687,6 @@
     static HWND sm_focusOwner;
     static HWND sm_focusedWindow;
 
-    static BOOL m_isWin95;
-    static BOOL m_isWin2000;
-    static BOOL m_isWinNT;
-
     static BOOL sm_bMenuLoop;
     static INLINE BOOL isMenuLoopActive() {
         return sm_bMenuLoop;
--- a/jdk/src/windows/native/sun/windows/awt_Cursor.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_Cursor.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -79,10 +79,6 @@
 
     custom = TRUE;
     dirty = FALSE;
-
-    if (IsWin95Cursor()) {
-        customCursors.Add(this);
-    }
 }
 
 AwtCursor::~AwtCursor()
@@ -96,9 +92,6 @@
 
     if (custom) {
         ::DestroyIcon(hCursor);
-        if (IsWin95Cursor()) {
-            customCursors.Remove(this);
-        }
     }
 
     JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
@@ -256,16 +249,6 @@
     env->DeleteLocalRef(jcomp);
 }
 
-void AwtCursor::DirtyAllCustomCursors() {
-    if (IsWin95Cursor()) {
-        AwtObjectListItem *cur = customCursors.m_head;
-        while (cur != NULL) {
-            ((AwtCursor *)(cur->obj))->dirty = TRUE;
-            cur = cur->next;
-        }
-    }
-}
-
 void AwtCursor::Rebuild() {
     if (!dirty) {
         return;
@@ -294,23 +277,6 @@
     dirty = FALSE;
 }
 
-/* Bug fix for 4205805:
-   Custom cursor on WIN95 needs more effort, the same API works fine on NT
-   and WIN98. On Win95, DDB has to be passed in when calling createIconIndirect
-   Since DDB depends on the DISPLAY, we have to rebuild all the custom cursors
-   when user changes the display settings.
-*/
-BOOL AwtCursor::IsWin95Cursor() {
-    static BOOL val;
-    static BOOL known = FALSE;
-    if (!known) {
-        val = (IS_WIN32 && !IS_NT && LOBYTE(LOWORD(::GetVersion())) == 4 &&
-               HIBYTE(LOWORD(::GetVersion())) == 0);
-        known = TRUE;
-    }
-    return val;
-}
-
 extern "C" {
 
 /************************************************************************
--- a/jdk/src/windows/native/sun/windows/awt_Cursor.h	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_Cursor.h	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -66,7 +66,6 @@
     }
     static AwtCursor * CreateSystemCursor(jobject jCursor);
     static void UpdateCursor(AwtComponent *comp);
-    static void DirtyAllCustomCursors();
     static HCURSOR  GetCursor(JNIEnv *env, AwtComponent *comp);
 
     static void setPData(jobject cursor, jlong pdata) {
@@ -76,7 +75,6 @@
 
 private:
     void Rebuild();
-    static BOOL IsWin95Cursor();
 
     HCURSOR hCursor;
     jweak jCursor;
--- a/jdk/src/windows/native/sun/windows/awt_DataTransferer.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_DataTransferer.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,12 +24,11 @@
  */
 
 #include "awt.h"
-#include "awt_dlls.h"
 #include "awt_DataTransferer.h"
 #include "awt_DnDDT.h"
 #include "awt_TextComponent.h"
-#include "awt_Unicode.h"
 #include <shlobj.h>
+#include <shellapi.h>
 #include <sun_awt_datatransfer_DataTransferer.h>
 #include <sun_awt_windows_WDataTransferer.h>
 
@@ -271,9 +270,7 @@
 
         hdrop = (HDROP)bBytes;
 
-        load_shell_procs();
-
-        UINT nFilenames = (*do_drag_query_file)(hdrop, 0xFFFFFFFF, NULL, 0);
+        UINT nFilenames = ::DragQueryFile(hdrop, 0xFFFFFFFF, NULL, 0);
 
         jclass str_clazz = env->FindClass("java/lang/String");
         DASSERT(str_clazz != NULL);
@@ -287,12 +284,12 @@
         buffer = (LPTSTR)safe_Malloc(bufsize*sizeof(TCHAR));
 
         for (UINT i = 0; i < nFilenames; i++) {
-            UINT size = (*do_drag_query_file)(hdrop, i, NULL, 0);
+            UINT size = ::DragQueryFile(hdrop, i, NULL, 0);
             if (size > bufsize) {
                 bufsize = size;
                 buffer = (LPTSTR)safe_Realloc(buffer, bufsize*sizeof(TCHAR));
             }
-            (*do_drag_query_file)(hdrop, i, buffer, bufsize);
+            ::DragQueryFile(hdrop, i, buffer, bufsize);
 
             jstring name = JNU_NewStringPlatform(env, buffer);
             if (name == NULL) {
@@ -401,7 +398,7 @@
                 case  4:
                 case  8:
                     nColorEntries = (pSrcBmih->biClrUsed != 0) ?
-                        pSrcBmih->biClrUsed : 1 << (pSrcBmih->biBitCount - 1);
+                        pSrcBmih->biClrUsed : (1 << pSrcBmih->biBitCount);
                     break;
                 case 16:
                 case 24:
@@ -454,11 +451,6 @@
                 width = p.x;
                 height = -p.y;
 
-                // Win9X supports only 16-bit signed coordinates.
-                if (IS_WIN95) {
-                    if (width > 0x7FFF) { width = 0x7FFF; }
-                    if (height > 0x7FFF) { height = 0x7FFF; }
-                }
                 free(lpemh);
             }
             break;
--- a/jdk/src/windows/native/sun/windows/awt_Desktop.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_Desktop.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -23,8 +23,8 @@
  * have any questions.
  */
 
+#include "awt.h"
 #include <jni.h>
-#include <Windows.h>
 #include <shellapi.h>
 #include <float.h>
 
@@ -40,32 +40,32 @@
 JNIEXPORT jstring JNICALL Java_sun_awt_windows_WDesktopPeer_ShellExecute
   (JNIEnv *env, jclass cls, jstring uri_j, jstring verb_j)
 {
-    const WCHAR* uri_c = env->GetStringChars(uri_j, JNI_FALSE);
-    const WCHAR* verb_c = env->GetStringChars(verb_j, JNI_FALSE);
+    LPCWSTR uri_c = JNU_GetStringPlatformChars(env, uri_j, JNI_FALSE);
+    LPCWSTR verb_c = JNU_GetStringPlatformChars(env, verb_j, JNI_FALSE);
 
     // 6457572: ShellExecute possibly changes FPU control word - saving it here
     unsigned oldcontrol87 = _control87(0, 0);
-    HINSTANCE retval = ShellExecuteW(NULL, verb_c, uri_c, NULL, NULL, SW_SHOWNORMAL);
+    HINSTANCE retval = ::ShellExecute(NULL, verb_c, uri_c, NULL, NULL, SW_SHOWNORMAL);
     _control87(oldcontrol87, 0xffffffff);
 
-    env->ReleaseStringChars(uri_j, uri_c);
-    env->ReleaseStringChars(verb_j, verb_c);
+    JNU_ReleaseStringPlatformChars(env, uri_j, uri_c);
+    JNU_ReleaseStringPlatformChars(env, verb_j, verb_c);
 
     if ((int)retval <= 32) {
         // ShellExecute failed.
-        LPVOID buffer;
-        int len = FormatMessageW(
+        LPTSTR buffer = NULL;
+        int len = ::FormatMessage(
                     FORMAT_MESSAGE_ALLOCATE_BUFFER |
                     FORMAT_MESSAGE_FROM_SYSTEM  |
                     FORMAT_MESSAGE_IGNORE_INSERTS,
                     NULL,
                     GetLastError(),
                     MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
-                    (LPWSTR) &buffer,
+                    (LPTSTR)&buffer,
                     0,
                     NULL );
 
-        jstring errmsg = env->NewString((LPCWSTR)buffer, len);
+        jstring errmsg = JNU_NewStringPlatform(env, buffer, len);
         LocalFree(buffer);
         return errmsg;
     }
--- a/jdk/src/windows/native/sun/windows/awt_DesktopProperties.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_DesktopProperties.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1999-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,17 +23,17 @@
  * have any questions.
  */
 
-#include "stdhdrs.h"
+#include "awt.h"
 #include "mmsystem.h"
 #include "jlong.h"
-#include "awt.h"
 #include "awt_DesktopProperties.h"
-#include "awt_dlls.h"
+#include "awt_Toolkit.h"
 #include "sun_awt_windows_WDesktopProperties.h"
 #include "java_awt_Font.h"
 #include "awtmsg.h"
-#include "Zmouse.h"
-#include "shellapi.h"
+#include "zmouse.h"
+#include <shellapi.h>
+#include <shlobj.h>
 
 // WDesktopProperties fields
 jfieldID AwtDesktopProperties::pDataID = 0;
@@ -44,10 +44,6 @@
 jmethodID AwtDesktopProperties::setFontPropertyID = 0;
 jmethodID AwtDesktopProperties::setSoundPropertyID = 0;
 
-typedef VOID (WINAPI *SHGetSettingsType)(LPSHELLFLAGSTATE, DWORD);
-static HMODULE libShell32 = NULL;
-static SHGetSettingsType fn_SHGetSettings;
-
 AwtDesktopProperties::AwtDesktopProperties(jobject self) {
     this->self = GetEnv()->NewGlobalRef(self);
     GetEnv()->SetLongField( self, AwtDesktopProperties::pDataID,
@@ -431,14 +427,12 @@
 
 void AwtDesktopProperties::GetColorParameters() {
 
-    if (IS_WIN98 || IS_WIN2000) {
-        SetColorProperty(TEXT("win.frame.activeCaptionGradientColor"),
-                              GetSysColor(COLOR_GRADIENTACTIVECAPTION));
-        SetColorProperty(TEXT("win.frame.inactiveCaptionGradientColor"),
-                              GetSysColor(COLOR_GRADIENTINACTIVECAPTION));
-        SetColorProperty(TEXT("win.item.hotTrackedColor"),
-                              GetSysColor(COLOR_HOTLIGHT));
-    }
+    SetColorProperty(TEXT("win.frame.activeCaptionGradientColor"),
+                     GetSysColor(COLOR_GRADIENTACTIVECAPTION));
+    SetColorProperty(TEXT("win.frame.inactiveCaptionGradientColor"),
+                     GetSysColor(COLOR_GRADIENTINACTIVECAPTION));
+    SetColorProperty(TEXT("win.item.hotTrackedColor"),
+                     GetSysColor(COLOR_HOTLIGHT));
     SetColorProperty(TEXT("win.3d.darkShadowColor"), GetSysColor(COLOR_3DDKSHADOW));
     SetColorProperty(TEXT("win.3d.backgroundColor"), GetSysColor(COLOR_3DFACE));
     SetColorProperty(TEXT("win.3d.highlightColor"), GetSysColor(COLOR_3DHIGHLIGHT));
@@ -510,40 +504,18 @@
     // This property is called "win.frame.fullWindowDragsOn" above
     // This is one of the properties that don't trigger WM_SETTINGCHANGE
     SetBooleanProperty(TEXT("awt.dynamicLayoutSupported"), GetBooleanParameter(SPI_GETDRAGFULLWINDOWS));
-
-    // 95 MouseWheel support
-    // More or less copied from the MSH_MOUSEWHEEL MSDN entry
-    if (IS_WIN95 && !IS_WIN98) {
-        HWND hdlMSHWHEEL = NULL;
-        UINT msgMSHWheelSupported = NULL;
-        BOOL wheelSupported = FALSE;
-
-        msgMSHWheelSupported = RegisterWindowMessage(MSH_WHEELSUPPORT);
-        hdlMSHWHEEL = FindWindow(MSH_WHEELMODULE_CLASS, MSH_WHEELMODULE_TITLE);
-        if (hdlMSHWHEEL && msgMSHWheelSupported) {
-            wheelSupported = (BOOL)::SendMessage(hdlMSHWHEEL,
-                                                 msgMSHWheelSupported, 0, 0);
-        }
-        SetBooleanProperty(TEXT("awt.wheelMousePresent"), wheelSupported);
-    }
-    else {
-        SetBooleanProperty(TEXT("awt.wheelMousePresent"),
-                           ::GetSystemMetrics(SM_MOUSEWHEELPRESENT));
-    }
+    SetBooleanProperty(TEXT("awt.wheelMousePresent"),
+                       ::GetSystemMetrics(SM_MOUSEWHEELPRESENT));
 
     // END cross-platform properties
 
-    if (IS_WIN98 || IS_WIN2000) {
-      //DWORD   menuShowDelay;
-        //SystemParametersInfo(SPI_GETMENUSHOWDELAY, 0, &menuShowDelay, 0);
-        // SetIntegerProperty(TEXT("win.menu.showDelay"), menuShowDelay);
-        SetBooleanProperty(TEXT("win.frame.captionGradientsOn"), GetBooleanParameter(SPI_GETGRADIENTCAPTIONS));
-        SetBooleanProperty(TEXT("win.item.hotTrackingOn"), GetBooleanParameter(SPI_GETHOTTRACKING));
-    }
+    //DWORD   menuShowDelay;
+    //SystemParametersInfo(SPI_GETMENUSHOWDELAY, 0, &menuShowDelay, 0);
+    // SetIntegerProperty(TEXT("win.menu.showDelay"), menuShowDelay);
+    SetBooleanProperty(TEXT("win.frame.captionGradientsOn"), GetBooleanParameter(SPI_GETGRADIENTCAPTIONS));
+    SetBooleanProperty(TEXT("win.item.hotTrackingOn"), GetBooleanParameter(SPI_GETHOTTRACKING));
 
-    if (IS_WIN2000) {
-        SetBooleanProperty(TEXT("win.menu.keyboardCuesOn"), GetBooleanParameter(SPI_GETKEYBOARDCUES));
-    }
+    SetBooleanProperty(TEXT("win.menu.keyboardCuesOn"), GetBooleanParameter(SPI_GETKEYBOARDCUES));
 
     // High contrast accessibility property
     HIGHCONTRAST contrast;
@@ -557,21 +529,19 @@
       SetBooleanProperty(TEXT("win.highContrast.on"), FALSE);
     }
 
-    if (fn_SHGetSettings != NULL) {
-        SHELLFLAGSTATE sfs;
-        fn_SHGetSettings(&sfs, SSF_SHOWALLOBJECTS | SSF_SHOWATTRIBCOL);
-        if (sfs.fShowAllObjects) {
-            SetBooleanProperty(TEXT("awt.file.showHiddenFiles"), TRUE);
-        }
-        else {
-            SetBooleanProperty(TEXT("awt.file.showHiddenFiles"), FALSE);
-        }
-        if (sfs.fShowAttribCol) {
-            SetBooleanProperty(TEXT("awt.file.showAttribCol"), TRUE);
-        }
-        else {
-            SetBooleanProperty(TEXT("awt.file.showAttribCol"), FALSE);
-        }
+    SHELLFLAGSTATE sfs;
+    ::SHGetSettings(&sfs, SSF_SHOWALLOBJECTS | SSF_SHOWATTRIBCOL);
+    if (sfs.fShowAllObjects) {
+        SetBooleanProperty(TEXT("awt.file.showHiddenFiles"), TRUE);
+    }
+    else {
+        SetBooleanProperty(TEXT("awt.file.showHiddenFiles"), FALSE);
+    }
+    if (sfs.fShowAttribCol) {
+        SetBooleanProperty(TEXT("awt.file.showAttribCol"), TRUE);
+    }
+    else {
+        SetBooleanProperty(TEXT("awt.file.showAttribCol"), FALSE);
     }
 
     LPTSTR value;
@@ -667,7 +637,7 @@
 }
 
 void AwtDesktopProperties::SetStringProperty(LPCTSTR propName, LPTSTR value) {
-    jstring key = JNU_NewStringPlatform(GetEnv(), propName);
+    jstring key = JNU_NewStringPlatform(GetEnv(), const_cast<LPTSTR>(propName));
     GetEnv()->CallVoidMethod(self,
                              AwtDesktopProperties::setStringPropertyID,
                              key, JNU_NewStringPlatform(GetEnv(), value));
@@ -675,7 +645,7 @@
 }
 
 void AwtDesktopProperties::SetIntegerProperty(LPCTSTR propName, int value) {
-    jstring key = JNU_NewStringPlatform(GetEnv(), propName);
+    jstring key = JNU_NewStringPlatform(GetEnv(), const_cast<LPTSTR>(propName));
     GetEnv()->CallVoidMethod(self,
                              AwtDesktopProperties::setIntegerPropertyID,
                              key, (jint)value);
@@ -683,7 +653,7 @@
 }
 
 void AwtDesktopProperties::SetBooleanProperty(LPCTSTR propName, BOOL value) {
-    jstring key = JNU_NewStringPlatform(GetEnv(), propName);
+    jstring key = JNU_NewStringPlatform(GetEnv(), const_cast<LPTSTR>(propName));
     GetEnv()->CallVoidMethod(self,
                              AwtDesktopProperties::setBooleanPropertyID,
                              key, value ? JNI_TRUE : JNI_FALSE);
@@ -691,7 +661,7 @@
 }
 
 void AwtDesktopProperties::SetColorProperty(LPCTSTR propName, DWORD value) {
-    jstring key = JNU_NewStringPlatform(GetEnv(), propName);
+    jstring key = JNU_NewStringPlatform(GetEnv(), const_cast<LPTSTR>(propName));
     GetEnv()->CallVoidMethod(self,
                              AwtDesktopProperties::setColorPropertyID,
                              key, GetRValue(value), GetGValue(value),
@@ -743,7 +713,7 @@
                         style |= java_awt_Font_ITALIC;
                     }
 
-                    jstring key = JNU_NewStringPlatform(GetEnv(), propName);
+                    jstring key = JNU_NewStringPlatform(GetEnv(), const_cast<LPTSTR>(propName));
                     GetEnv()->CallVoidMethod(self,
                               AwtDesktopProperties::setFontPropertyID,
                               key, fontName, style, pointSize);
@@ -761,7 +731,7 @@
     jint pointSize;
     jint style;
 
-    fontName = JNU_NewStringPlatform(GetEnv(), font.lfFaceName);
+    fontName = JNU_NewStringPlatform(GetEnv(), const_cast<LPWSTR>(font.lfFaceName));
 
 #if 0
     HDC         hdc;
@@ -784,7 +754,7 @@
         style |= java_awt_Font_ITALIC;
     }
 
-    jstring key = JNU_NewStringPlatform(GetEnv(), propName);
+    jstring key = JNU_NewStringPlatform(GetEnv(), const_cast<LPTSTR>(propName));
     GetEnv()->CallVoidMethod(self, AwtDesktopProperties::setFontPropertyID,
                              key, fontName, style, pointSize);
 
@@ -793,8 +763,8 @@
 }
 
 void AwtDesktopProperties::SetSoundProperty(LPCTSTR propName, LPCTSTR winEventName) {
-    jstring key = JNU_NewStringPlatform(GetEnv(), propName);
-    jstring event = JNU_NewStringPlatform(GetEnv(), winEventName);
+    jstring key = JNU_NewStringPlatform(GetEnv(), const_cast<LPTSTR>(propName));
+    jstring event = JNU_NewStringPlatform(GetEnv(), const_cast<LPTSTR>(winEventName));
     GetEnv()->CallVoidMethod(self,
                              AwtDesktopProperties::setSoundPropertyID,
                              key, event);
@@ -805,9 +775,9 @@
 
 void AwtDesktopProperties::PlayWindowsSound(LPCTSTR event) {
     // stop any currently playing sounds
-    AwtWinMM::PlaySoundWrapper(NULL, NULL, SND_PURGE);
+    ::PlaySound(NULL, NULL, SND_PURGE);
     // play the sound for the given event name
-    AwtWinMM::PlaySoundWrapper(event, NULL, SND_ASYNC|SND_ALIAS|SND_NODEFAULT);
+    ::PlaySound(event, NULL, SND_ASYNC|SND_ALIAS|SND_NODEFAULT);
 }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -852,16 +822,6 @@
 Java_sun_awt_windows_WDesktopProperties_init(JNIEnv *env, jobject self) {
     TRY;
 
-    // Open shell32.dll, get the symbol for SHGetSettings
-    libShell32 = LoadLibrary(TEXT("shell32.dll"));
-    if (libShell32 == NULL) {
-        fn_SHGetSettings = NULL;
-    }
-    else {
-        fn_SHGetSettings = (SHGetSettingsType)GetProcAddress(
-                libShell32, "SHGetSettings");
-    }
-
     new AwtDesktopProperties(self);
 
     CATCH_BAD_ALLOC;
--- a/jdk/src/windows/native/sun/windows/awt_Dialog.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_Dialog.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -132,14 +132,13 @@
         dialog = new AwtDialog();
 
         {
-            int colorId = IS_WIN4X ? COLOR_3DFACE : COLOR_WINDOW;
+            int colorId = COLOR_3DFACE;
             DWORD style = WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN;
             if (hwndParent != NULL) {
                 style |= WS_POPUP;
             }
             style &= ~(WS_MINIMIZEBOX|WS_MAXIMIZEBOX);
-            DWORD exStyle = IS_WIN4X ? WS_EX_WINDOWEDGE | WS_EX_DLGMODALFRAME
-                                     : 0;
+            DWORD exStyle = WS_EX_WINDOWEDGE | WS_EX_DLGMODALFRAME;
 
             if (GetRTL()) {
                 exStyle |= WS_EX_RIGHT | WS_EX_LEFTSCROLLBAR;
@@ -663,7 +662,7 @@
 
     int badAlloc = 0;
     LPCTSTR coption;
-    LPTSTR empty = TEXT("InputMethod");
+    LPCTSTR empty = TEXT("InputMethod");
     AwtDialog *d = NULL;
 
     PDATA pData;
--- a/jdk/src/windows/native/sun/windows/awt_DnDDS.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_DnDDS.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,6 +23,7 @@
  * have any questions.
  */
 
+#include "awt.h"
 #include "jlong.h"
 #include "awt_DataTransferer.h"
 #include "awt_DnDDS.h"
@@ -36,8 +37,6 @@
 #include "sun_awt_dnd_SunDragSourceContextPeer.h"
 #include "sun_awt_windows_WDragSourceContextPeer.h"
 
-#include <stdio.h>
-#include <stdlib.h>
 #include <memory.h>
 #include <shlobj.h>
 
--- a/jdk/src/windows/native/sun/windows/awt_DnDDT.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_DnDDT.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -30,11 +30,8 @@
 #include "awt_Toolkit.h"
 #include "java_awt_dnd_DnDConstants.h"
 #include "sun_awt_windows_WDropTargetContextPeer.h"
-#include "awt_dlls.h"
 #include "awt_Container.h"
 
-#include <stdio.h>
-#include <stdlib.h>
 #include <memory.h>
 #include <shellapi.h>
 
@@ -555,8 +552,7 @@
             break;
         }
         case TYMED_FILE: {
-            jobject local = JNU_NewStringPlatform(env, (LPCTSTR)
-                                                  stgmedium.lpszFileName);
+            jobject local = JNU_NewStringPlatform(env, stgmedium.lpszFileName);
             jstring fileName = (jstring)env->NewGlobalRef(local);
             env->DeleteLocalRef(local);
 
--- a/jdk/src/windows/native/sun/windows/awt_DrawingSurface.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_DrawingSurface.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -24,6 +24,8 @@
  */
 
 #define _JNI_IMPLEMENTATION_
+
+#include "awt.h"
 #include "awt_DrawingSurface.h"
 #include "awt_Component.h"
 
--- a/jdk/src/windows/native/sun/windows/awt_FileDialog.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_FileDialog.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1996-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,7 +27,6 @@
 #include "awt_FileDialog.h"
 #include "awt_Dialog.h"
 #include "awt_Toolkit.h"
-#include "awt_dlls.h"
 #include "ComCtl32Util.h"
 #include <commdlg.h>
 #include <cderr.h>
@@ -65,7 +64,7 @@
 {
     int length = env->GetStringLength(filterDescription);
     DASSERT(length + 1 < MAX_FILTER_STRING);
-    LPCTSTR tmp = (LPTSTR)JNU_GetStringPlatformChars(env, filterDescription, NULL);
+    LPCTSTR tmp = JNU_GetStringPlatformChars(env, filterDescription, NULL);
     _tcscpy(s_fileFilterString, tmp);
     JNU_ReleaseStringPlatformChars(env, filterDescription, tmp);
 
@@ -156,7 +155,7 @@
                     LPITEMIDLIST pidl = (LPITEMIDLIST)notifyEx->pidl;
                     // Get the filename and directory
                     TCHAR szPath[MAX_PATH];
-                    if (!get_path_from_idlist(pidl,szPath)) {
+                    if (!::SHGetPathFromIDList(pidl, szPath)) {
                         return TRUE;
                     }
                     jstring strPath = JNU_NewStringPlatform(env, szPath);
@@ -190,7 +189,7 @@
     WCHAR unicodeChar = L' ';
     LPTSTR fileBuffer = NULL;
     LPTSTR currentDirectory = NULL;
-    AWTOPENFILENAME ofn;
+    OPENFILENAME ofn;
     jint mode = 0;
     BOOL result = FALSE;
     DWORD dlgerr;
@@ -222,7 +221,7 @@
         HWND hwndOwner = awtParent ? awtParent->GetHWnd() : NULL;
 
         if (title == NULL || env->GetStringLength(title)==0) {
-            title = env->NewString(&unicodeChar, 1);
+            title = JNU_NewStringPlatform(env, &unicodeChar);
         }
 
         JavaStringBuffer titleBuffer(env, title);
@@ -243,14 +242,7 @@
 
         memset(&ofn, 0, sizeof(ofn));
 
-    // According to the MSDN docs, lStructSize must be set to
-    // OPENFILENAME_SIZE_VERSION_400 on NT4.0.
-    if (IS_NT && !(IS_WIN2000)) {
-        ofn.lStructSize = OPENFILENAME_SIZE_VERSION_400;
-    }
-    else {
         ofn.lStructSize = sizeof(ofn);
-    }
         ofn.lpstrFilter = s_fileFilterString;
         ofn.nFilterIndex = 1;
         /*
@@ -289,9 +281,6 @@
 
         mode = env->GetIntField(target, AwtFileDialog::modeID);
 
-        // Fix for 4364256 : call load_shell_procs()
-        load_shell_procs();
-
         AwtDialog::CheckInstallModalHook();
 
         // show the Win32 file dialog
@@ -304,7 +293,7 @@
         // If the dialog is not shown because of invalid file name
         // replace the file name by empty string.
         if (!result) {
-            dlgerr = AwtCommDialog::CommDlgExtendedError();
+            dlgerr = ::CommDlgExtendedError();
             if (dlgerr == FNERR_INVALIDFILENAME) {
                 _tcscpy(fileBuffer, TEXT(""));
                 if (mode == java_awt_FileDialog_LOAD) {
@@ -326,7 +315,7 @@
         // Report result to peer.
         if (result) {
             jstring tmpJString = (_tcslen(ofn.lpstrFile) == 0 ?
-                env->NewStringUTF("") :
+                JNU_NewStringPlatform(env, L"") :
                 JNU_NewStringPlatform(env, ofn.lpstrFile));
             env->CallVoidMethod(peer, AwtFileDialog::handleSelectedMID, tmpJString);
             env->DeleteLocalRef(tmpJString);
@@ -362,20 +351,18 @@
 }
 
 BOOL
-AwtFileDialog::GetOpenFileName(LPAWTOPENFILENAME data) {
-    AwtCommDialog::load_comdlg_procs();
+AwtFileDialog::GetOpenFileName(LPOPENFILENAME data) {
     return static_cast<BOOL>(reinterpret_cast<INT_PTR>(
         AwtToolkit::GetInstance().InvokeFunction((void*(*)(void*))
-                     AwtCommDialog::GetOpenFileNameWrapper, data)));
+                     ::GetOpenFileName, data)));
 
 }
 
 BOOL
-AwtFileDialog::GetSaveFileName(LPAWTOPENFILENAME data) {
-    AwtCommDialog::load_comdlg_procs();
+AwtFileDialog::GetSaveFileName(LPOPENFILENAME data) {
     return static_cast<BOOL>(reinterpret_cast<INT_PTR>(
         AwtToolkit::GetInstance().InvokeFunction((void *(*)(void *))
-                     AwtCommDialog::GetSaveFileNameWrapper, data)));
+                     ::GetSaveFileName, data)));
 
 }
 
--- a/jdk/src/windows/native/sun/windows/awt_FileDialog.h	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_FileDialog.h	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -36,43 +36,6 @@
 #include "java_awt_FileDialog.h"
 #include "sun_awt_windows_WFileDialogPeer.h"
 
-// The VC6 headers don't include this, but it's necessary for
-// backward-compatibility with NT4.0, so we fake it.
-#ifndef OPENFILENAME_SIZE_VERSION_400
-    // Determined via sizeof(OPENFILENAME)
-    #define OPENFILENAME_SIZE_VERSION_400 76
-#endif
-
-// 4859390
-// For the Places Bar to show up, we need the "full" OPENFILENAME struct
-typedef struct tagAWTOFN {
-  DWORD         lStructSize;
-  HWND          hwndOwner;
-  HINSTANCE     hInstance;
-  LPCTSTR       lpstrFilter;
-  LPTSTR        lpstrCustomFilter;
-  DWORD         nMaxCustFilter;
-  DWORD         nFilterIndex;
-  LPTSTR        lpstrFile;
-  DWORD         nMaxFile;
-  LPTSTR        lpstrFileTitle;
-  DWORD         nMaxFileTitle;
-  LPCTSTR       lpstrInitialDir;
-  LPCTSTR       lpstrTitle;
-  DWORD         Flags;
-  WORD          nFileOffset;
-  WORD          nFileExtension;
-  LPCTSTR       lpstrDefExt;
-  LPARAM        lCustData;
-  LPOFNHOOKPROC lpfnHook;
-  LPCTSTR       lpTemplateName;
-//#if (_WIN32_WINNT >= 0x0500)
-  void *        pvReserved;
-  DWORD         dwReserved;
-  DWORD         FlagsEx;
-//#endif // (_WIN32_WINNT >= 0x0500)
-} AWTOPENFILENAME, *LPAWTOPENFILENAME;
-
 /************************************************************************
  * AwtFileDialog class
  */
@@ -96,8 +59,8 @@
     static void Initialize(JNIEnv *env, jstring filterDescription);
     static void Show(void *peer);
 
-    static BOOL GetOpenFileName(LPAWTOPENFILENAME);
-    static BOOL GetSaveFileName(LPAWTOPENFILENAME);
+    static BOOL GetOpenFileName(LPOPENFILENAME);
+    static BOOL GetSaveFileName(LPOPENFILENAME);
 
     virtual BOOL InheritsNativeMouseWheelBehavior();
 
--- a/jdk/src/windows/native/sun/windows/awt_Font.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_Font.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1996-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,6 +23,7 @@
  * have any questions.
  */
 
+#include "awt.h"
 #include <math.h>
 #include "jlong.h"
 #include "awt_Font.h"
@@ -195,7 +196,7 @@
 }
 
 // Get suitable CHARSET from charset string provided by font configuration.
-static int GetNativeCharset(WCHAR* name)
+static int GetNativeCharset(LPCWSTR name)
 {
     if (wcsstr(name, L"ANSI_CHARSET"))
         return ANSI_CHARSET;
@@ -259,7 +260,7 @@
             cfnum = 0;
         }
 
-        WCHAR* wName;
+        LPCWSTR wName;
 
         awtFont = new AwtFont(cfnum, env, font);
 
@@ -269,9 +270,7 @@
         if (cfnum > 0) {
             // Ask peer class for the text component font name
             jstring jTextComponentFontName = GetTextComponentFontName(env, font);
-            WCHAR* textComponentFontName = TO_WSTRING(jTextComponentFontName);
-
-            env->DeleteLocalRef(jTextComponentFontName);
+            LPCWSTR textComponentFontName = JNU_GetStringPlatformChars(env, jTextComponentFontName, NULL);
 
             awtFont->m_textInput = -1;
             for (int i = 0; i < cfnum; i++) {
@@ -282,13 +281,13 @@
                 jstring nativeName =
                     (jstring)env->GetObjectField(fontDescriptor,
                                                  AwtFont::nativeNameID);
-                wName = TO_WSTRING(nativeName);
+                wName = JNU_GetStringPlatformChars(env, nativeName, NULL);
                 DASSERT(wName);
 
                 //On NT platforms, if the font is not Symbol or Dingbats
                 //use "W" version of Win32 APIs directly, info the FontDescription
                 //no need to convert characters from Unicode to locale encodings.
-                if (IS_NT && GetNativeCharset(wName) != SYMBOL_CHARSET) {
+                if (GetNativeCharset(wName) != SYMBOL_CHARSET) {
                     env->SetBooleanField(fontDescriptor, AwtFont::useUnicodeID, TRUE);
                 }
 
@@ -299,10 +298,12 @@
                         (wcscmp(wName, textComponentFontName) == 0)) {
                     awtFont->m_textInput = i;
                 }
-                HFONT hfonttmp = CreateHFont(wName, fontStyle, fontSize,
+                HFONT hfonttmp = CreateHFont(const_cast<LPWSTR>(wName), fontStyle, fontSize,
                                              angle, awScale);
                 awtFont->m_hFont[i] = hfonttmp;
 
+                JNU_ReleaseStringPlatformChars(env, nativeName, wName);
+
                 env->DeleteLocalRef(fontDescriptor);
                 env->DeleteLocalRef(nativeName);
             }
@@ -311,11 +312,14 @@
                 // to first component
                 awtFont->m_textInput = 0;
             }
+
+            JNU_ReleaseStringPlatformChars(env, jTextComponentFontName, textComponentFontName);
+            env->DeleteLocalRef(jTextComponentFontName);
         } else {
             // Instantiation for English version.
             jstring fontName = (jstring)env->GetObjectField(font,
                                                             AwtFont::nameID);
-            wName = TO_WSTRING(fontName);
+            wName = JNU_GetStringPlatformChars(env, fontName, NULL);
 
             WCHAR* wEName;
             if (!wcscmp(wName, L"Helvetica") || !wcscmp(wName, L"SansSerif")) {
@@ -338,6 +342,9 @@
             awtFont->m_textInput = 0;
             awtFont->m_hFont[0] = CreateHFont(wEName, fontStyle, fontSize,
                                               angle, awScale);
+
+            JNU_ReleaseStringPlatformChars(env, fontName, wName);
+
             env->DeleteLocalRef(fontName);
         }
         /* The several callers of this method also set the pData field.
@@ -381,7 +388,7 @@
 
 }
 
-static HFONT CreateHFont_sub(WCHAR* name, int style, int height,
+static HFONT CreateHFont_sub(LPCWSTR name, int style, int height,
                              int angle=0, float awScale=1.0f)
 {
     LOGFONTW logFont;
@@ -420,18 +427,7 @@
     strip_tail(tmpname,L"Italic");
     strip_tail(tmpname,L"Bold");
     wcscpy(&(logFont.lfFaceName[0]), tmpname);
-    HFONT hFont;
-    if (IS_WIN95) {
-#ifdef WIN32
-        DASSERT(IS_WIN95);
-#endif
-        HDC hdc = ::GetDC(NULL);
-        ::EnumFontFamiliesEx(hdc, &logFont, (FONTENUMPROC)FindFamilyName,
-                             (LPARAM)tmpname, 0L);
-        ::ReleaseDC(NULL, hdc);
-        wcscpy(&logFont.lfFaceName[0], tmpname);
-    }
-    hFont = ::CreateFontIndirectW(&logFont);
+    HFONT hFont = ::CreateFontIndirect(&logFont);
     DASSERT(hFont != NULL);
     // get a expanded or condensed version if its specified.
     if (awScale != 1.0f) {
@@ -446,7 +442,7 @@
         }
         avgWidth = tm.tmAveCharWidth;
         logFont.lfWidth = (LONG)((fabs)(avgWidth*awScale));
-        hFont = CreateFontIndirectW(&logFont);
+        hFont = ::CreateFontIndirect(&logFont);
         DASSERT(hFont != NULL);
         VERIFY(::ReleaseDC(0, hDC));
     }
@@ -460,15 +456,8 @@
     WCHAR longName[80];
     // 80 > (max face name(=30) + strlen("CHINESEBIG5_CHARSET"))
     // longName doesn't have to be printable.  So, it is OK not to convert.
-    if (IS_NT) {
-        //wsprintfW only works on NT.  See bugid 4123362
-        wsprintfW(longName, L"%ls-%d-%d", name, style, height);
-    } else {
-#ifdef WIN32
-        DASSERT(IS_WIN95);
-#endif
-        swprintf(longName, L"%ls-%d-%d", name, style, height);
-    }
+
+    wsprintf(longName, L"%ls-%d-%d", name, style, height);
 
     HFONT hFont = NULL;
 
@@ -682,28 +671,16 @@
 
     if (arrayLength == 0) {
         int length = env->GetStringLength(str);
-        WCHAR* string = TO_WSTRING(str);
+        LPCWSTR strW = JNU_GetStringPlatformChars(env, str, NULL);
         VERIFY(::SelectObject(hDC, awtFont->GetHFont()));
         if (AwtComponent::GetRTLReadingOrder()){
-            if (IS_WIN95) {
-                // Start of conversion Code to fix arabic shaping problems
-                // with unicode support in win 95
-                LPSTR buffer =  (LPSTR) alloca((wcslen(string) + 1) * 2);
-                int count = ::WideCharToMultiByte(codePage, 0, string, length,
-                                                  buffer,
-                                                  static_cast<int>((wcslen(string) + 1) * 2),
-                                                  NULL, NULL);
-                VERIFY(!draw || ::ExtTextOutA(hDC, x, y,  ETO_RTLREADING, NULL,
-                                              buffer, count, NULL));
-                // End Of Conversion Code
-            } else {
-                VERIFY(!draw || ::ExtTextOutW(hDC, x, y, ETO_RTLREADING, NULL,
-                                              string, length, NULL));
-            }
+            VERIFY(!draw || ::ExtTextOut(hDC, x, y, ETO_RTLREADING, NULL,
+                                          strW, length, NULL));
         } else {
-            VERIFY(!draw || ::TextOutW(hDC, x, y, string, length));
+            VERIFY(!draw || ::TextOut(hDC, x, y, strW, length));
         }
-        VERIFY(::GetTextExtentPoint32W(hDC, string, length, &size));
+        VERIFY(::GetTextExtentPoint32(hDC, strW, length, &size));
+        JNU_ReleaseStringPlatformChars(env, str, strW);
     } else {
         for (int i = 0; i < arrayLength; i = i + 2) {
             jobject fontDescriptor = env->GetObjectArrayElement(array, i);
@@ -732,7 +709,7 @@
              * extend buflen and bad things will happen.
              */
             unsigned char* buffer = NULL;
-            jboolean unicodeUsed = env->GetBooleanField(fontDescriptor,AwtFont::useUnicodeID);
+            jboolean unicodeUsed = env->GetBooleanField(fontDescriptor, AwtFont::useUnicodeID);
             try {
                 buffer = (unsigned char *)
                     env->GetPrimitiveArrayCritical(convertedBytes, 0);
@@ -1231,7 +1208,7 @@
 public:
     CSegTableComponent();
     virtual ~CSegTableComponent();
-    virtual void Create(LPWSTR name);
+    virtual void Create(LPCWSTR name);
     virtual BOOL In(USHORT iChar) { DASSERT(FALSE); return FALSE; };
     LPWSTR GetFontName(){
         DASSERT(m_lpszFontName != NULL); return m_lpszFontName;
@@ -1254,7 +1231,7 @@
     }
 }
 
-void CSegTableComponent::Create(LPWSTR name)
+void CSegTableComponent::Create(LPCWSTR name)
 {
     if (m_lpszFontName != NULL) {
         free(m_lpszFontName);
@@ -1453,7 +1430,7 @@
     CStdSegTable();
     virtual ~CStdSegTable();
     BOOL IsEUDC() { return FALSE; };
-    virtual void Create(LPWSTR name);
+    virtual void Create(LPCWSTR name);
 
 protected:
     void GetData(DWORD dwOffset, LPVOID lpData, DWORD cbData);
@@ -1481,7 +1458,7 @@
     DASSERT(nBytes != GDI_ERROR);
 }
 
-void CStdSegTable::Create(LPWSTR name)
+void CStdSegTable::Create(LPCWSTR name)
 {
     CSegTableComponent::Create(name);
 
@@ -1509,7 +1486,7 @@
     CEUDCSegTable();
     virtual ~CEUDCSegTable();
     BOOL IsEUDC() { return TRUE; };
-    virtual void Create(LPWSTR name);
+    virtual void Create(LPCWSTR name);
 
 protected:
     void GetData(DWORD dwOffset, LPVOID lpData, DWORD cbData);
@@ -1543,7 +1520,7 @@
     DASSERT(dwRead == cbData);
 }
 
-void CEUDCSegTable::Create(LPWSTR name)
+void CEUDCSegTable::Create(LPCWSTR name)
 {
 typedef struct tagHEAD{
     FIXED   sfnt_version;
@@ -1564,19 +1541,8 @@
 
     // create EUDC font file and make EUDCSegTable
     // after wrapper function for CreateFileW, we use only CreateFileW
-    if (IS_NT) {
-        m_hTmpFile = ::CreateFileW(name, GENERIC_READ,
-            FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
-    } else {
-#ifdef WIN32
-        DASSERT(IS_WIN95);
-#endif
-        char szFileName[_MAX_PATH];
-        ::WideCharToMultiByte(CP_ACP, 0, name, -1,
-            szFileName, sizeof(szFileName), NULL, NULL);
-        m_hTmpFile = ::CreateFileA(szFileName, GENERIC_READ,
-            FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
-    }
+    m_hTmpFile = ::CreateFile(name, GENERIC_READ,
+                               FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
     if (m_hTmpFile == INVALID_HANDLE_VALUE){
         m_hTmpFile = NULL;
         return;
@@ -1654,10 +1620,10 @@
 class CSegTableManager : public CSegTableManagerComponent
 {
 public:
-    CSegTable* GetTable(LPWSTR lpszFontName, BOOL fEUDC);
+    CSegTable* GetTable(LPCWSTR lpszFontName, BOOL fEUDC);
 };
 
-CSegTable* CSegTableManager::GetTable(LPWSTR lpszFontName, BOOL fEUDC)
+CSegTable* CSegTableManager::GetTable(LPCWSTR lpszFontName, BOOL fEUDC)
 {
     for (int i = 0; i < m_nTable; i++) {
         if ((((CSegTable*)m_tables[i])->IsEUDC() == fEUDC) &&
@@ -1685,7 +1651,7 @@
 {
 public:
     CCombinedSegTable();
-    void Create(LPWSTR name);
+    void Create(LPCWSTR name);
     BOOL In(USHORT iChar);
 
 private:
@@ -1807,7 +1773,7 @@
         wcscpy(m_szDefaultEUDCFile, lpszFileName);
 }
 
-void CCombinedSegTable::Create(LPWSTR name)
+void CCombinedSegTable::Create(LPCWSTR name)
 {
     CSegTableComponent::Create(name);
 
@@ -1840,10 +1806,10 @@
 class CCombinedSegTableManager : public CSegTableManagerComponent
 {
 public:
-    CCombinedSegTable* GetTable(LPWSTR lpszFontName);
+    CCombinedSegTable* GetTable(LPCWSTR lpszFontName);
 };
 
-CCombinedSegTable* CCombinedSegTableManager::GetTable(LPWSTR lpszFontName)
+CCombinedSegTable* CCombinedSegTableManager::GetTable(LPCWSTR lpszFontName)
 {
     for (int i = 0; i < m_nTable; i++) {
         if (wcscmp(m_tables[i]->GetFontName(),lpszFontName) == 0)
@@ -1901,8 +1867,9 @@
 
     jstring fontName = (jstring)env->GetObjectField(self, AwtFont::fontNameID);
     DASSERT(fontName != NULL);
-    LPWSTR fontNameWStr = TO_WSTRING(fontName);
-    CCombinedSegTable* pTable = tableManager.GetTable(fontNameWStr);
+    LPCWSTR fontNameW = JNU_GetStringPlatformChars(env, fontName, NULL);
+    CCombinedSegTable* pTable = tableManager.GetTable(fontNameW);
+    JNU_ReleaseStringPlatformChars(env, fontName, fontNameW);
     return (pTable->In((USHORT) ch) ? JNI_TRUE : JNI_FALSE);
 
     CATCH_BAD_ALLOC_RET(FALSE);
--- a/jdk/src/windows/native/sun/windows/awt_Font.h	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_Font.h	Wed Jul 05 16:47:27 2017 +0200
@@ -28,7 +28,6 @@
 
 #include "awt.h"
 #include "awt_Object.h"
-#include "awt_Unicode.h"
 
 #include "java_awt_Font.h"
 #include "sun_awt_windows_WFontMetrics.h"
--- a/jdk/src/windows/native/sun/windows/awt_Frame.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_Frame.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -1472,7 +1472,7 @@
 
     int badAlloc = 0;
     LPCTSTR coption;
-    LPTSTR empty = TEXT("InputMethod");
+    LPCTSTR empty = TEXT("InputMethod");
     AwtFrame *f = NULL;
 
     PDATA pData;
--- a/jdk/src/windows/native/sun/windows/awt_InputMethod.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_InputMethod.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -580,18 +580,10 @@
     DWORD cbHKL = 16;
     LPTSTR end;
 
-    if (IS_NT) {
-        ret = ::RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("Keyboard Layout\\Preload"), NULL, KEY_READ, &hKey);
-    } else {
-        ret = ::RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("keyboard layout\\preload\\1"), NULL, KEY_READ, &hKey);
-    }
+    ret = ::RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("Keyboard Layout\\Preload"), NULL, KEY_READ, &hKey);
 
     if (ret == ERROR_SUCCESS) {
-        if (IS_NT) {
-            ret = ::RegQueryValueEx(hKey, TEXT("1"), 0, 0, szHKL, &cbHKL);
-        } else {
-            ret = ::RegQueryValueEx(hKey, NULL, 0, 0, szHKL, &cbHKL);
-        }
+        ret = ::RegQueryValueEx(hKey, TEXT("1"), 0, 0, szHKL, &cbHKL);
 
         if (ret == ERROR_SUCCESS) {
             hkl = reinterpret_cast<HKL>(static_cast<INT_PTR>(
--- a/jdk/src/windows/native/sun/windows/awt_InputTextInfor.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_InputTextInfor.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2005-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -22,10 +22,9 @@
  * CA 95054 USA or visit www.sun.com if you need additional information or
  * have any questions.
  */
-#include <windows.h>
-#include <jni.h>
+
+#include "awt.h"
 #include <imm.h>
-#include "awt.h"
 #include "awt_Component.h"
 #include "awt_InputTextInfor.h"
 
@@ -91,12 +90,12 @@
     LONG   cbData[5] = {0};
     LPVOID lpData[5] = {NULL};
     for (int i = startIndex, j = 0; i <= endIndex; i++, j++) {
-        cbData[j] = ImmGetCompositionStringW(hIMC, GCS_INDEX[i], NULL, 0);
+        cbData[j] = ::ImmGetCompositionString(hIMC, GCS_INDEX[i], NULL, 0);
         if (cbData[j] == 0) {
             lpData[j] = NULL;
         } else {
             LPBYTE lpTemp = new BYTE[cbData[j]];
-            cbData[j] = ImmGetCompositionStringW(hIMC, GCS_INDEX[i], lpTemp, cbData[j]);
+            cbData[j] = ::ImmGetCompositionString(hIMC, GCS_INDEX[i], lpTemp, cbData[j]);
             if (IMM_ERROR_GENERAL != cbData[j]) {
                 lpData[j] = (LPVOID)lpTemp;
             } else {
@@ -126,7 +125,7 @@
 
     // Get the cursor position
     if (flags & GCS_COMPSTR) {
-        m_cursorPosW = ImmGetCompositionStringW(hIMC, GCS_CURSORPOS,
+        m_cursorPosW = ::ImmGetCompositionString(hIMC, GCS_CURSORPOS,
                                                 NULL, 0);
     }
 
@@ -185,9 +184,11 @@
 
 jstring AwtInputTextInfor::MakeJavaString(JNIEnv* env, LPWSTR lpStrW, int cStrW) {
 
-    if (env == NULL || lpStrW == NULL || cStrW == 0) return NULL;
-
-    return env->NewString(lpStrW, cStrW);
+    if (env == NULL || lpStrW == NULL || cStrW == 0) {
+        return NULL;
+    } else {
+        return env->NewString(reinterpret_cast<jchar*>(lpStrW), cStrW);
+    }
 }
 
 //
@@ -232,7 +233,7 @@
                 LCID lcJPN = MAKELCID(MAKELANGID(LANG_JAPANESE,SUBLANG_DEFAULT),SORT_DEFAULT);
                 // Reading string is given in half width katakana in Japanese Windows
                 //  Convert it to full width katakana.
-                int cFWStrW = LCMapStringW( lcJPN, LCMAP_FULLWIDTH, lpHWStrW, cHWStrW, NULL, 0 );
+                int cFWStrW = ::LCMapString(lcJPN, LCMAP_FULLWIDTH, lpHWStrW, cHWStrW, NULL, 0);
                 LPWSTR lpFWStrW;
                 try {
                     lpFWStrW = new WCHAR[cFWStrW];
@@ -244,7 +245,7 @@
                     throw;
                 }
 
-                LCMapStringW( lcJPN, LCMAP_FULLWIDTH, lpHWStrW, cHWStrW, lpFWStrW, cFWStrW );
+                ::LCMapString(lcJPN, LCMAP_FULLWIDTH, lpHWStrW, cHWStrW, lpFWStrW, cFWStrW);
                 readingClauseW[cls] = MakeJavaString(env, lpFWStrW, cFWStrW);
                 delete [] lpFWStrW;
             } else {
@@ -252,7 +253,7 @@
             }
         }
         else {
-            readingClauseW[cls] = MakeJavaString(env, (LPWSTR)NULL, 0);
+            readingClauseW[cls] = NULL;
         }
     }
 
--- a/jdk/src/windows/native/sun/windows/awt_List.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_List.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1996-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,7 +27,6 @@
 #include "awt_KeyboardFocusManager.h"
 #include "awt_Canvas.h"
 #include "awt_Dimension.h"
-#include "awt_Unicode.h"
 #include "awt_Toolkit.h"
 #include "awt_Window.h"
 
@@ -112,9 +111,8 @@
             DWORD wrapExStyle = 0;
 
             DWORD style = WS_CHILD | WS_CLIPSIBLINGS | WS_VSCROLL | WS_HSCROLL |
-                LBS_NOINTEGRALHEIGHT | LBS_NOTIFY | LBS_OWNERDRAWFIXED |
-                (IS_WIN4X ? 0 : WS_BORDER);
-            DWORD exStyle = IS_WIN4X ? WS_EX_CLIENTEDGE : 0;
+                LBS_NOINTEGRALHEIGHT | LBS_NOTIFY | LBS_OWNERDRAWFIXED;
+            DWORD exStyle = WS_EX_CLIENTEDGE;
 
             /*
              * NOTE: WS_VISIBLE is always set for the listbox. Listbox
@@ -571,10 +569,10 @@
 // operate WM_PRINT to be compatible with the "smooth scrolling" feature.
 MsgRouting AwtList::WmPrint(HDC hDC, LPARAM flags)
 {
-    if (!isWrapperPrint && IS_WIN4X
-            && (flags & PRF_CLIENT)
-            && (GetStyleEx() & WS_EX_CLIENTEDGE)) {
-
+    if (!isWrapperPrint &&
+        (flags & PRF_CLIENT) &&
+        (GetStyleEx() & WS_EX_CLIENTEDGE))
+    {
         int nOriginalDC = ::SaveDC(hDC);
         DASSERT(nOriginalDC != 0);
         // Save a copy of the DC for WmPrintClient
--- a/jdk/src/windows/native/sun/windows/awt_MMStub.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,573 +0,0 @@
-/*
- * Copyright 1999-2003 Sun Microsystems, Inc.  All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-#include    "awt_MMStub.h"
-
-//---------------------------------------------------------------------------
-//  Basic API
-//---------------------------------------------------------------------------
-
-int      (WINAPI* g_pfnGetSystemMetrics)        (int);
-MHND     (WINAPI* g_pfnMonitorFromWindow)       (HWND,BOOL);
-MHND     (WINAPI* g_pfnMonitorFromRect)         (LPCRECT,BOOL);
-MHND     (WINAPI* g_pfnMonitorFromPoint)        (POINT,BOOL);
-BOOL     (WINAPI* g_pfnGetMonitorInfo)          (MHND,PMONITOR_INFO);
-BOOL     (WINAPI* g_pfnEnumDisplayMonitors)     (HDC,LPCRECT,MON_ENUM_CALLBACK_PROC,LPARAM);
-BOOL     (WINAPI* g_pfnEnumDisplayDevices)      (LPVOID,int,P_DISPLAY_DEVICE,DWORD);
-
-BOOL __initMultipleMonitorStubs(void);
-BOOL __initMultipleMonitorStubs(void)
-{
-    static BOOL fInitDone;
-    HMODULE     hUser32;
-    HMODULE     hUnicows = UnicowsLoader::GetModuleHandle();
-    BOOL        retCode = FALSE;
-
-    if (fInitDone)
-    {
-      retCode = g_pfnGetMonitorInfo != NULL;
-        goto _RET_;
-    }
-
-    if ((hUser32 = GetModuleHandle(TEXT("USER32"))) &&
-        (*(FARPROC*)&g_pfnGetSystemMetrics    = GetProcAddress(hUser32,"GetSystemMetrics")) &&
-        (*(FARPROC*)&g_pfnMonitorFromWindow   = GetProcAddress(hUser32,"MonitorFromWindow")) &&
-        (*(FARPROC*)&g_pfnMonitorFromRect     = GetProcAddress(hUser32,"MonitorFromRect")) &&
-        (*(FARPROC*)&g_pfnMonitorFromPoint    = GetProcAddress(hUser32,"MonitorFromPoint")) &&
-        (*(FARPROC*)&g_pfnEnumDisplayMonitors = GetProcAddress(hUser32,"EnumDisplayMonitors")) &&
-        (*(FARPROC*)&g_pfnGetMonitorInfo      = GetProcAddress(IS_WIN95 ? hUnicows : hUser32,"GetMonitorInfoW")) &&
-        (*(FARPROC*)&g_pfnEnumDisplayDevices  = GetProcAddress(IS_WIN95 ? hUnicows : hUser32,"EnumDisplayDevicesW")) &&
-        (GetSystemMetrics(SM_CXVSCREEN) >= GetSystemMetrics(SM_CXSCREEN)) &&
-        (GetSystemMetrics(SM_CYVSCREEN) >= GetSystemMetrics(SM_CYSCREEN)) )
-    {
-        fInitDone = TRUE;
-        retCode = TRUE;
-        goto _RET_;
-    }
-    g_pfnGetSystemMetrics    = NULL;
-    g_pfnMonitorFromWindow   = NULL;
-    g_pfnMonitorFromRect     = NULL;
-    g_pfnMonitorFromPoint    = NULL;
-    g_pfnGetMonitorInfo      = NULL;
-    g_pfnEnumDisplayMonitors = NULL;
-    g_pfnEnumDisplayDevices  = NULL;
-
-    fInitDone = TRUE;
-    retCode = FALSE;
-
-_RET_:
-    return retCode;
-}
-
-int WINAPI _getSystemMetrics(int nCode)
-{
-   int     retCode;
-    if( __initMultipleMonitorStubs() )
-    {
-        retCode = g_pfnGetSystemMetrics(nCode);
-        goto _RET_;
-    }
-
-    switch( nCode )
-    {
-        case SM_CMONITORS:
-        case SM_SAMEDSPLFORMAT:
-            return 1;
-
-        case SM_XVSCREEN:
-        case SM_YVSCREEN:
-            return 0;
-
-        case SM_CXVSCREEN:
-            nCode = SM_CXSCREEN;
-            break;
-
-        case SM_CYVSCREEN:
-            nCode = SM_CYSCREEN;
-            break;
-    }
-
-    retCode = GetSystemMetrics(nCode);
-_RET_:
-    return retCode;
-}
-
-
-MHND WINAPI _monitorFromRect(LPCRECT prScreen, UINT nFlags)
-{
-    MHND    retCode = NULL;
-    if( __initMultipleMonitorStubs() )
-    {
-        retCode = g_pfnMonitorFromRect(prScreen, nFlags);
-        goto _RET_;
-    }
-
-    if( (prScreen->right < 0) || (prScreen->bottom < 0) )
-    {
-        goto _RET_;
-    }
-    {
-        POINT   pP = {0,0};
-
-        pP.x = prScreen->left;
-        pP.y = prScreen->top;
-
-        retCode = _monitorFromPoint(pP,nFlags);
-    }
-
-_RET_:
-    return retCode;
-}
-
-MHND WINAPI _monitorFromWindow(HWND hwProbe, UINT nFlags)
-{
-    RECT    rR;
-    MHND    retCode = NULL;
-
-    if( __initMultipleMonitorStubs() )
-    {
-        retCode = g_pfnMonitorFromWindow(hwProbe, nFlags);
-        goto _RET_;
-    }
-
-    if( nFlags & (MONITOR_DEFAULT_TO_PRIMARY | MONITOR_DEFAULT_TO_NEAR) )
-    {
-        retCode = PRIMARY_MONITOR;
-        goto _RET_;
-    }
-
-    if( GetWindowRect(hwProbe, &rR) )
-    {
-        retCode = _monitorFromRect(&rR, nFlags);
-        goto _RET_;
-    }
-
-_RET_:
-    return retCode;
-}
-
-MHND WINAPI _monitorFromPoint(POINT ptProbe, UINT nFlags)
-{
-    MHND    retCode = NULL;
-    if( __initMultipleMonitorStubs() )
-    {
-        retCode = g_pfnMonitorFromPoint(ptProbe,nFlags);
-        goto _RET_;
-    }
-
-    if( nFlags & (MONITOR_DEFAULT_TO_PRIMARY | MONITOR_DEFAULT_TO_NEAR) )
-    {
-        goto _ASSIGN_;
-    }
-
-    if( (ptProbe.x <= 0) || (ptProbe.x > GetSystemMetrics(SM_CXSCREEN)) )
-    {
-        goto _RET_;
-    }
-
-    if( (ptProbe.y <= 0) || (ptProbe.y < GetSystemMetrics(SM_CYSCREEN)) )
-    {
-        goto _RET_;
-    }
-_ASSIGN_:
-    retCode = PRIMARY_MONITOR;
-
-_RET_:
-    return retCode;
-}
-
-BOOL WINAPI _getMonitorInfo(MHND mhMon, PMONITOR_INFO pmMonInfo)
-{
-    RECT    rArea;
-    BOOL    retCode = FALSE;
-
-    if( __initMultipleMonitorStubs() )
-    {
-        retCode = g_pfnGetMonitorInfo(mhMon, pmMonInfo);
-        goto _RET_;
-    }
-
-    if( mhMon != PRIMARY_MONITOR )
-    {
-        goto _RET_;
-    }
-
-    if( NULL == pmMonInfo )
-    {
-        goto _RET_;
-    }
-
-    if( FALSE == SystemParametersInfo(SPI_GETWORKAREA,0,&rArea,0) )
-    {
-        goto _RET_;
-    }
-
-    if( pmMonInfo->dwSize >= sizeof(MONITOR_INFO) )
-    {
-        pmMonInfo->rMonitor.left = 0;
-        pmMonInfo->rMonitor.top  = 0;
-        pmMonInfo->rMonitor.right  = GetSystemMetrics(SM_CXSCREEN);
-        pmMonInfo->rMonitor.bottom = GetSystemMetrics(SM_CYSCREEN);
-        pmMonInfo->rWork    = rArea;
-        pmMonInfo->dwFlags  = MONITOR_INFO_FLAG_PRIMARY;
-
-        if( pmMonInfo->dwSize >= sizeof(MONITOR_INFO_EXTENDED))
-        {
-            lstrcpy(((PMONITOR_INFO_EXTENDED)pmMonInfo)->strDevice,
-            TEXT("DISPLAY") );
-        }
-
-        retCode = TRUE;
-    }
-
-_RET_:
-    return retCode;
-}
-
-BOOL WINAPI _enumDisplayMonitors(
-                                    HDC hDC,LPCRECT lrcSect,
-                                    MON_ENUM_CALLBACK_PROC lpfnEnumProc,
-                                    LPARAM lData
-                                )
-{
-    BOOL    retCode     = FALSE;
-    RECT    rToPass     = {0,0,0,0};
-    RECT    rBorder     = {0,0,0,0};
-
-    if( __initMultipleMonitorStubs() )
-    {
-        retCode = g_pfnEnumDisplayMonitors  (
-                                                hDC, lrcSect,
-                                                lpfnEnumProc,lData
-                                            );
-        goto _RET_;
-    }
-
-    if( !lpfnEnumProc )
-    {
-        goto _RET_;
-    }
-
-    rBorder.left   = 0;
-    rBorder.top    = 0;
-    rBorder.right  = GetSystemMetrics(SM_CXSCREEN);
-    rBorder.bottom = GetSystemMetrics(SM_CYSCREEN);
-
-    if( hDC )
-    {
-        RECT rSect = {0,0,0,0};
-        HWND hWnd  = NULL;
-
-        if( NULL == (hWnd = WindowFromDC(hDC)) )
-        {
-            goto _RET_;
-        }
-
-        switch( GetClipBox(hDC,&rSect) )
-        {
-            case NULLREGION:
-                 goto _ASSIGN_;
-            case ERROR:
-                 goto _RET_;
-            default:
-                MapWindowPoints(NULL, hWnd, (LPPOINT)&rBorder, 2);
-                if( TRUE == IntersectRect(&rToPass,&rSect,&rBorder) )
-                {
-                   break;
-                }
-        }
-
-        rBorder = rToPass;
-    }
-
-    if( (NULL == lrcSect) || (TRUE == IntersectRect(&rToPass,lrcSect,&rBorder)) )
-    {
-        lpfnEnumProc(PRIMARY_MONITOR,hDC,&rToPass,lData);
-    }
-_ASSIGN_:
-    retCode = TRUE;
-_RET_:
-    return retCode;
-}
-
-BOOL WINAPI _enumDisplayDevices (
-                                    LPVOID lpReserved, int iDeviceNum,
-                                    _DISPLAY_DEVICE * pDisplayDevice, DWORD dwFlags
-                                )
-{
-    BOOL retCode = FALSE;
-    if( __initMultipleMonitorStubs() )
-    {
-        retCode = g_pfnEnumDisplayDevices(lpReserved,iDeviceNum,pDisplayDevice,dwFlags);
-    }
-
-    return retCode;
-}
-
-
-//---------------------------------------------------------------------------
-// Extended API.
-//---------------------------------------------------------------------------
-//  Globais
-int         g_nMonitorCounter;
-int         g_nMonitorLimit;
-MHND*       g_hmpMonitors;
-//  Callbacks
-BOOL WINAPI clb_fCountMonitors(MHND,HDC,LPRECT,LPARAM);
-BOOL WINAPI clb_fCountMonitors(MHND hMon,HDC hDC,LPRECT rRect,LPARAM lP)
-{
-    g_nMonitorCounter ++;
-    return TRUE;
-}
-BOOL WINAPI clb_fCollectMonitors(MHND,HDC,LPRECT,LPARAM);
-BOOL WINAPI clb_fCollectMonitors(MHND hMon,HDC hDC,LPRECT rRect,LPARAM lP)
-{
-
-    if( (g_nMonitorCounter < g_nMonitorLimit) && (NULL != g_hmpMonitors) )
-    {
-        g_hmpMonitors[g_nMonitorCounter] = hMon;
-        g_nMonitorCounter ++;
-    }
-
-    return TRUE;
-}
-//  Tools
-void __normaRectPos(RECT*,RECT,RECT);
-HWND __createWindow0(MHND,LPCTSTR,LPCTSTR,DWORD,int,int,int,int,HWND,HMENU,HANDLE,LPVOID);
-HWND __createWindow1(MHND,LPCTSTR,LPCTSTR,DWORD,int,int,int,int,HWND,HMENU,HANDLE,LPVOID);
-void __normaRectPos(RECT* rDest,RECT rSrc,RECT rNorma)
-{
-    int nDX = rSrc.right - rSrc.left;
-    int nDY = rSrc.bottom - rSrc.top;
-
-    rDest->left  = rSrc.left + rNorma.left;
-    rDest->top   = rSrc.top + rNorma.top;
-
-    rDest->right     = rDest->left + nDX;
-    rDest->bottom    = rDest->top + nDY;
-}
-HWND __createWindow0(   MHND hmMonitor,LPCTSTR lpClassName,LPCTSTR lpWindowName,
-                        DWORD dwStyle,int x,int y,int nWidth,
-                        int nHeight,HWND hWndParent,HMENU hMenu,
-                        HANDLE hInstance,LPVOID lpParam )
-{
-    HWND    retCode = NULL;
-
-    if( (NULL != hmMonitor) && (NULL != lpClassName) &&
-        (NULL != lpWindowName) && (NULL != hInstance) )
-    {
-        RECT    rRW     = {0,0,0,0};
-        RECT    rRM     = {0,0,0,0};
-        RECT    rSect   = {0,0,0,0};
-
-        SetRect(&rRW,x,y,x+nWidth,y+nHeight);
-
-        if( TRUE == _monitorBounds(hmMonitor,&rRM) )
-        {
-            __normaRectPos(&rRW,rRW,rRM);
-
-            IntersectRect(&rSect,&rRM,&rRW);
-
-            if( TRUE == EqualRect(&rSect,&rRW) )
-            {
-                x = rSect.left;
-                y = rSect.top;
-                nWidth = rSect.right - rSect.left;
-                nHeight = rSect.bottom - rSect.top;
-                retCode = CreateWindow(
-                                            lpClassName,lpWindowName,
-                                            dwStyle,x,y,nWidth,
-                                            nHeight,hWndParent,hMenu,
-                                            (HINSTANCE)hInstance,lpParam
-                                        );
-            } else  {
-                    //  A coisa indefinida. Nao tenho sabdoria o que
-                    //  fazer aqui mesmo
-                    //  E necessario perguntar Jeannette
-                    }
-        }
-    }
-
-    return retCode;
-}
-HWND __createWindow1(   MHND hmMonitor,LPCTSTR lpClassName,LPCTSTR lpWindowName,
-                        DWORD dwStyle,int x,int y,int nWidth,
-                        int nHeight,HWND hWndParent,HMENU hMenu,
-                        HANDLE hInstance,LPVOID lpParam )
-{
-    HWND    retCode = NULL;
-
-    if( (NULL != hmMonitor) && (NULL != lpClassName) &&
-        (NULL != lpWindowName) && (NULL != hInstance) )
-    {
-        RECT    rRM     = {0,0,0,0};
-
-        if( TRUE == _monitorBounds(hmMonitor,&rRM) )
-        {
-            HWND    wW          = NULL;
-            BOOL    wasVisible  = (0 != (dwStyle & WS_VISIBLE));
-
-            if( TRUE == wasVisible )
-            {
-                dwStyle &= ~WS_VISIBLE;
-            }
-
-            if( NULL != (wW = CreateWindow(
-                                                lpClassName,lpWindowName,
-                                                dwStyle,x,y,nWidth,
-                                                nHeight,hWndParent,hMenu,
-                                                (HINSTANCE)hInstance,lpParam
-                                            )) )
-            {
-                RECT    rRW     = {0,0,0,0};
-                RECT    rSect   = {0,0,0,0};
-
-                GetWindowRect(wW,&rRW);
-
-                __normaRectPos(&rRW,rRW,rRM);
-
-                IntersectRect(&rSect,&rRM,&rRW);
-
-                if( TRUE == EqualRect(&rSect,&rRW) )
-                {
-                    x = rSect.left;
-                    y = rSect.top;
-                    nWidth = rSect.right - rSect.left;
-                    nHeight = rSect.bottom - rSect.top;
-
-                    MoveWindow(wW,x,y,nWidth,nHeight,FALSE);
-
-                    if( TRUE == wasVisible )
-                    {
-                        UpdateWindow(wW);
-                        ShowWindow(wW,SW_SHOW);
-                    }
-
-                    retCode = wW;
-                } else  {
-                        //  A coisa indefinida. Nao sei o que
-                        //  fazer aqui. E necessario perguntar Jeannette
-                            DestroyWindow(wW);
-                        }
-            }
-        }
-    }
-
-    return retCode;
-}
-
-//  Implementations
-int WINAPI _countMonitors(void)
-{
-    g_nMonitorCounter = 0;
-
-    _enumDisplayMonitors(NULL,NULL,clb_fCountMonitors,0L);
-
-    return g_nMonitorCounter;
-
-}
-int WINAPI _collectMonitors(MHND* hmpMonitors,int nNum)
-{
-    int     retCode = 0;
-
-    if( NULL != hmpMonitors )
-    {
-        g_nMonitorCounter   = 0;
-        g_nMonitorLimit     = nNum;
-        g_hmpMonitors       = hmpMonitors;
-
-        _enumDisplayMonitors(NULL,NULL,clb_fCollectMonitors,0L);
-
-        retCode             = g_nMonitorCounter;
-
-        g_nMonitorCounter   = 0;
-        g_nMonitorLimit     = 0;
-        g_hmpMonitors       = NULL;
-
-    }
-    return retCode;
-}
-BOOL WINAPI _monitorBounds(MHND hmMonitor,RECT* rpBounds)
-{
-    BOOL retCode = FALSE;
-
-    if( (NULL != hmMonitor) && (NULL != rpBounds)  )
-    {
-        MONITOR_INFO miInfo;
-
-        memset((void*)(&miInfo),0,sizeof(MONITOR_INFO));
-        miInfo.dwSize = sizeof(MONITOR_INFO);
-
-        if( TRUE == (retCode = _getMonitorInfo(hmMonitor,&(miInfo))) )
-        {
-            (*rpBounds) = miInfo.rMonitor;
-        }
-    }
-    return retCode;
-}
-
-HDC WINAPI _makeDCFromMonitor(MHND hmMonitor) {
-    HDC retCode = NULL;
-
-    if( NULL != hmMonitor ) {
-
-        MONITOR_INFO_EXTENDED mieInfo;
-
-        memset((void*)(&mieInfo),0,sizeof(MONITOR_INFO_EXTENDED));
-        mieInfo.dwSize = sizeof(MONITOR_INFO_EXTENDED);
-
-        if( TRUE == _getMonitorInfo(hmMonitor,(PMONITOR_INFO)(&mieInfo)) ) {
-            HDC hDC = CreateDC(mieInfo.strDevice,NULL,NULL,NULL);
-
-            if( NULL != hDC ) {
-                retCode = hDC;
-            }
-        }
-    }
-    return retCode;
-}
-
-HWND WINAPI _createWindowOM( MHND hmMonitor,LPCTSTR lpClassName,LPCTSTR lpWindowName,
-                    DWORD dwStyle,int x,int y,int nWidth,
-                    int nHeight,HWND hWndParent,HMENU hMenu,
-                    HANDLE hInstance,LPVOID lpParam )
-{
-    if( (CW_USEDEFAULT == x) || (CW_USEDEFAULT == y) ||
-        (CW_USEDEFAULT == nWidth) || (CW_USEDEFAULT == nHeight) )
-    {
-        return __createWindow1   (
-                                    hmMonitor,lpClassName,lpWindowName,
-                                    dwStyle,x,y,nWidth,
-                                    nHeight,hWndParent,hMenu,
-                                    hInstance,lpParam
-                                );
-    }
-    return __createWindow0   (
-                                hmMonitor,lpClassName,lpWindowName,
-                                dwStyle,x,y,nWidth,
-                                nHeight,hWndParent,hMenu,
-                                hInstance,lpParam
-                            );
-}
--- a/jdk/src/windows/native/sun/windows/awt_MMStub.h	Wed Jul 05 16:46:57 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,131 +0,0 @@
-/*
- * Copyright 1999-2003 Sun Microsystems, Inc.  All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-#ifndef _INC_MMSTUB
-#define _INC_MMSTUB
-
-#ifndef     _WINDOWS_
-#include    "windows.h"
-#endif
-
-#ifndef _AWT_H_
-#include "awt.h"
-#endif
-
-#if !defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0500)
-
-/*  Cdecl for C++               */
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*  Constants                   */
-#define SM_XVSCREEN                         76
-#define SM_YVSCREEN                         77
-#define SM_CXVSCREEN                        78
-#define SM_CYVSCREEN                        79
-#define SM_CMONITORS                        80
-#define SM_SAMEDSPLFORMAT                   81
-
-#define MONITOR_DEFAULT_TO_NULL             0x00000000
-#define MONITOR_DEFAULT_TO_PRIMARY          0x00000001
-#define MONITOR_DEFAULT_TO_NEAR             0x00000002
-
-
-
-#define MONITOR_INFO_FLAG_PRIMARY           0x00000001
-
-#define DISPLAY_DEVICE_ATTACHED_TO_DESKTOP  0x00000001
-#define DISPLAY_DEVICE_MULTY_DRIVER         0x00000002
-#define DISPLAY_DEVICE_PRIMARY_DEVICE       0x00000004
-#define DISPLAY_DEVICE_MIRRORING_DRIVER     0x00000008
-
-
-#define DISPLAY_DEVICE_VGA                  0x00000010
-
-#define ENUM_CURRENT_SETTINGS               ((DWORD)-1)
-#define ENUM_REGISTRY_SETTINGS              ((DWORD)-2)
-
-#define PRIMARY_MONITOR                     ((MHND)0x42)
-
-
-#define DEV_NAME_LEN                        32
-#define DEV_STR_LEN                         128
-
-
-//  Datatypes
-typedef HANDLE                              MHND;
-typedef BOOL (CALLBACK* MON_ENUM_CALLBACK_PROC)(MHND,HDC,LPRECT,LPARAM);
-
-typedef struct  tagMONITOR_INFO
-{
-    DWORD       dwSize;
-    RECT        rMonitor;
-    RECT        rWork;
-    DWORD       dwFlags;
-} MONITOR_INFO, *PMONITOR_INFO;
-
-typedef struct tagMONITOR_INFO_EXTENDED
-{
-   DWORD       dwSize;
-    RECT        rMonitor;
-    RECT        rWork;
-    DWORD       dwFlags;
-    TCHAR       strDevice[DEV_NAME_LEN];
-} MONITOR_INFO_EXTENDED, *PMONITOR_INFO_EXTENDED;
-
-typedef struct tagDISPLAY_DEVICE
-{
-    DWORD       dwSize;
-    WCHAR        strDevName[DEV_NAME_LEN];
-    WCHAR        strDevString[DEV_STR_LEN];
-    DWORD       dwFlags;
-    WCHAR       deviceID[128];
-    WCHAR       deviceKey[128];
-} _DISPLAY_DEVICE, *P_DISPLAY_DEVICE;
-
-/*  Basic API's  */
-BOOL WINAPI                     _enumDisplayMonitors(HDC,LPCRECT,MON_ENUM_CALLBACK_PROC,LPARAM);
-BOOL WINAPI                     _enumDisplayDevices (LPVOID,int,P_DISPLAY_DEVICE,DWORD);
-BOOL WINAPI                     _getMonitorInfo     (MHND,PMONITOR_INFO);
-MHND WINAPI                     _monitorFromPoint   (POINT,UINT);
-MHND WINAPI                      _monitorFromWindow  (HWND,UINT);
-MHND WINAPI                     _monitorFromRect    (LPCRECT,UINT);
-int WINAPI                      _getSystemMetrics   (int);
-
-/*  Additional API's */
-int WINAPI                      _countMonitors      (void);
-int WINAPI                      _collectMonitors    (MHND*,int);
-BOOL WINAPI                     _monitorBounds      (MHND,RECT*);
-HDC WINAPI                      _makeDCFromMonitor  (MHND);
-HWND WINAPI                     _createWindowOM     (MHND,LPCTSTR,LPCTSTR,DWORD,int,int,int,
-                                                     int,HWND,HMENU,HANDLE,LPVOID);
-
-#ifdef __cplusplus
-}
-#endif  /* __cplusplus */
-
-#endif  /* !defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0500) */
-
-#endif  /* _INC_MMSTUB */
--- a/jdk/src/windows/native/sun/windows/awt_MenuItem.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_MenuItem.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1996-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,6 +23,7 @@
  * have any questions.
  */
 
+#include "awt.h"
 #include "awt_MenuItem.h"
 #include "awt_Menu.h"
 #include "awt_MenuBar.h"
@@ -70,7 +71,6 @@
 LANGID AwtMenuItem::m_idLang = LOWORD(GetKeyboardLayout(0));
 UINT AwtMenuItem::m_CodePage =
     AwtMenuItem::LangToCodePage(AwtMenuItem::m_idLang);
-BOOL AwtMenuItem::m_isWin95 = IS_WIN95;
 BOOL AwtMenuItem::sm_rtl = PRIMARYLANGID(GetInputLanguage()) == LANG_ARABIC ||
                            PRIMARYLANGID(GetInputLanguage()) == LANG_HEBREW;
 BOOL AwtMenuItem::sm_rtlReadingOrder =
@@ -150,7 +150,7 @@
         jobject createError = NULL;
         if (dw == ERROR_OUTOFMEMORY)
         {
-            jstring errorMsg = env->NewStringUTF("too many menu handles");
+            jstring errorMsg = JNU_NewStringPlatform(env, L"too many menu handles");
             createError = JNU_NewObjectByName(env, "java/lang/OutOfMemoryError",
                                                    "(Ljava/lang/String;)V",
                                                    errorMsg);
@@ -435,16 +435,7 @@
     if (drawInfo.itemID != m_Id)
         return;
 
-    /* Fixed bug 4349969. Since the problem occurs on Windows 98 and not on
-       Windows NT, the fix is to check for Windows 95/98 and to check if the
-       handle to the menu of the item to be drawn is the same as the handle to the
-       menu of the menu object. If they're not the same, just return and don't do
-       the drawing.
-    */
-    if ( IS_WIN95 && drawInfo.hwndItem != (HWND)this->m_menuContainer->GetHMenu()) {
-        return;
-    } else
-        DrawSelf(drawInfo);
+    DrawSelf(drawInfo);
 }
 
 void AwtMenuItem::MeasureSelf(HDC hDC, MEASUREITEMSTRUCT& measureInfo)
@@ -802,8 +793,9 @@
     jobject jitem = GetTarget(env);
     jstring label  =
         (jstring)(env)->GetObjectField(jitem, AwtMenuItem::labelID);
-    LPWSTR labelW = TO_WSTRING(label);
+    LPCWSTR labelW = JNU_GetStringPlatformChars(env, label, NULL);
     BOOL isSeparator = (labelW && (wcscmp(labelW, L"-") == 0));
+    JNU_ReleaseStringPlatformChars(env, label, labelW);
 
     env->DeleteLocalRef(label);
     env->DeleteLocalRef(jitem);
--- a/jdk/src/windows/native/sun/windows/awt_Multimon.h	Wed Jul 05 16:46:57 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
- * Copyright 1999-2001 Sun Microsystems, Inc.  All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-#ifndef     _INC_MULTIMON_
-#define     _INC_MULTIMON_
-#endif
-//
-// build defines that replace the regular APIs with our versions
-//
-#undef GetMonitorInfo
-#undef GetSystemMetrics
-#undef MonitorFromWindow
-#undef MonitorFromRect
-#undef MonitorFromPoint
-#undef EnumDisplayMonitors
-#undef EnumDisplayDevices
-
-#include    "awt_MMStub.h"
-
-#define GetSystemMetricsMM      _getSystemMetrics
-#define MonitorFromWindow       _monitorFromWindow
-#define MonitorFromRect         _monitorFromRect
-#define MonitorFromPoint        _monitorFromPoint
-#define GetMonitorInfo          _getMonitorInfo
-#define EnumDisplayMonitors     _enumDisplayMonitors
-#define EnumDisplayDevices      _enumDisplayDevices
-
-
-#define CountMonitors           _countMonitors
-#define CollectMonitors         _collectMonitors
-#define MonitorBounds           _monitorBounds
-#define MakeDCFromMonitor       _makeDCFromMonitor
-#define CreateWindowOnMonitor   _createWindowOM
--- a/jdk/src/windows/native/sun/windows/awt_Object.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_Object.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -25,9 +25,6 @@
 
 #include "awt_Object.h"
 #include "ObjectList.h"
-#ifdef DEBUG
-#include "awt_Unicode.h"
-#endif
 
 #ifdef DEBUG
 static BOOL reportEvents = FALSE;
@@ -116,8 +113,9 @@
                                               "getName",
                                               "()Ljava/lang/String;").l;
             DASSERT(!safe_ExceptionOccurred(env));
-            printf("Posting %s%s method to %S\n", methodName, methodSig,
-                   TO_WSTRING(targetStr));
+            LPCWSTR targetStrW = JNU_GetStringPlatformChars(env, targetStr, NULL);
+            printf("Posting %s%s method to %S\n", methodName, methodSig, targetStrW);
+            JNU_ReleaseStringPlatformChars(env, targetStr, targetStrW);
         }
 #endif
         /* caching would do much good here */
@@ -148,8 +146,11 @@
             (jstring)JNU_CallMethodByName(env, NULL, GetTarget(env),"getName",
                                           "()Ljava/lang/String;").l;
         DASSERT(!safe_ExceptionOccurred(env));
-        printf("Posting %S to %S\n", TO_WSTRING(eventStr),
-               TO_WSTRING(targetStr));
+        LPCWSTR eventStrW = JNU_GetStringPlatformChars(env, eventStr, NULL);
+        LPCWSTR targetStrW = JNU_GetStringPlatformChars(env, targetStr, NULL);
+        printf("Posting %S to %S\n", eventStrW, targetStrW);
+        JNU_ReleaseStringPlatformChars(env, eventStr, eventStrW);
+        JNU_ReleaseStringPlatformChars(env, targetStr, targetStrW);
     }
 #endif
     /* Post event to the system EventQueue. */
--- a/jdk/src/windows/native/sun/windows/awt_Palette.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_Palette.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 2001-2004 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2001-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
  * have any questions.
  */
 
-#include <windows.h>
+#include "awt.h"
 #include "awt_Palette.h"
 #include "awt_Component.h"
 #include "img_util_md.h"
--- a/jdk/src/windows/native/sun/windows/awt_PopupMenu.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_PopupMenu.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -234,11 +234,13 @@
         jobject jitem = item->GetTarget(env);
         BOOL bItemEnabled = isEnabled && (jboolean)env->GetBooleanField(jitem,
             AwtMenuItem::enabledID);
-        LPWSTR labelW = TO_WSTRING((jstring)env->GetObjectField(jitem,
-            AwtMenuItem::labelID));
-        if (labelW != NULL && wcscmp(labelW,L"-") != 0) {
+        jstring labelStr = static_cast<jstring>(env->GetObjectField(jitem, AwtMenuItem::labelID));
+        LPCWSTR labelStrW = JNU_GetStringPlatformChars(env, labelStr, NULL);
+        if (labelStrW  && wcscmp(labelStrW, L"-") != 0) {
             item->Enable(bItemEnabled);
         }
+        JNU_ReleaseStringPlatformChars(env, labelStr, labelStrW);
+        env->DeleteLocalRef(labelStr);
         env->DeleteLocalRef(jitem);
     }
     env->DeleteLocalRef(target);
--- a/jdk/src/windows/native/sun/windows/awt_PrintControl.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_PrintControl.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1999-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -108,16 +108,13 @@
 {
     JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
 
-    BOOL nt = IS_NT;
     DWORD cReturned = 0;
 
     if (pPrinterEnum == NULL) {
         // Compute size of buffer
         DWORD cbNeeded = 0;
-        if (nt) {
-            ::EnumPrinters(PRINTER_ENUM_LOCAL | PRINTER_ENUM_CONNECTIONS,
+        ::EnumPrinters(PRINTER_ENUM_LOCAL | PRINTER_ENUM_CONNECTIONS,
                            NULL, 2, NULL, 0, &cbNeeded, &cReturned);
-        }
         ::EnumPrinters(PRINTER_ENUM_LOCAL,
                        NULL, 5, NULL, 0, pcbBuf, &cReturned);
         if (cbNeeded > (*pcbBuf)) {
@@ -139,65 +136,63 @@
     // doesn't support port searches. So, if the user has specified the
     // printer name as "LPT1:" (even though this is actually a port
     // name), we won't find the printer here.
-    if (nt) {
-        if (!::EnumPrinters(PRINTER_ENUM_LOCAL | PRINTER_ENUM_CONNECTIONS,
-                            NULL, 4, pPrinterEnum, cbBuf, &dummyWord, &cReturned)) {
-            return FALSE;
-        }
+    if (!::EnumPrinters(PRINTER_ENUM_LOCAL | PRINTER_ENUM_CONNECTIONS,
+                        NULL, 4, pPrinterEnum, cbBuf, &dummyWord, &cReturned)) {
+        return FALSE;
+    }
 
-        for (DWORD i = 0; i < cReturned; i++) {
-            PRINTER_INFO_4 *info4 = (PRINTER_INFO_4 *)
-                (pPrinterEnum + i * sizeof(PRINTER_INFO_4));
-            if (info4->pPrinterName != NULL &&
-                _tcsicmp(lpcPrinterName, info4->pPrinterName) == 0) {
+    for (DWORD i = 0; i < cReturned; i++) {
+        PRINTER_INFO_4 *info4 = (PRINTER_INFO_4 *)
+            (pPrinterEnum + i * sizeof(PRINTER_INFO_4));
+        if (info4->pPrinterName != NULL &&
+            _tcsicmp(lpcPrinterName, info4->pPrinterName) == 0) {
 
-                // Fix for BugTraq Id 4281380.
-                // Get the port name since some drivers may require
-                // this name to be passed to ::DeviceCapabilities().
-                HANDLE hPrinter = NULL;
-                if (::OpenPrinter(info4->pPrinterName, &hPrinter, NULL)) {
-                    // Fix for BugTraq Id 4286812.
-                    // Some drivers don't support PRINTER_INFO_5.
-                    // In this case we try PRINTER_INFO_2, and if that
-                    // isn't supported as well return NULL port name.
-                    try {
-                        if (AwtPrintControl::IsSupportedLevel(hPrinter, 5)) {
-                            VERIFY(::GetPrinter(hPrinter, 5, pPrinterEnum, cbBuf,
-                                                &dummyWord));
-                            PRINTER_INFO_5 *info5 = (PRINTER_INFO_5 *)pPrinterEnum;
-                            *foundPrinter = info5->pPrinterName;
-                            // pPortName may specify multiple ports. We only want one.
-                            *foundPort = (info5->pPortName != NULL)
-                                ? _tcstok(info5->pPortName, TEXT(",")) : NULL;
-                        } else if (AwtPrintControl::IsSupportedLevel(hPrinter, 2)) {
-                            VERIFY(::GetPrinter(hPrinter, 2, pPrinterEnum, cbBuf,
-                                                &dummyWord));
-                            PRINTER_INFO_2 *info2 = (PRINTER_INFO_2 *)pPrinterEnum;
-                            *foundPrinter = info2->pPrinterName;
-                            // pPortName may specify multiple ports. We only want one.
-                            *foundPort = (info2->pPortName != NULL)
-                                ? _tcstok(info2->pPortName, TEXT(",")) : NULL;
-                        } else {
-                            *foundPrinter = info4->pPrinterName;
-                            // We failed to determine port name for the found printer.
-                            *foundPort = NULL;
-                        }
-                    } catch (std::bad_alloc&) {
-                        VERIFY(::ClosePrinter(hPrinter));
-                        throw;
+            // Fix for BugTraq Id 4281380.
+            // Get the port name since some drivers may require
+            // this name to be passed to ::DeviceCapabilities().
+            HANDLE hPrinter = NULL;
+            if (::OpenPrinter(info4->pPrinterName, &hPrinter, NULL)) {
+                // Fix for BugTraq Id 4286812.
+                // Some drivers don't support PRINTER_INFO_5.
+                // In this case we try PRINTER_INFO_2, and if that
+                // isn't supported as well return NULL port name.
+                try {
+                    if (AwtPrintControl::IsSupportedLevel(hPrinter, 5)) {
+                        VERIFY(::GetPrinter(hPrinter, 5, pPrinterEnum, cbBuf,
+                                            &dummyWord));
+                        PRINTER_INFO_5 *info5 = (PRINTER_INFO_5 *)pPrinterEnum;
+                        *foundPrinter = info5->pPrinterName;
+                        // pPortName may specify multiple ports. We only want one.
+                        *foundPort = (info5->pPortName != NULL)
+                            ? _tcstok(info5->pPortName, TEXT(",")) : NULL;
+                    } else if (AwtPrintControl::IsSupportedLevel(hPrinter, 2)) {
+                        VERIFY(::GetPrinter(hPrinter, 2, pPrinterEnum, cbBuf,
+                                            &dummyWord));
+                        PRINTER_INFO_2 *info2 = (PRINTER_INFO_2 *)pPrinterEnum;
+                        *foundPrinter = info2->pPrinterName;
+                        // pPortName may specify multiple ports. We only want one.
+                        *foundPort = (info2->pPortName != NULL)
+                            ? _tcstok(info2->pPortName, TEXT(",")) : NULL;
+                    } else {
+                        *foundPrinter = info4->pPrinterName;
+                        // We failed to determine port name for the found printer.
+                        *foundPort = NULL;
                     }
-
+                } catch (std::bad_alloc&) {
                     VERIFY(::ClosePrinter(hPrinter));
-
-                    return TRUE;
+                    throw;
                 }
 
-                return FALSE;
+                VERIFY(::ClosePrinter(hPrinter));
+
+                return TRUE;
             }
+
+            return FALSE;
         }
     }
 
-    // We still haven't found the printer, or we're using 95/98.
+    // We still haven't found the printer, /* or we're using 95/98. */
     // PRINTER_INFO_5 supports both printer name and port name, so
     // we'll test both. On NT, PRINTER_ENUM_LOCAL means just local
     // printers. This is what we want, because we already tested all
@@ -213,28 +208,17 @@
     for (DWORD i = 0; i < cReturned; i++) {
         PRINTER_INFO_5 *info5 = (PRINTER_INFO_5 *)
             (pPrinterEnum + i * sizeof(PRINTER_INFO_5));
-        if (nt) {
-            // pPortName can specify multiple ports. Test them one at
-            // a time.
-            if (info5->pPortName != NULL) {
-                LPTSTR port = _tcstok(info5->pPortName, TEXT(","));
-                while (port != NULL) {
-                    if (_tcsicmp(lpcPrinterName, port) == 0) {
-                        *foundPrinter = info5->pPrinterName;
-                        *foundPort = port;
-                        return TRUE;
-                    }
-                    port = _tcstok(NULL, TEXT(","));
+        // pPortName can specify multiple ports. Test them one at
+        // a time.
+        if (info5->pPortName != NULL) {
+            LPTSTR port = _tcstok(info5->pPortName, TEXT(","));
+            while (port != NULL) {
+                if (_tcsicmp(lpcPrinterName, port) == 0) {
+                    *foundPrinter = info5->pPrinterName;
+                    *foundPort = port;
+                    return TRUE;
                 }
-            }
-        } else {
-            if ((info5->pPrinterName != NULL &&
-                 _tcsicmp(lpcPrinterName, info5->pPrinterName) == 0) ||
-                (info5->pPortName != NULL &&
-                 _tcsicmp(lpcPrinterName, info5->pPortName) == 0)) {
-                *foundPrinter = info5->pPrinterName;
-                *foundPort = info5->pPortName;
-                return TRUE;
+                port = _tcstok(NULL, TEXT(","));
             }
         }
     }
@@ -400,13 +384,11 @@
         }
 
         // Create DEVNAMES.
-        if (IS_NT) {
-            if (pPortName != NULL) {
-                info2->pPortName = pPortName;
-            } else if (info2->pPortName != NULL) {
-                // pPortName may specify multiple ports. We only want one.
-                info2->pPortName = _tcstok(info2->pPortName, TEXT(","));
-            }
+        if (pPortName != NULL) {
+            info2->pPortName = pPortName;
+        } else if (info2->pPortName != NULL) {
+            // pPortName may specify multiple ports. We only want one.
+            info2->pPortName = _tcstok(info2->pPortName, TEXT(","));
         }
 
         size_t lenDriverName = ((info2->pDriverName != NULL)
--- a/jdk/src/windows/native/sun/windows/awt_PrintDialog.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_PrintDialog.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1999-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,10 +23,10 @@
  * have any questions.
  */
 
+#include "awt.h"
 #include "awt_PrintDialog.h"
 #include "awt_Dialog.h"
 #include "awt_PrintControl.h"
-#include "awt_dlls.h"
 #include "awt_Window.h"
 #include "ComCtl32Util.h"
 #include <sun_awt_windows_WPrintDialog.h>
@@ -39,11 +39,9 @@
 
 BOOL
 AwtPrintDialog::PrintDlg(LPPRINTDLG data) {
-    AwtCommDialog::load_comdlg_procs();
     return static_cast<BOOL>(reinterpret_cast<INT_PTR>(
         AwtToolkit::GetInstance().InvokeFunction(
-            reinterpret_cast<void *(*)(void *)>(AwtCommDialog::PrintDlgWrapper),
-            data)));
+            reinterpret_cast<void *(*)(void *)>(::PrintDlg), data)));
 }
 
 LRESULT CALLBACK PrintDialogWndProc(HWND hWnd, UINT message,
--- a/jdk/src/windows/native/sun/windows/awt_PrintJob.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_PrintJob.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1996-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,6 +23,7 @@
  * have any questions.
  */
 
+#include "awt.h"
 #include <math.h>
 #include <windef.h>
 #include <wtypes.h>
@@ -30,10 +31,9 @@
 #include <commdlg.h>
 #include <winspool.h>
 
-#include "awt.h"
-#include "awt_dlls.h"
 #include "awt_Toolkit.h"
 #include "awt_Component.h"
+#include "awt_Dialog.h"
 #include "awt_Font.h"
 #include "awt_PrintDialog.h"
 #include "awt_PrintControl.h"
@@ -422,7 +422,7 @@
      */
     if (AwtPrintControl::getPrintHDMode(env, self) == NULL ||
         AwtPrintControl::getPrintHDName(env,self) == NULL) {
-        (void)AwtCommDialog::PageSetupDlg(&setup);
+        (void)::PageSetupDlg(&setup);
         /* check if hDevMode and hDevNames are set.
          * If both are null, then there is no default printer.
          */
@@ -460,7 +460,7 @@
 
     AwtDialog::CheckInstallModalHook();
 
-    BOOL ret = AwtCommDialog::PageSetupDlg(&setup);
+    BOOL ret = ::PageSetupDlg(&setup);
     if (ret) {
 
         jobject paper = getPaper(env, page);
@@ -733,7 +733,7 @@
         pd.lStructSize = sizeof(PRINTDLG);
         pd.Flags = PD_RETURNDEFAULT | PD_RETURNDC;
 
-        if (AwtCommDialog::PrintDlg(&pd)) {
+        if (::PrintDlg(&pd)) {
             printDC = pd.hDC;
             hDevMode = pd.hDevMode;
             hDevNames = pd.hDevNames;
@@ -1838,10 +1838,6 @@
 (JNIEnv *env, jobject self, jlong printDC, jlong cap, jlong join, jfloat width,
  jint red, jint green, jint blue) {
 
-  /* End cap and line join styles are not supported in Win 9x. */
-  if (IS_WIN95)
-    return JNI_FALSE;
-
   TRY;
 
   LOGBRUSH logBrush;
@@ -1879,23 +1875,13 @@
 {
     jboolean didSetFont = JNI_FALSE;
 
-    if (IS_NT) {
-        didSetFont = jFontToWFontW(env, (HDC)printDC,
+    didSetFont = jFontToWFontW(env, (HDC)printDC,
                                fontName,
                                fontSize,
                                isBold,
                                isItalic,
                                rotation,
                                awScale);
-    } else {
-        didSetFont = jFontToWFontA(env, (HDC)printDC,
-                               fontName,
-                               fontSize,
-                               isBold,
-                               isItalic,
-                               rotation,
-                               awScale);
-    }
 
     return didSetFont;
 }
@@ -1919,7 +1905,7 @@
 
     memset(&matchedLogFont, 0, sizeof(matchedLogFont));
 
-    WCHAR* name = TO_WSTRING(fontName);
+    LPCWSTR fontNameW = JNU_GetStringPlatformChars(env, fontName, NULL);
 
 
     /* Some fontnames of Non-ASCII fonts like 'MS Minchou' are themselves
@@ -1928,14 +1914,14 @@
      */
     int maxlen = static_cast<int>(sizeof(lf.lfFaceName)) - 1;
     // maxlen is int due to cbMultiByte parameter is int
-    int destLen = WideCharToMultiByte(CP_ACP,   // convert to ASCII code page
-                                      0,        // flags
-                                      name,     // Unicode string
-                                      -1,  // Unicode length is calculated automatically
+    int destLen = WideCharToMultiByte(CP_ACP,        // convert to ASCII code page
+                                      0,             // flags
+                                      fontNameW,     // Unicode string
+                                      -1,            // Unicode length is calculated automatically
                                       lf.lfFaceName, // Put ASCII string here
-                                      maxlen, // max len
-                                      NULL, // default handling of unmappables
-                                      NULL);// do not care if def char is used
+                                      maxlen,        // max len
+                                      NULL,          // default handling of unmappables
+                                      NULL);         // do not care if def char is used
 
     /* If WideCharToMultiByte succeeded then the number
      * of bytes it copied into the face name buffer will
@@ -2018,9 +2004,10 @@
         } else {
             foundFont = false;
         }
-
     }
 
+    JNU_ReleaseStringPlatformChars(env, fontName, fontNameW);
+
     return foundFont ? JNI_TRUE : JNI_FALSE;
 }
 
@@ -2043,27 +2030,29 @@
 
     memset(&matchedLogFont, 0, sizeof(matchedLogFont));
 
+    LPCWSTR fontNameW = JNU_GetStringPlatformChars(env, fontName, NULL);
+
     /* Describe the GDI fonts we want enumerated. We
      * simply supply the java font name and let GDI
      * do the matching. If the java font name is
      * longer than the GDI maximum font lenght then
      * we can't convert the font.
      */
-    WCHAR* name = TO_WSTRING(fontName);
-    size_t nameLen = wcslen(name);
-
+    size_t nameLen = wcslen(fontNameW);
     if (nameLen < (sizeof(lf.lfFaceName) / sizeof(lf.lfFaceName[0]))) {
 
-        wcscpy(lf.lfFaceName, name);
+        wcscpy(lf.lfFaceName, fontNameW);
 
         lf.lfCharSet = DEFAULT_CHARSET;
         lf.lfPitchAndFamily = 0;
 
-        foundFont = !EnumFontFamiliesExW((HDC)printDC, &lf,
+        foundFont = !::EnumFontFamiliesEx((HDC)printDC, &lf,
                                         (FONTENUMPROCW) fontEnumProcW,
                                         (LPARAM) &matchedLogFont, 0);
     }
 
+    JNU_ReleaseStringPlatformChars(env, fontName, fontNameW);
+
     if (!foundFont) {
         return JNI_FALSE;
     }
@@ -2100,7 +2089,7 @@
 
     //Debug: dumpLogFont(&matchedLogFont);
 
-    HFONT font = CreateFontIndirectW(&matchedLogFont);
+    HFONT font = ::CreateFontIndirect(&matchedLogFont);
     if (font == NULL) {
         return JNI_FALSE;
     }
@@ -2123,7 +2112,7 @@
         GetTextMetrics(printDC, &tm);
         avgWidth = tm.tmAveCharWidth;
         matchedLogFont.lfWidth = (LONG)((fabs)(avgWidth*awScale));
-        font = CreateFontIndirectW(&matchedLogFont);
+        font = ::CreateFontIndirect(&matchedLogFont);
         if (font == NULL) {
             return JNI_FALSE;
         }
@@ -2230,14 +2219,11 @@
     (JNIEnv *env, jobject self, jlong printDC, jstring text)
 {
     SIZE size;
-    LPWSTR wText = TO_WSTRING(text);
+    LPCWSTR wText = JNU_GetStringPlatformChars(env, text, NULL);
     size_t strLen = wcslen(wText);
     BOOL ok = GetTextExtentPoint32((HDC)printDC, wText, (int)strLen, &size);
-    if (ok) {
-        return size.cx;
-    } else {
-        return 0;
-    }
+    JNU_ReleaseStringPlatformChars(env, text, wText);
+    return ok ? size.cx : 0;
 }
 
 
@@ -2288,7 +2274,7 @@
     long posX = ROUND_TO_LONG(x);
     long posY = ROUND_TO_LONG(y);
     int flags = (glyphCodes !=0) ? ETO_GLYPH_INDEX : 0;
-    LPWSTR wText = TO_WSTRING(text);
+    LPCWSTR wText = JNU_GetStringPlatformChars(env, text, NULL);
 
     int *advances = NULL, *xadvances = NULL, *xyadvances = NULL;
     BOOL useYAdvances = FALSE;
@@ -2359,7 +2345,7 @@
         *inxyAdvances = 0;
     }
 
-    if (useYAdvances && IS_WIN2000) {
+    if (useYAdvances) {
         advances = xyadvances;
         flags |= J2D_ETO_PDY;
     } else {
@@ -2371,7 +2357,7 @@
         env->ReleaseFloatArrayElements(positions, glyphPos, JNI_ABORT);
     }
 
-    BOOL drawn = ::ExtTextOutW( (HDC)printDC,
+    BOOL drawn = ::ExtTextOut((HDC)printDC,
                     posX, posY,     // starting position for the text
                     flags,          // glyphCodes?, y advances?
                     NULL,           // optional clipping-opaquing rectangle
@@ -2385,6 +2371,8 @@
     if (xyadvances != NULL) {
         free(xyadvances);
     }
+
+    JNU_ReleaseStringPlatformChars(env, text, wText);
 }
 
 /**
@@ -2968,7 +2956,7 @@
     pd.lStructSize = sizeof(PRINTDLG);
     pd.Flags = PD_RETURNDEFAULT | PD_RETURNDC;
 
-    if (AwtCommDialog::PrintDlg(&pd)) {
+    if (::PrintDlg(&pd)) {
         printDC = pd.hDC;
 
         /* Find out how many copies the driver can do, and use driver's
--- a/jdk/src/windows/native/sun/windows/awt_Robot.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_Robot.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1998-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1998-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,6 +23,7 @@
  * have any questions.
  */
 
+#include "awt.h"
 #include "awt_Toolkit.h"
 #include "awt_Component.h"
 #include "awt_Robot.h"
@@ -30,8 +31,6 @@
 #include "java_awt_event_InputEvent.h"
 #include <winuser.h>
 
-static const int MOUSE_MAX = 65535;
-
 AwtRobot::AwtRobot( jobject peer )
 {
     JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
@@ -44,11 +43,11 @@
 }
 
 #ifndef SPI_GETMOUSESPEED
-#define SPI_GETMOUSESPEED   112
+#define SPI_GETMOUSESPEED 112
 #endif
 
 #ifndef SPI_SETMOUSESPEED
-#define   SPI_SETMOUSESPEED   113
+#define SPI_SETMOUSESPEED 113
 #endif
 
 void AwtRobot::MouseMove( jint x, jint y)
@@ -102,19 +101,38 @@
     // left handed mouse setup
     BOOL bSwap = ::GetSystemMetrics(SM_SWAPBUTTON);
 
-    if ( buttonMask & java_awt_event_InputEvent_BUTTON1_MASK ) {
+    if ( buttonMask & java_awt_event_InputEvent_BUTTON1_MASK ||
+        buttonMask & java_awt_event_InputEvent_BUTTON1_DOWN_MASK)
+    {
         dwFlags |= !bSwap ? MOUSEEVENTF_LEFTDOWN : MOUSEEVENTF_RIGHTDOWN;
     }
 
-    if ( buttonMask & java_awt_event_InputEvent_BUTTON3_MASK ) {
+    if ( buttonMask & java_awt_event_InputEvent_BUTTON3_MASK ||
+         buttonMask & java_awt_event_InputEvent_BUTTON3_DOWN_MASK)
+    {
         dwFlags |= !bSwap ? MOUSEEVENTF_RIGHTDOWN : MOUSEEVENTF_LEFTDOWN;
     }
 
-    if ( buttonMask & java_awt_event_InputEvent_BUTTON2_MASK ) {
+    if ( buttonMask & java_awt_event_InputEvent_BUTTON2_MASK ||
+         buttonMask & java_awt_event_InputEvent_BUTTON2_DOWN_MASK)
+    {
         dwFlags |= MOUSEEVENTF_MIDDLEDOWN;
     }
 
-    mouse_event(dwFlags, 0, 0, 0, 0 );
+    INPUT mouseInput = {0};
+    mouseInput.type = INPUT_MOUSE;
+    mouseInput.mi.time = 0;
+    mouseInput.mi.dwFlags = dwFlags;
+    if ( buttonMask & AwtComponent::masks[3] ) {
+        mouseInput.mi.dwFlags = mouseInput.mi.dwFlags | MOUSEEVENTF_XDOWN;
+        mouseInput.mi.mouseData = XBUTTON1;
+    }
+
+    if ( buttonMask & AwtComponent::masks[4] ) {
+        mouseInput.mi.dwFlags = mouseInput.mi.dwFlags | MOUSEEVENTF_XDOWN;
+        mouseInput.mi.mouseData = XBUTTON2;
+    }
+    ::SendInput(1, &mouseInput, sizeof(mouseInput));
 }
 
 void AwtRobot::MouseRelease( jint buttonMask )
@@ -125,61 +143,43 @@
     // left handed mouse setup
     BOOL bSwap = ::GetSystemMetrics(SM_SWAPBUTTON);
 
-    if ( buttonMask & java_awt_event_InputEvent_BUTTON1_MASK ) {
+    if ( buttonMask & java_awt_event_InputEvent_BUTTON1_MASK ||
+        buttonMask & java_awt_event_InputEvent_BUTTON1_DOWN_MASK)
+    {
         dwFlags |= !bSwap ? MOUSEEVENTF_LEFTUP : MOUSEEVENTF_RIGHTUP;
     }
 
-    if ( buttonMask & java_awt_event_InputEvent_BUTTON3_MASK ) {
+    if ( buttonMask & java_awt_event_InputEvent_BUTTON3_MASK ||
+         buttonMask & java_awt_event_InputEvent_BUTTON3_DOWN_MASK)
+    {
         dwFlags |= !bSwap ? MOUSEEVENTF_RIGHTUP : MOUSEEVENTF_LEFTUP;
     }
 
-    if ( buttonMask & java_awt_event_InputEvent_BUTTON2_MASK ) {
+    if ( buttonMask & java_awt_event_InputEvent_BUTTON2_MASK ||
+        buttonMask & java_awt_event_InputEvent_BUTTON2_DOWN_MASK)
+    {
         dwFlags |= MOUSEEVENTF_MIDDLEUP;
     }
 
-    mouse_event(dwFlags, 0, 0, 0, 0 );
+    INPUT mouseInput = {0};
+    mouseInput.type = INPUT_MOUSE;
+    mouseInput.mi.time = 0;
+    mouseInput.mi.dwFlags = dwFlags;
+
+    if ( buttonMask & AwtComponent::masks[3] ) {
+        mouseInput.mi.dwFlags = mouseInput.mi.dwFlags | MOUSEEVENTF_XUP;
+        mouseInput.mi.mouseData = XBUTTON1;
+    }
+
+    if ( buttonMask & AwtComponent::masks[4] ) {
+        mouseInput.mi.dwFlags = mouseInput.mi.dwFlags | MOUSEEVENTF_XUP;
+        mouseInput.mi.mouseData = XBUTTON2;
+    }
+    ::SendInput(1, &mouseInput, sizeof(mouseInput));
 }
 
 void AwtRobot::MouseWheel (jint wheelAmt) {
-    if (IS_WIN95 && !IS_WIN98) {
-        // Other win32 platforms do nothing for mouse_event(0), so
-        // do nothing on 95, too.
-        if (wheelAmt == 0) {
-            return;
-        }
-
-        // Win95 doesn't understand MOUSEEVENTF_WHEEL, so use PostEvent
-        POINT curPos;
-        HWND mouseOver = NULL;
-        HWND topLevel = NULL;
-        UINT wheelMsg = NULL;
-
-        if (::GetCursorPos((LPPOINT)&curPos) == 0) {
-            return;
-        }
-        // get hwnd of top-level container
-        mouseOver = ::WindowFromPoint(curPos);
-        DASSERT(mouseOver);
-        topLevel = AwtComponent::GetTopLevelParentForWindow(mouseOver);
-        DASSERT(topLevel);
-
-        if (::ScreenToClient(topLevel, (LPPOINT)&curPos) == 0) {
-            return;
-        }
-        wheelMsg = AwtComponent::Wheel95GetMsg();
-
-        if (wheelMsg == NULL) {
-            return;
-        }
-
-        ::PostMessage(topLevel,
-                      wheelMsg,
-                      wheelAmt * -1 * WHEEL_DELTA,
-                      MAKELPARAM((WORD)curPos.x, (WORD)curPos.y));
-    }
-    else {
-        mouse_event(MOUSEEVENTF_WHEEL, 0, 0, wheelAmt * -1 * WHEEL_DELTA, 0);
-    }
+    mouse_event(MOUSEEVENTF_WHEEL, 0, 0, wheelAmt * -1 * WHEEL_DELTA, 0);
 }
 
 inline jint AwtRobot::WinToJavaPixel(USHORT r, USHORT g, USHORT b)
@@ -437,3 +437,9 @@
 
     CATCH_BAD_ALLOC;
 }
+
+JNIEXPORT jint JNICALL Java_sun_awt_windows_WRobotPeer_getNumberOfButtons(
+  JNIEnv *, jobject self)
+{
+    return GetSystemMetrics(SM_CMOUSEBUTTONS);
+}
--- a/jdk/src/windows/native/sun/windows/awt_Robot.h	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_Robot.h	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1998-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1998-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -42,13 +42,13 @@
         void MouseRelease( jint buttonMask );
 
         void MouseWheel(jint wheelAmt);
+        jint getNumberOfButtons();
 
         jint GetRGBPixel( jint x, jint y);
         void GetRGBPixels(jint x, jint y, jint width, jint height, jintArray pixelArray);
 
         void KeyPress( jint key );
         void KeyRelease( jint key );
-
         static AwtRobot * GetRobot( jobject self );
 
     private:
--- a/jdk/src/windows/native/sun/windows/awt_ScrollPane.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_ScrollPane.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1996-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -108,13 +108,6 @@
 
         {
             DWORD style = WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS;
-            if (!IS_WIN4X) {
-                /*
-                 * It's been decided by the UI folks that 3.X ScrollPanes
-                 * should have borders...
-                 */
-                style |= WS_BORDER;
-            }
             jint scrollbarDisplayPolicy =
                 env->GetIntField(target, scrollbarDisplayPolicyID);
 
@@ -122,7 +115,7 @@
                     == java_awt_ScrollPane_SCROLLBARS_ALWAYS) {
                 style |= WS_HSCROLL | WS_VSCROLL;
             }
-            DWORD exStyle = IS_WIN4X ? WS_EX_CLIENTEDGE : 0;
+            DWORD exStyle = WS_EX_CLIENTEDGE;
 
             if (GetRTL()) {
                 exStyle |= WS_EX_RIGHT | WS_EX_LEFTSCROLLBAR;
@@ -225,15 +218,8 @@
     }
 
     /* Determine border width without scrollbars. */
-    int horzBorder;
-    int vertBorder;
-    if (IS_WIN4X) {
-        horzBorder = ::GetSystemMetrics(SM_CXEDGE);
-        vertBorder = ::GetSystemMetrics(SM_CYEDGE);
-    } else {
-        horzBorder = ::GetSystemMetrics(SM_CXBORDER);
-        vertBorder = ::GetSystemMetrics(SM_CYBORDER);
-    }
+    int horzBorder = ::GetSystemMetrics(SM_CXEDGE);;
+    int vertBorder = ::GetSystemMetrics(SM_CYEDGE);;
 
     parentWidth -= (horzBorder * 2);
     parentHeight -= (vertBorder * 2);
--- a/jdk/src/windows/native/sun/windows/awt_TextArea.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_TextArea.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -26,10 +26,8 @@
 #include "awt_Toolkit.h"
 #include "awt_TextArea.h"
 #include "awt_TextComponent.h"
-#include "awt_dlls.h"
 #include "awt_KeyboardFocusManager.h"
 #include "awt_Canvas.h"
-#include "awt_Unicode.h"
 #include "awt_Window.h"
 
 /* IMPORTANT! Read the README.JNI file for notes on JNI converted AWT code.
@@ -50,7 +48,6 @@
 jfieldID AwtTextArea::scrollbarVisibilityID;
 
 WNDPROC AwtTextArea::sm_pDefWindowProc = NULL;
-BOOL AwtTextArea::sm_RichEdit20 = (IS_WIN98 || IS_NT);
 
 /************************************************************************
  * AwtTextArea methods
@@ -78,8 +75,12 @@
 }
 
 LPCTSTR AwtTextArea::GetClassName() {
-    load_rich_edit_library();
-    return sm_RichEdit20 ? RICHEDIT_CLASS : TEXT("RICHEDIT");
+    static BOOL richedLibraryLoaded = FALSE;
+    if (!richedLibraryLoaded) {
+        ::LoadLibrary(TEXT("RICHED20.DLL"));
+        richedLibraryLoaded = TRUE;
+    }
+    return RICHEDIT_CLASS;
 }
 
 /* Create a new AwtTextArea object and window.   */
@@ -134,9 +135,8 @@
            * scrollbars instead of hiding them when not needed.
            */
           DWORD style = WS_CHILD | WS_CLIPSIBLINGS | ES_LEFT | ES_MULTILINE |
-              ES_WANTRETURN | scroll_style |
-              (IS_WIN4X ? 0 : WS_BORDER) | ES_DISABLENOSCROLL;
-          DWORD exStyle = IS_WIN4X ? WS_EX_CLIENTEDGE : 0;
+              ES_WANTRETURN | scroll_style | ES_DISABLENOSCROLL;
+          DWORD exStyle = WS_EX_CLIENTEDGE;
           if (GetRTL()) {
               exStyle |= WS_EX_RIGHT | WS_EX_LEFTSCROLLBAR;
               if (GetRTLReadingOrder())
@@ -169,9 +169,7 @@
           //    end-of-document marker or carriage return,
           //    to format paragraphs.
           // kdm@sparc.spb.su
-          if (sm_RichEdit20) {
-              c->SendMessage(EM_SETTEXTMODE, TM_PLAINTEXT, 0);
-          }
+          c->SendMessage(EM_SETTEXTMODE, TM_PLAINTEXT, 0);
 
           c->m_backgroundColorSet = TRUE;
           /* suppress inheriting parent's color. */
@@ -242,7 +240,7 @@
      */
     size_t length = env->GetStringLength(jStr) + 1;
     WCHAR *string = new WCHAR[length];
-    env->GetStringRegion(jStr, 0, static_cast<jsize>(length - 1), string);
+    env->GetStringRegion(jStr, 0, static_cast<jsize>(length - 1), reinterpret_cast<jchar*>(string));
     string[length-1] = '\0';
     for (size_t i = 0; i < maxlen && i < length - 1; i++) {
         if (string[i] == L'\n') {
@@ -461,12 +459,7 @@
             /* Check if all the text is selected. */
             if (cr.cpMin == 0) {
 
-                int len = 0;
-                if (m_isWin95) {
-                    len = ::GetWindowTextLengthA(GetHWnd());
-                } else {
-                    len = ::GetWindowTextLengthW(GetHWnd());
-                }
+                int len = ::GetWindowTextLength(GetHWnd());
                 if (cr.cpMin == 0 && cr.cpMax >= len) {
                     /*
                      * All the text is selected in RichEdit - select all the
@@ -738,14 +731,8 @@
         // kdm@sparc.spb.su
         UINT platfScrollLines = 3;
         // Retrieve a number of scroll lines.
-        if (!sm_RichEdit20) {
-            // 95 doesn't understand the SPI_GETWHEELSCROLLLINES - get the user
-            // preference by other means
-            platfScrollLines = Wheel95GetScrLines();
-        } else {
-            ::SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0,
-                                   &platfScrollLines, 0);
-        }
+        ::SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0,
+                               &platfScrollLines, 0);
 
         if (platfScrollLines > 0) {
             HWND hWnd = GetHWnd();
@@ -838,23 +825,6 @@
     return returnVal;
 }
 
-int AwtTextArea::GetText(LPTSTR buffer, int size)
-{
-    // Due to a known limitation of the MSLU, GetWindowText cannot be
-    // issued for the Unicode RichEdit control on Win9x. Use EM_GETTEXTEX instead.
-    if (sm_RichEdit20 && !IS_NT) {
-        GETTEXTEX gte;
-        gte.cb            = size * sizeof(TCHAR);
-        gte.flags         = GT_USECRLF;
-        gte.codepage      = 1200; // implies Unicode
-        gte.lpDefaultChar = NULL;
-        gte.lpUsedDefChar = NULL;
-        return (int)SendMessage(EM_GETTEXTEX, (WPARAM)&gte, (LPARAM)buffer);
-    } else {
-        return ::GetWindowText(GetHWnd(), buffer, size);
-    }
-}
-
 /*
  * WM_CTLCOLOR is not sent by rich edit controls.
  * Use EM_SETCHARFORMAT and EM_SETBKGNDCOLOR to set
@@ -984,16 +954,16 @@
       jsize length = env->GetStringLength(text) + 1;
       // Bugid 4141477 - Can't use TO_WSTRING here because it uses alloca
       // WCHAR* buffer = TO_WSTRING(text);
-      WCHAR *buffer = new WCHAR[length];
-      env->GetStringRegion(text, 0, length-1, buffer);
+      TCHAR *buffer = new TCHAR[length];
+      env->GetStringRegion(text, 0, length-1, reinterpret_cast<jchar*>(buffer));
       buffer[length-1] = '\0';
 
       c->CheckLineSeparator(buffer);
       c->RemoveCR(buffer);
       // Fix for 5003402: added restoring/hiding selection to enable automatic scrolling
       c->SendMessage(EM_HIDESELECTION, FALSE, TRUE);
-      c->SendMessageW(EM_SETSEL, start, end);
-      c->SendMessageW(EM_REPLACESEL, FALSE, (LPARAM)buffer);
+      c->SendMessage(EM_SETSEL, start, end);
+      c->SendMessage(EM_REPLACESEL, FALSE, (LPARAM)buffer);
       c->SendMessage(EM_HIDESELECTION, TRUE, TRUE);
 
       delete[] buffer;
@@ -1187,12 +1157,11 @@
                                                HGLOBAL hMetaPict) {
     if (reco == RECO_PASTE) {
         // If CF_TEXT format is available edit controls will select it,
-        // otherwise if it is WinNT or Win2000 and CF_UNICODETEXT is
-        // available it will be selected, otherwise if CF_OEMTEXT is
-        // available it will be selected.
+        // otherwise if it is CF_UNICODETEXT is available it will be
+        // selected, otherwise if CF_OEMTEXT is available it will be selected.
         if (::IsClipboardFormatAvailable(CF_TEXT)) {
             *pcfFormat = CF_TEXT;
-        } else if (!m_isWin95 && ::IsClipboardFormatAvailable(CF_UNICODETEXT)) {
+        } else if (::IsClipboardFormatAvailable(CF_UNICODETEXT)) {
             *pcfFormat = CF_UNICODETEXT;
         } else if (::IsClipboardFormatAvailable(CF_OEMTEXT)) {
             *pcfFormat = CF_OEMTEXT;
--- a/jdk/src/windows/native/sun/windows/awt_TextArea.h	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_TextArea.h	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1996-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -73,8 +73,6 @@
     MsgRouting WmNcHitTest(UINT x, UINT y, LRESULT &retVal);
     MsgRouting HandleEvent(MSG *msg, BOOL synthetic);
 
-    INLINE virtual int GetText(LPTSTR buffer, int size);
-
     INLINE void SetIgnoreEnChange(BOOL b) { m_bIgnoreEnChange = b; }
 
     virtual void SetColor(COLORREF c);
@@ -96,10 +94,6 @@
     void EditGetSel(CHARRANGE &cr);
     LONG EditGetCharFromPos(POINT& pt);
   private:
-
-    // TRUE if the rich edit version is 2.0
-    static BOOL    sm_RichEdit20;
-
     // RichEdit 1.0 control generates EN_CHANGE notifications not only
     // on text changes, but also on any character formatting change.
     // This flag is true when the latter case is detected.
--- a/jdk/src/windows/native/sun/windows/awt_TextComponent.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_TextComponent.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1996-2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -326,7 +326,7 @@
             WCHAR* buf = new WCHAR[len + 1];
             c->GetText(buf, len + 1);
             c->RemoveCR(buf);
-            result = env->NewString(buf, static_cast<jsize>(wcslen(buf)));
+            result = JNU_NewStringPlatform(env, buf);
             delete [] buf;
         }
     }
@@ -362,7 +362,7 @@
     {
         int length = env->GetStringLength(text);
         WCHAR* buffer = new WCHAR[length + 1];
-        env->GetStringRegion(text, 0, length, buffer);
+        env->GetStringRegion(text, 0, length, reinterpret_cast<jchar*>(buffer));
         buffer[length] = 0;
         c->CheckLineSeparator(buffer);
         c->RemoveCR(buffer);
--- a/jdk/src/windows/native/sun/windows/awt_TextComponent.h	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_TextComponent.h	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1996-2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -70,15 +70,6 @@
     static jstring _GetText(void *param);
 
     BOOL ActMouseMessage(MSG* pMsg);
-    /*
-     * For TextComponents that contains WCHAR strings or messages with
-     * WCHAR parameters.
-     */
-    INLINE LRESULT SendMessageW(UINT msg, WPARAM wParam = 0, LPARAM lParam = 0)
-    {
-        DASSERT(GetHWnd());
-        return ::SendMessageW(GetHWnd(), msg, wParam, lParam);
-    }
 
     void SetFont(AwtFont* font);
 
--- a/jdk/src/windows/native/sun/windows/awt_TextField.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_TextField.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1996-2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,6 @@
 #include "awt_Toolkit.h"
 #include "awt_TextField.h"
 #include "awt_TextComponent.h"
-#include "awt_dlls.h"
 #include "awt_KeyboardFocusManager.h"
 #include "awt_Canvas.h"
 
@@ -69,9 +68,8 @@
 
         {
             DWORD style = WS_CHILD | WS_CLIPSIBLINGS |
-                ES_LEFT | ES_AUTOHSCROLL |
-                (IS_WIN4X ? 0 : WS_BORDER);
-            DWORD exStyle = IS_WIN4X ? WS_EX_CLIENTEDGE : 0;
+                ES_LEFT | ES_AUTOHSCROLL;
+            DWORD exStyle = WS_EX_CLIENTEDGE;
             if (GetRTL()) {
                 exStyle |= WS_EX_RIGHT | WS_EX_LEFTSCROLLBAR;
                 if (GetRTLReadingOrder())
--- a/jdk/src/windows/native/sun/windows/awt_Toolkit.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_Toolkit.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -23,15 +23,16 @@
  * have any questions.
  */
 
+#include "awt.h"
 #include <signal.h>
 #include <windowsx.h>
 
-#if defined(_DEBUG) && defined(_MSC_VER) && _MSC_VER >= 1000
-#include <crtdbg.h>
-#endif
+//#if defined(_DEBUG) && defined(_MSC_VER) && _MSC_VER >= 1000
+//#include <crtdbg.h>
+//#endif
 
 #define _JNI_IMPLEMENTATION_
-#include "stdhdrs.h"
+
 #include "awt_DrawingSurface.h"
 #include "awt_AWTEvent.h"
 #include "awt_Component.h"
@@ -51,7 +52,6 @@
 #include "awt_FileDialog.h"
 #include "CmdIDList.h"
 #include "awt_new.h"
-#include "awt_Unicode.h"
 #include "debug_trace.h"
 #include "debug_mem.h"
 
@@ -225,8 +225,7 @@
     HKL prev = ::ActivateKeyboardLayout(hkl, 0);
 
     // If the above call fails, try loading the layout in case of NT
-    if ((prev == 0) && IS_NT) {
-
+    if (!prev) {
         // create input locale string, e.g., "00000409", from hkl.
         TCHAR inputLocale[9];
         TCHAR buf[9];
@@ -297,7 +296,7 @@
     if (jstr != NULL) {
         int length = env->GetStringLength(jstr);
         buffer = new TCHAR[length + 1];
-        LPCTSTR tmp = (LPCTSTR)JNU_GetStringPlatformChars(env, jstr, NULL);
+        LPCTSTR tmp = JNU_GetStringPlatformChars(env, jstr, NULL);
         _tcscpy(buffer, tmp);
         JNU_ReleaseStringPlatformChars(env, jstr, tmp);
     } else {
@@ -323,6 +322,7 @@
     m_vmSignalled = FALSE;
 
     m_isDynamicLayoutSet = FALSE;
+    m_areExtraMouseButtonsEnabled = TRUE;
 
     m_verifyComponents = FALSE;
     m_breakOnError = FALSE;
@@ -490,8 +490,6 @@
 
     ::CloseHandle(m_waitEvent);
 
-    ComCtl32Util::GetInstance().FreeLibraries();
-
     tk.m_isDisposed = TRUE;
 
     return TRUE;
@@ -886,8 +884,6 @@
           return (DWORD)ImmGetOpenStatus((HIMC)wParam);
       }
       case WM_DISPLAYCHANGE: {
-          AwtCursor::DirtyAllCustomCursors();
-
           // Reinitialize screens
           initScreens(env);
 
@@ -1161,9 +1157,7 @@
     if (p && p->PreProcessMsg(msg) == mrConsume)
         return TRUE;
 
-    if ((msg.message >= WM_MOUSEFIRST && msg.message <= WM_AWT_MOUSELAST) ||
-        (IS_WIN95 && !IS_WIN98 &&
-                                msg.message == AwtComponent::Wheel95GetMsg()) ||
+    if ((msg.message >= WM_MOUSEFIRST && msg.message <= WM_MOUSELAST) ||
         (msg.message >= WM_NCMOUSEMOVE && msg.message <= WM_NCMBUTTONDBLCLK)) {
         if (PreProcessMouseMsg(p, msg)) {
             return TRUE;
@@ -1190,9 +1184,7 @@
         return FALSE;
     }
 
-    if (msg.message >= WM_MOUSEFIRST && msg.message <= WM_AWT_MOUSELAST ||
-        (IS_WIN95 && !IS_WIN98 && msg.message == AwtComponent::Wheel95GetMsg()))
-    {
+    if (msg.message >= WM_MOUSEFIRST && msg.message <= WM_MOUSELAST) {
         mouseWParam = msg.wParam;
         mouseLParam = msg.lParam;
     } else {
@@ -1287,21 +1279,6 @@
                                   //window
         msg.hwnd = hWndForWheel;
     }
-    else if (IS_WIN95 && !IS_WIN98 &&
-             msg.message == AwtComponent::Wheel95GetMsg() &&
-             mouseWheelComp != NULL) {
-
-        // On Win95, mouse wheels are _always_ delivered to the top level
-        // Frame.  Default behavior only takes place if the message's hwnd
-        // remains that of the Frame.  We only want to change the hwnd if
-        // we're changing it to a Component that DOESN'T handle the
-        // mousewheel natively.
-
-        if (!mouseWheelComp->InheritsNativeMouseWheelBehavior()) {
-            DTRACE_PRINTLN("AwtT::PPMM: changing hwnd on 95");
-            msg.hwnd = hWndForWheel;
-        }
-    }
 
     /*
      * Make sure we get at least one last chance to check for transitions
@@ -1792,7 +1769,7 @@
 {
     jobject insets = NULL;
     RECT rRW;
-    MONITOR_INFO *miInfo;
+    LPMONITORINFO miInfo;
 
     TRY;
 
@@ -1814,10 +1791,10 @@
         if (miInfo) {
             insets = env->NewObject(env->FindClass("java/awt/Insets"),
                 AwtToolkit::insetsMID,
-                miInfo->rWork.top    - miInfo->rMonitor.top,
-                miInfo->rWork.left   - miInfo->rMonitor.left,
-                miInfo->rMonitor.bottom - miInfo->rWork.bottom,
-                miInfo->rMonitor.right - miInfo->rWork.right);
+                miInfo->rcWork.top - miInfo->rcMonitor.top,
+                miInfo->rcWork.left - miInfo->rcMonitor.left,
+                miInfo->rcMonitor.bottom - miInfo->rcWork.bottom,
+                miInfo->rcMonitor.right - miInfo->rcWork.right);
         }
     }
 
@@ -2057,29 +2034,15 @@
     swprintf(szVer, L"0x%x = %ld", version, version);
     int l = lstrlen(szVer);
 
-    if (IS_WIN95) {
-        if (IS_WIN98) {
-            if (IS_WINME) {
-                swprintf(szVer + l, L" (Windows ME)");
+    if (IS_WIN2000) {
+        if (IS_WINXP) {
+            if (IS_WINVISTA) {
+                swprintf(szVer + l, L" (Windows Vista)");
             } else {
-                swprintf(szVer + l, L" (Windows 98)");
+                swprintf(szVer + l, L" (Windows XP)");
             }
         } else {
-            swprintf(szVer + l, L" (Windows 95)");
-        }
-    } else if (IS_NT) {
-        if (IS_WIN2000) {
-            if (IS_WINXP) {
-                if (IS_WINVISTA) {
-                    swprintf(szVer + l, L" (Windows Vista)");
-                } else {
-                    swprintf(szVer + l, L" (Windows XP)");
-                }
-            } else {
-                swprintf(szVer + l, L" (Windows 2000)");
-            }
-        } else {
-            swprintf(szVer + l, L" (Windows NT)");
+            swprintf(szVer + l, L" (Windows 2000)");
         }
     } else {
         swprintf(szVer + l, L" (Unknown)");
@@ -2130,3 +2093,26 @@
         splashClose();
     }
 }
+
+/*
+ * accessible from awt_Component
+ */
+BOOL AwtToolkit::areExtraMouseButtonsEnabled() {
+    return m_areExtraMouseButtonsEnabled;
+}
+
+/*
+ * Class:     sun_awt_windows_WToolkit
+ * Method:    setExtraMouseButtonsEnabledNative
+ * Signature: (Z)V
+ */
+extern "C" JNIEXPORT void JNICALL Java_sun_awt_windows_WToolkit_setExtraMouseButtonsEnabledNative
+(JNIEnv *env, jclass self, jboolean enable){
+    TRY;
+    AwtToolkit::GetInstance().setExtraMouseButtonsEnabled(enable);
+    CATCH_BAD_ALLOC;
+}
+
+void AwtToolkit::setExtraMouseButtonsEnabled(BOOL enable) {
+    m_areExtraMouseButtonsEnabled = enable;
+}
--- a/jdk/src/windows/native/sun/windows/awt_Toolkit.h	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_Toolkit.h	Wed Jul 05 16:47:27 2017 +0200
@@ -50,7 +50,6 @@
 
 #include "awt.h"
 #include "awtmsg.h"
-#include "awt_Multimon.h"
 #include "Trace.h"
 
 #include "sun_awt_windows_WToolkit.h"
@@ -89,11 +88,8 @@
  */
 class CriticalSection {
   public:
-    INLINE  CriticalSection() { ::InitializeCriticalSection(&rep);
-                                ::InitializeCriticalSection(&tryrep);
-                                tryEntered = 0; }
-    INLINE ~CriticalSection() { ::DeleteCriticalSection(&rep);
-                                ::DeleteCriticalSection(&tryrep); }
+    INLINE  CriticalSection() { ::InitializeCriticalSection(&rep); }
+    INLINE ~CriticalSection() { ::DeleteCriticalSection(&rep); }
 
     class Lock {
       public:
@@ -111,50 +107,18 @@
   private:
     CRITICAL_SECTION rep;
 
-    CRITICAL_SECTION tryrep;
-    long tryEntered;
-
     CriticalSection(const CriticalSection&);
     const CriticalSection& operator =(const CriticalSection&);
 
   public:
-    virtual void    Enter           (void)
-    {
-        ::EnterCriticalSection(&tryrep);
-        tryEntered++;
-        if (tryEntered == 1) {
-            ::EnterCriticalSection(&rep);
-            ::LeaveCriticalSection(&tryrep);
-        } else {
-            ::LeaveCriticalSection(&tryrep);
-            ::EnterCriticalSection(&rep);
-        }
+    virtual void Enter() {
+        ::EnterCriticalSection(&rep);
     }
-    // we cannot use ::TryEnterCriticalSection as it is not supported on Win9x/Me
-    virtual BOOL    TryEnter        (void)
-    {
-        BOOL result = FALSE;
-        ::EnterCriticalSection(&tryrep);
-        if (tryEntered == 0) {
-            ::EnterCriticalSection(&rep);
-            tryEntered++;
-            result = TRUE;
-        }
-        ::LeaveCriticalSection(&tryrep);
-        return result;
+    virtual BOOL TryEnter() {
+        return ::TryEnterCriticalSection(&rep);
     }
-    virtual void    Leave           (void)
-    {
-        ::EnterCriticalSection(&tryrep);
-        if (tryEntered > 0) {
-            tryEntered--;
-        } else {
-            // this may happen only if we call to Leave() before
-            // Enter() so this is definitely a bug
-            DASSERT(FALSE);
-        }
+    virtual void Leave() {
         ::LeaveCriticalSection(&rep);
-        ::LeaveCriticalSection(&tryrep);
     }
 };
 
@@ -211,6 +175,8 @@
     BOOL IsDynamicLayoutSet();
     BOOL IsDynamicLayoutSupported();
     BOOL IsDynamicLayoutActive();
+    BOOL areExtraMouseButtonsEnabled();
+    void setExtraMouseButtonsEnabled(BOOL enable);
 
     INLINE BOOL localPump() { return m_localPump; }
     INLINE BOOL VerifyComponents() { return FALSE; } // TODO: Use new DebugHelper class to set this flag
@@ -387,6 +353,7 @@
     BOOL m_verbose;
     BOOL m_isActive; // set to FALSE at beginning of Dispose
     BOOL m_isDisposed; // set to TRUE at end of Dispose
+    BOOL m_areExtraMouseButtonsEnabled;
 
     BOOL m_vmSignalled; // set to TRUE if QUERYENDSESSION has successfully
                         // raised SIGTERM
--- a/jdk/src/windows/native/sun/windows/awt_TrayIcon.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_TrayIcon.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -23,9 +23,10 @@
  * have any questions.
  */
 
-#include <windows.h>
+#include "awt.h"
 #include <windowsx.h>
 #include <shellapi.h>
+#include <shlwapi.h>
 
 #include "awt_Toolkit.h"
 #include "awt_TrayIcon.h"
@@ -173,27 +174,20 @@
     env->DeleteLocalRef(target);
     return awtTrayIcon;
 }
-typedef struct _SDLLVERSIONINFO
-{
-    DWORD cbSize;
-    DWORD dwMajorVersion;                   // Major version
-    DWORD dwMinorVersion;                   // Minor version
-    DWORD dwBuildNumber;                    // Build number
-    DWORD dwPlatformID;                     // DLLVER_PLATFORM_*
-} SDLLVERSIONINFO;
-typedef HRESULT (CALLBACK* SDLLGETVERSIONPROC)(SDLLVERSIONINFO *);
 
 void AwtTrayIcon::InitNID(UINT uID)
 {
     // fix for 6271589: we MUST set the size of the structure to match
     // the shell version, otherwise some errors may occur (like missing
     // balloon messages on win2k)
-    SDLLVERSIONINFO dllVersionInfo;
-    dllVersionInfo.cbSize = sizeof(SDLLVERSIONINFO);
-    int shellVersion = 4; // WIN_98
+    DLLVERSIONINFO dllVersionInfo;
+    dllVersionInfo.cbSize = sizeof(DLLVERSIONINFO);
+    int shellVersion = 5; // WIN_2000
+    // MSDN: DllGetVersion should not be implicitly called, but rather
+    // loaded using GetProcAddress
     HMODULE hShell = LoadLibrary(TEXT("Shell32.dll"));
     if (hShell != NULL) {
-        SDLLGETVERSIONPROC proc = (SDLLGETVERSIONPROC)GetProcAddress(hShell, "DllGetVersion");
+        DLLGETVERSIONPROC proc = (DLLGETVERSIONPROC)GetProcAddress(hShell, "DllGetVersion");
         if (proc != NULL) {
             if (proc(&dllVersionInfo) == NOERROR) {
                 shellVersion = dllVersionInfo.dwMajorVersion;
@@ -202,14 +196,16 @@
     }
     FreeLibrary(hShell);
     switch (shellVersion) {
-        case 5: // WIN_2000, WIN_ME
+        case 5: // WIN_2000
             m_nid.cbSize = (BYTE *)(&m_nid.guidItem) - (BYTE *)(&m_nid.cbSize);
             break;
         case 6: // WIN_XP
+            // Uncomment these two lines when moving to VS2008
+//            m_nid.cbSize = (BYTE *)(&m_nid.hBalloonIcon) - (BYTE *)(&m_nid.cbSize);
+//            break;
+        default: // WIN_VISTA?
             m_nid.cbSize = sizeof(m_nid);
             break;
-        default: // WIN_98, WIN_NT
-            m_nid.cbSize = (BYTE *)(&m_nid.szTip) - (BYTE *)(&m_nid.cbSize) + sizeof(m_nid.szTip) / 2;
     }
     m_nid.hWnd = AwtTrayIcon::sm_msgWindow;
     m_nid.uID = uID;
@@ -217,7 +213,7 @@
     m_nid.uCallbackMessage = WM_AWT_TRAY_NOTIFY;
     m_nid.hIcon = AwtToolkit::GetInstance().GetAwtIcon();
     m_nid.szTip[0] = '\0';
-    m_nid.uVersion = IS_WIN2000 ? AWT_NOTIFYICON_VERSION : 0;
+    m_nid.uVersion = NOTIFYICON_VERSION;
 }
 
 BOOL AwtTrayIcon::SendTrayMessage(DWORD dwMessage)
@@ -304,13 +300,13 @@
         case WM_CONTEXTMENU:
             mr = WmContextMenu(0, pos.x, pos.y);
             break;
-        case AWT_NIN_KEYSELECT:
+        case NIN_KEYSELECT:
             mr = WmKeySelect(0, pos.x, pos.y);
             break;
-        case AWT_NIN_SELECT:
+        case NIN_SELECT:
             mr = WmSelect(0, pos.x, pos.y);
             break;
-        case AWT_NIN_BALLOONUSERCLICK:
+        case NIN_BALLOONUSERCLICK:
             mr = WmBalloonUserClick(0, pos.x, pos.y);
             break;
     }
@@ -371,7 +367,7 @@
                    (AwtComponent::GetButton(button) == java_awt_event_MouseEvent_BUTTON3 ?
                     TRUE : FALSE), AwtComponent::GetButton(button), &msg);
 
-    if ((m_mouseButtonClickAllowed & AwtComponent::GetButtonMK(button)) != 1) { // No up-button in the drag-state
+    if ((m_mouseButtonClickAllowed & AwtComponent::GetButtonMK(button)) != 0) { // No up-button in the drag-state
         SendMouseEvent(java_awt_event_MouseEvent_MOUSE_CLICKED,
                        TimeHelper::windowsToUTC(::GetTickCount()), x, y, AwtComponent::GetJavaModifiers(),
                        clickCount, JNI_FALSE, AwtComponent::GetButton(button));
@@ -397,7 +393,7 @@
         lastX = x;
         lastY = y;
         AwtComponent::InitMessage(&msg, lastMessage, flags, MAKELPARAM(x, y), x, y);
-        if ((flags & AwtComponent::ALL_MK_BUTTONS) != 0) {
+        if ((flags & ALL_MK_BUTTONS) != 0) {
             m_mouseButtonClickAllowed = 0;
         } else {
             SendMouseEvent(java_awt_event_MouseEvent_MOUSE_MOVED, TimeHelper::windowsToUTC(::GetTickCount()), x, y,
@@ -473,7 +469,7 @@
         BOOL result = item->m_trayIcon->SendTrayMessage(NIM_ADD);
         // 6270114: Instructs the taskbar to behave according to the Shell version 5.0
         if (result) {
-            item->m_trayIcon->SendTrayMessage(AWT_NIM_SETVERSION);
+            item->m_trayIcon->SendTrayMessage(NIM_SETVERSION);
         }
     }
     return mrDoDefault;
@@ -733,9 +729,9 @@
         goto ret;
     }
 
-    tooltipStr = env->GetStringChars(jtooltip, (jboolean *)NULL);
+    tooltipStr = JNU_GetStringPlatformChars(env, jtooltip, (jboolean *)NULL);
     trayIcon->SetToolTip(tooltipStr);
-    env->ReleaseStringChars(jtooltip, tooltipStr);
+    JNU_ReleaseStringPlatformChars(env, jtooltip, tooltipStr);
 ret:
     env->DeleteGlobalRef(self);
     env->DeleteGlobalRef(jtooltip);
@@ -782,7 +778,7 @@
     BOOL result = trayIcon->SendTrayMessage(jupdate == JNI_TRUE ? NIM_MODIFY : NIM_ADD);
     // 6270114: Instructs the taskbar to behave according to the Shell version 5.0
     if (result && jupdate == JNI_FALSE) {
-        trayIcon->SendTrayMessage(AWT_NIM_SETVERSION);
+        trayIcon->SendTrayMessage(NIM_SETVERSION);
     }
 ret:
     env->DeleteGlobalRef(self);
@@ -791,22 +787,19 @@
 
 void AwtTrayIcon::DisplayMessage(LPCTSTR caption, LPCTSTR text, LPCTSTR msgType)
 {
-    if (!IS_WIN2000)
-        return;
-
-    m_nid.uFlags |= AWT_NIF_INFO;
+    m_nid.uFlags |= NIF_INFO;
     m_nid.uTimeout = 10000;
 
     if (lstrcmp(msgType, TEXT("ERROR")) == 0) {
-        m_nid.dwInfoFlags = AWT_NIIF_ERROR;
+        m_nid.dwInfoFlags = NIIF_ERROR;
     } else if (lstrcmp(msgType, TEXT("WARNING")) == 0) {
-        m_nid.dwInfoFlags = AWT_NIIF_WARNING;
+        m_nid.dwInfoFlags = NIIF_WARNING;
     } else if (lstrcmp(msgType, TEXT("INFO")) == 0) {
-        m_nid.dwInfoFlags = AWT_NIIF_INFO;
+        m_nid.dwInfoFlags = NIIF_INFO;
     } else if (lstrcmp(msgType, TEXT("NONE")) == 0) {
-        m_nid.dwInfoFlags = AWT_NIIF_NONE;
+        m_nid.dwInfoFlags = NIIF_NONE;
     } else {
-        m_nid.dwInfoFlags = AWT_NIIF_NONE;
+        m_nid.dwInfoFlags = NIIF_NONE;
     }
 
     if (caption[0] == '\0') {
@@ -835,7 +828,7 @@
     }
 
     SendTrayMessage(NIM_MODIFY);
-    m_nid.uFlags &= ~AWT_NIF_INFO;
+    m_nid.uFlags &= ~NIF_INFO;
 }
 
 void AwtTrayIcon::_DisplayMessage(void *param)
@@ -855,15 +848,15 @@
     JNI_CHECK_PEER_GOTO(self, ret);
     trayIcon = (AwtTrayIcon *)pData;
 
-    captionStr = env->GetStringChars(jcaption, (jboolean *)NULL);
-    textStr = env->GetStringChars(jtext, (jboolean *)NULL);
-    msgTypeStr = env->GetStringChars(jmsgType, (jboolean *)NULL);
+    captionStr = JNU_GetStringPlatformChars(env, jcaption, (jboolean *)NULL);
+    textStr = JNU_GetStringPlatformChars(env, jtext, (jboolean *)NULL);
+    msgTypeStr = JNU_GetStringPlatformChars(env, jmsgType, (jboolean *)NULL);
 
     trayIcon->DisplayMessage(captionStr, textStr, msgTypeStr);
 
-    env->ReleaseStringChars(jcaption, captionStr);
-    env->ReleaseStringChars(jtext, textStr);
-    env->ReleaseStringChars(jmsgType, msgTypeStr);
+    JNU_ReleaseStringPlatformChars(env, jcaption, captionStr);
+    JNU_ReleaseStringPlatformChars(env, jtext, textStr);
+    JNU_ReleaseStringPlatformChars(env, jmsgType, msgTypeStr);
 ret:
     env->DeleteGlobalRef(self);
     env->DeleteGlobalRef(jcaption);
@@ -1057,16 +1050,14 @@
 {
     TRY;
 
-    if (IS_WIN2000) {
-        DisplayMessageStruct *dms = new DisplayMessageStruct;
-        dms->trayIcon = env->NewGlobalRef(self);
-        dms->caption = (jstring)env->NewGlobalRef(caption);
-        dms->text = (jstring)env->NewGlobalRef(text);
-        dms->msgType = (jstring)env->NewGlobalRef(msgType);
+    DisplayMessageStruct *dms = new DisplayMessageStruct;
+    dms->trayIcon = env->NewGlobalRef(self);
+    dms->caption = (jstring)env->NewGlobalRef(caption);
+    dms->text = (jstring)env->NewGlobalRef(text);
+    dms->msgType = (jstring)env->NewGlobalRef(msgType);
 
-        AwtToolkit::GetInstance().SyncCall(AwtTrayIcon::_DisplayMessage, dms);
-        // global ref is deleted in _DisplayMessage
-    }
+    AwtToolkit::GetInstance().SyncCall(AwtTrayIcon::_DisplayMessage, dms);
+    // global ref is deleted in _DisplayMessage
 
     CATCH_BAD_ALLOC(NULL);
 }
--- a/jdk/src/windows/native/sun/windows/awt_TrayIcon.h	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_TrayIcon.h	Wed Jul 05 16:47:27 2017 +0200
@@ -36,57 +36,11 @@
 #define TRAY_ICON_X_HOTSPOT 0
 #define TRAY_ICON_Y_HOTSPOT 0
 
-#define TRAY_ICON_TOOLTIP_MAX_SIZE (IS_WIN2000 ? 128 : 64)
+#define TRAY_ICON_TOOLTIP_MAX_SIZE 128
 
 #define TRAY_ICON_BALLOON_TITLE_MAX_SIZE 64
 #define TRAY_ICON_BALLOON_INFO_MAX_SIZE  256
 
-// **********************************************************************
-// The following definitions are duplicates for those from the shellapi.h
-// **********************************************************************
-
-#define AWT_NOTIFYICON_VERSION 3
-
-#define AWT_NIM_SETVERSION  0x00000004
-
-#define AWT_NIN_SELECT          (WM_USER + 0)
-#define AWT_NINF_KEY            0x1
-#define AWT_NIN_KEYSELECT       (AWT_NIN_SELECT | AWT_NINF_KEY)
-#define AWT_NIN_BALLOONSHOW     (WM_USER + 2)
-#define AWT_NIN_BALLOONHIDE     (WM_USER + 3)
-#define AWT_NIN_BALLOONTIMEOUT  (WM_USER + 4)
-#define AWT_NIN_BALLOONUSERCLICK (WM_USER + 5)
-
-#define AWT_NIIF_NONE       0x00000000
-#define AWT_NIIF_INFO       0x00000001
-#define AWT_NIIF_WARNING    0x00000002
-#define AWT_NIIF_ERROR      0x00000003
-
-#define AWT_NIF_INFO        0x00000010
-
-typedef struct _AWT_NOTIFYICONDATA {
-    DWORD cbSize;
-    HWND hWnd;
-    UINT uID;
-    UINT uFlags;
-    UINT uCallbackMessage;
-    HICON hIcon;
-    TCHAR szTip[128];
-
-    DWORD dwState;        // _WIN32_IE >= 0x0500
-    DWORD dwStateMask;
-    TCHAR szInfo[256];
-    union {
-        UINT  uTimeout;
-        UINT  uVersion;
-    } DUMMYUNIONNAME;
-    TCHAR szInfoTitle[64];
-    DWORD dwInfoFlags;
-
-    GUID guidItem;        // _WIN32_IE >= 0x600
-} AWT_NOTIFYICONDATA, *PAWT_NOTIFYICONDATA;
-
-
 /************************************************************************
  * AwtTrayIcon class
  */
@@ -174,7 +128,7 @@
     static int sm_instCount;
 
 private:
-    AWT_NOTIFYICONDATA m_nid;
+    NOTIFYICONDATA m_nid;
 
     /* A bitmask keeps the button's numbers as MK_LBUTTON, MK_MBUTTON, MK_RBUTTON
      * which are allowed to
--- a/jdk/src/windows/native/sun/windows/awt_Unicode.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/*
- * Copyright 1996-2003 Sun Microsystems, Inc.  All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-#include "awt.h"
-
-LPWSTR J2WHelper1(LPWSTR lpw, LPWSTR lpj, int offset, int nChars) {
-    memcpy(lpw, lpj + offset, nChars*2);
-    lpw[nChars] = '\0';
-    return lpw;
-}
-
-LPWSTR JNI_J2WHelper1(JNIEnv *env, LPWSTR lpwstr, jstring jstr) {
-
-    int len = env->GetStringLength(jstr);
-
-    env->GetStringRegion(jstr, 0, len, lpwstr);
-    lpwstr[len] = '\0';
-
-    return lpwstr;
-}
-
-LPWSTR J2WHelper(LPWSTR lpw, LPWSTR lpj,  int nChars) {
-    return J2WHelper1(lpw, lpj, 0, nChars);
-}
--- a/jdk/src/windows/native/sun/windows/awt_Unicode.h	Wed Jul 05 16:46:57 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
- * Copyright 1996-2003 Sun Microsystems, Inc.  All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-/*
- * Unicode to ANSI string conversion macros, based on a slide from a
- * presentation by Asmus Freytag.  These must be macros, since the
- * alloca() has to be in the caller's stack space.
- */
-
-#ifndef AWT_UNICODE_H
-#define AWT_UNICODE_H
-
-#include <malloc.h>
-
-// Get a Unicode string copy of a Java String object (Java String aren't
-// null-terminated).
-extern LPWSTR J2WHelper(LPWSTR lpw, LPWSTR lpj, int nChars);
-extern LPWSTR J2WHelper1(LPWSTR lpw, LPWSTR lpj, int offset, int nChars);
-
-extern LPWSTR JNI_J2WHelper1(JNIEnv *env, LPWSTR lpw, jstring jstr);
-
-#define TO_WSTRING(jstr) \
-   ((jstr == NULL) ? NULL : \
-     (JNI_J2WHelper1(env, (LPWSTR) alloca((env->GetStringLength(jstr)+1)*2), \
-                     jstr) \
-    ))
-
-#endif // AWT_UNICODE_H
--- a/jdk/src/windows/native/sun/windows/awt_Win32GraphicsConfig.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_Win32GraphicsConfig.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1999-2003 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,12 +23,12 @@
  * have any questions.
  */
 
-#include <windows.h>
 #include "awt.h"
 #include <sun_awt_Win32GraphicsConfig.h>
 #include "awt_Win32GraphicsConfig.h"
 #include "awt_Canvas.h"
 #include "awt_Win32GraphicsDevice.h"
+#include "Devices.h"
 
 //Info for building a ColorModel
 #include "java_awt_image_DataBuffer.h"
@@ -93,8 +93,8 @@
     clazz = env->FindClass("java/awt/Rectangle");
     mid = env->GetMethodID(clazz, "<init>", "(IIII)V");
     if (mid != 0) {
-        RECT    rRW     = {0,0,0,0};
-        if( TRUE == ::MonitorBounds(AwtWin32GraphicsDevice::GetMonitor(screen), &rRW) ) {
+        RECT rRW = {0, 0, 0, 0};
+        if (TRUE == MonitorBounds(AwtWin32GraphicsDevice::GetMonitor(screen), &rRW)) {
             bounds = env->NewObject(clazz, mid,
                                     rRW.left, rRW.top,
                                     rRW.right - rRW.left,
--- a/jdk/src/windows/native/sun/windows/awt_Win32GraphicsDevice.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_Win32GraphicsDevice.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -37,19 +37,17 @@
  * array index.
  */
 
-#include <windows.h>
-#include <jni.h>
 #include <awt.h>
 #include <sun_awt_Win32GraphicsDevice.h>
 #include "awt_Canvas.h"
 #include "awt_Win32GraphicsDevice.h"
+#include "awt_Window.h"
 #include "java_awt_Transparency.h"
 #include "java_awt_color_ColorSpace.h"
 #include "sun_awt_Win32GraphicsDevice.h"
 #include "java_awt_image_DataBuffer.h"
 #include "dither.h"
 #include "img_util_md.h"
-#include "awt_dlls.h"
 #include "Devices.h"
 
 uns_ordered_dither_array img_oda_alpha;
@@ -72,7 +70,7 @@
  * device, and information on whether the primary device is palettized.
  */
 AwtWin32GraphicsDevice::AwtWin32GraphicsDevice(int screen,
-                                               MHND mhnd, Devices *arr)
+                                               HMONITOR mhnd, Devices *arr)
 {
     this->screen  = screen;
     this->devicesArray = arr;
@@ -83,8 +81,8 @@
     cData = NULL;
     gpBitmapInfo = NULL;
     monitor = mhnd;
-    pMonitorInfo = (PMONITOR_INFO)new MONITOR_INFO_EXTENDED;
-    pMonitorInfo->dwSize = sizeof(MONITOR_INFO_EXTENDED);
+    pMonitorInfo = new MONITORINFOEX;
+    pMonitorInfo->cbSize = sizeof(MONITORINFOEX);
     ::GetMonitorInfo(monitor, pMonitorInfo);
 
     // Set primary device info: other devices will need to know
@@ -93,7 +91,7 @@
     HDC hDC = this->GetDC();
     colorData->bitsperpixel = ::GetDeviceCaps(hDC, BITSPIXEL);
     this->ReleaseDC(hDC);
-    if (MONITOR_INFO_FLAG_PRIMARY & pMonitorInfo->dwFlags) {
+    if (MONITORINFOF_PRIMARY & pMonitorInfo->dwFlags) {
         primaryIndex = screen;
         if (colorData->bitsperpixel > 8) {
             primaryPalettized = FALSE;
@@ -124,6 +122,24 @@
     }
 }
 
+HDC AwtWin32GraphicsDevice::MakeDCFromMonitor(HMONITOR hmMonitor) {
+    HDC retCode = NULL;
+    if (NULL != hmMonitor) {
+        MONITORINFOEX mieInfo;
+
+        memset((void*)(&mieInfo), 0, sizeof(MONITORINFOEX));
+        mieInfo.cbSize = sizeof(MONITORINFOEX);
+
+        if (TRUE == ::GetMonitorInfo(hmMonitor, (LPMONITORINFOEX)(&mieInfo))) {
+            HDC hDC = CreateDC(mieInfo.szDevice, NULL, NULL, NULL);
+            if (NULL != hDC) {
+                retCode = hDC;
+            }
+        }
+    }
+    return retCode;
+}
+
 HDC AwtWin32GraphicsDevice::GetDC()
 {
     return MakeDCFromMonitor(monitor);
@@ -164,7 +180,7 @@
     VERIFY(::GetDIBits(hBMDC, hBM, 0, 1, NULL, gpBitmapInfo, DIB_RGB_COLORS));
 
     if (colorData->bitsperpixel > 8) {
-        if (MONITOR_INFO_FLAG_PRIMARY & pMonitorInfo->dwFlags) {
+        if (MONITORINFOF_PRIMARY & pMonitorInfo->dwFlags) {
             primaryPalettized = FALSE;
         }
         if (colorData->bitsperpixel != 24) { // 15, 16, or 32 bpp
@@ -250,7 +266,7 @@
             ((int *)gpBitmapInfo->bmiColors)[2] = 0xff0000;
         }
     } else {
-        if (MONITOR_INFO_FLAG_PRIMARY & pMonitorInfo->dwFlags) {
+        if (MONITORINFOF_PRIMARY & pMonitorInfo->dwFlags) {
             primaryPalettized = TRUE;
         }
         gpBitmapInfo->bmiHeader.biBitCount = 8;
@@ -565,8 +581,8 @@
  */
 int AwtWin32GraphicsDevice::DeviceIndexForWindow(HWND hWnd)
 {
-    MHND mon = MonitorFromWindow(hWnd, MONITOR_DEFAULT_TO_NEAR);
-    int screen = AwtWin32GraphicsDevice::GetScreenFromMHND(mon);
+    HMONITOR mon = MonitorFromWindow(hWnd, MONITOR_DEFAULTTONEAREST);
+    int screen = AwtWin32GraphicsDevice::GetScreenFromHMONITOR(mon);
     return screen;
 }
 
@@ -645,14 +661,14 @@
     return devices->GetDevice(deviceIndex)->GetColorModel(env, dynamic);
 }
 
-MONITOR_INFO *AwtWin32GraphicsDevice::GetMonitorInfo(int deviceIndex)
+LPMONITORINFO AwtWin32GraphicsDevice::GetMonitorInfo(int deviceIndex)
 {
     Devices::InstanceAccess devices;
     return devices->GetDevice(deviceIndex)->GetMonitorInfo();
 }
 
 /**
- * This function updates the data in the MONITOR_INFO structure pointed to by
+ * This function updates the data in the MONITORINFOEX structure pointed to by
  * pMonitorInfo for all monitors on the system.  Added for 4654713.
  */
 void AwtWin32GraphicsDevice::ResetAllMonitorInfo()
@@ -660,14 +676,14 @@
     Devices::InstanceAccess devices;
     int devicesNum = devices->GetNumDevices();
     for (int deviceIndex = 0; deviceIndex < devicesNum; deviceIndex++) {
-        MHND monitor = devices->GetDevice(deviceIndex)->GetMonitor();
+        HMONITOR monitor = devices->GetDevice(deviceIndex)->GetMonitor();
         ::GetMonitorInfo(monitor,
                          devices->GetDevice(deviceIndex)->pMonitorInfo);
     }
 }
 
 void AwtWin32GraphicsDevice::DisableOffscreenAccelerationForDevice(
-    MHND hMonitor)
+    HMONITOR hMonitor)
 {
     Devices::InstanceAccess devices;
     if (hMonitor == NULL) {
@@ -682,7 +698,7 @@
     }
 }
 
-MHND AwtWin32GraphicsDevice::GetMonitor(int deviceIndex)
+HMONITOR AwtWin32GraphicsDevice::GetMonitor(int deviceIndex)
 {
     Devices::InstanceAccess devices;
     return devices->GetDevice(deviceIndex)->GetMonitor();
@@ -741,30 +757,31 @@
     return MakeDCFromMonitor(dev->GetMonitor());
 }
 
-/** Compare elements of MONITOR_INFO structures for the given MHNDs.
+/** Compare elements of MONITORINFOEX structures for the given HMONITORs.
  * If equal, return TRUE
  */
-BOOL AwtWin32GraphicsDevice::AreSameMonitors(MHND mon1, MHND mon2) {
+BOOL AwtWin32GraphicsDevice::AreSameMonitors(HMONITOR mon1, HMONITOR mon2) {
     J2dTraceLn2(J2D_TRACE_INFO,
                 "AwtWin32GraphicsDevice::AreSameMonitors mhnd1=%x mhnd2=%x",
                 mon1, mon2);
     DASSERT(mon1 != NULL);
     DASSERT(mon2 != NULL);
 
-    MONITOR_INFO mi1;
-    MONITOR_INFO mi2;
+    MONITORINFOEX mi1;
+    MONITORINFOEX mi2;
+
+    memset((void*)(&mi1), 0, sizeof(MONITORINFOEX));
+    mi1.cbSize = sizeof(MONITORINFOEX);
+    memset((void*)(&mi2), 0, sizeof(MONITORINFOEX));
+    mi2.cbSize = sizeof(MONITORINFOEX);
 
-    memset((void*)(&mi1),0,sizeof(MONITOR_INFO));
-    mi1.dwSize = sizeof(MONITOR_INFO);
-    memset((void*)(&mi2),0,sizeof(MONITOR_INFO));
-    mi2.dwSize = sizeof(MONITOR_INFO);
-
-    if (::GetMonitorInfo(mon1,&mi1) != 0 &&
-        ::GetMonitorInfo(mon2,&mi2) != 0 ) {
-
-        if (::EqualRect(&mi1.rMonitor,&mi2.rMonitor) &&
-            ::EqualRect(&mi1.rWork,&mi2.rWork) &&
-            mi1.dwFlags  == mi1.dwFlags) {
+    if (::GetMonitorInfo(mon1, &mi1) != 0 &&
+        ::GetMonitorInfo(mon2, &mi2) != 0 )
+    {
+        if (::EqualRect(&mi1.rcMonitor, &mi2.rcMonitor) &&
+            ::EqualRect(&mi1.rcWork, &mi2.rcWork) &&
+            (mi1.dwFlags  == mi1.dwFlags))
+        {
 
             J2dTraceLn(J2D_TRACE_VERBOSE, "  the monitors are the same");
             return TRUE;
@@ -774,15 +791,15 @@
     return FALSE;
 }
 
-int AwtWin32GraphicsDevice::GetScreenFromMHND(MHND mon) {
+int AwtWin32GraphicsDevice::GetScreenFromHMONITOR(HMONITOR mon) {
     J2dTraceLn1(J2D_TRACE_INFO,
-                "AwtWin32GraphicsDevice::GetScreenFromMHND mhnd=%x", mon);
+                "AwtWin32GraphicsDevice::GetScreenFromHMONITOR mhnd=%x", mon);
 
     DASSERT(mon != NULL);
     Devices::InstanceAccess devices;
 
     for (int i = 0; i < devices->GetNumDevices(); i++) {
-        MHND mhnd = devices->GetDevice(i)->GetMonitor();
+        HMONITOR mhnd = devices->GetDevice(i)->GetMonitor();
         if (AreSameMonitors(mon, mhnd)) {
             J2dTraceLn1(J2D_TRACE_VERBOSE, "  Found device: %d", i);
             return i;
@@ -790,8 +807,8 @@
     }
 
     J2dTraceLn1(J2D_TRACE_WARNING,
-                "AwtWin32GraphicsDevice::GetScreenFromMHND(): "\
-                "couldn't find screen for MHND %x, returning default", mon);
+                "AwtWin32GraphicsDevice::GetScreenFromHMONITOR(): "\
+                "couldn't find screen for HMONITOR %x, returning default", mon);
     return AwtWin32GraphicsDevice::GetDefaultDeviceIndex();
 }
 
@@ -1076,19 +1093,19 @@
  * of the structure pointed to by lpDisplayDevice is undefined.
  */
 static BOOL
-GetAttachedDisplayDevice(int screen, _DISPLAY_DEVICE *lpDisplayDevice)
+GetAttachedDisplayDevice(int screen, DISPLAY_DEVICE *lpDisplayDevice)
 {
     DWORD dwDeviceNum = 0;
-    lpDisplayDevice->dwSize = sizeof(_DISPLAY_DEVICE);
+    lpDisplayDevice->cb = sizeof(DISPLAY_DEVICE);
     while (EnumDisplayDevices(NULL, dwDeviceNum, lpDisplayDevice, 0) &&
            dwDeviceNum < 20) // avoid infinite loop with buggy drivers
     {
-        if (lpDisplayDevice->dwFlags & DISPLAY_DEVICE_ATTACHED_TO_DESKTOP) {
+        if (lpDisplayDevice->StateFlags & DISPLAY_DEVICE_ATTACHED_TO_DESKTOP) {
             Devices::InstanceAccess devices;
-            MONITOR_INFO_EXTENDED *pMonInfo =
-                (PMONITOR_INFO_EXTENDED) devices->GetDevice(screen)->GetMonitorInfo();
+            MONITORINFOEX *pMonInfo =
+                (LPMONITORINFOEX)devices->GetDevice(screen)->GetMonitorInfo();
             // make sure the device names match
-            if (wcscmp(pMonInfo->strDevice, lpDisplayDevice->strDevName) == 0) {
+            if (wcscmp(pMonInfo->szDevice, lpDisplayDevice->DeviceName) == 0) {
                 return TRUE;
             }
         }
@@ -1114,9 +1131,9 @@
     dm.dmSize = sizeof(dm);
     dm.dmDriverExtra = 0;
 
-    _DISPLAY_DEVICE displayDevice;
+    DISPLAY_DEVICE displayDevice;
     if (GetAttachedDisplayDevice(screen, &displayDevice)) {
-        pName = displayDevice.strDevName;
+        pName = displayDevice.DeviceName;
     }
     if (!EnumDisplaySettings(pName, ENUM_CURRENT_SETTINGS, &dm))
     {
@@ -1156,7 +1173,7 @@
     // ChangeDisplaySettingsEx is not available on NT,
     // so it'd be nice not to break it if we can help it.
     if (screen == AwtWin32GraphicsDevice::GetDefaultDeviceIndex()) {
-        if (ChangeDisplaySettings(&dm, CDS_FULLSCREEN) !=
+        if (::ChangeDisplaySettings(&dm, CDS_FULLSCREEN) !=
             DISP_CHANGE_SUCCESSFUL)
         {
             JNU_ThrowInternalError(env,
@@ -1165,15 +1182,9 @@
         return;
     }
 
-    // make sure the function pointer for fn_change_display_settings_ex
-    // is initialized
-    load_user_procs();
-
-    _DISPLAY_DEVICE displayDevice;
-    if (fn_change_display_settings_ex == NULL ||
-        !GetAttachedDisplayDevice(screen, &displayDevice) ||
-        ((*fn_change_display_settings_ex)
-             (displayDevice.strDevName, &dm, NULL, CDS_FULLSCREEN, NULL) !=
+    DISPLAY_DEVICE displayDevice;
+    if (!GetAttachedDisplayDevice(screen, &displayDevice) ||
+        (::ChangeDisplaySettingsEx(displayDevice.DeviceName, &dm, NULL, CDS_FULLSCREEN, NULL) !=
           DISP_CHANGE_SUCCESSFUL))
     {
         JNU_ThrowInternalError(env,
@@ -1231,11 +1242,11 @@
 
     DEVMODE dm;
     LPTSTR pName = NULL;
-    _DISPLAY_DEVICE displayDevice;
+    DISPLAY_DEVICE displayDevice;
 
 
     if (GetAttachedDisplayDevice(screen, &displayDevice)) {
-        pName = displayDevice.strDevName;
+        pName = displayDevice.DeviceName;
     }
 
     dm.dmSize = sizeof(dm);
--- a/jdk/src/windows/native/sun/windows/awt_Win32GraphicsDevice.h	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_Win32GraphicsDevice.h	Wed Jul 05 16:47:27 2017 +0200
@@ -32,7 +32,6 @@
 } // extern "C"
 #include "colordata.h"
 #include "awt_Palette.h"
-#include "awt_MMStub.h"
 #include "Devices.h"
 
 class AwtPalette;
@@ -40,7 +39,7 @@
 
 class AwtWin32GraphicsDevice {
 public:
-                            AwtWin32GraphicsDevice(int screen, MHND mhnd, Devices *arr);
+                            AwtWin32GraphicsDevice(int screen, HMONITOR mhnd, Devices *arr);
                             ~AwtWin32GraphicsDevice();
     void                    UpdateDeviceColorState();
     void                    SetGrayness(int grayValue);
@@ -60,8 +59,8 @@
     HPALETTE                GetPalette();
     ColorData               *GetColorData() { return cData; }
     int                     GetBitDepth() { return colorData->bitsperpixel; }
-    MHND                    GetMonitor() { return monitor; }
-    MONITOR_INFO            *GetMonitorInfo() { return pMonitorInfo; }
+    HMONITOR                GetMonitor() { return monitor; }
+    LPMONITORINFO           GetMonitorInfo() { return pMonitorInfo; }
     jobject                 GetJavaDevice() { return javaDevice; }
     int                     GetDeviceIndex() { return screen; }
     void                    Release();
@@ -78,14 +77,14 @@
     static void             UpdateDynamicColorModel(int deviceIndex);
     static BOOL             UpdateSystemPalette(int deviceIndex);
     static HPALETTE         GetPalette(int deviceIndex);
-    static MHND             GetMonitor(int deviceIndex);
-    static MONITOR_INFO     *GetMonitorInfo(int deviceIndex);
+    static HMONITOR         GetMonitor(int deviceIndex);
+    static LPMONITORINFO    GetMonitorInfo(int deviceIndex);
     static void             ResetAllMonitorInfo();
     static BOOL             IsPrimaryPalettized() { return primaryPalettized; }
     static int              GetDefaultDeviceIndex() { return primaryIndex; }
-    static void             DisableOffscreenAccelerationForDevice(MHND hMonitor);
+    static void             DisableOffscreenAccelerationForDevice(HMONITOR hMonitor);
     static HDC              GetDCFromScreen(int screen);
-    static int              GetScreenFromMHND(MHND mon);
+    static int              GetScreenFromHMONITOR(HMONITOR mon);
 
     static int              primaryIndex;
     static BOOL             primaryPalettized;
@@ -97,17 +96,19 @@
     static jmethodID        paletteChangedMID;
 
 private:
-    static BOOL             AreSameMonitors(MHND mon1, MHND mon2);
+    static BOOL             AreSameMonitors(HMONITOR mon1, HMONITOR mon2);
     ImgColorData            *colorData;
     AwtPalette              *palette;
     ColorData               *cData;     // Could be static, but may sometime
                                         // have per-device info in this structure
     BITMAPINFO              *gpBitmapInfo;
     int                     screen;
-    MHND                    monitor;
-    MONITOR_INFO            *pMonitorInfo;
+    HMONITOR                monitor;
+    LPMONITORINFO           pMonitorInfo;
     jobject                 javaDevice;
     Devices                 *devicesArray;
+
+    static HDC              MakeDCFromMonitor(HMONITOR);
 };
 
 #endif AWT_WIN32GRAPHICSDEVICE_H
--- a/jdk/src/windows/native/sun/windows/awt_Win32GraphicsEnv.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_Win32GraphicsEnv.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -23,8 +23,6 @@
  * have any questions.
  */
 
-#include <windows.h>
-#include <jni.h>
 #include <awt.h>
 #include <sun_awt_Win32GraphicsEnvironment.h>
 #include "awt_Canvas.h"
@@ -188,44 +186,6 @@
     return AwtWin32GraphicsDevice::GetDefaultDeviceIndex();
 }
 
-#define FR_PRIVATE 0x10 /* from wingdi.h */
-typedef int (WINAPI *AddFontResourceExType)(LPCTSTR,DWORD,VOID*);
-typedef int (WINAPI *RemoveFontResourceExType)(LPCTSTR,DWORD,VOID*);
-
-static AddFontResourceExType procAddFontResourceEx = NULL;
-static RemoveFontResourceExType procRemoveFontResourceEx = NULL;
-
-static int winVer = -1;
-
-static int getWinVer() {
-    if (winVer == -1) {
-        OSVERSIONINFO osvi;
-        osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
-        GetVersionEx(&osvi);
-        winVer = osvi.dwMajorVersion;
-        if (winVer >= 5) {
-          // REMIND verify on 64 bit windows
-          HMODULE hGDI = LoadLibrary(TEXT("gdi32.dll"));
-          if (hGDI != NULL) {
-            procAddFontResourceEx =
-              (AddFontResourceExType)GetProcAddress(hGDI,"AddFontResourceExW");
-            if (procAddFontResourceEx == NULL) {
-              winVer = 0;
-            }
-            procRemoveFontResourceEx =
-              (RemoveFontResourceExType)GetProcAddress(hGDI,
-                                                      "RemoveFontResourceExW");
-            if (procRemoveFontResourceEx == NULL) {
-              winVer = 0;
-            }
-            FreeLibrary(hGDI);
-          }
-        }
-    }
-
-    return winVer;
-}
-
 /*
  * Class:     sun_awt_Win32GraphicsEnvironment
  * Method:    registerFontWithPlatform
@@ -236,9 +196,10 @@
                                                               jclass cl,
                                                               jstring fontName)
 {
-    if (getWinVer() >= 5 && procAddFontResourceEx != NULL) {
-      LPTSTR file = (LPTSTR)JNU_GetStringPlatformChars(env, fontName, NULL);
-      (*procAddFontResourceEx)(file, FR_PRIVATE, NULL);
+    LPTSTR file = (LPTSTR)JNU_GetStringPlatformChars(env, fontName, JNI_FALSE);
+    if (file) {
+        ::AddFontResourceEx(file, FR_PRIVATE, NULL);
+        JNU_ReleaseStringPlatformChars(env, fontName, file);
     }
 }
 
@@ -255,9 +216,10 @@
                                                               jclass cl,
                                                               jstring fontName)
 {
-    if (getWinVer() >= 5 && procRemoveFontResourceEx != NULL) {
-      LPTSTR file = (LPTSTR)JNU_GetStringPlatformChars(env, fontName, NULL);
-      (*procRemoveFontResourceEx)(file, FR_PRIVATE, NULL);
+    LPTSTR file = (LPTSTR)JNU_GetStringPlatformChars(env, fontName, JNI_FALSE);
+    if (file) {
+        ::RemoveFontResourceEx(file, FR_PRIVATE, NULL);
+        JNU_ReleaseStringPlatformChars(env, fontName, file);
     }
 }
 
--- a/jdk/src/windows/native/sun/windows/awt_Window.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_Window.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -23,7 +23,7 @@
  * have any questions.
  */
 
-#include <windowsx.h>
+#include "awt.h"
 
 #include "awt_Component.h"
 #include "awt_Container.h"
@@ -32,7 +32,6 @@
 #include "awt_Panel.h"
 #include "awt_Toolkit.h"
 #include "awt_Window.h"
-#include "awt_dlls.h"
 #include "awt_Win32GraphicsDevice.h"
 #include "awt_BitmapUtil.h"
 #include "awt_IconCursor.h"
@@ -42,6 +41,8 @@
 #include <java_awt_event_ComponentEvent.h>
 #include "sun_awt_windows_WCanvasPeer.h"
 
+#include <windowsx.h>
+
 #if !defined(__int3264)
 typedef __int32 LONG_PTR;
 #endif // __int3264
@@ -501,8 +502,7 @@
     // which might involve tagging java.awt.Window instances with a semantic
     // property so platforms can animate/decorate/etc accordingly.
     //
-    if ((IS_WIN98 || IS_WIN2000) &&
-        JNU_IsInstanceOfByName(env, target, "com/sun/java/swing/plaf/windows/WindowsPopupWindow") > 0)
+    if (JNU_IsInstanceOfByName(env, target, "com/sun/java/swing/plaf/windows/WindowsPopupWindow") > 0)
     {
         // need this global ref to make the class unloadable (see 6500204)
         static jclass windowsPopupWindowCls;
@@ -535,13 +535,8 @@
         windowType = env->GetIntField(target, windowTypeFID);
 
         if (windowType == windowTYPES[TOOLTIP]) {
-            if (IS_WIN2000) {
-                SystemParametersInfo(SPI_GETTOOLTIPANIMATION, 0, &animateflag, 0);
-                SystemParametersInfo(SPI_GETTOOLTIPFADE, 0, &fadeflag, 0);
-            } else {
-                // use same setting as menus
-                SystemParametersInfo(SPI_GETMENUANIMATION, 0, &animateflag, 0);
-            }
+            SystemParametersInfo(SPI_GETTOOLTIPANIMATION, 0, &animateflag, 0);
+            SystemParametersInfo(SPI_GETTOOLTIPFADE, 0, &fadeflag, 0);
             if (animateflag) {
               // AW_BLEND currently produces runtime parameter error
               // animateStyle = fadeflag? AW_BLEND : AW_SLIDE | AW_VER_POSITIVE;
@@ -551,13 +546,10 @@
                    windowType == windowTYPES[POPUPMENU]) {
             SystemParametersInfo(SPI_GETMENUANIMATION, 0, &animateflag, 0);
             if (animateflag) {
-
-                if (IS_WIN2000) {
-                    SystemParametersInfo(SPI_GETMENUFADE, 0, &fadeflag, 0);
-                    if (fadeflag) {
-                      // AW_BLEND currently produces runtime parameter error
-                      //animateStyle = AW_BLEND;
-                    }
+                SystemParametersInfo(SPI_GETMENUFADE, 0, &fadeflag, 0);
+                if (fadeflag) {
+                    // AW_BLEND currently produces runtime parameter error
+                    //animateStyle = AW_BLEND;
                 }
                 if (animateStyle == 0 && !fadeflag) {
                     animateStyle = AW_SLIDE;
@@ -578,38 +570,18 @@
         }
 
         if (animateStyle != 0) {
-            load_user_procs();
-
-            if (fn_animate_window != NULL) {
-                BOOL result = (*fn_animate_window)(hWnd, (DWORD)200, animateStyle);
-                if (result == 0) {
-                    LPTSTR      msgBuffer = NULL;
-                    FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
-                      FORMAT_MESSAGE_FROM_SYSTEM |
-                      FORMAT_MESSAGE_IGNORE_INSERTS,
-                      NULL,
-                      GetLastError(),
-                      MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
-                      (LPTSTR)&msgBuffer, // it's an output parameter when allocate buffer is used
-                      0,
-                      NULL);
-
-                    if (msgBuffer == NULL) {
-                        msgBuffer = TEXT("<Could not get GetLastError() message text>");
-                    }
-                    _ftprintf(stderr,TEXT("AwtWindow::Show: AnimateWindow: "));
-                    _ftprintf(stderr,msgBuffer);
-                    LocalFree(msgBuffer);
-                } else {
-                  // WM_PAINT is not automatically sent when invoking AnimateWindow,
-                  // so force an expose event
-                    RECT rect;
-                    ::GetWindowRect(hWnd,&rect);
-                    ::ScreenToClient(hWnd, (LPPOINT)&rect);
-                    ::InvalidateRect(hWnd,&rect,TRUE);
-                    ::UpdateWindow(hWnd);
-                    done = TRUE;
-                }
+            BOOL result = ::AnimateWindow(hWnd, (DWORD)200, animateStyle);
+            if (!result) {
+                // TODO: log message
+            } else {
+                // WM_PAINT is not automatically sent when invoking AnimateWindow,
+                // so force an expose event
+                RECT rect;
+                ::GetWindowRect(hWnd,&rect);
+                ::ScreenToClient(hWnd, (LPPOINT)&rect);
+                ::InvalidateRect(hWnd, &rect, TRUE);
+                ::UpdateWindow(hWnd);
+                done = TRUE;
             }
         }
     }
@@ -1205,16 +1177,17 @@
         }
 
         /* draw warning text */
-        LPWSTR text = TO_WSTRING(warningString);
+        LPCWSTR text = JNU_GetStringPlatformChars(env, warningString, NULL);
         VERIFY(::SetBkColor(hDC, ::GetSysColor(COLOR_BTNFACE)) != CLR_INVALID);
         VERIFY(::SetTextColor(hDC, ::GetSysColor(COLOR_BTNTEXT)) != CLR_INVALID);
         VERIFY(::SelectObject(hDC, ::GetStockObject(DEFAULT_GUI_FONT)) != NULL);
         VERIFY(::SetTextAlign(hDC, TA_LEFT | TA_BOTTOM) != GDI_ERROR);
-        VERIFY(::ExtTextOutW(hDC, r.left+2, r.bottom-1,
+        VERIFY(::ExtTextOut(hDC, r.left+2, r.bottom-1,
                              ETO_CLIPPED | ETO_OPAQUE,
                              &r, text, static_cast<UINT>(wcslen(text)), NULL));
         VERIFY(::RestoreDC(hDC, iSaveDC));
         ::ReleaseDC(GetHWnd(), hDC);
+        JNU_ReleaseStringPlatformChars(env, warningString, text);
     }
 
     env->DeleteLocalRef(target);
@@ -1360,13 +1333,13 @@
 }
 
 int AwtWindow::GetScreenImOn() {
-    MHND hmon;
+    HMONITOR hmon;
     int scrnNum;
 
-    hmon = ::MonitorFromWindow(GetHWnd(), MONITOR_DEFAULT_TO_PRIMARY);
+    hmon = ::MonitorFromWindow(GetHWnd(), MONITOR_DEFAULTTOPRIMARY);
     DASSERT(hmon != NULL);
 
-    scrnNum = AwtWin32GraphicsDevice::GetScreenFromMHND(hmon);
+    scrnNum = AwtWin32GraphicsDevice::GetScreenFromHMONITOR(hmon);
     DASSERT(scrnNum > -1);
 
     return scrnNum;
@@ -1619,10 +1592,10 @@
     if (::IsWindow(w->GetHWnd()))
     {
         int length = env->GetStringLength(title);
-        WCHAR *buffer = new WCHAR[length + 1];
-        env->GetStringRegion(title, 0, length, buffer);
+        TCHAR *buffer = new TCHAR[length + 1];
+        env->GetStringRegion(title, 0, length, reinterpret_cast<jchar*>(buffer));
         buffer[length] = L'\0';
-        VERIFY(::SetWindowTextW(w->GetHWnd(), buffer));
+        VERIFY(::SetWindowText(w->GetHWnd(), buffer));
         delete[] buffer;
     }
 ret:
@@ -1967,13 +1940,11 @@
 
     window->m_isFocusableWindow = isFocusableWindow;
 
-    if (IS_WIN2000) {
-        if (!window->m_isFocusableWindow) {
-            LONG isPopup = window->GetStyle() & WS_POPUP;
-            window->SetStyleEx(window->GetStyleEx() | (isPopup ? 0 : WS_EX_APPWINDOW) | AWT_WS_EX_NOACTIVATE);
-        } else {
-            window->SetStyleEx(window->GetStyleEx() & ~WS_EX_APPWINDOW & ~AWT_WS_EX_NOACTIVATE);
-        }
+    if (!window->m_isFocusableWindow) {
+        LONG isPopup = window->GetStyle() & WS_POPUP;
+        window->SetStyleEx(window->GetStyleEx() | (isPopup ? 0 : WS_EX_APPWINDOW) | AWT_WS_EX_NOACTIVATE);
+    } else {
+        window->SetStyleEx(window->GetStyleEx() & ~WS_EX_APPWINDOW & ~AWT_WS_EX_NOACTIVATE);
     }
 
   ret:
--- a/jdk/src/windows/native/sun/windows/awt_dlls.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,422 +0,0 @@
-/*
- * Copyright 1999-2003 Sun Microsystems, Inc.  All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-#include "awt.h"
-#include "awt_dlls.h"
-
-/*
- * To reduce memory footprint we don't statically link to COMDLG32.DLL
- * and SHELL32.  Instead we programatically load them only when they are
- * needed.
- */
-
-PrintDlgType AwtCommDialog::do_print_dlg;
-PageSetupDlgType AwtCommDialog::do_page_setup_dlg;
-GetOpenFileNameType AwtCommDialog::get_open_file_name;
-GetSaveFileNameType AwtCommDialog::get_save_file_name;
-GetExtendedErrorType AwtCommDialog::get_dlg_extended_error;
-
-/***********************************************************************/
-
-DWORD
-AwtCommDialog::CommDlgExtendedError(VOID) {
-    AwtCommDialog::load_comdlg_procs();
-    return static_cast<DWORD>(reinterpret_cast<INT_PTR>(
-        AwtToolkit::GetInstance().
-        InvokeFunction(reinterpret_cast<void *(*)(void)>
-            (AwtCommDialog::GetExtendedErrorWrapper))));
-}
-
-BOOL
-AwtCommDialog::PrintDlg(LPPRINTDLG data) {
-    AwtCommDialog::load_comdlg_procs();
-    return static_cast<BOOL>(reinterpret_cast<INT_PTR>(
-        AwtToolkit::GetInstance().
-        InvokeFunction(reinterpret_cast<void *(*)(void *)>
-            (AwtCommDialog::PrintDlgWrapper), data)));
-}
-
-BOOL
-AwtCommDialog::PageSetupDlg(LPPAGESETUPDLG data) {
-    AwtCommDialog::load_comdlg_procs();
-    return static_cast<BOOL>(reinterpret_cast<INT_PTR>(
-        AwtToolkit::GetInstance().
-        InvokeFunction(reinterpret_cast<void *(*)(void *)>
-            (AwtCommDialog::PageSetupDlgWrapper), data)));
-}
-
-/*
- * Load the COMDLG32.dll and get pointers to various procedures.
- */
-
-void
-AwtCommDialog::load_comdlg_procs()
-{
-    static int initialized = 0;
-    HMODULE lib = NULL;
-    if (initialized) {
-        return;
-    }
-    lib = LoadLibrary(TEXT("COMDLG32.DLL"));
-    HMODULE libUnicows = UnicowsLoader::GetModuleHandle();
-    do_print_dlg = (PrintDlgType)GetProcAddress(IS_WIN95 ? libUnicows : lib, "PrintDlgW");
-    do_page_setup_dlg = (PageSetupDlgType)GetProcAddress(IS_WIN95 ? libUnicows : lib, "PageSetupDlgW");
-    get_open_file_name = (GetOpenFileNameType)GetProcAddress(IS_WIN95 ? libUnicows : lib, "GetOpenFileNameW");
-    get_save_file_name = (GetSaveFileNameType)GetProcAddress(IS_WIN95 ? libUnicows : lib, "GetSaveFileNameW");
-    get_dlg_extended_error = (GetExtendedErrorType)GetProcAddress(lib, "CommDlgExtendedError");
-    initialized = 1;
-}
-
-/***********************************************************************/
-
-DragQueryFileType do_drag_query_file;
-GetPathFromIDListType get_path_from_idlist;
-
-/*
- * Load the SHELL32.dll and get pointers to various procedures.
- */
-
-void
-load_shell_procs()
-{
-    static int initialized = 0;
-    HMODULE lib = NULL;
-    if (initialized) {
-        return;
-    }
-
-    if (IS_WIN95) {
-        lib = UnicowsLoader::GetModuleHandle();
-    } else {
-        lib = LoadLibrary(TEXT("SHELL32.DLL"));
-    }
-
-    do_drag_query_file = (DragQueryFileType)GetProcAddress(lib, "DragQueryFileW");
-    get_path_from_idlist = (GetPathFromIDListType)GetProcAddress(lib,
-                "SHGetPathFromIDListW");
-    initialized = 1;
-}
-
-/***********************************************************************/
-
-AnimateWindowType fn_animate_window;
-ChangeDisplaySettingsExType fn_change_display_settings_ex;
-
-/*
- * Load the USER32.dll and get pointers to various procedures.
- */
-
-void
-load_user_procs()
-{
-    static int initialized = 0;
-    HMODULE lib = NULL;
-    if (initialized) {
-        return;
-    }
-    lib = LoadLibrary(TEXT("USER32.DLL"));
-    HMODULE libUnicows = UnicowsLoader::GetModuleHandle();
-    fn_animate_window = (AnimateWindowType)GetProcAddress(lib, "AnimateWindow");
-    fn_change_display_settings_ex = (ChangeDisplaySettingsExType)
-        GetProcAddress(IS_WIN95 ? libUnicows : lib, "ChangeDisplaySettingsExW");
-    initialized = 1;
-}
-
-/***********************************************************************/
-
-GetFileVersionInfoSizeType get_file_version_info_size;
-GetFileVersionInfoType get_file_version_info;
-VerQueryValueType do_ver_query_value;
-
-/*
- * Load the VERSION.dll and get pointers to various procedures.
- */
-
-void
-load_version_procs()
-{
-    static int initialized = 0;
-    HMODULE lib = NULL;
-    if (initialized) {
-        return;
-    }
-
-    if (IS_WIN95) {
-        lib = UnicowsLoader::GetModuleHandle();
-    } else {
-        lib = LoadLibrary(TEXT("VERSION.DLL"));
-    }
-
-    get_file_version_info_size =
-        (GetFileVersionInfoSizeType)GetProcAddress(lib, "GetFileVersionInfoSizeW");
-    get_file_version_info =
-        (GetFileVersionInfoType)GetProcAddress(lib, "GetFileVersionInfoW");
-    do_ver_query_value =
-        (VerQueryValueType)GetProcAddress(lib, "VerQueryValueW");
-    initialized = 1;
-}
-
-/***********************************************************************/
-
-#define MAX_KNOWN_VERSION 4
-
-/*
- * We are going to use an undocumented procedure RSRC32.DLL.
- * The safest will be to use it only for a finite set of known versions.
- */
-
-DWORD known_versions[MAX_KNOWN_VERSION][2] = {
-    { 0x00040000, 0x000003B6 },    // WIN95\RETAIL
-                                   // WIN95\RETAIL\UPGRADE
-                                   // WIN95\OSR2
-                                   // WIN95\OSR25
-                                   // WIN95\international\RETAIL
-                                   // WIN95\international\OSR2
-
-    { 0x0004000A, 0x00000672 },    // WIN98\international\win98beta3
-
-    { 0x0004000A, 0x000007CE },    // WIN98\RETAIL
-                                   // WIN98\international\RETAIL
-                                   // WIN98\SE
-
-    { 0x0004005A, 0x00000BB8 }     // WIN98ME
-};
-
-GetFreeSystemResourcesType get_free_system_resources = NULL;
-
-/*
- * Load the RSRC32.dll, check that it is a known version
- * and get the pointer to the undocumented procedure.
- */
-
-void
-load_rsrc32_procs()
-{
-    static int initialized = 0;
-    if (initialized) {
-        return;
-    }
-    if (IS_NT) {
-        // 4310028: Only load library on non-NT systems. The load
-        // will always fail anyways. However, if a Win 9x OS is
-        // also installed on the system, and the user's path
-        // includes C:\WINDOWS\SYSTEM, or the equivalent, a really
-        // ugly and annoying warning dialog will appear.
-        initialized = 1;
-        return;
-    }
-    HMODULE lib = LoadLibrary(TEXT("RSRC32.DLL"));
-    if (lib != NULL) {
-        TCHAR     szFullPath[_MAX_PATH];
-        DWORD     dwVerHnd = 0;
-        DWORD     dwVersionInfoSize;
-        LPBYTE    lpVersionInfo;
-        LPVOID    lpBuffer;
-        UINT      uLength = 0;
-
-        /*
-         * We use undocumented procedure exported by RSRC32.DLL, so the
-         * safest will be to check the library's version and only attempt
-         * to get the procedure address if it's a known version.
-         */
-        if (::GetModuleFileName(lib, szFullPath, sizeof(szFullPath))) {
-            load_version_procs();
-            dwVersionInfoSize = (*get_file_version_info_size)(szFullPath, &dwVerHnd);
-            if (dwVersionInfoSize) {
-                lpVersionInfo = new BYTE[dwVersionInfoSize];
-                (*get_file_version_info)(szFullPath, dwVerHnd,
-                                         dwVersionInfoSize, lpVersionInfo);
-                if ((*do_ver_query_value)(lpVersionInfo, TEXT("\\"), &lpBuffer, &uLength)) {
-                    VS_FIXEDFILEINFO *lpvsFixedFileInfo = (VS_FIXEDFILEINFO *)lpBuffer;
-                    DWORD dwFileVersionMS = lpvsFixedFileInfo->dwFileVersionMS;
-                    DWORD dwFileVersionLS = lpvsFixedFileInfo->dwFileVersionLS;
-                    for (int i = 0; i < MAX_KNOWN_VERSION; i++) {
-                        if ((known_versions[i][0] == dwFileVersionMS) &&
-                            (known_versions[i][1] == dwFileVersionLS)) {
-                            get_free_system_resources =
-                                (GetFreeSystemResourcesType)
-                                ::GetProcAddress(lib, "_MyGetFreeSystemResources32@4");
-                            break;
-                        }
-                    }
-                }
-                delete[] lpVersionInfo;
-            }
-        }
-    }
-    initialized = 1;
-}
-
-void
-load_rich_edit_library() {
-    static int initialized = 0;
-    BOOL isRichEdit32Needed = IS_WIN95 && !IS_WIN98;
-
-    if (initialized) {
-        return;
-    }
-
-    HMODULE lib = NULL;
-    if (isRichEdit32Needed) {
-        lib = ::LoadLibrary(TEXT("RICHED32.DLL"));
-    } else {
-        lib = ::LoadLibrary(TEXT("RICHED20.DLL"));
-    }
-    if (lib == NULL) {
-        JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
-        JNU_ThrowInternalError(env, "Can't load a rich edit DLL");
-    } else if (isRichEdit32Needed) {
-        // Richedit language checking logic is needed for RICHED32.DLL only.
-        LPTSTR    szFullPath = new TCHAR[_MAX_PATH];
-        DWORD     dwVerHnd = 0;
-        DWORD     dwVersionInfoSize;
-        LPVOID    lpVersionInfo;
-        UINT      uLength = 0;
-        struct LANGANDCODEPAGE {
-            WORD wLanguage;
-            WORD wCodePage;
-        } *lpTranslate;
-
-        try {
-            if (!IS_WIN2000 && ::GetModuleFileName(lib, szFullPath, _MAX_PATH)) {
-                load_version_procs();
-                dwVersionInfoSize = (*get_file_version_info_size)(szFullPath, &dwVerHnd);
-                if (dwVersionInfoSize) {
-                    lpVersionInfo = new BYTE[dwVersionInfoSize];
-                    try {
-                        if ((*get_file_version_info)(szFullPath,
-                                                     dwVerHnd,
-                                                     dwVersionInfoSize,
-                                                     lpVersionInfo)
-                            && (*do_ver_query_value)(lpVersionInfo,
-                                                     TEXT("\\VarFileInfo\\Translation"),
-                                                     (LPVOID*)&lpTranslate,
-                                                     &uLength)) {
-
-                            if (::GetSystemMetrics(SM_DBCSENABLED)
-                                && LANGIDFROMLCID(::GetThreadLocale()) != lpTranslate[0].wLanguage) {
-
-                                JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
-                                if (env->PushLocalFrame(6) >= 0) {
-                                    jstring keystr = env->NewStringUTF("AWT.InconsistentDLLsWarning");
-                                    jstring defstr = env->NewStringUTF(
-"Text based operations may not work correctly due to \
-an inconsistent set of dynamic linking libraries (DLLs) installed on your \
-system. For more information on this problem and a suggested workaround \
-please see the Java(TM) 2 SDK, Standard Edition Release Notes \
-on java.sun.com.");
-
-                                    jstring retstr =
-                                        (jstring) JNU_CallStaticMethodByName(
-                                            env,
-                                            NULL,
-                                            "java/awt/Toolkit",
-                                            "getProperty",
-                                            "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;",
-                                            keystr,
-                                            defstr).l;
-
-                                    jboolean exception;
-                                    jstring pkgstr = env->NewStringUTF("java.awt");
-                                    jobject logger =
-                                        (jobject) JNU_CallStaticMethodByName(
-                                            env,
-                                            &exception,
-                                            "java/util/logging/Logger",
-                                            "getLogger",
-                                            "(Ljava/lang/String;)Ljava/util/logging/Logger;",
-                                            pkgstr).l;
-
-                                    jstring msgstr = (retstr) ? retstr : defstr;
-                                    if (!exception) {
-                                        JNU_CallMethodByName(
-                                            env,
-                                            NULL,
-                                            logger,
-                                            "warning",
-                                            "(Ljava/lang/String;)V",
-                                            msgstr);
-                                    } else {
-                                        LPCTSTR outstr = JNU_GetStringPlatformChars(env, msgstr, NULL);
-                                        _ftprintf(stdout, TEXT("\nWARNING: %s\n"), outstr);
-                                        fflush(stdout);
-                                        JNU_ReleaseStringPlatformChars(env, msgstr, outstr);
-                                    }
-
-                                    env->PopLocalFrame(NULL);
-                                }
-                            }
-                        }
-                    } catch (...) {
-                        delete[] lpVersionInfo;
-                        throw;
-                    }
-                    delete[] lpVersionInfo;
-                }
-            }
-        } catch (...) {
-            delete[] szFullPath;
-            throw;
-        }
-        delete[] szFullPath;
-    }
-    initialized = 1;
-}
-
-/***********************************************************************/
-
-bool AwtWinMM::initialized = false;
-AwtWinMM::PlaySoundWFunc* AwtWinMM::playSoundFunc = NULL;
-
-BOOL AwtWinMM::PlaySoundWrapper(LPCTSTR pszSound, HMODULE hmod, DWORD fdwSound) {
-    load_winmm_procs();
-    if (playSoundFunc == NULL) {
-        return FALSE;
-    }
-    return (*playSoundFunc)(pszSound, hmod, fdwSound);
-}
-
-void AwtWinMM::load_winmm_procs() {
-    if (initialized) {
-        return;
-    }
-    HMODULE dll = NULL;
-
-    if (IS_WIN95) {
-        dll = UnicowsLoader::GetModuleHandle();
-    } else {
-        dll = ::LoadLibrary(TEXT("winmm.dll"));
-    }
-
-    if (dll == NULL) {
-        return;
-    }
-    playSoundFunc =
-        (PlaySoundWFunc*) GetProcAddress(dll, "PlaySoundW");
-    if (playSoundFunc == NULL) {
-        return;
-    }
-    initialized = true;
-}
--- a/jdk/src/windows/native/sun/windows/awt_dlls.h	Wed Jul 05 16:46:57 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,173 +0,0 @@
-/*
- * Copyright 1999-2003 Sun Microsystems, Inc.  All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-#ifndef AWT_DLLS_H
-#define AWT_DLLS_H
-
-#include <commdlg.h>
-#include <shellapi.h>
-#include <shlobj.h>
-#include "awt_FileDialog.h"
-#include "awt_PrintDialog.h"
-
-/*
- * To reduce memory footprint we don't statically link to COMDLG32.DLL
- * and SHELL32.  Instead we programatically load them only when they are
- * needed.
- */
-
-//---------------------------------------------------------------------------
-
-typedef BOOL (APIENTRY *PrintDlgType)(LPPRINTDLGW);
-typedef BOOL (APIENTRY *PageSetupDlgType)(LPPAGESETUPDLGW);
-typedef BOOL (APIENTRY *GetOpenFileNameType)(LPOPENFILENAMEW);
-typedef BOOL (APIENTRY *GetSaveFileNameType)(LPOPENFILENAMEW);
-typedef DWORD (APIENTRY *GetExtendedErrorType)(VOID);
-
-class AwtCommDialog {
-public:
-    static DWORD CommDlgExtendedError(VOID);
-
-    static BOOL PrintDlg(LPPRINTDLG data);
-
-    static BOOL PageSetupDlg(LPPAGESETUPDLG data);
-
-private:
-    static void load_comdlg_procs();
-
-    // Use wrapper functions with default calling convention. If the
-    // default isn't __stdcall, accessing the Win32 functions directly
-    // will cause stack corruption if we cast away __stdcall.
-    static BOOL PrintDlgWrapper(LPPRINTDLG data) {
-        return (*do_print_dlg)(data);
-    }
-    static BOOL PageSetupDlgWrapper(LPPAGESETUPDLG data) {
-        return (*do_page_setup_dlg)(data);
-    }
-    static BOOL GetOpenFileNameWrapper(LPOPENFILENAME data) {
-        return (*get_open_file_name)(data);
-    }
-    static BOOL GetSaveFileNameWrapper(LPOPENFILENAME data) {
-        return (*get_save_file_name)(data);
-    }
-    static DWORD GetExtendedErrorWrapper(VOID) {
-        return (*get_dlg_extended_error)();
-    }
-
-    friend BOOL AwtFileDialog::GetOpenFileName(LPAWTOPENFILENAME);
-    friend BOOL AwtFileDialog::GetSaveFileName(LPAWTOPENFILENAME);
-    friend BOOL AwtPrintDialog::PrintDlg(LPPRINTDLG);
-
-    static PrintDlgType do_print_dlg;
-    static PageSetupDlgType do_page_setup_dlg;
-    static GetOpenFileNameType get_open_file_name;
-    static GetSaveFileNameType get_save_file_name;
-    static GetExtendedErrorType get_dlg_extended_error;
-};
-
-//---------------------------------------------------------------------------
-
-// Dynamically load in SHELL32.DLL and define the procedure pointers listed below.
-extern void load_shell_procs();
-
-// Procedure pointers obtained from SHELL32.DLL
-// You must call load_shell_procs() before using any of these.
-typedef UINT (APIENTRY *DragQueryFileType)(HDROP,UINT,LPTSTR,UINT);
-typedef BOOL (APIENTRY *GetPathFromIDListType)(LPCITEMIDLIST,LPTSTR);
-extern DragQueryFileType do_drag_query_file;
-extern GetPathFromIDListType get_path_from_idlist;
-
-//---------------------------------------------------------------------------
-
-// Dynamically load in USER32.DLL and define the procedure pointers listed below.
-extern void load_user_procs();
-
-// Procedure pointers obtained from USER32.DLL
-// You must call load_user_procs() before using any of these.
-typedef BOOL (WINAPI *AnimateWindowType)(HWND,DWORD,DWORD);
-typedef LONG (WINAPI *ChangeDisplaySettingsExType)(LPCTSTR,LPDEVMODE,HWND,DWORD,LPVOID lParam);
-extern AnimateWindowType fn_animate_window;
-extern ChangeDisplaySettingsExType fn_change_display_settings_ex;
-
-//---------------------------------------------------------------------------
-
-// Dynamically load in VERSION.DLL and define the procedure pointers listed below.
-extern void load_version_procs();
-
-// Procedure pointers obtained from VERSION.DLL
-// You must call load_version_procs() before using any of these.
-typedef DWORD (APIENTRY *GetFileVersionInfoSizeType)(LPTSTR,LPDWORD);
-typedef BOOL  (APIENTRY *GetFileVersionInfoType)(LPTSTR,DWORD,DWORD,LPVOID);
-typedef BOOL  (APIENTRY *VerQueryValueType)(const LPVOID,LPTSTR,LPVOID*,PUINT);
-extern GetFileVersionInfoSizeType get_file_version_info_size;
-extern GetFileVersionInfoType get_file_version_info;
-extern VerQueryValueType do_ver_query_value;
-
-//---------------------------------------------------------------------------
-
-// Dynamically load in RSRC32.DLL and define the procedure pointers listed below.
-extern void load_rsrc32_procs();
-
-// Procedure pointers obtained from RSRC32.DLL
-// You must call load_rsrc32_procs() before using this procedure.
-
-/*
- * NOTE: even after load_rsrc32_procs() you must check that
- * the function pointer is valid before use.
- * It will be NULL in three cases:
- *  1.RSRC32.DLL not found. This means that Resource Meter
- *    isn't installed.
- *  2.RSRC32.DLL can't be loaded. This happens on WinNT.
- *  3.Unknown version of RSRC32.DLL. This is undocumented
- *    procedure, so the safest will be to use it only for
- *    a finite set of known versions.
- */
-typedef UINT (APIENTRY *GetFreeSystemResourcesType)(UINT);
-
-extern GetFreeSystemResourcesType get_free_system_resources;
-
-extern void load_rich_edit_library();
-
-//---------------------------------------------------------------------------
-
-/*
- * Loading WINMM.DLL (the Windows MultiMedia library) is extremely
- * expensive. The AWT only uses it to play certain Windows sounds
- * (which are off by default) so we dynamically load it upon demand
- * instead of statically linking to it.
- */
-
-class AwtWinMM {
-public:
-    static BOOL PlaySoundWrapper(LPCTSTR pszSound, HMODULE hmod, DWORD fdwSound);
-
-private:
-    static void load_winmm_procs();
-    static bool initialized;
-    typedef BOOL WINAPI PlaySoundWFunc(LPCTSTR pszSound, HMODULE hmod, DWORD fdwSound);
-    static PlaySoundWFunc* playSoundFunc;
-};
-
-#endif /* AWT_DLLS_H */
--- a/jdk/src/windows/native/sun/windows/awtmsg.h	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awtmsg.h	Wed Jul 05 16:47:27 2017 +0200
@@ -182,18 +182,6 @@
 #endif //AW_BLEND
 
 
-
-
-// WM_MOUSEWHEEL should be WM_MOUSELAST, but
-// is not being defined.  See winuser.h
-#ifdef WM_MOUSELAST
-#if WM_MOUSELAST <= 0x020A
-#define WM_AWT_MOUSELAST                0x020A
-#else
-#error Unexpected value of WM_MOUSELAST
-#endif //WM_MOUSELAST <= 0x0209
-#endif //WM_MOUSELAST
-
 // AwtComponent messages
 enum {
     // 6427323: unfortunately WM_APP+nnn conflicts with edit control messages
--- a/jdk/src/windows/native/sun/windows/jawt.cpp	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/jawt.cpp	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1999-2001 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,6 +26,7 @@
 #define _JNI_IMPLEMENTATION_
 #include <jawt.h>
 
+#include "awt.h"
 #include "awt_DrawingSurface.h"
 
 /*
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/EventDispatchThread/HandleExceptionOnEDT/HandleExceptionOnEDT.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,136 @@
+/*
+  @test
+  @bug 6304473 6727884
+  @summary Tests that an exception on EDT is handled with ThreadGroup.uncaughtException()
+  @author artem.ananiev: area=awt.eventdispatching
+  @library ../../regtesthelpers
+  @build Util
+  @run main HandleExceptionOnEDT
+*/
+
+import java.awt.*;
+import java.awt.event.*;
+
+import test.java.awt.regtesthelpers.Util;
+
+public class HandleExceptionOnEDT
+{
+    private final static String EXCEPTION_MESSAGE = "A1234567890";
+
+    private static volatile boolean exceptionHandled = false;
+    private static volatile boolean mousePressed = false;
+
+    public static void main(String[] args)
+    {
+        final Thread.UncaughtExceptionHandler eh = new Thread.UncaughtExceptionHandler()
+        {
+            @Override
+            public void uncaughtException(Thread t, Throwable e)
+            {
+                if (e.getMessage().equals(EXCEPTION_MESSAGE))
+                {
+                    exceptionHandled = true;
+                }
+            }
+        };
+
+        Frame f = new Frame("F");
+        f.setBounds(100, 100, 400, 300);
+        // set exception handler for EDT
+        f.addWindowListener(new WindowAdapter()
+        {
+            @Override
+            public void windowOpened(WindowEvent we)
+            {
+                Thread edt = Thread.currentThread();
+                edt.setUncaughtExceptionHandler(eh);
+            }
+        });
+        f.setVisible(true);
+
+        Robot r = Util.createRobot();
+        Util.waitForIdle(r);
+
+        // check exception without modal dialog
+        MouseListener exceptionListener = new MouseAdapter()
+        {
+            @Override
+            public void mousePressed(MouseEvent me)
+            {
+                throw new RuntimeException(EXCEPTION_MESSAGE);
+            }
+        };
+        f.addMouseListener(exceptionListener);
+
+        exceptionHandled = false;
+        Point fp = f.getLocationOnScreen();
+        r.mouseMove(fp.x + f.getWidth() / 2, fp.y + f.getHeight() / 2);
+        Util.waitForIdle(r);
+        r.mousePress(InputEvent.BUTTON1_MASK);
+        Util.waitForIdle(r);
+        r.mouseRelease(InputEvent.BUTTON2_MASK);
+        f.removeMouseListener(exceptionListener);
+
+        if (!exceptionHandled)
+        {
+            throw new RuntimeException("Test FAILED: exception is not handled for frame");
+        }
+
+        // check exception with modal dialog
+        final Dialog d = new Dialog(f, "D", true);
+        d.setBounds(fp.x + 100, fp.y + 100, 400, 300);
+        d.addMouseListener(exceptionListener);
+        EventQueue.invokeLater(new Runnable()
+        {
+            @Override
+            public void run()
+            {
+                d.setVisible(true);
+            }
+        });
+        Util.waitForIdle(r);
+
+        exceptionHandled = false;
+        Point dp = d.getLocationOnScreen();
+        r.mouseMove(dp.x + d.getWidth() / 2, dp.y + d.getHeight() / 2);
+        Util.waitForIdle(r);
+        r.mousePress(InputEvent.BUTTON1_MASK);
+        Util.waitForIdle(r);
+        r.mouseRelease(InputEvent.BUTTON2_MASK);
+        d.removeMouseListener(exceptionListener);
+
+        if (!exceptionHandled)
+        {
+            throw new RuntimeException("Test FAILED: exception is not handled for modal dialog");
+        }
+
+        // check the dialog is still modal
+        MouseListener pressedListener = new MouseAdapter()
+        {
+            @Override
+            public void mousePressed(MouseEvent me)
+            {
+                mousePressed = true;
+            }
+        };
+        f.addMouseListener(pressedListener);
+
+        mousePressed = false;
+        r.mouseMove(fp.x + 50, fp.y + 50);
+        Util.waitForIdle(r);
+        r.mousePress(InputEvent.BUTTON1_MASK);
+        Util.waitForIdle(r);
+        r.mouseRelease(InputEvent.BUTTON1_MASK);
+        Util.waitForIdle(r);
+        f.removeMouseListener(pressedListener);
+
+        if (mousePressed)
+        {
+            throw new RuntimeException("Test FAILED: modal dialog is not modal or visible after exception");
+        }
+
+        // test is passed
+        d.dispose();
+        f.dispose();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Frame/FrameSize/TestFrameSize.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2009 Red Hat, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+/*
+  @test
+  @bug 6721088
+  @summary X11 Window sizes should be what we set them to
+  @author Omair Majid <omajid@redhat.com>: area=awt.toplevel
+  @run main TestFrameSize
+ */
+
+/**
+ * TestFrameSize.java
+ *
+ * Summary: test that X11 Awt windows are drawn with correct sizes
+ *
+ * Test fails if size of window is wrong
+ */
+
+import java.awt.Dimension;
+import java.awt.Frame;
+
+public class TestFrameSize {
+
+        static Dimension desiredDimensions = new Dimension(200, 200);
+        static int ERROR_MARGIN = 15;
+        static Frame mainWindow;
+
+        public static void drawGui() {
+                mainWindow = new Frame("");
+                mainWindow.setPreferredSize(desiredDimensions);
+                mainWindow.pack();
+
+                Dimension actualDimensions = mainWindow.getSize();
+                System.out.println("Desired dimensions: " + desiredDimensions.toString());
+                System.out.println("Actual dimensions:  " + actualDimensions.toString());
+                if (Math.abs(actualDimensions.height - desiredDimensions.height) > ERROR_MARGIN) {
+                        throw new RuntimeException("Incorrect widow size");
+                }
+        }
+
+        public static void main(String[] args) {
+                try {
+                        drawGui();
+                } finally {
+                        if (mainWindow != null) {
+                                mainWindow.dispose();
+                        }
+                }
+        }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Mixing/HWDisappear.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,426 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+  @test %W% %E%
+  @bug 6769511
+  @summary AWT components are invisible for a while after frame is moved & menu items are visible
+  @author anthony.petrov@...: area=awt.mixing
+  @library ../regtesthelpers
+  @build Util
+  @run main HWDisappear
+*/
+
+/**
+ * HWDisappear.java
+ *
+ * summary:  AWT components are invisible for a while after frame is moved & menu items are visible
+ */
+
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+import test.java.awt.regtesthelpers.Util;
+
+public class HWDisappear
+{
+
+    static volatile boolean clickPassed = false;
+
+    private static void init()
+    {
+        //*** Create instructions for the user here ***
+
+        String[] instructions =
+        {
+            "This is an AUTOMATIC test, simply wait until it is done.",
+            "The result (passed or failed) will be shown in the",
+            "message window below."
+        };
+        Sysout.createDialog( );
+        Sysout.printInstructions( instructions );
+
+
+        // Create the frame and the button
+        JFrame f = new JFrame();
+        f.setBounds(100, 100, 400, 300);
+
+        JMenuBar menubar = new JMenuBar();
+        f.setJMenuBar(menubar);
+
+        // Create lightweight-enabled menu
+        JMenu lmenu = new JMenu("Lite Menu");
+        lmenu.add("Salad");
+        lmenu.add("Fruit Plate");
+        lmenu.add("Water");
+        menubar.add(lmenu);
+
+        Button b = new Button("OK");
+
+        f.setLayout(null);
+        f.add(b);
+        b.setBounds(50, 50, 200, 50);
+
+        b.addActionListener(new java.awt.event.ActionListener() {
+            public void actionPerformed(java.awt.event.ActionEvent e) {
+                clickPassed = true;
+            }
+        });
+
+        f.setVisible(true);
+
+        Robot robot = Util.createRobot();
+        robot.setAutoDelay(20);
+
+        Util.waitForIdle(robot);
+
+        // Move quite far to ensure the button is hidden completely
+        f.setLocation(500, 200);
+
+        Util.waitForIdle(robot);
+
+        // Activate the menu
+        Point lLoc = lmenu.getLocationOnScreen();
+        robot.mouseMove(lLoc.x + 5, lLoc.y + 5);
+
+        robot.mousePress(InputEvent.BUTTON1_MASK);
+        robot.mouseRelease(InputEvent.BUTTON1_MASK);
+        Util.waitForIdle(robot);
+
+        // Click on the button.
+        Point bLoc = b.getLocationOnScreen();
+        robot.mouseMove(bLoc.x + b.getWidth() / 2, bLoc.y + 5);
+
+        robot.mousePress(InputEvent.BUTTON1_MASK);
+        robot.mouseRelease(InputEvent.BUTTON1_MASK);
+        Util.waitForIdle(robot);
+
+        if (clickPassed) {
+            pass();
+        } else {
+            fail("The button cannot be clicked.");
+        }
+    }//End  init()
+
+
+
+    /*****************************************************
+     * Standard Test Machinery Section
+     * DO NOT modify anything in this section -- it's a
+     * standard chunk of code which has all of the
+     * synchronisation necessary for the test harness.
+     * By keeping it the same in all tests, it is easier
+     * to read and understand someone else's test, as
+     * well as insuring that all tests behave correctly
+     * with the test harness.
+     * There is a section following this for test-
+     * classes
+     ******************************************************/
+    private static boolean theTestPassed = false;
+    private static boolean testGeneratedInterrupt = false;
+    private static String failureMessage = "";
+
+    private static Thread mainThread = null;
+
+    private static int sleepTime = 300000;
+
+    // Not sure about what happens if multiple of this test are
+    //  instantiated in the same VM.  Being static (and using
+    //  static vars), it aint gonna work.  Not worrying about
+    //  it for now.
+    public static void main( String args[] ) throws InterruptedException
+    {
+        mainThread = Thread.currentThread();
+        try
+        {
+            init();
+        }
+        catch( TestPassedException e )
+        {
+            //The test passed, so just return from main and harness will
+            // interepret this return as a pass
+            return;
+        }
+        //At this point, neither test pass nor test fail has been
+        // called -- either would have thrown an exception and ended the
+        // test, so we know we have multiple threads.
+
+        //Test involves other threads, so sleep and wait for them to
+        // called pass() or fail()
+        try
+        {
+            Thread.sleep( sleepTime );
+            //Timed out, so fail the test
+            throw new RuntimeException( "Timed out after " + sleepTime/1000 + " seconds" );
+        }
+        catch (InterruptedException e)
+        {
+            //The test harness may have interrupted the test.  If so, rethrow the exception
+            // so that the harness gets it and deals with it.
+            if( ! testGeneratedInterrupt ) throw e;
+
+            //reset flag in case hit this code more than once for some reason (just safety)
+            testGeneratedInterrupt = false;
+
+            if ( theTestPassed == false )
+            {
+                throw new RuntimeException( failureMessage );
+            }
+        }
+
+    }//main
+
+    public static synchronized void setTimeoutTo( int seconds )
+    {
+        sleepTime = seconds * 1000;
+    }
+
+    public static synchronized void pass()
+    {
+        Sysout.println( "The test passed." );
+        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
+        //first check if this is executing in main thread
+        if ( mainThread == Thread.currentThread() )
+        {
+            //Still in the main thread, so set the flag just for kicks,
+            // and throw a test passed exception which will be caught
+            // and end the test.
+            theTestPassed = true;
+            throw new TestPassedException();
+        }
+        theTestPassed = true;
+        testGeneratedInterrupt = true;
+        mainThread.interrupt();
+    }//pass()
+
+    public static synchronized void fail()
+    {
+        //test writer didn't specify why test failed, so give generic
+        fail( "it just plain failed! :-)" );
+    }
+
+    public static synchronized void fail( String whyFailed )
+    {
+        Sysout.println( "The test failed: " + whyFailed );
+        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
+        //check if this called from main thread
+        if ( mainThread == Thread.currentThread() )
+        {
+            //If main thread, fail now 'cause not sleeping
+            throw new RuntimeException( whyFailed );
+        }
+        theTestPassed = false;
+        testGeneratedInterrupt = true;
+        failureMessage = whyFailed;
+        mainThread.interrupt();
+    }//fail()
+
+}// class HWDisappear
+
+//This exception is used to exit from any level of call nesting
+// when it's determined that the test has passed, and immediately
+// end the test.
+class TestPassedException extends RuntimeException
+{
+}
+
+//*********** End Standard Test Machinery Section **********
+
+
+//************ Begin classes defined for the test ****************
+
+// if want to make listeners, here is the recommended place for them, then instantiate
+//  them in init()
+
+/* Example of a class which may be written as part of a test
+class NewClass implements anInterface
+ {
+   static int newVar = 0;
+
+   public void eventDispatched(AWTEvent e)
+    {
+      //Counting events to see if we get enough
+      eventCount++;
+
+      if( eventCount == 20 )
+       {
+         //got enough events, so pass
+
+         HWDisappear.pass();
+       }
+      else if( tries == 20 )
+       {
+         //tried too many times without getting enough events so fail
+
+         HWDisappear.fail();
+       }
+
+    }// eventDispatched()
+
+ }// NewClass class
+
+*/
+
+
+//************** End classes defined for the test *******************
+
+
+
+
+/****************************************************
+ Standard Test Machinery
+ DO NOT modify anything below -- it's a standard
+  chunk of code whose purpose is to make user
+  interaction uniform, and thereby make it simpler
+  to read and understand someone else's test.
+ ****************************************************/
+
+/**
+ This is part of the standard test machinery.
+ It creates a dialog (with the instructions), and is the interface
+  for sending text messages to the user.
+ To print the instructions, send an array of strings to Sysout.createDialog
+  WithInstructions method.  Put one line of instructions per array entry.
+ To display a message for the tester to see, simply call Sysout.println
+  with the string to be displayed.
+ This mimics System.out.println but works within the test harness as well
+  as standalone.
+ */
+
+class Sysout
+{
+    private static TestDialog dialog;
+
+    public static void createDialogWithInstructions( String[] instructions )
+    {
+        dialog = new TestDialog( new Frame(), "Instructions" );
+        dialog.printInstructions( instructions );
+        dialog.setVisible(true);
+        println( "Any messages for the tester will display here." );
+    }
+
+    public static void createDialog( )
+    {
+        dialog = new TestDialog( new Frame(), "Instructions" );
+        String[] defInstr = { "Instructions will appear here. ", "" } ;
+        dialog.printInstructions( defInstr );
+        dialog.setVisible(true);
+        println( "Any messages for the tester will display here." );
+    }
+
+
+    public static void printInstructions( String[] instructions )
+    {
+        dialog.printInstructions( instructions );
+    }
+
+
+    public static void println( String messageIn )
+    {
+        dialog.displayMessage( messageIn );
+        System.out.println(messageIn);
+    }
+
+}// Sysout  class
+
+/**
+  This is part of the standard test machinery.  It provides a place for the
+   test instructions to be displayed, and a place for interactive messages
+   to the user to be displayed.
+  To have the test instructions displayed, see Sysout.
+  To have a message to the user be displayed, see Sysout.
+  Do not call anything in this dialog directly.
+  */
+class TestDialog extends Dialog
+{
+
+    TextArea instructionsText;
+    TextArea messageText;
+    int maxStringLength = 80;
+
+    //DO NOT call this directly, go through Sysout
+    public TestDialog( Frame frame, String name )
+    {
+        super( frame, name );
+        int scrollBoth = TextArea.SCROLLBARS_BOTH;
+        instructionsText = new TextArea( "", 15, maxStringLength, scrollBoth );
+        add( "North", instructionsText );
+
+        messageText = new TextArea( "", 5, maxStringLength, scrollBoth );
+        add("Center", messageText);
+
+        pack();
+
+        setVisible(true);
+    }// TestDialog()
+
+    //DO NOT call this directly, go through Sysout
+    public void printInstructions( String[] instructions )
+    {
+        //Clear out any current instructions
+        instructionsText.setText( "" );
+
+        //Go down array of instruction strings
+
+        String printStr, remainingStr;
+        for( int i=0; i < instructions.length; i++ )
+        {
+            //chop up each into pieces maxSringLength long
+            remainingStr = instructions[ i ];
+            while( remainingStr.length() > 0 )
+            {
+                //if longer than max then chop off first max chars to print
+                if( remainingStr.length() >= maxStringLength )
+                {
+                    //Try to chop on a word boundary
+                    int posOfSpace = remainingStr.
+                        lastIndexOf( ' ', maxStringLength - 1 );
+
+                    if( posOfSpace <= 0 ) posOfSpace = maxStringLength - 1;
+
+                    printStr = remainingStr.substring( 0, posOfSpace + 1 );
+                    remainingStr = remainingStr.substring( posOfSpace + 1 );
+                }
+                //else just print
+                else
+                {
+                    printStr = remainingStr;
+                    remainingStr = "";
+                }
+
+                instructionsText.append( printStr + "\n" );
+
+            }// while
+
+        }// for
+
+    }//printInstructions()
+
+    //DO NOT call this directly, go through Sysout
+    public void displayMessage( String messageIn )
+    {
+        messageText.append( messageIn + "\n" );
+        System.out.println(messageIn);
+    }
+
+}// TestDialog  class
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Mixing/JButtonInGlassPane.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,430 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+  @test %W% %E%
+  @bug 6779670
+  @summary Tests if a LW components in the glass pane affects HW in the content pane
+  @author anthony.petrov@...: area=awt.mixing
+  @library ../regtesthelpers
+  @build Util
+  @run main JButtonInGlassPane
+*/
+
+
+/**
+ * JButtonInGlassPane.java
+ *
+ * summary:  Tests whether a LW menu correctly overlaps a HW button
+ */
+
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+import test.java.awt.regtesthelpers.Util;
+
+
+
+public class JButtonInGlassPane
+{
+    static volatile boolean failed = false;
+
+    private static void init()
+    {
+        //*** Create instructions for the user here ***
+
+        String[] instructions =
+        {
+            "This is an AUTOMATIC test, simply wait until it is done.",
+            "The result (passed or failed) will be shown in the",
+            "message window below."
+        };
+        Sysout.createDialog( );
+        Sysout.printInstructions( instructions );
+
+        JFrame frame = new JFrame("Glass Pane children test");
+        frame.setLayout(null);
+
+        final Button button = new Button("AWT Button");
+        button.setBounds(100,100,100,100);
+        frame.add(button);
+
+        button.addActionListener(new ActionListener() {
+            public void actionPerformed(ActionEvent e) {
+                failed = true;
+            }
+        });
+
+        frame.getGlassPane().setVisible(true);
+        Container glassPane = (Container) frame.getGlassPane();
+        glassPane.setLayout(null);
+
+        final JButton jbutton = new JButton("JButton");
+        jbutton.setBounds(50,50,100,100);
+        glassPane.add(jbutton);
+
+        jbutton.setVisible(false);
+
+        frame.setSize(400, 400);
+        frame.setLocationRelativeTo(null);
+        frame.setVisible(true);
+
+        Robot robot = Util.createRobot();
+        robot.setAutoDelay(20);
+
+        Util.waitForIdle(robot);
+
+        jbutton.setVisible(true);
+        Util.waitForIdle(robot);
+
+        // Click the LW button - in the area that intersects with
+        // the HW button.
+        Point lLoc = jbutton.getLocationOnScreen();
+        robot.mouseMove(lLoc.x + jbutton.getWidth() - 5, lLoc.y + jbutton.getHeight() - 5);
+
+        robot.mousePress(InputEvent.BUTTON1_MASK);
+        robot.mouseRelease(InputEvent.BUTTON1_MASK);
+        Util.waitForIdle(robot);
+
+        jbutton.setBounds(50,50,120,120);
+        Util.waitForIdle(robot);
+
+        // Now click on the 'added' area of the LW button that again
+        // intersects with the HW.
+        robot.mouseMove(lLoc.x + jbutton.getWidth() - 5, lLoc.y + jbutton.getHeight() - 5);
+
+        robot.mousePress(InputEvent.BUTTON1_MASK);
+        robot.mouseRelease(InputEvent.BUTTON1_MASK);
+        Util.waitForIdle(robot);
+
+        if (failed) {
+            JButtonInGlassPane.fail("The LW button did not receive the click.");
+        } else {
+            JButtonInGlassPane.pass();
+        }
+    }//End  init()
+
+
+
+    /*****************************************************
+     * Standard Test Machinery Section
+     * DO NOT modify anything in this section -- it's a
+     * standard chunk of code which has all of the
+     * synchronisation necessary for the test harness.
+     * By keeping it the same in all tests, it is easier
+     * to read and understand someone else's test, as
+     * well as insuring that all tests behave correctly
+     * with the test harness.
+     * There is a section following this for test-
+     * classes
+     ******************************************************/
+    private static boolean theTestPassed = false;
+    private static boolean testGeneratedInterrupt = false;
+    private static String failureMessage = "";
+
+    private static Thread mainThread = null;
+
+    private static int sleepTime = 300000;
+
+    // Not sure about what happens if multiple of this test are
+    //  instantiated in the same VM.  Being static (and using
+    //  static vars), it aint gonna work.  Not worrying about
+    //  it for now.
+    public static void main( String args[] ) throws InterruptedException
+    {
+        mainThread = Thread.currentThread();
+        try
+        {
+            init();
+        }
+        catch( TestPassedException e )
+        {
+            //The test passed, so just return from main and harness will
+            // interepret this return as a pass
+            return;
+        }
+        //At this point, neither test pass nor test fail has been
+        // called -- either would have thrown an exception and ended the
+        // test, so we know we have multiple threads.
+
+        //Test involves other threads, so sleep and wait for them to
+        // called pass() or fail()
+        try
+        {
+            Thread.sleep( sleepTime );
+            //Timed out, so fail the test
+            throw new RuntimeException( "Timed out after " + sleepTime/1000 + " seconds" );
+        }
+        catch (InterruptedException e)
+        {
+            //The test harness may have interrupted the test.  If so, rethrow the exception
+            // so that the harness gets it and deals with it.
+            if( ! testGeneratedInterrupt ) throw e;
+
+            //reset flag in case hit this code more than once for some reason (just safety)
+            testGeneratedInterrupt = false;
+
+            if ( theTestPassed == false )
+            {
+                throw new RuntimeException( failureMessage );
+            }
+        }
+
+    }//main
+
+    public static synchronized void setTimeoutTo( int seconds )
+    {
+        sleepTime = seconds * 1000;
+    }
+
+    public static synchronized void pass()
+    {
+        Sysout.println( "The test passed." );
+        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
+        //first check if this is executing in main thread
+        if ( mainThread == Thread.currentThread() )
+        {
+            //Still in the main thread, so set the flag just for kicks,
+            // and throw a test passed exception which will be caught
+            // and end the test.
+            theTestPassed = true;
+            throw new TestPassedException();
+        }
+        theTestPassed = true;
+        testGeneratedInterrupt = true;
+        mainThread.interrupt();
+    }//pass()
+
+    public static synchronized void fail()
+    {
+        //test writer didn't specify why test failed, so give generic
+        fail( "it just plain failed! :-)" );
+    }
+
+    public static synchronized void fail( String whyFailed )
+    {
+        Sysout.println( "The test failed: " + whyFailed );
+        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
+        //check if this called from main thread
+        if ( mainThread == Thread.currentThread() )
+        {
+            //If main thread, fail now 'cause not sleeping
+            throw new RuntimeException( whyFailed );
+        }
+        theTestPassed = false;
+        testGeneratedInterrupt = true;
+        failureMessage = whyFailed;
+        mainThread.interrupt();
+    }//fail()
+
+}// class JButtonInGlassPane
+
+//This exception is used to exit from any level of call nesting
+// when it's determined that the test has passed, and immediately
+// end the test.
+class TestPassedException extends RuntimeException
+{
+}
+
+//*********** End Standard Test Machinery Section **********
+
+
+//************ Begin classes defined for the test ****************
+
+// if want to make listeners, here is the recommended place for them, then instantiate
+//  them in init()
+
+/* Example of a class which may be written as part of a test
+class NewClass implements anInterface
+ {
+   static int newVar = 0;
+
+   public void eventDispatched(AWTEvent e)
+    {
+      //Counting events to see if we get enough
+      eventCount++;
+
+      if( eventCount == 20 )
+       {
+         //got enough events, so pass
+
+         JButtonInGlassPane.pass();
+       }
+      else if( tries == 20 )
+       {
+         //tried too many times without getting enough events so fail
+
+         JButtonInGlassPane.fail();
+       }
+
+    }// eventDispatched()
+
+ }// NewClass class
+
+*/
+
+
+//************** End classes defined for the test *******************
+
+
+
+
+/****************************************************
+ Standard Test Machinery
+ DO NOT modify anything below -- it's a standard
+  chunk of code whose purpose is to make user
+  interaction uniform, and thereby make it simpler
+  to read and understand someone else's test.
+ ****************************************************/
+
+/**
+ This is part of the standard test machinery.
+ It creates a dialog (with the instructions), and is the interface
+  for sending text messages to the user.
+ To print the instructions, send an array of strings to Sysout.createDialog
+  WithInstructions method.  Put one line of instructions per array entry.
+ To display a message for the tester to see, simply call Sysout.println
+  with the string to be displayed.
+ This mimics System.out.println but works within the test harness as well
+  as standalone.
+ */
+
+class Sysout
+{
+    private static TestDialog dialog;
+
+    public static void createDialogWithInstructions( String[] instructions )
+    {
+        dialog = new TestDialog( new Frame(), "Instructions" );
+        dialog.printInstructions( instructions );
+        dialog.setVisible(true);
+        println( "Any messages for the tester will display here." );
+    }
+
+    public static void createDialog( )
+    {
+        dialog = new TestDialog( new Frame(), "Instructions" );
+        String[] defInstr = { "Instructions will appear here. ", "" } ;
+        dialog.printInstructions( defInstr );
+        dialog.setVisible(true);
+        println( "Any messages for the tester will display here." );
+    }
+
+
+    public static void printInstructions( String[] instructions )
+    {
+        dialog.printInstructions( instructions );
+    }
+
+
+    public static void println( String messageIn )
+    {
+        dialog.displayMessage( messageIn );
+        System.out.println(messageIn);
+    }
+
+}// Sysout  class
+
+/**
+  This is part of the standard test machinery.  It provides a place for the
+   test instructions to be displayed, and a place for interactive messages
+   to the user to be displayed.
+  To have the test instructions displayed, see Sysout.
+  To have a message to the user be displayed, see Sysout.
+  Do not call anything in this dialog directly.
+  */
+class TestDialog extends Dialog
+{
+
+    TextArea instructionsText;
+    TextArea messageText;
+    int maxStringLength = 80;
+
+    //DO NOT call this directly, go through Sysout
+    public TestDialog( Frame frame, String name )
+    {
+        super( frame, name );
+        int scrollBoth = TextArea.SCROLLBARS_BOTH;
+        instructionsText = new TextArea( "", 15, maxStringLength, scrollBoth );
+        add( "North", instructionsText );
+
+        messageText = new TextArea( "", 5, maxStringLength, scrollBoth );
+        add("Center", messageText);
+
+        pack();
+
+        setVisible(true);
+    }// TestDialog()
+
+    //DO NOT call this directly, go through Sysout
+    public void printInstructions( String[] instructions )
+    {
+        //Clear out any current instructions
+        instructionsText.setText( "" );
+
+        //Go down array of instruction strings
+
+        String printStr, remainingStr;
+        for( int i=0; i < instructions.length; i++ )
+        {
+            //chop up each into pieces maxSringLength long
+            remainingStr = instructions[ i ];
+            while( remainingStr.length() > 0 )
+            {
+                //if longer than max then chop off first max chars to print
+                if( remainingStr.length() >= maxStringLength )
+                {
+                    //Try to chop on a word boundary
+                    int posOfSpace = remainingStr.
+                        lastIndexOf( ' ', maxStringLength - 1 );
+
+                    if( posOfSpace <= 0 ) posOfSpace = maxStringLength - 1;
+
+                    printStr = remainingStr.substring( 0, posOfSpace + 1 );
+                    remainingStr = remainingStr.substring( posOfSpace + 1 );
+                }
+                //else just print
+                else
+                {
+                    printStr = remainingStr;
+                    remainingStr = "";
+                }
+
+                instructionsText.append( printStr + "\n" );
+
+            }// while
+
+        }// for
+
+    }//printInstructions()
+
+    //DO NOT call this directly, go through Sysout
+    public void displayMessage( String messageIn )
+    {
+        messageText.append( messageIn + "\n" );
+        System.out.println(messageIn);
+    }
+
+}// TestDialog  class
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Mixing/LWComboBox.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,425 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+  @test %W% %E%
+  @bug 6637655
+  @summary Tests whether a LW combobox correctly overlaps a HW button
+  @author anthony.petrov@...: area=awt.mixing
+  @library ../regtesthelpers
+  @build Util
+  @run main LWComboBox
+*/
+
+
+/**
+ * LWComboBox.java
+ *
+ * summary:  Tests whether a LW combobox correctly overlaps a HW button
+ */
+
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+import java.util.Vector;
+import test.java.awt.regtesthelpers.Util;
+
+
+
+public class LWComboBox
+{
+    static volatile boolean failed = false;
+
+    private static void init()
+    {
+        //*** Create instructions for the user here ***
+
+        String[] instructions =
+        {
+            "This is an AUTOMATIC test, simply wait until it is done.",
+            "The result (passed or failed) will be shown in the",
+            "message window below."
+        };
+        Sysout.createDialog( );
+        Sysout.printInstructions( instructions );
+
+        JFrame f = new JFrame("LW menu test");
+
+        JComboBox ch;
+        Button b;
+
+        Vector v = new Vector();
+        for(int i = 1 ; i <=20;i++){
+            v.add("Item # "+i);
+        }
+        ch = new JComboBox(v);
+
+
+        b = new Button("AWT Button");
+        b.addActionListener(new ActionListener() {
+            public void actionPerformed(ActionEvent e) {
+                failed = true;
+            }
+        });
+
+        f.add(ch,BorderLayout.NORTH);
+        f.add(b,BorderLayout.CENTER);
+        f.setSize(300,300);
+        f.setVisible(true);
+
+        Robot robot = Util.createRobot();
+        robot.setAutoDelay(20);
+
+        Util.waitForIdle(robot);
+
+        // Pop up the combobox
+        Point lLoc = ch.getLocationOnScreen();
+        System.err.println("lLoc: " + lLoc);
+        robot.mouseMove(lLoc.x + 5, lLoc.y + 5);
+
+        robot.mousePress(InputEvent.BUTTON1_MASK);
+        robot.mouseRelease(InputEvent.BUTTON1_MASK);
+        Util.waitForIdle(robot);
+
+        // Click on the combo popup.
+        //    It's assumed that the popup item is located
+        //    above the heavyweight button.
+        Point bLoc = b.getLocationOnScreen();
+        System.err.println("bLoc: " + bLoc);
+        robot.mouseMove(bLoc.x + 10, bLoc.y + 10);
+
+        robot.mousePress(InputEvent.BUTTON1_MASK);
+        robot.mouseRelease(InputEvent.BUTTON1_MASK);
+        Util.waitForIdle(robot);
+
+        if (failed) {
+            fail("The LW popup did not received the click.");
+        } else {
+            pass();
+        }
+    }//End  init()
+
+
+
+    /*****************************************************
+     * Standard Test Machinery Section
+     * DO NOT modify anything in this section -- it's a
+     * standard chunk of code which has all of the
+     * synchronisation necessary for the test harness.
+     * By keeping it the same in all tests, it is easier
+     * to read and understand someone else's test, as
+     * well as insuring that all tests behave correctly
+     * with the test harness.
+     * There is a section following this for test-
+     * classes
+     ******************************************************/
+    private static boolean theTestPassed = false;
+    private static boolean testGeneratedInterrupt = false;
+    private static String failureMessage = "";
+
+    private static Thread mainThread = null;
+
+    private static int sleepTime = 300000;
+
+    // Not sure about what happens if multiple of this test are
+    //  instantiated in the same VM.  Being static (and using
+    //  static vars), it aint gonna work.  Not worrying about
+    //  it for now.
+    public static void main( String args[] ) throws InterruptedException
+    {
+        mainThread = Thread.currentThread();
+        try
+        {
+            init();
+        }
+        catch( TestPassedException e )
+        {
+            //The test passed, so just return from main and harness will
+            // interepret this return as a pass
+            return;
+        }
+        //At this point, neither test pass nor test fail has been
+        // called -- either would have thrown an exception and ended the
+        // test, so we know we have multiple threads.
+
+        //Test involves other threads, so sleep and wait for them to
+        // called pass() or fail()
+        try
+        {
+            Thread.sleep( sleepTime );
+            //Timed out, so fail the test
+            throw new RuntimeException( "Timed out after " + sleepTime/1000 + " seconds" );
+        }
+        catch (InterruptedException e)
+        {
+            //The test harness may have interrupted the test.  If so, rethrow the exception
+            // so that the harness gets it and deals with it.
+            if( ! testGeneratedInterrupt ) throw e;
+
+            //reset flag in case hit this code more than once for some reason (just safety)
+            testGeneratedInterrupt = false;
+
+            if ( theTestPassed == false )
+            {
+                throw new RuntimeException( failureMessage );
+            }
+        }
+
+    }//main
+
+    public static synchronized void setTimeoutTo( int seconds )
+    {
+        sleepTime = seconds * 1000;
+    }
+
+    public static synchronized void pass()
+    {
+        Sysout.println( "The test passed." );
+        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
+        //first check if this is executing in main thread
+        if ( mainThread == Thread.currentThread() )
+        {
+            //Still in the main thread, so set the flag just for kicks,
+            // and throw a test passed exception which will be caught
+            // and end the test.
+            theTestPassed = true;
+            throw new TestPassedException();
+        }
+        theTestPassed = true;
+        testGeneratedInterrupt = true;
+        mainThread.interrupt();
+    }//pass()
+
+    public static synchronized void fail()
+    {
+        //test writer didn't specify why test failed, so give generic
+        fail( "it just plain failed! :-)" );
+    }
+
+    public static synchronized void fail( String whyFailed )
+    {
+        Sysout.println( "The test failed: " + whyFailed );
+        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
+        //check if this called from main thread
+        if ( mainThread == Thread.currentThread() )
+        {
+            //If main thread, fail now 'cause not sleeping
+            throw new RuntimeException( whyFailed );
+        }
+        theTestPassed = false;
+        testGeneratedInterrupt = true;
+        failureMessage = whyFailed;
+        mainThread.interrupt();
+    }//fail()
+
+}// class LWComboBox
+
+//This exception is used to exit from any level of call nesting
+// when it's determined that the test has passed, and immediately
+// end the test.
+class TestPassedException extends RuntimeException
+{
+}
+
+//*********** End Standard Test Machinery Section **********
+
+
+//************ Begin classes defined for the test ****************
+
+// if want to make listeners, here is the recommended place for them, then instantiate
+//  them in init()
+
+/* Example of a class which may be written as part of a test
+class NewClass implements anInterface
+ {
+   static int newVar = 0;
+
+   public void eventDispatched(AWTEvent e)
+    {
+      //Counting events to see if we get enough
+      eventCount++;
+
+      if( eventCount == 20 )
+       {
+         //got enough events, so pass
+
+         LWComboBox.pass();
+       }
+      else if( tries == 20 )
+       {
+         //tried too many times without getting enough events so fail
+
+         LWComboBox.fail();
+       }
+
+    }// eventDispatched()
+
+ }// NewClass class
+
+*/
+
+
+//************** End classes defined for the test *******************
+
+
+
+
+/****************************************************
+ Standard Test Machinery
+ DO NOT modify anything below -- it's a standard
+  chunk of code whose purpose is to make user
+  interaction uniform, and thereby make it simpler
+  to read and understand someone else's test.
+ ****************************************************/
+
+/**
+ This is part of the standard test machinery.
+ It creates a dialog (with the instructions), and is the interface
+  for sending text messages to the user.
+ To print the instructions, send an array of strings to Sysout.createDialog
+  WithInstructions method.  Put one line of instructions per array entry.
+ To display a message for the tester to see, simply call Sysout.println
+  with the string to be displayed.
+ This mimics System.out.println but works within the test harness as well
+  as standalone.
+ */
+
+class Sysout
+{
+    private static TestDialog dialog;
+
+    public static void createDialogWithInstructions( String[] instructions )
+    {
+        dialog = new TestDialog( new Frame(), "Instructions" );
+        dialog.printInstructions( instructions );
+        dialog.setVisible(true);
+        println( "Any messages for the tester will display here." );
+    }
+
+    public static void createDialog( )
+    {
+        dialog = new TestDialog( new Frame(), "Instructions" );
+        String[] defInstr = { "Instructions will appear here. ", "" } ;
+        dialog.printInstructions( defInstr );
+        dialog.setVisible(true);
+        println( "Any messages for the tester will display here." );
+    }
+
+
+    public static void printInstructions( String[] instructions )
+    {
+        dialog.printInstructions( instructions );
+    }
+
+
+    public static void println( String messageIn )
+    {
+        dialog.displayMessage( messageIn );
+        System.out.println(messageIn);
+    }
+
+}// Sysout  class
+
+/**
+  This is part of the standard test machinery.  It provides a place for the
+   test instructions to be displayed, and a place for interactive messages
+   to the user to be displayed.
+  To have the test instructions displayed, see Sysout.
+  To have a message to the user be displayed, see Sysout.
+  Do not call anything in this dialog directly.
+  */
+class TestDialog extends Dialog
+{
+
+    TextArea instructionsText;
+    TextArea messageText;
+    int maxStringLength = 80;
+
+    //DO NOT call this directly, go through Sysout
+    public TestDialog( Frame frame, String name )
+    {
+        super( frame, name );
+        int scrollBoth = TextArea.SCROLLBARS_BOTH;
+        instructionsText = new TextArea( "", 15, maxStringLength, scrollBoth );
+        add( "North", instructionsText );
+
+        messageText = new TextArea( "", 5, maxStringLength, scrollBoth );
+        add("Center", messageText);
+
+        pack();
+
+        setVisible(true);
+    }// TestDialog()
+
+    //DO NOT call this directly, go through Sysout
+    public void printInstructions( String[] instructions )
+    {
+        //Clear out any current instructions
+        instructionsText.setText( "" );
+
+        //Go down array of instruction strings
+
+        String printStr, remainingStr;
+        for( int i=0; i < instructions.length; i++ )
+        {
+            //chop up each into pieces maxSringLength long
+            remainingStr = instructions[ i ];
+            while( remainingStr.length() > 0 )
+            {
+                //if longer than max then chop off first max chars to print
+                if( remainingStr.length() >= maxStringLength )
+                {
+                    //Try to chop on a word boundary
+                    int posOfSpace = remainingStr.
+                        lastIndexOf( ' ', maxStringLength - 1 );
+
+                    if( posOfSpace <= 0 ) posOfSpace = maxStringLength - 1;
+
+                    printStr = remainingStr.substring( 0, posOfSpace + 1 );
+                    remainingStr = remainingStr.substring( posOfSpace + 1 );
+                }
+                //else just print
+                else
+                {
+                    printStr = remainingStr;
+                    remainingStr = "";
+                }
+
+                instructionsText.append( printStr + "\n" );
+
+            }// while
+
+        }// for
+
+    }//printInstructions()
+
+    //DO NOT call this directly, go through Sysout
+    public void displayMessage( String messageIn )
+    {
+        messageText.append( messageIn + "\n" );
+        System.out.println(messageIn);
+    }
+
+}// TestDialog  class
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Mixing/MixingOnShrinkingHWButton.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,429 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+  @test %W% %E%
+  @bug 6777320
+  @summary PIT : Canvas is not fully painted on the internal frame & internal frame goes behind the canvas
+  @author dmitry.cherepanov@...: area=awt.mixing
+  @library ../regtesthelpers
+  @build Util
+  @run main MixingOnShrinkingHWButton
+*/
+
+
+/**
+ * MixingOnDialog.java
+ *
+ * summary:  Tests whether awt.Button and swing.JButton mix correctly
+ *           when awt.Button's width got shrinked
+ */
+
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+import test.java.awt.regtesthelpers.Util;
+
+
+
+public class MixingOnShrinkingHWButton
+{
+    static volatile boolean heavyClicked = false;
+    static volatile boolean lightClicked = false;
+
+    private static void init()
+    {
+        //*** Create instructions for the user here ***
+
+        String[] instructions =
+        {
+            "This is an AUTOMATIC test, simply wait until it is done.",
+            "The result (passed or failed) will be shown in the",
+            "message window below."
+        };
+        Sysout.createDialog( );
+        Sysout.printInstructions( instructions );
+
+
+        // Create components
+        final Dialog d = new Dialog((Frame)null, "Button-JButton mix test");
+        final Button heavy = new Button("  Heavyweight Button  ");
+        final JButton light = new JButton("  LW Button  ");
+
+        // Actions for the buttons add appropriate number to the test sequence
+        heavy.addActionListener(new java.awt.event.ActionListener()
+                {
+                    public void actionPerformed(java.awt.event.ActionEvent e) {
+                        heavyClicked = true;
+                    }
+                }
+                );
+
+        light.addActionListener(new java.awt.event.ActionListener()
+                {
+                    public void actionPerformed(java.awt.event.ActionEvent e) {
+                        lightClicked = true;
+                    }
+                }
+                );
+
+        // Shrink the HW button under LW button
+        heavy.setBounds(30, 30, 100, 100);
+        light.setBounds(40, 30, 100, 100);
+
+        // Put the components into the frame
+        d.setLayout(null);
+        d.add(light);
+        d.add(heavy);
+        d.setBounds(50, 50, 400, 400);
+        d.setVisible(true);
+
+
+        Robot robot = Util.createRobot();
+        robot.setAutoDelay(20);
+
+        Util.waitForIdle(robot);
+
+        // Move the mouse pointer to the position where both
+        //    buttons overlap
+        Point heavyLoc = heavy.getLocationOnScreen();
+        robot.mouseMove(heavyLoc.x + 20, heavyLoc.y + 20);
+
+        // Now perform the click at this point
+        robot.mousePress(InputEvent.BUTTON1_MASK);
+        robot.mouseRelease(InputEvent.BUTTON1_MASK);
+        Util.waitForIdle(robot);
+
+        // If the buttons are correctly mixed, the test sequence
+        // is equal to the check sequence.
+        if (lightClicked == true) {
+            MixingOnShrinkingHWButton.pass();
+        } else {
+            MixingOnShrinkingHWButton.fail("The lightweight component left behind the heavyweight one.");
+        }
+    }//End  init()
+
+
+
+    /*****************************************************
+     * Standard Test Machinery Section
+     * DO NOT modify anything in this section -- it's a
+     * standard chunk of code which has all of the
+     * synchronisation necessary for the test harness.
+     * By keeping it the same in all tests, it is easier
+     * to read and understand someone else's test, as
+     * well as insuring that all tests behave correctly
+     * with the test harness.
+     * There is a section following this for test-
+     * classes
+     ******************************************************/
+    private static boolean theTestPassed = false;
+    private static boolean testGeneratedInterrupt = false;
+    private static String failureMessage = "";
+
+    private static Thread mainThread = null;
+
+    private static int sleepTime = 300000;
+
+    // Not sure about what happens if multiple of this test are
+    //  instantiated in the same VM.  Being static (and using
+    //  static vars), it aint gonna work.  Not worrying about
+    //  it for now.
+    public static void main( String args[] ) throws InterruptedException
+    {
+        mainThread = Thread.currentThread();
+        try
+        {
+            init();
+        }
+        catch( TestPassedException e )
+        {
+            //The test passed, so just return from main and harness will
+            // interepret this return as a pass
+            return;
+        }
+        //At this point, neither test pass nor test fail has been
+        // called -- either would have thrown an exception and ended the
+        // test, so we know we have multiple threads.
+
+        //Test involves other threads, so sleep and wait for them to
+        // called pass() or fail()
+        try
+        {
+            Thread.sleep( sleepTime );
+            //Timed out, so fail the test
+            throw new RuntimeException( "Timed out after " + sleepTime/1000 + " seconds" );
+        }
+        catch (InterruptedException e)
+        {
+            //The test harness may have interrupted the test.  If so, rethrow the exception
+            // so that the harness gets it and deals with it.
+            if( ! testGeneratedInterrupt ) throw e;
+
+            //reset flag in case hit this code more than once for some reason (just safety)
+            testGeneratedInterrupt = false;
+
+            if ( theTestPassed == false )
+            {
+                throw new RuntimeException( failureMessage );
+            }
+        }
+
+    }//main
+
+    public static synchronized void setTimeoutTo( int seconds )
+    {
+        sleepTime = seconds * 1000;
+    }
+
+    public static synchronized void pass()
+    {
+        Sysout.println( "The test passed." );
+        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
+        //first check if this is executing in main thread
+        if ( mainThread == Thread.currentThread() )
+        {
+            //Still in the main thread, so set the flag just for kicks,
+            // and throw a test passed exception which will be caught
+            // and end the test.
+            theTestPassed = true;
+            throw new TestPassedException();
+        }
+        theTestPassed = true;
+        testGeneratedInterrupt = true;
+        mainThread.interrupt();
+    }//pass()
+
+    public static synchronized void fail()
+    {
+        //test writer didn't specify why test failed, so give generic
+        fail( "it just plain failed! :-)" );
+    }
+
+    public static synchronized void fail( String whyFailed )
+    {
+        Sysout.println( "The test failed: " + whyFailed );
+        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
+        //check if this called from main thread
+        if ( mainThread == Thread.currentThread() )
+        {
+            //If main thread, fail now 'cause not sleeping
+            throw new RuntimeException( whyFailed );
+        }
+        theTestPassed = false;
+        testGeneratedInterrupt = true;
+        failureMessage = whyFailed;
+        mainThread.interrupt();
+    }//fail()
+
+}// class MixingOnDialog
+
+//This exception is used to exit from any level of call nesting
+// when it's determined that the test has passed, and immediately
+// end the test.
+class TestPassedException extends RuntimeException
+{
+}
+
+//*********** End Standard Test Machinery Section **********
+
+
+//************ Begin classes defined for the test ****************
+
+// if want to make listeners, here is the recommended place for them, then instantiate
+//  them in init()
+
+/* Example of a class which may be written as part of a test
+class NewClass implements anInterface
+ {
+   static int newVar = 0;
+
+   public void eventDispatched(AWTEvent e)
+    {
+      //Counting events to see if we get enough
+      eventCount++;
+
+      if( eventCount == 20 )
+       {
+         //got enough events, so pass
+
+         MixingOnDialog.pass();
+       }
+      else if( tries == 20 )
+       {
+         //tried too many times without getting enough events so fail
+
+         MixingOnDialog.fail();
+       }
+
+    }// eventDispatched()
+
+ }// NewClass class
+
+*/
+
+
+//************** End classes defined for the test *******************
+
+
+
+
+/****************************************************
+ Standard Test Machinery
+ DO NOT modify anything below -- it's a standard
+  chunk of code whose purpose is to make user
+  interaction uniform, and thereby make it simpler
+  to read and understand someone else's test.
+ ****************************************************/
+
+/**
+ This is part of the standard test machinery.
+ It creates a dialog (with the instructions), and is the interface
+  for sending text messages to the user.
+ To print the instructions, send an array of strings to Sysout.createDialog
+  WithInstructions method.  Put one line of instructions per array entry.
+ To display a message for the tester to see, simply call Sysout.println
+  with the string to be displayed.
+ This mimics System.out.println but works within the test harness as well
+  as standalone.
+ */
+
+class Sysout
+{
+    private static TestDialog dialog;
+
+    public static void createDialogWithInstructions( String[] instructions )
+    {
+        dialog = new TestDialog( new Frame(), "Instructions" );
+        dialog.printInstructions( instructions );
+        dialog.setVisible(true);
+        println( "Any messages for the tester will display here." );
+    }
+
+    public static void createDialog( )
+    {
+        dialog = new TestDialog( new Frame(), "Instructions" );
+        String[] defInstr = { "Instructions will appear here. ", "" } ;
+        dialog.printInstructions( defInstr );
+        dialog.setVisible(true);
+        println( "Any messages for the tester will display here." );
+    }
+
+
+    public static void printInstructions( String[] instructions )
+    {
+        dialog.printInstructions( instructions );
+    }
+
+
+    public static void println( String messageIn )
+    {
+        dialog.displayMessage( messageIn );
+        System.out.println(messageIn);
+    }
+
+}// Sysout  class
+
+/**
+  This is part of the standard test machinery.  It provides a place for the
+   test instructions to be displayed, and a place for interactive messages
+   to the user to be displayed.
+  To have the test instructions displayed, see Sysout.
+  To have a message to the user be displayed, see Sysout.
+  Do not call anything in this dialog directly.
+  */
+class TestDialog extends Dialog
+{
+
+    TextArea instructionsText;
+    TextArea messageText;
+    int maxStringLength = 80;
+
+    //DO NOT call this directly, go through Sysout
+    public TestDialog( Frame frame, String name )
+    {
+        super( frame, name );
+        int scrollBoth = TextArea.SCROLLBARS_BOTH;
+        instructionsText = new TextArea( "", 15, maxStringLength, scrollBoth );
+        add( "North", instructionsText );
+
+        messageText = new TextArea( "", 5, maxStringLength, scrollBoth );
+        add("Center", messageText);
+
+        pack();
+
+        setVisible(true);
+    }// TestDialog()
+
+    //DO NOT call this directly, go through Sysout
+    public void printInstructions( String[] instructions )
+    {
+        //Clear out any current instructions
+        instructionsText.setText( "" );
+
+        //Go down array of instruction strings
+
+        String printStr, remainingStr;
+        for( int i=0; i < instructions.length; i++ )
+        {
+            //chop up each into pieces maxSringLength long
+            remainingStr = instructions[ i ];
+            while( remainingStr.length() > 0 )
+            {
+                //if longer than max then chop off first max chars to print
+                if( remainingStr.length() >= maxStringLength )
+                {
+                    //Try to chop on a word boundary
+                    int posOfSpace = remainingStr.
+                        lastIndexOf( ' ', maxStringLength - 1 );
+
+                    if( posOfSpace <= 0 ) posOfSpace = maxStringLength - 1;
+
+                    printStr = remainingStr.substring( 0, posOfSpace + 1 );
+                    remainingStr = remainingStr.substring( posOfSpace + 1 );
+                }
+                //else just print
+                else
+                {
+                    printStr = remainingStr;
+                    remainingStr = "";
+                }
+
+                instructionsText.append( printStr + "\n" );
+
+            }// while
+
+        }// for
+
+    }//printInstructions()
+
+    //DO NOT call this directly, go through Sysout
+    public void displayMessage( String messageIn )
+    {
+        messageText.append( messageIn + "\n" );
+        System.out.println(messageIn);
+    }
+
+}// TestDialog  class
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Mixing/NonOpaqueInternalFrame.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,434 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+  @test %W% %E%
+  @bug 6768332
+  @summary Tests whether internal frames are always considered opaque
+  @author anthony.petrov@...: area=awt.mixing
+  @library ../regtesthelpers
+  @build Util
+  @run main NonOpaqueInternalFrame
+*/
+
+
+/**
+ * NonOpaqueInternalFrame.java
+ *
+ * summary:  Tests whether internal frames are always considered opaque
+ */
+
+import java.awt.*;
+import java.awt.event.*;
+import java.beans.PropertyVetoException;
+import javax.swing.*;
+import java.util.Vector;
+import test.java.awt.regtesthelpers.Util;
+
+
+
+public class NonOpaqueInternalFrame
+{
+    static volatile boolean failed = false;
+
+    private static final class MyButton extends Button
+            implements ActionListener
+        {
+            public MyButton() {
+                setPreferredSize(new Dimension(100, 100));
+                addActionListener(this);
+            }
+
+            public void actionPerformed(ActionEvent e) {
+                failed = true;
+            }
+        }
+
+    private static void init()
+    {
+        String[] instructions =
+        {
+            "This is an AUTOMATIC test, simply wait until it is done.",
+            "The result (passed or failed) will be shown in the",
+            "message window below."
+        };
+        Sysout.createDialog( );
+        Sysout.printInstructions( instructions );
+
+
+        // Create a frame with two non-opaque JInternalFrame's containing
+        // heavyweight buttons.
+        JFrame jframe = new JFrame("mixing test");
+        JDesktopPane desktop = new JDesktopPane();
+        jframe.setContentPane(desktop);
+        JInternalFrame iframe1 = new JInternalFrame("iframe 1");
+        iframe1.setIconifiable(true);
+        iframe1.add(new MyButton());
+        iframe1.setBounds(10, 10, 100, 100);
+        iframe1.setOpaque(false);
+        iframe1.setVisible(true);
+        desktop.add(iframe1);
+        JInternalFrame iframe2 = new JInternalFrame("iframe 2");
+        iframe2.setIconifiable(true);
+        iframe2.add(new MyButton());
+        iframe2.setBounds(50, 50, 100, 100);
+        iframe2.setOpaque(false);
+        iframe2.setVisible(true);
+        desktop.add(iframe2);
+        jframe.setSize(300, 300);
+        jframe.setVisible(true);
+
+        Robot robot = Util.createRobot();
+        robot.setAutoDelay(20);
+
+        Util.waitForIdle(robot);
+
+        // Try selecting the bottommost frame
+        try {
+            iframe2.setSelected(true);
+        } catch (PropertyVetoException ex) {
+            ex.printStackTrace();
+        }
+
+        // Click the title bar of the internal frame
+        Point lLoc = iframe2.getLocationOnScreen();
+        System.err.println("lLoc: " + lLoc);
+        robot.mouseMove(lLoc.x + 10, lLoc.y + 10);
+        Util.waitForIdle(robot);
+
+        robot.mousePress(InputEvent.BUTTON1_MASK);
+        robot.mouseRelease(InputEvent.BUTTON1_MASK);
+        Util.waitForIdle(robot);
+
+
+        if (failed) {
+            fail("The JInternalFrame is considered non-opaque.");
+        } else {
+            pass();
+        }
+    }//End  init()
+
+
+
+    /*****************************************************
+     * Standard Test Machinery Section
+     * DO NOT modify anything in this section -- it's a
+     * standard chunk of code which has all of the
+     * synchronisation necessary for the test harness.
+     * By keeping it the same in all tests, it is easier
+     * to read and understand someone else's test, as
+     * well as insuring that all tests behave correctly
+     * with the test harness.
+     * There is a section following this for test-
+     * classes
+     ******************************************************/
+    private static boolean theTestPassed = false;
+    private static boolean testGeneratedInterrupt = false;
+    private static String failureMessage = "";
+
+    private static Thread mainThread = null;
+
+    private static int sleepTime = 300000;
+
+    // Not sure about what happens if multiple of this test are
+    //  instantiated in the same VM.  Being static (and using
+    //  static vars), it aint gonna work.  Not worrying about
+    //  it for now.
+    public static void main( String args[] ) throws InterruptedException
+    {
+        mainThread = Thread.currentThread();
+        try
+        {
+            init();
+        }
+        catch( TestPassedException e )
+        {
+            //The test passed, so just return from main and harness will
+            // interepret this return as a pass
+            return;
+        }
+        //At this point, neither test pass nor test fail has been
+        // called -- either would have thrown an exception and ended the
+        // test, so we know we have multiple threads.
+
+        //Test involves other threads, so sleep and wait for them to
+        // called pass() or fail()
+        try
+        {
+            Thread.sleep( sleepTime );
+            //Timed out, so fail the test
+            throw new RuntimeException( "Timed out after " + sleepTime/1000 + " seconds" );
+        }
+        catch (InterruptedException e)
+        {
+            //The test harness may have interrupted the test.  If so, rethrow the exception
+            // so that the harness gets it and deals with it.
+            if( ! testGeneratedInterrupt ) throw e;
+
+            //reset flag in case hit this code more than once for some reason (just safety)
+            testGeneratedInterrupt = false;
+
+            if ( theTestPassed == false )
+            {
+                throw new RuntimeException( failureMessage );
+            }
+        }
+
+    }//main
+
+    public static synchronized void setTimeoutTo( int seconds )
+    {
+        sleepTime = seconds * 1000;
+    }
+
+    public static synchronized void pass()
+    {
+        Sysout.println( "The test passed." );
+        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
+        //first check if this is executing in main thread
+        if ( mainThread == Thread.currentThread() )
+        {
+            //Still in the main thread, so set the flag just for kicks,
+            // and throw a test passed exception which will be caught
+            // and end the test.
+            theTestPassed = true;
+            throw new TestPassedException();
+        }
+        theTestPassed = true;
+        testGeneratedInterrupt = true;
+        mainThread.interrupt();
+    }//pass()
+
+    public static synchronized void fail()
+    {
+        //test writer didn't specify why test failed, so give generic
+        fail( "it just plain failed! :-)" );
+    }
+
+    public static synchronized void fail( String whyFailed )
+    {
+        Sysout.println( "The test failed: " + whyFailed );
+        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
+        //check if this called from main thread
+        if ( mainThread == Thread.currentThread() )
+        {
+            //If main thread, fail now 'cause not sleeping
+            throw new RuntimeException( whyFailed );
+        }
+        theTestPassed = false;
+        testGeneratedInterrupt = true;
+        failureMessage = whyFailed;
+        mainThread.interrupt();
+    }//fail()
+
+}// class NonOpaqueInternalFrame
+
+//This exception is used to exit from any level of call nesting
+// when it's determined that the test has passed, and immediately
+// end the test.
+class TestPassedException extends RuntimeException
+{
+}
+
+//*********** End Standard Test Machinery Section **********
+
+
+//************ Begin classes defined for the test ****************
+
+// if want to make listeners, here is the recommended place for them, then instantiate
+//  them in init()
+
+/* Example of a class which may be written as part of a test
+class NewClass implements anInterface
+ {
+   static int newVar = 0;
+
+   public void eventDispatched(AWTEvent e)
+    {
+      //Counting events to see if we get enough
+      eventCount++;
+
+      if( eventCount == 20 )
+       {
+         //got enough events, so pass
+
+         NonOpaqueInternalFrame.pass();
+       }
+      else if( tries == 20 )
+       {
+         //tried too many times without getting enough events so fail
+
+         NonOpaqueInternalFrame.fail();
+       }
+
+    }// eventDispatched()
+
+ }// NewClass class
+
+*/
+
+
+//************** End classes defined for the test *******************
+
+
+
+
+/****************************************************
+ Standard Test Machinery
+ DO NOT modify anything below -- it's a standard
+  chunk of code whose purpose is to make user
+  interaction uniform, and thereby make it simpler
+  to read and understand someone else's test.
+ ****************************************************/
+
+/**
+ This is part of the standard test machinery.
+ It creates a dialog (with the instructions), and is the interface
+  for sending text messages to the user.
+ To print the instructions, send an array of strings to Sysout.createDialog
+  WithInstructions method.  Put one line of instructions per array entry.
+ To display a message for the tester to see, simply call Sysout.println
+  with the string to be displayed.
+ This mimics System.out.println but works within the test harness as well
+  as standalone.
+ */
+
+class Sysout
+{
+    private static TestDialog dialog;
+
+    public static void createDialogWithInstructions( String[] instructions )
+    {
+        dialog = new TestDialog( new Frame(), "Instructions" );
+        dialog.printInstructions( instructions );
+        dialog.setVisible(true);
+        println( "Any messages for the tester will display here." );
+    }
+
+    public static void createDialog( )
+    {
+        dialog = new TestDialog( new Frame(), "Instructions" );
+        String[] defInstr = { "Instructions will appear here. ", "" } ;
+        dialog.printInstructions( defInstr );
+        dialog.setVisible(true);
+        println( "Any messages for the tester will display here." );
+    }
+
+
+    public static void printInstructions( String[] instructions )
+    {
+        dialog.printInstructions( instructions );
+    }
+
+
+    public static void println( String messageIn )
+    {
+        dialog.displayMessage( messageIn );
+        System.out.println(messageIn);
+    }
+
+}// Sysout  class
+
+/**
+  This is part of the standard test machinery.  It provides a place for the
+   test instructions to be displayed, and a place for interactive messages
+   to the user to be displayed.
+  To have the test instructions displayed, see Sysout.
+  To have a message to the user be displayed, see Sysout.
+  Do not call anything in this dialog directly.
+  */
+class TestDialog extends Dialog
+{
+
+    TextArea instructionsText;
+    TextArea messageText;
+    int maxStringLength = 80;
+
+    //DO NOT call this directly, go through Sysout
+    public TestDialog( Frame frame, String name )
+    {
+        super( frame, name );
+        int scrollBoth = TextArea.SCROLLBARS_BOTH;
+        instructionsText = new TextArea( "", 15, maxStringLength, scrollBoth );
+        add( "North", instructionsText );
+
+        messageText = new TextArea( "", 5, maxStringLength, scrollBoth );
+        add("Center", messageText);
+
+        pack();
+
+        setVisible(true);
+    }// TestDialog()
+
+    //DO NOT call this directly, go through Sysout
+    public void printInstructions( String[] instructions )
+    {
+        //Clear out any current instructions
+        instructionsText.setText( "" );
+
+        //Go down array of instruction strings
+
+        String printStr, remainingStr;
+        for( int i=0; i < instructions.length; i++ )
+        {
+            //chop up each into pieces maxSringLength long
+            remainingStr = instructions[ i ];
+            while( remainingStr.length() > 0 )
+            {
+                //if longer than max then chop off first max chars to print
+                if( remainingStr.length() >= maxStringLength )
+                {
+                    //Try to chop on a word boundary
+                    int posOfSpace = remainingStr.
+                        lastIndexOf( ' ', maxStringLength - 1 );
+
+                    if( posOfSpace <= 0 ) posOfSpace = maxStringLength - 1;
+
+                    printStr = remainingStr.substring( 0, posOfSpace + 1 );
+                    remainingStr = remainingStr.substring( posOfSpace + 1 );
+                }
+                //else just print
+                else
+                {
+                    printStr = remainingStr;
+                    remainingStr = "";
+                }
+
+                instructionsText.append( printStr + "\n" );
+
+            }// while
+
+        }// for
+
+    }//printInstructions()
+
+    //DO NOT call this directly, go through Sysout
+    public void displayMessage( String messageIn )
+    {
+        messageText.append( messageIn + "\n" );
+        System.out.println(messageIn);
+    }
+
+}// TestDialog  class
+
+
--- a/jdk/test/java/awt/Mixing/OpaqueTest.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/test/java/awt/Mixing/OpaqueTest.java	Wed Jul 05 16:47:27 2017 +0200
@@ -42,6 +42,7 @@
 import java.awt.event.*;
 import javax.swing.*;
 import test.java.awt.regtesthelpers.Util;
+import com.sun.awt.AWTUtilities;
 
 
 
@@ -78,6 +79,7 @@
                 {
                     public void actionPerformed(java.awt.event.ActionEvent e) {
                         p.setComponentZOrder(light, 0);
+                        f.validate();
                         testSeq = testSeq + "0";
                     }
                 }
@@ -87,6 +89,7 @@
                 {
                     public void actionPerformed(java.awt.event.ActionEvent e) {
                         p.setComponentZOrder(heavy, 0);
+                        f.validate();
                         testSeq = testSeq + "1";
                     }
                 }
@@ -120,10 +123,12 @@
         // flag value.
         for (int i = 0; i < 9; ++i) {
             if (i == 3) {
-                light.setOpaque(false);
+                AWTUtilities.setComponentMixingCutoutShape(light,
+                        new Rectangle());
             }
             if (i == 6) {
-                light.setOpaque(true);
+                AWTUtilities.setComponentMixingCutoutShape(light,
+                        null);
             }
 
             robot.mousePress(InputEvent.BUTTON1_MASK);
--- a/jdk/test/java/awt/Mixing/OverlappingButtons.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/test/java/awt/Mixing/OverlappingButtons.java	Wed Jul 05 16:47:27 2017 +0200
@@ -78,6 +78,7 @@
                 {
                     public void actionPerformed(java.awt.event.ActionEvent e) {
                         p.setComponentZOrder(light, 0);
+                        f.validate();
                         testSeq = testSeq + "0";
                     }
                 }
@@ -87,6 +88,7 @@
                 {
                     public void actionPerformed(java.awt.event.ActionEvent e) {
                         p.setComponentZOrder(heavy, 0);
+                        f.validate();
                         testSeq = testSeq + "1";
                     }
                 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Mouse/MaximizedFrameTest/MaximizedFrameTest.html	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+<!--
+  @test
+  @bug 6176814
+  @summary Metalworks frame maximizes after the move
+  @author Andrei.Dmitriev.Com area=Event
+  @run applet MaximizedFrameTest.html
+  -->
+<head>
+<title>  </title>
+</head>
+<body>
+
+<h1>bug 6176814<br>Bug ID:  6176814 </h1>
+
+<p> This is an AUTOMATIC test, simply wait for completion </p>
+
+<APPLET CODE="MaximizedFrameTest.class" WIDTH=200 HEIGHT=200></APPLET>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Mouse/MaximizedFrameTest/MaximizedFrameTest.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,112 @@
+/*
+ * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+  test
+  @bug 6176814
+  @summary  Metalworks frame maximizes after the move
+  @author Andrei.Dmitriev area=Event
+  @run applet MaximizedFrameTest.html
+*/
+
+import java.applet.Applet;
+import javax.swing.*;
+import java.awt.event.*;
+import java.awt.*;
+
+public class MaximizedFrameTest extends Applet
+{
+    final int ITERATIONS_COUNT = 20;
+    Robot robot;
+    Point framePosition;
+    Point newFrameLocation;
+    JFrame  frame;
+    Rectangle gcBounds;
+    public static Object LOCK = new Object();
+
+    public void init()
+    {
+        String[] instructions =
+        {
+            "This is an AUTOMATIC test",
+            "simply wait until it is done"
+        };
+        JFrame.setDefaultLookAndFeelDecorated(true);
+        frame = new JFrame("JFrame Maximization Test");
+        frame.pack();
+        frame.setSize(450, 260);
+    }//End  init()
+
+    public void start ()
+    {
+        frame.setVisible(true);
+        validate();
+        JLayeredPane lPane = frame.getLayeredPane();
+        //        System.out.println("JFrame's LayeredPane " + lPane );
+        Component titleComponent = null;
+        boolean titleFound = false;
+        for (int j=0; j < lPane.getComponentsInLayer(JLayeredPane.FRAME_CONTENT_LAYER.intValue()).length; j++){
+            titleComponent = lPane.getComponentsInLayer(JLayeredPane.FRAME_CONTENT_LAYER.intValue())[j];
+            if (titleComponent.getClass().getName().equals("javax.swing.plaf.metal.MetalTitlePane")){
+                titleFound = true;
+                break;
+            }
+        }
+        if ( !titleFound ){
+            throw new RuntimeException("Test Failed. Unable to determine title's size.");
+        }
+        //--------------------------------
+        // it is sufficient to get maximized Frame only once.
+        Point tempMousePosition;
+        framePosition = frame.getLocationOnScreen();
+        try {
+            robot = new Robot();
+            tempMousePosition = new Point(framePosition.x +
+                                          frame.getWidth()/2,
+                                          framePosition.y +
+                                          titleComponent.getHeight()/2);
+            robot.mouseMove(tempMousePosition.x, tempMousePosition.y);
+            for (int iteration=0; iteration < ITERATIONS_COUNT; iteration++){
+                robot.mousePress(InputEvent.BUTTON1_MASK);
+                gcBounds =
+                    GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()[0].getConfigurations()[0].getBounds();
+                //Moving a mouse pointer less than a few pixels
+                //leads to rising a double click event.
+                //We have to use exceeded the AWT_MULTICLICK_SMUDGE
+                //const value (which is 4 by default on GNOME) to test that.
+                tempMousePosition.x += 5;
+                robot.mouseMove(tempMousePosition.x, tempMousePosition.y);
+                robot.delay(70);
+                robot.mouseRelease(InputEvent.BUTTON1_MASK);
+                if ( frame.getExtendedState() != 0 ){
+                    throw new RuntimeException ("Test failed. JFrame was maximized. ExtendedState is : "+frame.getExtendedState());
+                }
+                robot.delay(500);
+            } //for iteration
+
+            }catch(AWTException e) {
+                throw new RuntimeException("Test Failed. AWTException thrown.");
+            }
+        System.out.println("Test passed.");
+    }// start()
+}// class
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Mouse/MouseModifiersUnitTest/ExtraButtonDrag.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,131 @@
+/*
+  @test %I% %E%
+  @bug 6315717
+  @summary verifies that drag events are coming for every button if the property is set to true
+  @author Andrei Dmitriev : area=awt.mouse
+  @run main ExtraButtonDrag
+ */
+
+//events from standard should also come
+
+import java.awt.*;
+import java.awt.event.*;
+
+public class ExtraButtonDrag extends Frame {
+    static String tk = Toolkit.getDefaultToolkit().getClass().getName();
+    static Robot robot;
+    static int [] buttonsPressed;
+    static int [] buttonsReleased;
+    static int [] buttonsClicked;
+    volatile static boolean dragged = false;
+    volatile static boolean moved = false;
+
+    public ExtraButtonDrag(){
+        super("ExtraButtonDrag");
+    }
+
+    public static void main(String []s){
+        Frame frame = new ExtraButtonDrag();
+
+        MouseAdapter ma = new MouseAdapter() {
+                public void mouseDragged(MouseEvent e) {
+                    System.out.println("Dragged "+e);// +" : "+ e.getButton() + " : " +e.getButtonState(e.getButton()));
+                    dragged = true;
+                }
+                public void mouseMoved(MouseEvent e) {
+                    System.out.println("Moved "+e);
+                    moved = true;
+                }
+                public void mousePressed(MouseEvent e) {
+                    System.out.println(">>> "+e);
+                }
+                public void mouseReleased(MouseEvent e) {
+                    System.out.println(">>> "+e);
+                }
+
+            };
+
+        frame.addMouseMotionListener(ma);
+        frame.addMouseListener(ma);
+
+        frame.setSize(300, 300);
+        frame.setVisible(true);
+
+        int [] buttonMask = new int [MouseInfo.getNumberOfButtons()]; //InputEvent.getButtonMasks();
+
+        for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
+            buttonMask[i] = InputEvent.getMaskForButton(i+1);
+            //            System.out.println("TEST: "+tmp[i]);
+        }
+
+        try {
+            robot = new Robot();
+            robot.delay(1000);
+            Point centerFrame = new Point(frame.getLocationOnScreen().x + frame.getWidth()/2, frame.getLocationOnScreen().y + frame.getHeight()/2);
+            Point outboundsFrame = new Point(frame.getLocationOnScreen().x + frame.getWidth()*3/2, frame.getLocationOnScreen().y + frame.getHeight()/2);
+
+            System.out.println("areExtraMouseButtonsEnabled() == " + Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled() );
+
+            for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
+                System.out.println("button to drag = " +(i+1) + " : value passed to robot = " +buttonMask[i]);
+
+                try {
+                    dragMouse(buttonMask[i], centerFrame.x, centerFrame.y, outboundsFrame.x, outboundsFrame.y);
+                } catch (IllegalArgumentException e){
+                    throw new RuntimeException("Test failed. Exception occured.", e);
+                }
+
+                robot.delay(500);
+                //this is a choice-case for X protocol issue: native events from extra buttons doesn't contain
+                // the correct state so it's unable to decide if there is a drag or move. By default we send MOVED event.
+                //XToolkit: extra buttons should report MOVED events only
+                //WToolkit: extra buttons should report DRAGGED events only
+                if (i > 2){ //extra buttons only
+                    if (tk.equals("sun.awt.X11.XToolkit") || tk.equals("sun.awt.motif.MToolkit")) {
+                        if (!moved || dragged) {
+                            throw new RuntimeException("Test failed."+ tk +" Button = " +(i+1) + " moved = "+moved +" : dragged = " +dragged);
+                        }
+                    } else { //WToolkit
+                        if (moved || !dragged) {
+                            throw new RuntimeException("Test failed."+ tk +" Button = " +(i+1) + " moved = "+moved +" : dragged = " +dragged);
+                        }
+                    }
+                } else {
+                    if (moved || !dragged){
+                        throw new RuntimeException("Test failed. Button = " +(i+1) + " not dragged.");
+                    }
+                }
+            }
+        } catch (Exception e){
+            throw new RuntimeException("", e);
+        }
+    }
+
+    public static void dragMouse(int button, int x0, int y0, int x1, int y1){
+        int curX = x0;
+        int curY = y0;
+        int dx = x0 < x1 ? 1 : -1;
+        int dy = y0 < y1 ? 1 : -1;
+        robot.mouseMove(x0, y0);
+
+        robot.delay(200);
+        dragged = false;
+        moved = false;
+
+        robot.mousePress(button);
+
+        while (curX != x1){
+            curX += dx;
+            robot.mouseMove(curX, curY);
+            robot.delay(5);
+        }
+        while (curY != y1 ){
+            curY += dy;
+            robot.mouseMove(curX, curY);
+            robot.delay(5);
+        }
+        robot.mouseRelease(button);
+    }
+
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Mouse/MouseModifiersUnitTest/ModifierPermutation.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,320 @@
+/*
+  test %I% %E%
+  @bug 6315717
+  @summary presses buttons in all permutations and verifies modifiers
+  @author Andrei Dmitriev : area=awt.mouse
+  @run main ModifierPermutation
+ */
+//package modifierpermutation;
+
+/*
+The test will try to press-release every button present on the mouse in different order.
+Here are some abbreviations:
+ BUTTON1 press = P1
+ BUTTON2 press = P2 etc.
+ BUTTON1 release = R1
+ BUTTON2 release = R2 etc.
+Only sequences alike below are possible : <P1, P2, R2, R1>.
+Sequences like <P1, P2, R1, R2> will not be covered by this test due to its probable complexity.
+ */
+
+import java.awt.*;
+import sun.awt.SunToolkit;
+import java.awt.event.*;
+import java.util.Arrays;
+
+public class ModifierPermutation {
+    static boolean failed = false;
+    final static int BUTTONSNUMBER = MouseInfo.getNumberOfButtons();
+
+/*
+ * Because of some problems with BUTTONx_MASK
+ * (they are not ordered. Instead, their values are: 16 8 4)
+ * We have to use array [1..n] and make every permutation on its
+ * containment. After each permutation, make the same thing with
+ * array of buttons and array of expected modifiers.
+ */
+    static SunToolkit st = (SunToolkit)(Toolkit.getDefaultToolkit());
+    //all button masks
+    static int [] mouseButtons = new int [BUTTONSNUMBER]; //BUTTONx_MASK
+    static int [] mouseButtonsDown = new int [BUTTONSNUMBER]; //BUTTONx_DOWN_MASK
+
+    //used to store mouse buttons sequences to press/to release
+    static int [] affectedButtonsToPressRelease;
+//    static int [] buttonsToRelease;
+//    static int [] modifiersToVerifyOnPressRelease;
+
+    static Robot robot;
+    static CheckingAdapter adapterTest1;
+    static Frame f;
+
+    static {
+        for (int i = 0; i < BUTTONSNUMBER; i++){
+            mouseButtons[i] = InputEvent.getMaskForButton(i+1); //then change first three elements here to BUTTONx_MASK
+            mouseButtonsDown[i] = InputEvent.getMaskForButton(i+1);
+        }
+        //mouseButtons initially has following values : 16 8 4.
+/*        mouseButtons[0] = InputEvent.BUTTON1_MASK;
+        mouseButtons[1] = InputEvent.BUTTON2_MASK;
+        mouseButtons[2] = InputEvent.BUTTON3_MASK;
+ */
+    }
+
+    public static void main(String s[]){
+        init();
+
+        try {
+            robot = new Robot();
+        } catch (Exception e){
+            e.printStackTrace();
+            throw new RuntimeException("Test failed.", e);
+        }
+        robot.delay(500);
+        robot.mouseMove(f.getLocationOnScreen().x + f.getWidth()/2, f.getLocationOnScreen().y + f.getHeight()/2);
+        robot.delay(500);
+        //Top limit is the factorial of the number of existing buttons
+        for (int k = 0; k < factorial(mouseButtons.length)-1; k++){
+            //now we will press 2 up to maximum buttons and release them in different order and listen for
+            // PRESSED events and check it's ExModifiers
+            for (int buttonsToPressNumber = 2; buttonsToPressNumber <= BUTTONSNUMBER; buttonsToPressNumber++ ){
+                System.out.println(">>>");
+
+                //Now get the slice of affected buttons
+                affectedButtonsToPressRelease = Arrays.copyOf(mouseButtons, buttonsToPressNumber);
+//                modifiersToVerifyOnPressRelease = Arrays.copyOf(mouseButtons, buttonsToPressNumber);
+
+                //Now press all these buttons in the order as they are in array affectedButtonsToPressRelease
+                //And release all these buttons in back order.
+
+                dumpArray("Affected Buttons ", affectedButtonsToPressRelease);
+                pressAllButtons(affectedButtonsToPressRelease);
+                releaseAllButtonsForwardOrder(affectedButtonsToPressRelease);
+//                    nextPermutation(i, buttonsToRelease);
+                //TODO: press buttons and release them backward
+                //All I have to add is :
+//                pressAllButtons(affectedButtonsToPressRelease);
+//                releaseAllButtonsBackwardOrder(affectedButtonsToPressRelease);
+
+                System.out.println("<<<");
+            }
+            nextPermutation(k, mouseButtons);
+//            PermutationGenerator.nextPermutation(k, mouseButtonsDown);
+            dumpArray("mouseButtons (step="+k+")", mouseButtons);
+//            dumpArray("mouseButtonsDown (step="+k+")", mouseButtonsDown);
+        }
+    }
+
+    private static void init(){
+        adapterTest1 = new CheckingAdapter();
+        f = new Frame("Robot presses mouse here");
+        f.setSize(300, 300);
+        f.setVisible(true);
+        f.addMouseListener(adapterTest1);
+    }
+    public static int factorial(int t){
+        if (t <=1 ) {
+            return 1;
+        } else {
+            return t*factorial(t-1);
+        }
+    }
+
+    // use this variable to get current button on EDT in checkModifiers()
+    static volatile int currentButtonIndexUnderAction;
+
+    public static void pressAllButtons(int []array){
+        for (int i = 0; i <array.length; i ++){
+            if (failed) {
+                throw new RuntimeException("PRESSED_EVENT is not filled with correct values. Review messaage above.");
+            }
+            System.out.println("Pressing button = " + array[i]);
+            currentButtonIndexUnderAction = i;
+            robot.mousePress(array[i]);
+            System.out.println("currentButtonIndexUnderAction ="+currentButtonIndexUnderAction);
+            st.realSync();
+            //            robot.delay(100);
+        }
+    }
+
+    public static void releaseAllButtonsForwardOrder(int []array){
+        for (int i = 0; i <array.length; i ++){
+            System.out.println("Releasing button = " + array[i]);
+            currentButtonIndexUnderAction = i;
+            robot.mouseRelease(array[i]);
+            System.out.println("currentButtonIndexUnderAction ="+currentButtonIndexUnderAction);
+            st.realSync();
+            //            robot.delay(100);
+        }
+    }
+
+    public static void checkModifiersOnPress(MouseEvent e){
+        System.out.println("checkModifiers. currentButtonIndexUnderAction ="+currentButtonIndexUnderAction);
+        for (int i = 0; i<= currentButtonIndexUnderAction; i++){
+            if ((e.getModifiersEx() & affectedButtonsToPressRelease[i]) == 0){
+                System.out.println("ERROR["+i+"]: PRESSED_EVENT is not filled with correct values. affectedButtonsToPressRelease[i]= "+affectedButtonsToPressRelease[i] +" Event = "+e);
+                ModifierPermutation.failed = true;
+            } else {
+                System.out.println("CORRECT["+i+"]: affectedButtonsToPressRelease[i]= "+affectedButtonsToPressRelease[i]+ " Event = "+e);
+            }
+        }
+    }
+
+    /*======================================================================*/
+    public static void dumpValues(int button, int modifiers, int modifiersStandard, int modifiersEx, int modifiersExStandard){
+        System.out.println("Button = "+button + "Modifiers = "+ modifiers + " standard = "+ modifiersStandard);
+        System.out.println("                   ModifiersEx = "+ modifiersEx + " standardEx = "+ modifiersExStandard);
+    }
+
+    public static void dumpArray(String id, int [] array){
+        System.out.print(id);
+        for (int i = 0; i < array.length; i++){
+            System.out.print(array[i]+" ");
+        }
+        System.out.println();
+    }
+    public static void nextPermutation(int step, int []array){
+        int i;
+        int leftEl = 0;
+        int rightEl = 0;
+
+        i = array.length - 2;
+        while (i>=0) {
+            if (array[i] < array[i+1]){
+                leftEl = i;
+                //                        System.out.println("leftEl = "+leftEl);
+                break;
+            }
+            i--;
+        }
+
+        i = array.length - 1;
+        while (i>=0) {
+            if (array[i] > array[leftEl]) {
+                rightEl = i;
+                //                        System.out.println("rightEl = "+rightEl);
+                break;
+            }
+            i--;
+        }
+        swapElements(array, leftEl, rightEl);
+        if (leftEl + 2 <  array.length){
+            //                    System.out.println("sort");
+            Arrays.sort(array, leftEl + 1 , array.length);
+        }
+    }
+
+    public static void swapElements(int [] array, int leftEl, int rightEl){
+        int tmp = array[leftEl];
+        array[leftEl] = array[rightEl];
+        array[rightEl] = tmp;
+    }
+
+    public static void checkModifiersOnRelease(MouseEvent e){
+        System.out.println("CheckModifiersOnRelease. currentButtonIndexUnderAction ="+currentButtonIndexUnderAction);
+        for (int i = currentButtonIndexUnderAction+1; i<affectedButtonsToPressRelease.length; i++){
+            if ((e.getModifiersEx() & affectedButtonsToPressRelease[i]) == 0){
+                System.out.println("ERROR["+i+"]: RELEASED_EVENT is not filled with correct values. affectedButtonsToPressRelease[i]= "+affectedButtonsToPressRelease[i] +" Event = "+e);
+                ModifierPermutation.failed = true;
+            } else {
+                System.out.println("CORRECT["+i+"]: affectedButtonsToPressRelease[i]= "+affectedButtonsToPressRelease[i]+ " Event = "+e);
+            }
+        }
+    }
+
+    public static void checkModifiersOnClick(MouseEvent e){
+        System.out.println("CheckModifiersOnClick. currentButtonIndexUnderAction ="+currentButtonIndexUnderAction);
+//Actually the same as in checkModifiersOnRelease()
+        for (int i = currentButtonIndexUnderAction+1; i<affectedButtonsToPressRelease.length; i++){
+            if ((e.getModifiersEx() & affectedButtonsToPressRelease[i]) == 0){
+                System.out.println("ERROR["+i+"]: CLICK_EVENT is not filled with correct values. affectedButtonsToPressRelease[i]= "+affectedButtonsToPressRelease[i] +" Event = "+e);
+                ModifierPermutation.failed = true;
+            } else {
+                System.out.println("CORRECT["+i+"]: affectedButtonsToPressRelease[i]= "+affectedButtonsToPressRelease[i]+ " Event = "+e);
+            }
+        }
+    }
+}
+///~ ModifierPermutation clas
+
+/* A class that invoke appropriate verification
+ * routine with current modifier.
+ */
+class CheckingAdapter extends MouseAdapter{
+    public CheckingAdapter(){}
+
+    public void mousePressed(MouseEvent e) {
+        System.out.println("PRESSED "+e);
+        ModifierPermutation.checkModifiersOnPress(e);
+    }
+    public void mouseReleased(MouseEvent e) {
+        System.out.println("RELEASED "+e);
+        ModifierPermutation.checkModifiersOnRelease(e);
+
+    }
+    public void mouseClicked(MouseEvent e) {
+        System.out.println("CLICKED "+e);
+        ModifierPermutation.checkModifiersOnClick(e);
+    }
+}
+
+// A class that could make a standard permutation with no regard to the
+// values of array passed in.
+// It uses a buttonIndicesToPermutate array with [1..N] values to perform
+// these permutations.
+//Note that nextPermutation is a static method and you can't keep track
+// of more the single permutation sequence.
+/*
+class PermutationGenerator{
+    final static int BUTTONSNUMBER = MouseInfo.getNumberOfButtons();
+    static int [] buttonIndicesToPermutate = new int [BUTTONSNUMBER];;
+    public PermutationGenerator(){
+        for (int i = 0; i < BUTTONSNUMBER; i++){
+            buttonIndicesToPermutate[i] = i+1; //fill it with [1..N] values
+        }
+    }
+
+    public static void nextPermutation(int step, int []array){
+        if (array.length != buttonIndicesToPermutate.length) {
+            throw new IllegalArgumentException("Array should have length equals to mouse buttons number.");
+        }
+        int i;
+        int leftEl = 0;
+        int rightEl = 0;
+
+        i = array.length - 2;
+        while (i>=0) {
+            if (buttonIndicesToPermutate[i] < buttonIndicesToPermutate[i+1]){
+                leftEl = i;
+                //                        System.out.println("leftEl = "+leftEl);
+                break;
+            }
+            i--;
+        }
+
+        i = array.length - 1;
+        while (i>=0) {
+            if (buttonIndicesToPermutate[i] >buttonIndicesToPermutate[leftEl]) {
+                rightEl = i;
+                //                        System.out.println("rightEl = "+rightEl);
+                break;
+            }
+            i--;
+        }
+        swapElements(array, leftEl, rightEl);
+        swapElements(buttonIndicesToPermutate, leftEl, rightEl);
+
+        if (leftEl + 2 <  array.length){
+            //                    System.out.println("sort");
+//need to make our own sorting because arraysort makes this on actual values in array...
+            Arrays.sort(array, leftEl + 1 , array.length);
+            Arrays.sort(buttonIndicesToPermutate, leftEl + 1 , buttonIndicesToPermutate.length);
+//            sortArray(array, leftEl + 1 , array.length);
+        }
+    }
+    public static void swapElements(int [] array, int leftEl, int rightEl){
+        int tmp = array[leftEl];
+        array[leftEl] = array[rightEl];
+        array[rightEl] = tmp;
+    }
+}
+*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Extra.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,490 @@
+/*
+  @test %I% %E%
+  @bug 6315717
+  @summary verifies that modifiers are correct for extra buttons
+  @author Andrei Dmitriev : area=awt.mouse
+  @run main MouseModifiersUnitTest_Extra
+ */
+
+import java.awt.*;
+import java.awt.event.*;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.StringTokenizer;
+import java.util.Vector;
+
+// will process extra buttons only
+// asking parameters from CMD: manual/automatic, modifier to test
+
+public class MouseModifiersUnitTest_Extra extends Frame {
+    static final int NONE = 0;
+    static final int SHIFT = 1;
+    static final int CTRL = 2;
+    static final int ALT = 3;
+    static CheckingModifierAdapter adapterTest1;
+    static CheckingModifierAdapter adapterTest2;
+    static CheckingModifierAdapter adapterTest3;
+    static CheckingModifierAdapter adapterTest4;
+
+    static boolean debug = true; //dump all errors (debug) or throw first(under jtreg) exception
+    static boolean autorun = false; //use robot or manual run
+    static int testModifier = NONE;
+
+    static int [] mouseButtons;
+    static int [] mouseButtonDownMasks;
+
+    //an arrays representing a modifiersEx of extra mouse buttons while using ALT/CTRL/SHIFT or none of them
+    static int [] modifiersExStandard;
+    static int [] modifiersExStandardSHIFT;
+    static int [] modifiersExStandardCTRL;
+    static int [] modifiersExStandardALT;
+
+    //    final static int [] mouseButtons = new int [] {MouseEvent.BUTTON1_MASK, MouseEvent.BUTTON2_MASK, MouseEvent.BUTTON3_MASK};
+    // BUTTON1, 2, 3 press-release.
+    final static int  modifiersStandard = 0; //InputEvent.BUTTON_DOWN_MASK;
+
+    public static void checkPressedModifiersTest(int testModifier, MouseEvent event){
+        int [] curStandardExModifiers = getStandardExArray(testModifier);
+        int button = event.getButton();
+        int modifiers = event.getModifiers();
+        int modifiersEx = event.getModifiersEx();
+        int index = (button - 4)*3;
+        dumpValues(button, modifiers, modifiersStandard, modifiersEx, curStandardExModifiers[index]);
+        if (modifiers != modifiersStandard){
+            MessageLogger.reportError("Test failed :  Pressed. modifiers != modifiersStandard");
+        }
+
+        if (modifiersEx != curStandardExModifiers[index]){
+//            System.out.println(">>>>>>>>>>>>>>> Pressed. modifiersEx "+modifiersEx +" : "+!= curStandardExModifiers");
+            MessageLogger.reportError("Test failed :  Pressed. modifiersEx != curStandardExModifiers");
+        }
+
+     //check event.paramString() output
+        HashMap <String, String> paramStringElements = tokenizeParamString(event.paramString());
+        System.out.println(event.paramString());
+        checkButton(paramStringElements, button);
+        checkModifiers(testModifier, paramStringElements, button);
+        checkExtModifiersOnPress(testModifier, paramStringElements, button);
+    }
+
+    public static void checkExtModifiersOnReleaseClick(int testModifier, HashMap h, int button){
+        String ethalon = "";
+        switch (testModifier){
+            case SHIFT:{
+                ethalon = "Shift";
+                break;
+            }
+            case ALT:{
+                ethalon = "Alt";
+                break;
+            }
+            case CTRL:{
+                ethalon = "Ctrl";
+                break;
+            }
+        }
+        //
+        if (h.get("extModifiers") == null){
+            h.put("extModifiers", "");
+        }
+        if (!ethalon.equals(h.get("extModifiers"))) {
+            MessageLogger.reportError("Test failed :  Released/Clicked. extModifiers = " +h.get("extModifiers")+" instead of : "+ethalon);
+        }
+    }
+
+    public static void checkExtModifiersOnPress(int testModifier, HashMap h, int button){
+        String ethalon = "";
+        switch (testModifier){
+            case SHIFT:{
+                ethalon = "Shift+";
+                break;
+            }
+            case ALT:{
+                ethalon = "Alt+";
+                break;
+            }
+            case CTRL:{
+                ethalon = "Ctrl+";
+                break;
+            }
+        }
+        ethalon = ethalon + "Button" +button;
+
+        if (!h.get("extModifiers").equals(ethalon)) {
+            MessageLogger.reportError("Test failed :  Pressed. extModifiers = " +h.get("extModifiers")+" instead of : "+ethalon);
+        }
+    }
+
+    public static void checkModifiers(int testModifier, HashMap<String, String> h, int button){
+        // none of modifiers for extra button should be null
+        if (h.get("modifiers") != null) {
+            MessageLogger.reportError("Test failed : modifiers != null");
+        }
+    }
+
+    public static void checkButton(HashMap<String, String> h, int button){
+        if (h.get("button") == null) {
+            MessageLogger.reportError("Test failed :  checkButton(). button is absent in paramString()");
+        }
+        if (Integer.parseInt(h.get("button")) != button) {
+            MessageLogger.reportError("Test failed :  checkButton. button in paramString() doesn't equal to button being pressed.");
+        }
+    }
+    public static HashMap<String, String> tokenizeParamString(String param){
+        HashMap <String, String> params = new HashMap<String, String>();
+        StringTokenizer st = new StringTokenizer(param, ",=");
+        while (st.hasMoreTokens()){
+            String tmp = st.nextToken();
+//            System.out.println("PARSER : "+tmp);
+            if (tmp.equals("button") ||
+                    tmp.equals("modifiers") ||
+                    tmp.equals("extModifiers")) {
+                params.put(tmp, st.nextToken());
+            }
+        }
+        return params;
+    }
+
+    public static Vector<String> tokenizeModifiers(String modifierList){
+        Vector<String> modifiers = new Vector<String>();
+        StringTokenizer st = new StringTokenizer(modifierList, "+");
+        while (st.hasMoreTokens()){
+            String tmp = st.nextToken();
+            modifiers.addElement(tmp);
+            System.out.println("MODIFIER PARSER : "+tmp);
+        }
+        return modifiers;
+    }
+
+    public static void checkReleasedModifiersTest(int testModifier, MouseEvent event){
+        int [] curStandardExModifiers = getStandardExArray(testModifier);
+        int button = event.getButton();
+        int modifiers = event.getModifiers();
+        int modifiersEx = event.getModifiersEx();
+        int index = (button - 4)*3 + 1;
+        dumpValues(button, modifiers, modifiersStandard, modifiersEx, curStandardExModifiers[index]);
+        if (modifiers != modifiersStandard){
+            MessageLogger.reportError("Test failed :  Released. modifiers != modifiersStandard");
+        }
+
+        if (modifiersEx != curStandardExModifiers[index]){
+            MessageLogger.reportError("Test failed :  Released. modifiersEx != curStandardExModifiers");
+        }
+
+     //check event.paramString() output
+        HashMap <String, String> paramStringElements = tokenizeParamString(event.paramString());
+        checkButton(paramStringElements, button);
+        checkModifiers(testModifier, paramStringElements, button);
+        System.out.println("paramStringElements = "+paramStringElements);
+        checkExtModifiersOnReleaseClick(testModifier, paramStringElements, button);
+    }
+
+    public static void checkClickedModifiersTest(int testModifier, MouseEvent event){
+        int [] curStandardExModifiers = getStandardExArray(testModifier);
+        int button = event.getButton();
+        int modifiers = event.getModifiers();
+        int modifiersEx = event.getModifiersEx();
+        int index = (button - 4)*3 + 2;
+        dumpValues(button, modifiers, modifiersStandard, modifiersEx, curStandardExModifiers[index]);
+        if (modifiers != modifiersStandard){
+            MessageLogger.reportError("Test failed :  Clicked. modifiers != modifiersStandard");
+        }
+
+        if (modifiersEx != curStandardExModifiers[index]){
+            MessageLogger.reportError("Test failed :  Clicked. modifiersEx != curStandardExModifiers");
+        }
+
+     //check event.paramString() output
+        HashMap <String, String> paramStringElements = tokenizeParamString(event.paramString());
+        checkButton(paramStringElements, button);
+        checkModifiers(testModifier, paramStringElements, button);
+        checkExtModifiersOnReleaseClick(testModifier, paramStringElements, button);
+    }
+
+    private static int[] getStandardExArray(int testModifier) {
+        int [] curStandardExModifiers;
+        switch (testModifier){
+            case SHIFT:
+                curStandardExModifiers = modifiersExStandardSHIFT;
+                break;
+            case CTRL:
+                curStandardExModifiers = modifiersExStandardCTRL;
+                break;
+            case ALT:
+                curStandardExModifiers = modifiersExStandardALT;
+                break;
+            default: //NONE by default
+                curStandardExModifiers = modifiersExStandard;
+        }
+        return curStandardExModifiers;
+    }
+
+    static Robot robot;
+    public void init() {
+        this.setLayout(new BorderLayout());
+
+        String[] instructions =
+        {
+            "This test should be used with the mouse having more then three buttons.",
+            "Currently, " + MouseInfo.getNumberOfButtons() +" buttons are available.",
+            "If there are less then three buttons, press PASS.",
+            "1. Press each extra mouse button.",
+            "2. For each mouse event its modifiers and ExModifiers will be printed.",
+            "3. Verify that they are correct.",
+            "4. Press Pass or Fail accordingly."
+        };
+//        Sysout.createDialogWithInstructions( instructions );
+
+//        addMouseListener(adapterTest1);
+        try {
+            robot  = new Robot();
+        } catch (Exception e) {
+            MessageLogger.reportError("Test failed. "+e);
+        }
+    }//End  init()
+
+    public void start() {
+        //Get things going.  Request focus, set size, et cetera
+        setSize(200,200);
+        setVisible(true);
+        validate();
+        if (autorun) {
+            testNONE();
+            testSHIFT();
+            testCTRL();
+            testALT();
+        } else {
+            switch (testModifier){
+                case SHIFT:
+                    this.addMouseListener(adapterTest2);
+                    break;
+                case CTRL:
+                    this.addMouseListener(adapterTest3);
+                    break;
+                case ALT:
+                    this.addMouseListener(adapterTest4);
+                    break;
+                default:  //NONE by default
+                    this.addMouseListener(adapterTest1);
+            }
+        }
+    }// start()
+
+    //000000000000000000000000000000000000000000000000000000000000000
+    public void testNONE(){
+        this.addMouseListener(adapterTest1);
+        robot.delay(1000);
+        robot.mouseMove(getLocationOnScreen().x + getWidth()/2, getLocationOnScreen().y + getHeight()/2);
+        for (int i = 3; i< mouseButtons.length; i++){
+            System.out.println("testNONE() => " +mouseButtons[i] );
+            robot.mousePress(mouseButtons[i]);
+            robot.delay(100);
+            robot.mouseRelease(mouseButtons[i]);
+        }
+        robot.delay(1000);
+        this.removeMouseListener(adapterTest1);
+    }
+
+    public void testSHIFT(){
+        this.addMouseListener(adapterTest2);
+        robot.delay(1000);
+        robot.mouseMove(getLocationOnScreen().x + getWidth()/2, getLocationOnScreen().y + getHeight()/2);
+        for (int i = 3; i< mouseButtons.length; i++){
+            robot.keyPress(KeyEvent.VK_SHIFT);
+            System.out.println("testSHIFT() => " +mouseButtons[i] );
+            robot.mousePress(mouseButtons[i]);
+            robot.delay(100);
+            robot.mouseRelease(mouseButtons[i]);
+            robot.keyRelease(KeyEvent.VK_SHIFT);
+        }
+        robot.delay(1000);
+        this.removeMouseListener(adapterTest2);
+    }
+
+    public void testCTRL(){
+        this.addMouseListener(adapterTest3);
+        robot.delay(1000);
+        robot.mouseMove(getLocationOnScreen().x + getWidth()/2, getLocationOnScreen().y + getHeight()/2);
+        for (int i = 3; i< mouseButtons.length; i++){
+            robot.keyPress(KeyEvent.VK_CONTROL);
+            System.out.println("testCTRL() => " +mouseButtons[i] );
+            robot.mousePress(mouseButtons[i]);
+            robot.delay(100);
+            robot.mouseRelease(mouseButtons[i]);
+            robot.keyRelease(KeyEvent.VK_CONTROL);
+        }
+        robot.delay(1000);
+        this.removeMouseListener(adapterTest3);
+    }
+
+    public void testALT(){
+        this.addMouseListener(adapterTest4);
+        robot.delay(1000);
+        robot.mouseMove(getLocationOnScreen().x + getWidth()/2, getLocationOnScreen().y + getHeight()/2);
+        for (int i = 3; i< mouseButtons.length; i++){
+            robot.keyPress(KeyEvent.VK_ALT);
+            System.out.println("testALT() => " +mouseButtons[i] );
+            robot.mousePress(mouseButtons[i]);
+            robot.delay(100);
+            robot.mouseRelease(mouseButtons[i]);
+            robot.keyRelease(KeyEvent.VK_ALT);
+        }
+        robot.delay(1000);
+        this.removeMouseListener(adapterTest4);
+    }
+
+    //**************************************************************************************************
+    public static void dumpValues(int button, int modifiers, int modifiersStandard, int modifiersEx, int modifiersExStandard){
+        System.out.println("Button = "+button + "Modifiers = "+ modifiers + "standard = "+ modifiersStandard);
+        System.out.println("Button = "+button + "ModifiersEx = "+ modifiersEx + "standardEx = "+ modifiersExStandard);
+    }
+
+    public static void initParams(String []s){
+        if (s.length != 3){
+            autorun = true;
+            debug = false;
+            testModifier = NONE;
+        } else {
+            autorun = Boolean.valueOf(s[0]);
+            debug = Boolean.valueOf(s[1]);
+
+            if (s[2].equals("NONE")){
+                testModifier = NONE;
+            }
+            if (s[2].equals("SHIFT")){
+                testModifier = SHIFT;
+            }
+            if (s[2].equals("CTRL")){
+                testModifier = CTRL;
+            }
+            if (s[2].equals("ALT")){
+                testModifier = ALT;
+            }
+        }
+        MessageLogger.setDebug(debug);
+        System.out.println("Autorun : " +autorun);
+        System.out.println("Debug mode : " +debug);
+        System.out.println("Modifier to verify : " + testModifier);
+    }
+
+    public static void initAdapters(){
+        adapterTest1 = new CheckingModifierAdapter(NONE);
+        adapterTest2 = new CheckingModifierAdapter(SHIFT);
+        adapterTest3 = new CheckingModifierAdapter(CTRL);
+        adapterTest4 = new CheckingModifierAdapter(ALT);
+    }
+
+    public static void initVars(){
+        int [] tmp = new int [MouseInfo.getNumberOfButtons()];
+        for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
+            tmp[i] = InputEvent.getMaskForButton(i+1);
+            //            System.out.println("TEST: "+tmp[i]);
+        }
+
+        mouseButtons = Arrays.copyOf(tmp, tmp.length);
+
+        for (int i = 0; i < mouseButtons.length; i++){
+            System.out.println("MouseArray [i] == "+mouseButtons[i]);
+        }
+
+        mouseButtonDownMasks = Arrays.copyOf(tmp, tmp.length);
+
+        // So we need to get the number of extra buttons on the mouse:  "MouseInfo.getNumberOfButtons() - 3"
+        // and multyply on 3 because each button will generate three events : PRESS, RELEASE and CLICK.
+        tmp = new int [(MouseInfo.getNumberOfButtons()-3)*3];
+        Arrays.fill(tmp, 0);
+
+        for (int i = 0, j = 3; i < tmp.length; i = i + 3, j++){
+            tmp[i] = mouseButtonDownMasks[j];
+        }
+        modifiersExStandard = Arrays.copyOf(tmp, tmp.length);
+
+        Arrays.fill(tmp, InputEvent.SHIFT_DOWN_MASK);
+        for (int i = 0, j = 3; i < MouseInfo.getNumberOfButtons(); i = i + 3, j++){
+            tmp[i] = tmp[j] | mouseButtonDownMasks[j];
+        }
+        modifiersExStandardSHIFT = Arrays.copyOf(tmp, tmp.length);
+
+        Arrays.fill(tmp, InputEvent.CTRL_DOWN_MASK);
+        for (int i = 0, j = 3; i < MouseInfo.getNumberOfButtons(); i = i + 3, j++){
+            tmp[i] = tmp[j] | mouseButtonDownMasks[j];
+        }
+        modifiersExStandardCTRL = Arrays.copyOf(tmp, tmp.length);
+
+        Arrays.fill(tmp, InputEvent.ALT_DOWN_MASK);
+        for (int i = 0, j = 3; i < MouseInfo.getNumberOfButtons(); i = i + 3, j++){
+            tmp[i] = tmp[j] | mouseButtonDownMasks[j];
+        }
+        modifiersExStandardALT = Arrays.copyOf(tmp, tmp.length);
+    }
+
+    public static void main(String []s){
+        if (MouseInfo.getNumberOfButtons() < 4){
+            System.out.println("There are less then 4 buttons on the mouse. The test may not be accomplished. Skipping.");
+            return;
+        }
+        initVars();
+        MouseModifiersUnitTest_Extra frame = new MouseModifiersUnitTest_Extra();
+        frame.initParams(s);
+        frame.init();
+        initAdapters();
+        frame.start();
+    }
+
+}// class
+
+/* A class that invoke appropriate verification
+ * routine with current modifier.
+ */
+class CheckingModifierAdapter extends MouseAdapter{
+    int modifier;
+    public CheckingModifierAdapter(int modifier){
+        this.modifier = modifier;
+    }
+
+    public void mousePressed(MouseEvent e) {
+        System.out.println("PRESSED "+e);
+        if (e.getButton() <= MouseEvent.BUTTON3) {
+            System.out.println("Standard button affected. Skip.");
+        } else {
+            MouseModifiersUnitTest_Extra.checkPressedModifiersTest(modifier, e);
+        }
+    }
+    public void mouseReleased(MouseEvent e) {
+        System.out.println("RELEASED "+e);
+        if (e.getButton() <= MouseEvent.BUTTON3) {
+            System.out.println("Standard button affected. Skip.");
+        } else {
+            MouseModifiersUnitTest_Extra.checkReleasedModifiersTest(modifier, e);
+        }
+    }
+    public void mouseClicked(MouseEvent e) {
+        System.out.println("CLICKED "+e);
+        if (e.getButton() <= MouseEvent.BUTTON3) {
+            System.out.println("Standard button affected. Skip.");
+        } else {
+            MouseModifiersUnitTest_Extra.checkClickedModifiersTest(modifier, e);
+        }
+    }
+}
+//Utility class that could report a message depending on current purpose of the test run
+class MessageLogger{
+    private static boolean debug;
+
+    public static void setDebug(boolean d){
+        debug = d;
+        log("Switch to "+ ((debug)?"debug":"trial") +" mode");
+    }
+
+    public static void log(String message){
+        System.out.println(message);
+    }
+
+    public static void reportError(String message){
+        if (debug){
+            System.out.println(message);
+        } else {
+            throw new RuntimeException(message);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Standard.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,598 @@
+/*
+  @test %I% %E%
+  @bug 6315717
+  @summary verifies that modifiers are correct for standard (1, 2, 3, wheel) mouse buttons
+  @author Andrei Dmitriev : area=awt.mouse
+  @run main MouseModifiersUnitTest_Standard
+ */
+
+import java.awt.*;
+import java.awt.event.*;
+import java.util.HashMap;
+import java.util.StringTokenizer;
+import java.util.Vector;
+
+//the test verifies:
+// 1) verifies that modifiers are correct for standard (1, 2, 3) mouse buttons
+// TODO: 2) verifies that modifiers are correct for wheel
+// TODO: 3)
+// Case1. the test posts BUTTONx_MASK and verifies that paramString() contains correct modifiers and exModifiers
+// Case2. the test posts BUTTONx_DOWN_MASK and verifies that paramString() contains correct modifiers and exModifiers
+// Case3. the test posts getMaskForButton(n) and verifies that paramString() contains correct modifiers and exModifiers
+// repeat all cases with SHIFT/ALT/CTRL modifiers verify that paramString() contains correct modifiers and exModifiers
+// I'm verifying button, modifiers and extModifiers for now.
+
+public class MouseModifiersUnitTest_Standard {
+    static final int NONE = 0;
+    static final int SHIFT = 1;
+    static final int CTRL = 2;
+    static final int ALT = 3;
+    static boolean debug = true; //dump all errors (debug) or throw first(under jtreg) exception
+    static boolean autorun = false; //use robot or manual run
+    static int testModifier = NONE;
+    //    static String testModifier = "NONE";
+    static CheckingModifierAdapter adapterTest1;
+    static CheckingModifierAdapter adapterTest2;
+    static CheckingModifierAdapter adapterTest3;
+    static CheckingModifierAdapter adapterTest4;
+    static Frame f;
+    final static int [] mouseButtons = new int [] {MouseEvent.BUTTON1_MASK, MouseEvent.BUTTON2_MASK, MouseEvent.BUTTON3_MASK};
+    // BUTTON1, 2, 3 press-release.
+    final static int [] modifiersStandardTestNONE = new int[] {MouseEvent.BUTTON1_MASK, MouseEvent.BUTTON1_MASK, MouseEvent.BUTTON1_MASK,
+    MouseEvent.BUTTON2_MASK, MouseEvent.BUTTON2_MASK, MouseEvent.BUTTON2_MASK,
+    MouseEvent.BUTTON3_MASK, MouseEvent.BUTTON3_MASK, MouseEvent.BUTTON3_MASK };
+    final static int [] modifiersExStandardTestNONE = new int[] {MouseEvent.BUTTON1_DOWN_MASK, 0, 0,
+    MouseEvent.BUTTON2_DOWN_MASK, 0, 0,
+    MouseEvent.BUTTON3_DOWN_MASK, 0, 0};
+    // BUTTON1, 2, 3 press-release with shift modifier
+    final static int [] modifiersStandardTestSHIFT = new int[] {MouseEvent.BUTTON1_MASK|InputEvent.SHIFT_MASK, MouseEvent.BUTTON1_MASK|InputEvent.SHIFT_MASK, MouseEvent.BUTTON1_MASK|InputEvent.SHIFT_MASK,
+    MouseEvent.BUTTON2_MASK|InputEvent.SHIFT_MASK, MouseEvent.BUTTON2_MASK|InputEvent.SHIFT_MASK, MouseEvent.BUTTON2_MASK|InputEvent.SHIFT_MASK,
+    MouseEvent.BUTTON3_MASK|InputEvent.SHIFT_MASK, MouseEvent.BUTTON3_MASK|InputEvent.SHIFT_MASK, MouseEvent.BUTTON3_MASK|InputEvent.SHIFT_MASK };
+    final static int [] modifiersExStandardTestSHIFT = new int[] {MouseEvent.BUTTON1_DOWN_MASK|InputEvent.SHIFT_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK,
+    MouseEvent.BUTTON2_DOWN_MASK|InputEvent.SHIFT_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK,
+    MouseEvent.BUTTON3_DOWN_MASK|InputEvent.SHIFT_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK};
+    // BUTTON1, 2, 3 press-release with CTRL modifier
+    final static int [] modifiersStandardTestCTRL = new int[] {MouseEvent.BUTTON1_MASK|InputEvent.CTRL_MASK, MouseEvent.BUTTON1_MASK|InputEvent.CTRL_MASK, MouseEvent.BUTTON1_MASK|InputEvent.CTRL_MASK,
+    MouseEvent.BUTTON2_MASK|InputEvent.CTRL_MASK, MouseEvent.BUTTON2_MASK|InputEvent.CTRL_MASK, MouseEvent.BUTTON2_MASK|InputEvent.CTRL_MASK,
+    MouseEvent.BUTTON3_MASK|InputEvent.CTRL_MASK, MouseEvent.BUTTON3_MASK|InputEvent.CTRL_MASK, MouseEvent.BUTTON3_MASK|InputEvent.CTRL_MASK };
+    final static int [] modifiersExStandardTestCTRL = new int[] {MouseEvent.BUTTON1_DOWN_MASK|InputEvent.CTRL_DOWN_MASK, InputEvent.CTRL_DOWN_MASK, InputEvent.CTRL_DOWN_MASK,
+    MouseEvent.BUTTON2_DOWN_MASK|InputEvent.CTRL_DOWN_MASK, InputEvent.CTRL_DOWN_MASK, InputEvent.CTRL_DOWN_MASK,
+    MouseEvent.BUTTON3_DOWN_MASK|InputEvent.CTRL_DOWN_MASK, InputEvent.CTRL_DOWN_MASK, InputEvent.CTRL_DOWN_MASK};
+
+    // BUTTON1, 2, 3 press-release with ALT modifier
+    final static int [] modifiersStandardTestALT = new int[] {MouseEvent.BUTTON1_MASK|InputEvent.ALT_MASK, MouseEvent.BUTTON1_MASK|InputEvent.ALT_MASK, MouseEvent.BUTTON1_MASK|InputEvent.ALT_MASK,
+    MouseEvent.BUTTON2_MASK|InputEvent.ALT_MASK, MouseEvent.BUTTON2_MASK|InputEvent.ALT_MASK, MouseEvent.BUTTON2_MASK|InputEvent.ALT_MASK,
+    MouseEvent.BUTTON3_MASK|InputEvent.ALT_MASK, MouseEvent.BUTTON3_MASK|InputEvent.ALT_MASK, MouseEvent.BUTTON3_MASK|InputEvent.ALT_MASK };
+    final static int [] modifiersExStandardTestALT = new int[] {MouseEvent.BUTTON1_DOWN_MASK|InputEvent.ALT_DOWN_MASK, InputEvent.ALT_DOWN_MASK, InputEvent.ALT_DOWN_MASK,
+    MouseEvent.BUTTON2_DOWN_MASK|InputEvent.ALT_DOWN_MASK, InputEvent.ALT_DOWN_MASK, InputEvent.ALT_DOWN_MASK,
+    MouseEvent.BUTTON3_DOWN_MASK|InputEvent.ALT_DOWN_MASK, InputEvent.ALT_DOWN_MASK, InputEvent.ALT_DOWN_MASK};
+
+    static Robot robot;
+
+    public static void main(String s[]){
+        initParams(s);
+        initAdapters();
+        f = new Frame();
+        final int [] modifiers = {InputEvent.SHIFT_MASK, InputEvent.CTRL_MASK};
+        final String [] modifierNames = {"InputEvent.SHIFT_MASK", "InputEvent.CTRL_MASK"};
+        f.setLayout(new FlowLayout());
+        f.addMouseWheelListener(new MouseWheelListener() {
+            public void mouseWheelMoved(MouseWheelEvent e) {
+                System.out.println("WHEEL "+e);
+            }
+        });
+        f.setSize(300, 300);
+        f.setVisible(true);
+
+        try {
+            robot = new Robot();
+            robot.delay(500);
+            robot.mouseMove(f.getLocationOnScreen().x + f.getWidth()/2, f.getLocationOnScreen().y + f.getHeight()/2);
+            if (autorun) {
+                //testing buttons 1, 2, 3 only
+                testPlainButtons();
+                robot.delay(500);
+
+                //testing buttons 1, 2, 3 with SHIFT, CTRL, ALT keyboard modifiers
+                testButtonsWithShift();
+                robot.delay(500);
+
+                testButtonsWithControl();
+                robot.delay(500);
+
+                testButtonsWithAlt();
+                robot.delay(500);
+            } else {
+                switch (testModifier){
+                    case SHIFT:
+                        f.addMouseListener(adapterTest2);
+                        break;
+                    case CTRL:
+                        f.addMouseListener(adapterTest3);
+                        break;
+                    case ALT:
+                        f.addMouseListener(adapterTest4);
+                        break;
+                    default:  //NONE inclusive
+                        f.addMouseListener(adapterTest1);
+                }
+            }
+        } catch (Exception e){
+            throw new RuntimeException("Test failed.");
+        }
+
+    }
+
+    public static void initAdapters(){
+        adapterTest1 = new CheckingModifierAdapter(NONE);
+        adapterTest2 = new CheckingModifierAdapter(SHIFT);
+        adapterTest3 = new CheckingModifierAdapter(CTRL);
+        adapterTest4 = new CheckingModifierAdapter(ALT);
+    }
+
+    /*======================================================================*/
+    public static void checkPressedModifiersTest(int testModifier, MouseEvent event){
+        int [] curStandardModifiers = getStandardArray(testModifier);
+        int [] curStandardExModifiers = getStandardExArray(testModifier);
+        int button = event.getButton();
+        int modifiers = event.getModifiers();
+        int modifiersEx = event.getModifiersEx();
+        int index = (button - 1)*3;
+        //        int index = (button - 4)*3;
+        dumpValues(button, modifiers, curStandardModifiers[index], modifiersEx, curStandardExModifiers[index]);
+        if (modifiers != curStandardModifiers[index]){
+            if (debug){
+                System.out.println("Test failed :  Pressed. modifiers != modifiersStandard");
+            } else {
+                throw new RuntimeException("Test failed :  Pressed. modifiers != modifiersStandard");
+            }
+        }
+
+        if (modifiersEx != curStandardExModifiers[index]){
+//            System.out.println(">>>>>>>>>>>>>>> Pressed. modifiersEx "+modifiersEx +" : "+!= curStandardExModifiers");
+            if (debug){
+                System.out.println("Test failed :  Pressed. modifiersEx != curStandardExModifiers");
+            } else {
+                throw new RuntimeException("Test failed :  Pressed. modifiersEx != curStandardExModifiers");
+            }
+        }
+        HashMap <String, String> paramStringElements = tokenizeParamString(event.paramString());
+        System.out.println(event.paramString());
+        checkButton(paramStringElements, button);
+        checkModifiers(testModifier, paramStringElements, button);
+        checkExtModifiersOnPress(testModifier, paramStringElements, button);
+    }
+
+    public static void checkButton(HashMap<String, String> h, int button){
+        if (h.get("button") == null) {
+            throw new RuntimeException("Test failed :  Clicked. button is absent in paramString()");
+        }
+        if (Integer.parseInt(h.get("button")) != button) {
+            throw new RuntimeException("Test failed :  Clicked. button in paramString() doesn't equal to button being pressed.");
+        }
+    }
+
+    public static void checkExtModifiersOnPress(int testModifier, HashMap h, int button){
+        String ethalon = "";
+        if (h.get("extModifiers") == null) {
+            System.out.println("Test failed :  Pressed. extModifiers == null");
+            throw new RuntimeException("Test failed :  Pressed. extModifiers == null");
+        }
+        switch (testModifier){
+            case SHIFT:{
+                ethalon = "Shift+";
+                break;
+            }
+            case ALT:{
+                ethalon = "Alt+";
+                break;
+            }
+            case CTRL:{
+                ethalon = "Ctrl+";
+                break;
+            }
+            default: {
+                ethalon = "";
+            }
+            ethalon = ethalon + "Button" +button;
+
+            if (!h.get("extModifiers").equals(ethalon)) {
+                System.out.println("Test failed :  Pressed. extModifiers = " +h.get("extModifiers")+" instead of : "+ethalon);
+                throw new RuntimeException("Test failed :  Pressed. extModifiers = " +h.get("extModifiers")+" instead of : "+ethalon);
+            }
+        }
+    }
+
+
+
+    public static void checkModifiers(int testModifier, HashMap<String, String> h, int button){
+        // none of modifiers should be null
+        if (h.get("modifiers") == null) {
+            System.out.println("Test failed : modifiers == null");
+            throw new RuntimeException("Test failed :  modifiers == null");
+        }
+        Vector <String> modifierElements = tokenizeModifiers(h.get("modifiers"));
+        //check that ButtonX is there
+        String buttonEthalon = "Button" + button;
+        if (modifierElements.contains(buttonEthalon)){
+            modifierElements.remove(buttonEthalon);
+        } else {
+            System.out.println("Test failed :  modifiers doesn't contain Button "+h.get("modifiers"));
+            throw new RuntimeException("Test failed :  modifiers doesn't contain Button "+h.get("modifiers"));
+        }
+
+
+        //Check all explicitly pressed modifires
+//        boolean altIncluded = false; //don't duplicate Alt when ALT is pressed and BUTTON2_MASK.
+        String excplicitModifier = "";
+        boolean altIncluded = false;
+        switch (testModifier){
+            case SHIFT:{
+                excplicitModifier = "Shift";
+                break;
+            }
+            case ALT:{
+                excplicitModifier = "Alt";
+                altIncluded = true; //there should be only on "Alt" for two modifiers. So check it.
+                break;
+            }
+            case CTRL:{
+                excplicitModifier = "Ctrl";
+                break;
+            }
+        }
+        if (!excplicitModifier.equals("")){
+            if (modifierElements.contains(excplicitModifier)){
+                modifierElements.remove(excplicitModifier);
+            } else {
+                System.out.println("Test failed :  modifiers doesn't contain explicit modifier "+excplicitModifier + " in "+ h.get("modifiers"));
+                throw new RuntimeException("Test failed :  modifiers doesn't contain explicit modifier "+excplicitModifier + " in "+ h.get("modifiers"));
+            }
+        }
+
+        //Button 2 and 3 reports about Alt+Button2 and Meta+Button3 respectively.
+        //Check these values too
+        String extraModifiers = "";
+        String extraModifiersButton3 = "";
+        switch (button){
+            //BUTTON1 with ALT reports about Alt+Button1+Button2.
+            //We should fix this but I would not change this.
+            case 1: {
+                //Alt+Button1+Button2:
+                // 1) we already handled "Alt" in excplicitModifier
+                // 2) we already took "Button1" in buttonEthalon
+                // 3) so "Button2" is only remained.
+                // This should only happen when ALT+Button1 is pressed
+                if (altIncluded){
+                    extraModifiers = "Button2";
+                }
+                break;
+            }
+            case 2: {
+                //Alt+Button2 report about "Alt+Button2".
+                extraModifiers = "Alt";
+                break;
+            }
+            case 3: {
+                //ALT+BUTTON3 reports about "Alt+Meta+Button2+Button3"
+                // This should only happen when ALT+Button3 is pressed
+                extraModifiers = "Meta";
+                if (altIncluded){
+                    extraModifiersButton3 = "Button2";
+                }
+                break;
+            }
+        }//switch
+
+        if (!extraModifiers.equals("")){
+            if (modifierElements.contains(extraModifiers)){
+                modifierElements.remove(extraModifiers);
+            } else {
+                //we may already removed "Alt" when filtered explicit modifiers.
+                //Here is no failure in this case.
+                if (!altIncluded) {
+                    System.out.println("Test failed :  modifiers doesn't contain a modifier from BUTTON2 or BUTTON3 "+extraModifiers + " in "+ h.get("modifiers"));
+                    throw new RuntimeException("Test failed :  modifiers doesn't contain a modifier from BUTTON2 or BUTTON3 "+extraModifiers + " in "+ h.get("modifiers"));
+                }
+            }
+        }
+
+        if (!extraModifiersButton3.equals("")){
+            if (modifierElements.contains(extraModifiersButton3)){
+                modifierElements.remove(extraModifiersButton3);
+            } else {
+                System.out.println("Test failed :  modifiers doesn't contain a modifier from BUTTON2 or BUTTON3 "+extraModifiersButton3 + " in "+ h.get("modifiers"));
+                throw new RuntimeException("Test failed :  modifiers doesn't contain a modifier from BUTTON2 or BUTTON3 "+extraModifiersButton3 + " in "+ h.get("modifiers"));
+            }
+        }
+
+        //the length of vector should now be zero
+        if (!modifierElements.isEmpty()){
+            System.out.println("Test failed :  there is some more elements in modifiers that shouldn't be there: "+h.get("modifiers"));
+            throw new RuntimeException("Test failed :  there is some more elements in modifiers that shouldn't be there: "+h.get("modifiers"));
+        }
+    }
+
+    public static void checkExtModifiersOnReleaseClick(int testModifier, HashMap h, int button){
+        String ethalon = "";
+        switch (testModifier){
+            case SHIFT:{
+                ethalon = "Shift+";
+                break;
+            }
+            case ALT:{
+                ethalon = "Alt+";
+                break;
+            }
+            case CTRL:{
+                ethalon = "Ctrl+";
+                break;
+            }
+            default: {
+                if (h.get("extModifiers") != null) {
+                    System.out.println("Test failed :  Released. extModifiers != null but no modifiers keys are pressed");
+                    throw new RuntimeException("Test failed :  Released. extModifiers != null but no modifiers keys are pressed");
+                } else {
+                    //no modifiers
+                    return;
+                }
+            }
+        }
+        if (h.get("extModifiers").equals(ethalon)) {
+            System.out.println("Test failed :  Released. extModifiers = "+ h.get("extModifiers") +" instead of : "+ethalon);
+            throw new RuntimeException("Test failed :  Released. extModifiers = "+ h.get("extModifiers") +" instead of : "+ethalon);
+        }
+    }
+
+    public static void checkReleasedModifiersTest(int testModifier, MouseEvent event){
+        int [] curStandardModifiers = getStandardArray(testModifier);
+        int [] curStandardExModifiers = getStandardExArray(testModifier);
+        //        int index = (button - 4)*3 + 1;
+        int button = event.getButton();
+        int modifiers = event.getModifiers();
+        int modifiersEx = event.getModifiersEx();
+        int index = (button - 1)*3 + 1;
+        dumpValues(button, modifiers, curStandardModifiers[index], modifiersEx, curStandardExModifiers[index]);
+        if (modifiers != curStandardModifiers[index]){
+            if (debug){
+                System.out.println("Test failed :  Released. modifiers != modifiersStandard");
+            } else {
+                throw new RuntimeException("Test failed :  Released. modifiers != modifiersStandard");
+            }
+        }
+        if (modifiersEx != curStandardExModifiers[index]){
+            if (debug){
+                System.out.println("Test failed :  Released. modifiersEx != curStandardExModifiers");
+            } else {
+                throw new RuntimeException("Test failed :  Released. modifiersEx != curStandardExModifiers");
+            }
+        }
+        HashMap <String, String> paramStringElements = tokenizeParamString(event.paramString());
+        System.out.println(event.paramString());
+        checkButton(paramStringElements, button);
+        checkModifiers(testModifier, paramStringElements, button);
+        checkExtModifiersOnReleaseClick(testModifier, paramStringElements, button);
+    }
+
+    public static void checkClickedModifiersTest(int testModifier, MouseEvent event){
+        int [] curStandardModifiers = getStandardArray(testModifier);
+        int [] curStandardExModifiers = getStandardExArray(testModifier);
+        //        int index = (button - 4)*3 + 2;
+        int button = event.getButton();
+        int modifiers = event.getModifiers();
+        int modifiersEx = event.getModifiersEx();
+        int index = (button - 1)*3 + 2;
+        dumpValues(button, modifiers, curStandardModifiers[index], modifiersEx, curStandardExModifiers[index]);
+        if (modifiers != curStandardModifiers[index]){
+            if (debug){
+                System.out.println("Test failed :  Clicked. modifiers != modifiersStandard");
+            } else {
+                throw new RuntimeException("Test failed :  Clicked. modifiers != modifiersStandard");
+            }
+        }
+        if (modifiersEx != curStandardExModifiers[index]){
+            if (debug){
+                System.out.println("Test failed :  Clicked. modifiersEx != curStandardExModifiers");
+            } else {
+                throw new RuntimeException("Test failed :  Clicked. modifiersEx != curStandardExModifiers");
+            }
+        }
+        HashMap <String, String> paramStringElements = tokenizeParamString(event.paramString());
+        checkButton(paramStringElements, button);
+        checkModifiers(testModifier, paramStringElements, button);
+        checkExtModifiersOnReleaseClick(testModifier, paramStringElements, button);
+    }
+    /*======================================================================*/
+
+    public static HashMap<String, String> tokenizeParamString(String param){
+        HashMap <String, String> params = new HashMap<String, String>();
+        StringTokenizer st = new StringTokenizer(param, ",=");
+        while (st.hasMoreTokens()){
+            String tmp = st.nextToken();
+//            System.out.println("PARSER : "+tmp);
+            if (tmp.equals("button") ||
+                    tmp.equals("modifiers") ||
+                    tmp.equals("extModifiers")) {
+                params.put(tmp, st.nextToken());
+            }
+        }
+        return params;
+    }
+
+    public static Vector<String> tokenizeModifiers(String modifierList){
+        Vector<String> modifiers = new Vector<String>();
+        StringTokenizer st = new StringTokenizer(modifierList, "+");
+        while (st.hasMoreTokens()){
+            String tmp = st.nextToken();
+            modifiers.addElement(tmp);
+            System.out.println("MODIFIER PARSER : "+tmp);
+        }
+        return modifiers;
+    }
+
+
+    //test BUTTON1, 2 and 3 without any modifiers keys
+    public static void  testPlainButtons(){
+        System.out.println("Testing buttons without modifiers.");
+        f.addMouseListener(adapterTest1);
+        for (int button : mouseButtons){
+            robot.mousePress(button);
+            robot.delay(100);
+            robot.mouseRelease(button);
+        }
+        robot.delay(1000);
+        f.removeMouseListener(adapterTest1);
+    }
+
+    //test BUTTON1, 2 and 3 with SHIFT key
+    public static void  testButtonsWithShift(){
+        System.out.println("Testing buttons with SHIFT modifier.");
+        f.addMouseListener(adapterTest2);
+
+        for (int button : mouseButtons){
+            robot.keyPress(KeyEvent.VK_SHIFT);
+            robot.mousePress(button);
+            robot.delay(100);
+            robot.mouseRelease(button);
+            robot.keyRelease(KeyEvent.VK_SHIFT);
+        }
+        robot.delay(1000);
+        f.removeMouseListener(adapterTest2);
+    }
+
+    //test BUTTON1, 2 and 3 with CTRL key
+    public static void  testButtonsWithControl(){
+        System.out.println("Testing buttons with CONTROL modifier.");
+        f.addMouseListener(adapterTest3);
+        for (int button : mouseButtons){
+            robot.keyPress(KeyEvent.VK_CONTROL);
+            robot.mousePress(button);
+            robot.delay(100);
+            robot.mouseRelease(button);
+            robot.keyRelease(KeyEvent.VK_CONTROL);
+        }
+        robot.delay(1000);
+        f.removeMouseListener(adapterTest3);
+    }
+
+    //test BUTTON1, 2 and 3 with ALT key
+    public static void  testButtonsWithAlt(){
+        System.out.println("Testing buttons with ALT modifier.");
+        f.addMouseListener(adapterTest4);
+        for (int button : mouseButtons){
+            robot.keyPress(KeyEvent.VK_ALT);
+            robot.mousePress(button);
+            robot.delay(100);
+            robot.mouseRelease(button);
+            robot.keyRelease(KeyEvent.VK_ALT);
+        }
+        robot.delay(1000);
+        f.removeMouseListener(adapterTest4);
+    }
+
+    public static void initParams(String []s){
+        if (s.length != 3){
+            autorun = true;
+            debug = false;
+            testModifier = NONE;
+        } else {
+            autorun = Boolean.valueOf(s[0]);
+            debug = Boolean.valueOf(s[1]);
+
+            if (s[2].equals("NONE")){
+                testModifier = NONE;
+            }
+            if (s[2].equals("SHIFT")){
+                testModifier = SHIFT;
+            }
+            if (s[2].equals("CTRL")){
+                testModifier = CTRL;
+            }
+            if (s[2].equals("ALT")){
+                testModifier = ALT;
+            }
+        }
+        System.out.println("Autorun : " +autorun);
+        System.out.println("Debug mode : " +debug);
+        System.out.println("Modifier to verify : " + testModifier);
+    }
+
+    public static void dumpValues(int button, int modifiers, int modifiersStandard, int modifiersEx, int modifiersExStandard){
+        System.out.println("Button = "+button + "Modifiers = "+ modifiers + " standard = "+ modifiersStandard);
+        System.out.println("                   ModifiersEx = "+ modifiersEx + " standardEx = "+ modifiersExStandard);
+    }
+
+    private static int[] getStandardExArray(int testModifier) {
+        int [] curStandardExModifiers;
+        switch (testModifier){
+            case SHIFT:
+                curStandardExModifiers = modifiersExStandardTestSHIFT;
+                break;
+            case CTRL:
+                curStandardExModifiers = modifiersExStandardTestCTRL;
+                break;
+            case ALT:
+                curStandardExModifiers = modifiersExStandardTestALT;
+                break;
+            default: //NONE by default
+                curStandardExModifiers = modifiersExStandardTestNONE;
+        }
+        return curStandardExModifiers;
+    }
+
+    private static int[] getStandardArray(int testModifier) {
+        int [] curStandardModifiers;
+        switch (testModifier){
+            case SHIFT:
+                curStandardModifiers = modifiersStandardTestSHIFT;
+                break;
+            case CTRL:
+                curStandardModifiers = modifiersStandardTestCTRL;
+                break;
+            case ALT:
+                curStandardModifiers = modifiersStandardTestALT;
+                break;
+            default: //NONE by default
+                curStandardModifiers = modifiersStandardTestNONE;
+        }
+        return curStandardModifiers;
+    }
+
+}
+
+
+/* A class that invoke appropriate verification
+ * routine with current modifier.
+ */
+class CheckingModifierAdapter extends MouseAdapter{
+    int modifier;
+    public CheckingModifierAdapter(int modifier){
+        this.modifier = modifier;
+    }
+
+    public void mousePressed(MouseEvent e) {
+        System.out.println("PRESSED "+e);
+        if (e.getButton() > MouseEvent.BUTTON3) {
+            System.out.println("Extra button affected. Skip.");
+        } else {
+            MouseModifiersUnitTest_Standard.checkPressedModifiersTest(modifier, e); // e.getButton(), e.getModifiers(), e.getModifiersEx(),
+        }
+    }
+    public void mouseReleased(MouseEvent e) {
+        System.out.println("RELEASED "+e);
+        if (e.getButton() > MouseEvent.BUTTON3) {
+            System.out.println("Extra button affected. Skip.");
+        } else {
+            MouseModifiersUnitTest_Standard.checkReleasedModifiersTest(modifier, e); // e.getButton(), e.getModifiers(), e.getModifiersEx()
+        }
+    }
+    public void mouseClicked(MouseEvent e) {
+        System.out.println("CLICKED "+e);
+        if (e.getButton() > MouseEvent.BUTTON3) {
+            System.out.println("Extra button affected. Skip.");
+        } else {
+            MouseModifiersUnitTest_Standard.checkClickedModifiersTest(modifier, e); //e.getButton(), e.getModifiers(), e.getModifiersEx()
+        }
+    }
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Robot/AcceptExtraMouseButtons/AcceptExtraMouseButtons.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,118 @@
+/*
+  @test %I% %E%
+  @bug 6315717
+  @summary verifies that Robot is accepting extra mouse buttons
+  @author Andrei Dmitriev : area=awt.mouse
+  @library ../../regtesthelpers
+  @build Util
+  @run main AcceptExtraMouseButtons
+ */
+
+//if we do robot.mousePress(InputEvent.BUTTON1_DOWN_MASK) the test must
+// 1) accept it (i.e. don't throw an IllegalArgumentException
+// 2) actually post a MouseEvent
+// Also, Robot should still accept InputEvent.BUTTONx_MASKs
+
+import java.awt.*;
+import java.awt.event.*;
+import sun.awt.SunToolkit;
+import test.java.awt.regtesthelpers.Util;
+
+public class AcceptExtraMouseButtons extends Frame {
+    static String tk = Toolkit.getDefaultToolkit().getClass().getName();
+    static Robot robot;
+    static int [] standardButtonMasks = {InputEvent.BUTTON1_MASK,
+                                         InputEvent.BUTTON2_MASK,
+                                         InputEvent.BUTTON3_MASK};
+    static int [] buttonsPressed;
+    static int [] buttonsReleased;
+    static int [] buttonsClicked;
+
+    static int buttonsNum = MouseInfo.getNumberOfButtons();
+
+    public static void main(String []s){
+
+        //MouseInfo.getNumberOfButtons() reports two more buttons on XToolkit
+        //as they reserved for wheel (both directions).
+        if (tk.equals("sun.awt.X11.XToolkit") || tk.equals("sun.awt.motif.MToolkit")) {
+            buttonsNum = buttonsNum - 2;
+        }
+        System.out.println("Number Of Buttons = "+ buttonsNum);
+        if (buttonsNum < 3) {
+            System.out.println("Linux and Windows systems should emulate three buttons if even there are only 1 or 2 are phsically available. Setting number of buttons to 3.");
+            buttonsNum = 3;
+        }
+
+        buttonsPressed = new int [buttonsNum];
+        buttonsReleased = new int [buttonsNum];
+        buttonsClicked = new int [buttonsNum];
+
+        AcceptExtraMouseButtons frame = new AcceptExtraMouseButtons();
+
+        MouseAdapter ma1 = new MouseAdapter() {
+                public void mousePressed(MouseEvent e) {
+                    buttonsPressed[e.getButton() - 1] += 1;
+                    System.out.println("PRESSED "+e);
+                }
+                public void mouseReleased(MouseEvent e) {
+                    buttonsReleased[e.getButton() - 1] += 1;
+                    System.out.println("RELEASED "+e);
+                }
+                public void mouseClicked(MouseEvent e) {
+                    buttonsClicked[e.getButton() - 1] += 1;
+                    System.out.println("CLICKED "+e);
+                }
+            };
+        frame.addMouseListener(ma1);
+
+        frame.setSize(300, 300);
+        frame.setVisible(true);
+
+        Util.waitForIdle(robot);  //a time to show a Frame
+
+        try {
+            robot = new Robot();
+            robot.delay(1000);
+            robot.mouseMove(frame.getLocationOnScreen().x + frame.getWidth()/2,
+                            frame.getLocationOnScreen().y + frame.getHeight()/2);
+
+            //TestCase 1: verify that all BUTTONx_DOWN_MASKs are accepted by the Robot.
+
+            for (int i = 0; i < buttonsNum; i++){
+                int buttonMask = InputEvent.getMaskForButton(i+1);
+                System.out.println("button to press = " +(i+1) + " : value passed to robot = " +buttonMask);
+                robot.mousePress(buttonMask);
+                robot.delay(30);
+                robot.mouseRelease(buttonMask);
+                Util.waitForIdle(robot);
+            }
+            for (int i = 0; i < buttonsNum; i++){
+                if (buttonsPressed[i] != 1 || buttonsReleased[i] != 1 || buttonsClicked[i] !=1 ) {
+                    throw new RuntimeException("TESTCASE 1 FAILED : button " + (i+1) + " wasn't single pressed|released|clicked : "+ buttonsPressed[i] +" : "+ buttonsReleased[i] +" : "+ buttonsClicked[i]);
+                }
+            }
+
+            java.util.Arrays.fill(buttonsPressed, 0);
+            java.util.Arrays.fill(buttonsReleased, 0);
+            java.util.Arrays.fill(buttonsClicked, 0);
+            //TestCase 2: verify that all BUTTONx_MASKs are accepted by the Robot.
+            for (int i = 0; i < standardButtonMasks.length; i++){
+                int buttonMask = standardButtonMasks[i];
+                System.out.println("button to press = " +(i+1) + " : value passed to robot = " +buttonMask);
+                robot.mousePress(buttonMask);
+                robot.delay(30);
+                robot.mouseRelease(buttonMask);
+                Util.waitForIdle(robot);
+            }
+            for (int i = 0; i < standardButtonMasks.length; i++){
+                if (buttonsPressed[i] != 1 || buttonsReleased[i] != 1 || buttonsClicked[i] !=1 ) {
+                    throw new RuntimeException("TESTCASE 2 FAILED : button " + (i+1) + " wasn't single pressed|released|clicked : "+ buttonsPressed[i] +" : "+ buttonsReleased[i] +" : "+ buttonsClicked[i]);
+                }
+            }
+
+        } catch (Exception e){
+            e.printStackTrace();
+            throw new RuntimeException(e);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Robot/ManualInstructions/ManualInstructions.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,305 @@
+/*
+  test %W% %E%  %I%, %G%
+  @bug 6315717
+  @summary  manual control over the Robot
+  @author Andrei Dmitriev : area=awt.robot
+  @run applet/manual=yesno ManualInstructions.html
+*/
+
+import java.applet.Applet;
+import java.awt.*;
+import java.awt.event.*;
+import java.util.Timer;
+import java.util.TimerTask;
+
+public class ManualInstructions extends Applet
+{
+    final static long SEND_DELAY = 1000;
+
+    public static void main(String s[]){
+        ManualInstructions mi = new ManualInstructions();
+        mi.init();
+        mi.start();
+    }
+
+    static Robot robot;
+    Point mouseLocation; //where mouse should be pressed each time
+    Panel target = new Panel();
+    Button pressOn = new Button("press on ...");
+    Button releaseOn = new Button("release on ...");
+    Button clickOn = new Button("click on ...");
+    Choice buttonNumber = new Choice();
+
+    public void init()
+    {
+        try {
+            robot = new Robot();
+        } catch (AWTException ex) {
+            ex.printStackTrace();
+            throw new RuntimeException(ex);
+        }
+        this.setLayout (new BorderLayout ());
+
+        target.setBackground(Color.green);
+        target.setName("GreenBox");//for the ease of debug
+        target.setPreferredSize(new Dimension(100, 100));
+        String toolkit = Toolkit.getDefaultToolkit().getClass().getName();
+
+        // on X systems two buttons are reserved for wheel though they are countable by MouseInfo.
+        int buttonsNumber = toolkit.equals("sun.awt.windows.WToolkit")?MouseInfo.getNumberOfButtons():MouseInfo.getNumberOfButtons()-2;
+
+        for (int i = 0; i < 8; i++){
+            buttonNumber.add("BUTTON"+(i+1)+"_MASK");
+        }
+
+        pressOn.addActionListener(new ActionListener(){
+                public void actionPerformed(ActionEvent e){
+                    System.out.println("Now pressing : " + (buttonNumber.getSelectedIndex()+1));
+
+                    Timer timer = new Timer();
+                    TimerTask robotInteraction = new TimerTask(){
+                            public void run(){
+                                robot.mouseMove(updateTargetLocation().x, updateTargetLocation().y);
+                                robot.mousePress(getMask(buttonNumber.getSelectedIndex()+1));
+                            }
+                        };
+                    timer.schedule(robotInteraction, SEND_DELAY);
+                }
+            });
+
+        releaseOn.addActionListener(new ActionListener(){
+            public void actionPerformed(ActionEvent e){
+                System.out.println("Now releasing : " + (buttonNumber.getSelectedIndex()+1));
+                Timer timer = new Timer();
+                TimerTask robotInteraction = new TimerTask(){
+                        public void run(){
+                            robot.mouseMove(updateTargetLocation().x, updateTargetLocation().y);
+                            robot.mouseRelease(getMask(buttonNumber.getSelectedIndex()+1));
+                        }
+                    };
+                timer.schedule(robotInteraction, SEND_DELAY);
+            }
+        });
+
+        clickOn.addActionListener(new ActionListener(){
+            public void actionPerformed(ActionEvent e){
+                System.out.println("Now clicking : " + (buttonNumber.getSelectedIndex()+1));
+                Timer timer = new Timer();
+                TimerTask robotInteraction = new TimerTask(){
+                        public void run(){
+                            robot.mouseMove(updateTargetLocation().x, updateTargetLocation().y);
+                            robot.mousePress(getMask(buttonNumber.getSelectedIndex()+1));
+                            robot.mouseRelease(getMask(buttonNumber.getSelectedIndex()+1));
+                        }
+                    };
+                timer.schedule(robotInteraction, SEND_DELAY);
+            }
+
+        });
+        target.addMouseListener(new MouseAdapter(){
+           public void mousePressed(MouseEvent e){
+                Sysout.println(""+e);
+           }
+           public void mouseReleased(MouseEvent e){
+                Sysout.println(""+e);
+           }
+           public void mouseClicked(MouseEvent e){
+                Sysout.println(""+e);
+           }
+        });
+
+        String[] instructions =
+        {
+            "Do provide an instruction to the robot by",
+            "choosing the button number to act and ",
+            "pressing appropriate java.awt.Button on the left.",
+            "Inspect an output in the TextArea below.",
+            "Please don't generate non-natural sequences like Release-Release, etc.",
+            "If you use keyboard be sure that you released the keyboard shortly.",
+            "If events are generated well press Pass, otherwise Fail."
+        };
+        Sysout.createDialogWithInstructions( instructions );
+
+    }//End  init()
+
+    private int getMask(int button){
+        return InputEvent.getMaskForButton(button);
+
+        /*
+            //this only works for standard buttons and for old JDK builds
+        int mask = 0;
+        switch (button){
+        case 1: {
+            mask = InputEvent.BUTTON1_MASK;
+            break;
+        }
+        case 2: {
+            mask = InputEvent.BUTTON2_MASK;
+            break;
+        }
+        case 3: {
+            mask = InputEvent.BUTTON3_MASK;
+            break;
+        }
+        }
+        return mask;
+        */
+    }
+
+    private Point updateTargetLocation() {
+        return new Point(target.getLocationOnScreen().x + target.getWidth()/2, target.getLocationOnScreen().y + target.getHeight()/2);
+    }
+
+    public void start ()
+    {
+        //Get things going.  Request focus, set size, et cetera
+        setSize (200,200);
+        setVisible(true);
+        validate();
+        Frame f = new Frame ("Set action for Robot here.");
+        f.setLayout(new FlowLayout());
+        f.add(buttonNumber);
+        f.add(pressOn);
+        f.add(releaseOn);
+        f.add(clickOn);
+        f.add(target);
+        f.pack();
+        f.setVisible(true);
+     }// start()
+}// class
+
+/* Place other classes related to the test after this line */
+
+
+/****************************************************
+ Standard Test Machinery
+ DO NOT modify anything below -- it's a standard
+  chunk of code whose purpose is to make user
+  interaction uniform, and thereby make it simpler
+  to read and understand someone else's test.
+ ****************************************************/
+
+/**
+ This is part of the standard test machinery.
+ It creates a dialog (with the instructions), and is the interface
+  for sending text messages to the user.
+ To print the instructions, send an array of strings to Sysout.createDialog
+  WithInstructions method.  Put one line of instructions per array entry.
+ To display a message for the tester to see, simply call Sysout.println
+  with the string to be displayed.
+ This mimics System.out.println but works within the test harness as well
+  as standalone.
+ */
+
+class Sysout
+{
+    private static TestDialog dialog;
+
+    public static void createDialogWithInstructions( String[] instructions )
+    {
+        dialog = new TestDialog( new Frame(), "Instructions" );
+        dialog.printInstructions( instructions );
+        dialog.setVisible(true);
+        println( "Any messages for the tester will display here." );
+    }
+
+    public static void createDialog( )
+    {
+        dialog = new TestDialog( new Frame(), "Instructions" );
+        String[] defInstr = { "Instructions will appear here. ", "" } ;
+        dialog.printInstructions( defInstr );
+        dialog.setVisible(true);
+        println( "Any messages for the tester will display here." );
+    }
+
+    public static void printInstructions( String[] instructions )
+    {
+        dialog.printInstructions( instructions );
+    }
+
+
+    public static void println( String messageIn )
+    {
+        dialog.displayMessage( messageIn );
+    }
+
+}// Sysout  class
+
+/**
+  This is part of the standard test machinery.  It provides a place for the
+   test instructions to be displayed, and a place for interactive messages
+   to the user to be displayed.
+  To have the test instructions displayed, see Sysout.
+  To have a message to the user be displayed, see Sysout.
+  Do not call anything in this dialog directly.
+  */
+class TestDialog extends Dialog
+{
+
+    TextArea instructionsText;
+    TextArea messageText;
+    int maxStringLength = 120;
+
+    //DO NOT call this directly, go through Sysout
+    public TestDialog( Frame frame, String name )
+    {
+        super( frame, name );
+        int scrollBoth = TextArea.SCROLLBARS_BOTH;
+        instructionsText = new TextArea( "", 15, maxStringLength, scrollBoth );
+        add( "North", instructionsText );
+
+        messageText = new TextArea( "", 5, maxStringLength, scrollBoth );
+        add("Center", messageText);
+
+        pack();
+
+        setVisible(true);
+    }// TestDialog()
+
+    //DO NOT call this directly, go through Sysout
+    public void printInstructions( String[] instructions )
+    {
+        //Clear out any current instructions
+        instructionsText.setText( "" );
+
+        //Go down array of instruction strings
+
+        String printStr, remainingStr;
+        for( int i=0; i < instructions.length; i++ )
+        {
+            //chop up each into pieces maxSringLength long
+            remainingStr = instructions[ i ];
+            while( remainingStr.length() > 0 )
+            {
+                //if longer than max then chop off first max chars to print
+                if( remainingStr.length() >= maxStringLength )
+                {
+                    //Try to chop on a word boundary
+                    int posOfSpace = remainingStr.
+                        lastIndexOf( ' ', maxStringLength - 1 );
+
+                    if( posOfSpace <= 0 ) posOfSpace = maxStringLength - 1;
+
+                    printStr = remainingStr.substring( 0, posOfSpace + 1 );
+                    remainingStr = remainingStr.substring( posOfSpace + 1 );
+                }
+                //else just print
+                else
+                {
+                    printStr = remainingStr;
+                    remainingStr = "";
+                }
+
+                instructionsText.append( printStr + "\n" );
+            }// while
+        }// for
+    }//printInstructions()
+
+    //DO NOT call this directly, go through Sysout
+    public void displayMessage( String messageIn )
+    {
+        messageText.append( messageIn + "\n" );
+        System.out.println(messageIn);
+    }
+
+}// TestDialog  class
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Robot/RobotExtraButton/RobotExtraButton.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,79 @@
+/*
+  @test %I% %E%
+  @bug 6315717
+  @summary verifies that robot could accept extra buttons
+  @author Andrei Dmitriev : area=awt.mouse
+  @library ../../regtesthelpers
+  @build Util
+  @run main RobotExtraButton
+ */
+
+import java.awt.*;
+import java.awt.event.*;
+import test.java.awt.regtesthelpers.Util;
+
+public class RobotExtraButton extends Frame {
+    static Robot robot;
+    public static void main(String []s){
+        RobotExtraButton frame = new RobotExtraButton();
+        frame.setSize(300, 300);
+        frame.setVisible(true);
+        frame.addMouseListener(new MouseAdapter() {
+                public void mousePressed(MouseEvent e) {
+                    System.out.println("PRESSED "+e);
+                }
+                public void mouseReleased(MouseEvent e) {
+                    System.out.println("RELEASED "+e);
+                }
+                public void mouseClicked(MouseEvent e) {
+                    System.out.println("CLICKED "+e);
+                }
+            });
+        Util.waitForIdle(robot);
+        int [] buttonMask = new int[MouseInfo.getNumberOfButtons()]; // = InputEvent.getButtonDownMasks();
+        for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
+            buttonMask[i] = InputEvent.getMaskForButton(i+1);
+            System.out.println("TEST: "+buttonMask[i]);
+        }
+
+        try {
+            robot = new Robot();
+            robot.mouseMove(frame.getLocationOnScreen().x + frame.getWidth()/2, frame.getLocationOnScreen().y + frame.getHeight()/2);
+            /*
+            if (MouseInfo.getNumberOfButtons() <= 3) {
+                System.out.println("Number Of Buttons = "+ MouseInfo.getNumberOfButtons() +". Finish!");
+                return;
+                }*/
+
+            System.out.println("TEST: press 1");
+            robot.mousePress(InputEvent.BUTTON1_MASK);
+            robot.delay(50);
+            robot.mouseRelease(InputEvent.BUTTON1_MASK);
+            Util.waitForIdle(robot);
+
+            System.out.println("TEST: press 2");
+
+            robot.mousePress(InputEvent.BUTTON2_MASK);
+            robot.delay(50);
+            robot.mouseRelease(InputEvent.BUTTON2_MASK);
+            Util.waitForIdle(robot);
+            System.out.println("TEST: press 3");
+
+            robot.mousePress(InputEvent.BUTTON3_MASK);
+            robot.delay(50);
+            robot.mouseRelease(InputEvent.BUTTON3_MASK);
+            Util.waitForIdle(robot);
+            System.out.println("--------------------------------------------------");
+            for (int i = 0; i < buttonMask.length; i++){
+                System.out.println("button would = " +i + " : value = " +buttonMask[i]);
+                robot.mousePress(buttonMask[i]);
+                robot.delay(50);
+                robot.mouseRelease(buttonMask[i]);
+                Util.waitForIdle(robot);
+            }
+        } catch (Exception e){
+            e.printStackTrace();
+            throw new RuntimeException("Test failed.", e);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Toolkit/Headless/AWTEventListener/AWTListener.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,48 @@
+/*
+  @test
+  @bug 6738181
+  @library ../../../regtesthelpers
+  @build Sysout
+  @summary Toolkit.getAWTEventListeners returns empty array
+  @author andrei dmitriev: area=awt.headless
+  @run main/othervm -Djava.awt.headless=true AWTListener
+*/
+
+/**
+ * In a headless mode add a listener for container events.
+ * Check if a single listener is still assigned to the Toolkit class.
+ */
+
+import java.awt.*;
+import java.awt.event.*;
+import test.java.awt.regtesthelpers.Sysout;
+
+public class AWTListener {
+    public static void main(String []s) {
+        Toolkit toolkit = Toolkit.getDefaultToolkit();
+
+        AWTEventListener orig = new AWTEventListener() {
+                public void eventDispatched(AWTEvent event) { }
+            };
+
+        Sysout.println("Test: listener to add = " +orig);
+        toolkit.addAWTEventListener(orig, AWTEvent.CONTAINER_EVENT_MASK);
+
+        for (AWTEventListener l: toolkit.getAWTEventListeners()){
+            Sysout.println("Test: listener = " +l+" ");
+        }
+
+        if ( toolkit.getAWTEventListeners().length == 0 ) {
+            throw new RuntimeException("Case 1. An empty array returned unexpectedly");
+        }
+
+        for (AWTEventListener l: toolkit.getAWTEventListeners(AWTEvent.CONTAINER_EVENT_MASK)){
+            Sysout.println("Test: listener = " +l);
+         }
+
+        if ( toolkit.getAWTEventListeners(AWTEvent.CONTAINER_EVENT_MASK).length == 0 ) {
+            throw new RuntimeException("Case 2. An empty array returned unexpectedly");
+        }
+        Sysout.println("Test PASSED");
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_1.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,36 @@
+/*
+  @test %I% %E%
+  @bug 6315717
+  @summary verifies that system property sun.awt.enableExtraMouseButtons is true by default
+  @author Andrei Dmitriev : area=awt.mouse
+  @run main SystemPropTest_1
+ */
+//1) Verifies that System.getProperty("sun.awt.enableExtraMouseButtons") returns false initially.
+//2) Verifies that Toolkit.areExtraMouseButtonsEnabled() returns true by default.
+// This must initlizes the Toolkit class.
+//3) Verifies that System.getProperty("sun.awt.enableExtraMouseButtons") returns true (default).
+import java.awt.*;
+
+public class SystemPropTest_1 {
+
+    public static void main(String []s){
+        boolean propValue = Boolean.parseBoolean(System.getProperty("sun.awt.enableExtraMouseButtons"));
+        System.out.println("1. System.getProperty = " + propValue);
+        if (propValue){
+            throw new RuntimeException("TEST FAILED(1) : System property sun.awt.enableExtraMouseButtons = " + propValue);
+        }
+        if (!Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled()){
+            throw new RuntimeException("TEST FAILED : Toolkit.areExtraMouseButtonsEnabled() returns false");
+        }
+
+        System.getProperties().list(System.out);
+        System.out.println("XXXX. System.getProperty = " + System.getProperty("sun.awt.enableExtraMouseButtons"));
+
+        propValue = Boolean.parseBoolean(System.getProperty("sun.awt.enableExtraMouseButtons"));
+        System.out.println("2. System.getProperty = " + propValue);
+        if (!propValue){
+            throw new RuntimeException("TEST FAILED(2) : System property sun.awt.enableExtraMouseButtons = " + propValue);
+        }
+        System.out.println("Test passed.");
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_2.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,25 @@
+/*
+  @test %I% %E%
+  @bug 6315717
+  @summary verifies that system property sun.awt.enableExtraMouseButtons might be set to true by the command line
+  @author Andrei Dmitriev : area=awt.mouse
+  @run main/othervm -Dsun.awt.enableExtraMouseButtons=true SystemPropTest_2
+ */
+//1) Verifies that System.getProperty("sun.awt.enableExtraMouseButtons") returns true if set through the command line.
+//2) Verifies that Toolkit.areExtraMouseButtonsEnabled() returns true if the proprty is set through the command line.
+import java.awt.*;
+
+public class SystemPropTest_2 {
+
+    public static void main(String []s){
+        boolean propValue = Boolean.parseBoolean(System.getProperty("sun.awt.enableExtraMouseButtons"));
+        System.out.println("System.getProperty = " + propValue);
+        if (!propValue){
+            throw new RuntimeException("TEST FAILED : System property sun.awt.enableExtraMouseButtons = " + propValue);
+        }
+        if (!Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled()){
+            throw new RuntimeException("TEST FAILED : Toolkit.areExtraMouseButtonsEnabled() returns false");
+        }
+        System.out.println("Test passed.");
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_3.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,26 @@
+/*
+  @test %I% %E%
+  @bug 6315717
+  @summary verifies that system property sun.awt.enableExtraMouseButtons might be set to false by the command line
+  @author Andrei Dmitriev : area=awt.mouse
+  @run main/othervm -Dsun.awt.enableExtraMouseButtons=false SystemPropTest_3
+ */
+//1) Verifies that System.getProperty("sun.awt.enableExtraMouseButtons") returns false if set through the command line.
+//2) Verifies that Toolkit.areExtraMouseButtonsEnabled() returns false if the proprty is set through the command line.
+import java.awt.*;
+
+public class SystemPropTest_3 {
+
+    public static void main(String []s){
+        boolean propValue = Boolean.parseBoolean(System.getProperty("sun.awt.enableExtraMouseButtons"));
+        System.out.println("Test System.getProperty = " + System.getProperty("sun.awt.enableExtraMouseButtons"));
+        System.out.println("System.getProperty = " + propValue);
+        if (propValue){
+            throw new RuntimeException("TEST FAILED : System property sun.awt.enableExtraMouseButtons = " + propValue);
+        }
+        if (Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled()){
+            throw new RuntimeException("TEST FAILED : Toolkit.areExtraMouseButtonsEnabled() returns true");
+        }
+        System.out.println("Test passed.");
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_4.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,42 @@
+/*
+  @test %I% %E%
+  @bug 6315717
+  @summary verifies that system property sun.awt.enableExtraMouseButtons might be set to true by the System class API.
+  @author Andrei Dmitriev : area=awt.mouse
+  @run main SystemPropTest_4
+ */
+//1)
+// - Use System.setProperty("sun.awt.enableExtraMouseButtons", "true")
+// - Verifies that System.getProperty("sun.awt.enableExtraMouseButtons") returns true
+// - Verifies that Toolkit.areExtraMouseButtonsEnabled() returns true.
+//2)
+// - Use System.setProperty("sun.awt.enableExtraMouseButtons", "false")
+// - Verifies that System.getProperty("sun.awt.enableExtraMouseButtons") returns false
+// - Verifies that Toolkit.areExtraMouseButtonsEnabled() returns true still.
+
+import java.awt.*;
+
+public class SystemPropTest_4 {
+    public static void main(String []s){
+        System.out.println("STAGE 1");
+        System.setProperty("sun.awt.enableExtraMouseButtons", "true");
+        boolean propValue = Boolean.parseBoolean(System.getProperty("sun.awt.enableExtraMouseButtons"));
+        if (!propValue){
+            throw new RuntimeException("TEST FAILED(1) : System property sun.awt.enableExtraMouseButtons = " + propValue);
+        }
+        if (!Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled()){
+            throw new RuntimeException("TEST FAILED(1) : Toolkit.areExtraMouseButtonsEnabled() returns false");
+        }
+
+        System.out.println("STAGE 2");
+        System.setProperty("sun.awt.enableExtraMouseButtons", "false");
+        propValue = Boolean.parseBoolean(System.getProperty("sun.awt.enableExtraMouseButtons"));
+        if (propValue){
+            throw new RuntimeException("TEST FAILED(2) : System property sun.awt.enableExtraMouseButtons = " + propValue);
+        }
+        if (!Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled()){
+            throw new RuntimeException("TEST FAILED(2) : Toolkit.areExtraMouseButtonsEnabled() returns false");
+        }
+        System.out.println("Test passed.");
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_5.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,42 @@
+/*
+  @test %I% %E%
+  @bug 6315717
+  @summary verifies that system property sun.awt.enableExtraMouseButtons might be set to false by the System class API.
+  @author Andrei Dmitriev : area=awt.mouse
+  @run main SystemPropTest_5
+ */
+//1)
+// - Use System.setProperty("sun.awt.enableExtraMouseButtons", "false")
+// - Verifies that System.getProperty("sun.awt.enableExtraMouseButtons") returns false
+// - Verifies that Toolkit.areExtraMouseButtonsEnabled() returns false.
+//2)
+// - Use System.setProperty("sun.awt.enableExtraMouseButtons", "true")
+// - Verifies that System.getProperty("sun.awt.enableExtraMouseButtons") returns true
+// - Verifies that Toolkit.areExtraMouseButtonsEnabled() returns false still.
+
+import java.awt.*;
+
+public class SystemPropTest_5 {
+    public static void main(String []s){
+        System.out.println("STAGE 1");
+        System.setProperty("sun.awt.enableExtraMouseButtons", "false");
+        boolean propValue = Boolean.parseBoolean(System.getProperty("sun.awt.enableExtraMouseButtons"));
+        if (propValue){
+            throw new RuntimeException("TEST FAILED(1) : System property sun.awt.enableExtraMouseButtons = " + propValue);
+        }
+        if (Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled()){
+            throw new RuntimeException("TEST FAILED(1) : Toolkit.areExtraMouseButtonsEnabled() returns true");
+        }
+
+        System.out.println("STAGE 2");
+        System.setProperty("sun.awt.enableExtraMouseButtons", "true");
+        propValue = Boolean.parseBoolean(System.getProperty("sun.awt.enableExtraMouseButtons"));
+        if (!propValue){
+            throw new RuntimeException("TEST FAILED(2) : System property sun.awt.enableExtraMouseButtons = " + propValue);
+        }
+        if (Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled()){
+            throw new RuntimeException("TEST FAILED(2) : Toolkit.areExtraMouseButtonsEnabled() returns true");
+        }
+        System.out.println("Test passed.");
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Toolkit/ToolkitPropertyTest/ToolkitPropertyTest_Disable.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,143 @@
+/*
+  @test %I% %E%
+  @bug 6315717
+  @summary verifies that sun.awt.enableExtraMouseButtons = false consumes extra events
+  @author Andrei Dmitriev : area=awt.mouse
+  @run main/othervm -Dsun.awt.enableExtraMouseButtons=false ToolkitPropertyTest_Disable
+ */
+
+import java.awt.*;
+import java.awt.event.*;
+
+// Testcase 1: set to FALSE and check
+// Testcase 2: set to FALSE and check that extra events are not coming
+//                              check that standard events are coming
+
+public class ToolkitPropertyTest_Disable extends Frame {
+    static boolean propValue;
+    static Robot robot;
+    static int [] buttonsPressed;
+    static int [] buttonsReleased;
+    static int [] buttonsClicked;
+
+    static boolean lessThenFourButtons;
+
+    public static void main(String []s){
+        propValue = Boolean.parseBoolean(System.getProperty("sun.awt.enableExtraMouseButtons"));
+        buttonsPressed = new int [MouseInfo.getNumberOfButtons()];
+        buttonsReleased = new int [MouseInfo.getNumberOfButtons()];
+        buttonsClicked = new int [MouseInfo.getNumberOfButtons()];
+
+        ToolkitPropertyTest_Disable frame = new ToolkitPropertyTest_Disable();
+        frame.setSize(300, 300);
+        frame.setVisible(true);
+
+        MouseAdapter ma1 = new MouseAdapter() {
+                public void mousePressed(MouseEvent e) {
+                    buttonsPressed[e.getButton() - 1] += 1;
+                    System.out.println("PRESSED "+e);
+                }
+                public void mouseReleased(MouseEvent e) {
+                    buttonsReleased[e.getButton() - 1] += 1;
+                    System.out.println("RELEASED "+e);
+                }
+                public void mouseClicked(MouseEvent e) {
+                    buttonsClicked[e.getButton() - 1] += 1;
+                    System.out.println("CLICKED "+e);
+                }
+            };
+
+        try {
+            robot = new Robot();
+            robot.delay(1000);
+            robot.mouseMove(frame.getLocationOnScreen().x + frame.getWidth()/2, frame.getLocationOnScreen().y + frame.getHeight()/2);
+
+            System.out.println("Property = " + propValue);
+            testCase0();
+
+            testCase1();
+            System.out.println("Number Of Buttons = "+ MouseInfo.getNumberOfButtons());
+
+            lessThenFourButtons = (MouseInfo.getNumberOfButtons() <= 3);
+            if ( !lessThenFourButtons ) {
+                frame.addMouseListener(ma1);
+                testCase2();
+            }
+        } catch (Exception e){
+            e.printStackTrace();
+//            throw new RuntimeException(e);
+        } finally {
+//            frame.removeMouseListener(ma1);
+        }
+    }
+
+    public static void testCase0(){
+        if (propValue){
+            throw new RuntimeException("TEST FAILED (0): System property sun.awt.enableExtraMouseButtons = " + propValue);
+        }
+    }
+
+    public static void testCase1(){
+        if (Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled() == true){
+            throw new RuntimeException("TEST FAILED (1): setting to FALSE. Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled() = " + Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled());
+        }
+    }
+
+    public static void testCase2(){
+        emptyArrays();
+        int [] buttonMasks = new int[MouseInfo.getNumberOfButtons()]; // = InputEvent.getButtonDownMasks();
+        for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
+            buttonMasks[i] = InputEvent.getMaskForButton(i+1);
+            System.out.println("TEST: "+buttonMasks[i]);
+        }
+
+        for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
+            System.out.println("button to press = " +(i+1) + " : value passed to robot = " +buttonMasks[i]);
+            try {
+                robot.mousePress(buttonMasks[i]);
+                robot.delay(70);
+                robot.mouseRelease(buttonMasks[i]);
+                robot.delay(200);
+                //no exception is thrown
+                if (i >= 3) {
+                    throw new RuntimeException("TESTCASE 2 FAILED : robot accepted the extra button " + (i+1) + " instead of throwing an exception.");
+                }
+            } catch (IllegalArgumentException e){
+                if (i >= 3) {
+                    System.out.println("Passed: an exception caught for extra button.");
+                } else {
+                    throw new RuntimeException("TESTCASE 2 FAILED : exception happen on standard button.", e);
+                }
+            }
+        }
+        robot.delay(2000);
+        if (MouseInfo.getNumberOfButtons() < 3) {
+            for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
+                if (buttonsPressed[i] != 1 || buttonsReleased[i] != 1 || buttonsClicked[i] !=1 ) {
+                    throw new RuntimeException("TESTCASE 2 FAILED : button " + (i+1) + " wasn't single pressed.");
+                }
+            }
+        } else {
+            for (int i = 0; i < 3; i++){
+                if (buttonsPressed[i] != 1 || buttonsReleased[i] != 1 || buttonsClicked[i] !=1 ) {
+                    throw new RuntimeException("TESTCASE 2 FAILED : button " + (i+1) + " wasn't single pressed.");
+                }
+            }
+
+            for (int i = 3; i < MouseInfo.getNumberOfButtons(); i++){
+                if (buttonsPressed[i] != 0 || buttonsReleased[i] != 0 || buttonsClicked[i] != 0 ) {
+                    throw new RuntimeException("TESTCASE 2 FAILED : button " + (i+1) + " was pressed.");
+                }
+            }
+        }
+    }
+
+    public static void emptyArrays(){
+        for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
+            buttonsPressed[i] = 0;
+            buttonsReleased[i] = 0;
+            buttonsClicked[i] = 0;
+        }
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Toolkit/ToolkitPropertyTest/ToolkitPropertyTest_Enable.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,120 @@
+/*
+  @test %I% %E%
+  @bug 6315717
+  @summary verifies that sun.awt.enableExtraMouseButtons is working
+  @author Andrei Dmitriev : area=awt.mouse
+  @run main/othervm -Dsun.awt.enableExtraMouseButtons=true ToolkitPropertyTest_Enable
+ */
+
+import java.awt.*;
+import java.awt.event.*;
+
+// Testcase 1: set to TRUE (via jtreg option)
+// Testcase 2: set to TRUE and check that extra events are coming
+//                             check that standard events are coming
+
+public class ToolkitPropertyTest_Enable extends Frame {
+    static boolean propValue;
+    static Robot robot;
+    static int [] buttonsPressed;
+    static int [] buttonsReleased;
+    static int [] buttonsClicked;
+
+    public static void main(String []s){
+        propValue = Boolean.parseBoolean(System.getProperty("sun.awt.enableExtraMouseButtons"));
+        buttonsPressed = new int [MouseInfo.getNumberOfButtons()];
+        buttonsReleased = new int [MouseInfo.getNumberOfButtons()];
+        buttonsClicked = new int [MouseInfo.getNumberOfButtons()];
+
+        ToolkitPropertyTest_Enable frame = new ToolkitPropertyTest_Enable();
+        frame.setSize(300, 300);
+        frame.setVisible(true);
+
+        MouseAdapter ma1 = new MouseAdapter() {
+                public void mousePressed(MouseEvent e) {
+                    buttonsPressed[e.getButton() - 1] += 1;
+                    System.out.println("PRESSED "+e);
+                }
+                public void mouseReleased(MouseEvent e) {
+                    buttonsReleased[e.getButton() - 1] += 1;
+                    System.out.println("RELEASED "+e);
+                }
+                public void mouseClicked(MouseEvent e) {
+                    buttonsClicked[e.getButton() - 1] += 1;
+                    System.out.println("CLICKED "+e);
+                }
+            };
+        //        frame.addMouseListener(ma1);
+
+        try {
+            robot = new Robot();
+            robot.delay(1000);
+            robot.mouseMove(frame.getLocationOnScreen().x + frame.getWidth()/2, frame.getLocationOnScreen().y + frame.getHeight()/2);
+
+            System.out.println("Property = " + propValue);
+            testCase0();
+
+            testCase1();
+            System.out.println("Number Of Buttons = "+ MouseInfo.getNumberOfButtons());
+
+            boolean lessThenFourButtons = (MouseInfo.getNumberOfButtons() <= 3);
+            if ( !lessThenFourButtons ) {
+                frame.addMouseListener(ma1);
+                testCase2();
+                //                testCase3();
+                //                testCase4();
+                frame.removeMouseListener(ma1);
+            }
+        } catch (Exception e){
+            e.printStackTrace();
+            throw new RuntimeException(e);
+        }
+
+    }
+
+    public static void testCase0(){
+        if (!propValue){
+            throw new RuntimeException("TEST FAILED (0) : System property sun.awt.enableExtraMouseButtons = " + propValue);
+        }
+    }
+
+    public static void testCase1(){
+        if (Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled() == false){
+            throw new RuntimeException("TEST FAILED (1) : setting to TRUE. enabled = " + Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled());
+        }
+    }
+
+    public static void testCase2(){
+        emptyArrays();
+        //we can't post a message from an unexistent button
+        int [] buttonMasks = new int[MouseInfo.getNumberOfButtons()]; // = InputEvent.getButtonDownMasks();
+        for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
+            buttonMasks[i] = InputEvent.getMaskForButton(i+1);
+            System.out.println("TEST: "+buttonMasks[i]);
+        }
+
+        for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
+            System.out.println("button to press = " +(i+1) + " : value passed to robot = " +buttonMasks[i]);
+            robot.mousePress(buttonMasks[i]);
+            robot.delay(70);
+            robot.mouseRelease(buttonMasks[i]);
+            robot.delay(200);
+        }
+        robot.delay(1000);
+
+        for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
+            if (buttonsPressed[i] != 1 || buttonsReleased[i] != 1 || buttonsClicked[i] !=1 ) {
+                throw new RuntimeException("TESTCASE 2 FAILED : button " + (i+1) + " wasn't single pressed|released|clicked : "+ buttonsPressed[i] +" : "+ buttonsReleased[i] +" : "+ buttonsClicked[i]);
+            }
+        }
+    }
+
+    public static void emptyArrays(){
+        for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
+            buttonsPressed[i] = 0;
+            buttonsReleased[i] = 0;
+            buttonsClicked[i] = 0;
+        }
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Window/OwnedWindowsLeak/OwnedWindowsLeak.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,104 @@
+/*
+ * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+  @test
+  @bug 6758673
+  @summary Tests that windows are removed from owner's child windows list
+  @author art: area=awt.toplevel
+  @run main OwnedWindowsLeak
+*/
+
+import java.awt.*;
+import java.awt.event.*;
+
+import java.lang.ref.*;
+import java.lang.reflect.*;
+
+import java.util.*;
+
+public class OwnedWindowsLeak
+{
+    public static void main(String[] args)
+    {
+        Frame owner = new Frame("F");
+
+        // First, create many windows
+        Vector<WeakReference<Window>> children =
+            new Vector<WeakReference<Window>>();
+        for (int i = 0; i < 1000; i++)
+        {
+            Window child = new Window(owner);
+            children.add(new WeakReference<Window>(child));
+        }
+
+        // Second, make sure all the memory is allocated
+        Vector garbage = new Vector();
+        while (true)
+        {
+            try
+            {
+                garbage.add(new byte[1000]);
+            }
+            catch (OutOfMemoryError e)
+            {
+                break;
+            }
+        }
+
+        // Third, make sure all the weak references are null
+        for (WeakReference<Window> ref : children)
+        {
+            if (ref.get() != null)
+            {
+                throw new RuntimeException("Test FAILED: some of child windows are not GCed");
+            }
+        }
+
+        // Fourth, make sure owner's children list contains no elements
+        try
+        {
+            Field f = Window.class.getDeclaredField("ownedWindowList");
+            f.setAccessible(true);
+            Vector ownersChildren = (Vector)f.get(owner);
+            if (ownersChildren.size() > 0)
+            {
+                throw new RuntimeException("Test FAILED: some of the child windows are not removed from owner's children list");
+            }
+        }
+        catch (NoSuchFieldException z)
+        {
+            System.out.println("Test PASSED: no 'ownedWindowList' field in Window class");
+            return;
+        }
+        catch (Exception z)
+        {
+            throw new RuntimeException("Test FAILED: unexpected exception", z);
+        }
+
+        // Test passed
+        System.out.println("Test PASSED");
+
+        owner.dispose();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/event/InputEvent/ButtonArraysEquality/ButtonArraysEquality.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,83 @@
+/*
+  @test %I% %E%
+  @bug 6315717
+  @summary verifies that InputEvents button masks arrays are the same
+  @author Andrei Dmitriev : area=awt.event
+  @run main ButtonArraysEquality
+ */
+
+import java.awt.*;
+import java.awt.event.*;
+import java.lang.reflect.*;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+
+// get array InputEvent.BUTTON_MASK via reflection
+// get array InputEvent.BUTTON_DOWN_MASK via reflection
+// compare their lengths and values
+
+public class ButtonArraysEquality {
+    static int [] eventDownMask = new int []{InputEvent.BUTTON1_DOWN_MASK, InputEvent.BUTTON2_DOWN_MASK, InputEvent.BUTTON3_DOWN_MASK};
+
+    public static void main(String []s){
+        int [] buttonDownMasksAPI = new int [MouseInfo.getNumberOfButtons()];
+        for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
+            buttonDownMasksAPI[i] = InputEvent.getMaskForButton(i+1);
+            System.out.println("TEST: "+buttonDownMasksAPI[i]);
+        }
+
+        // getButtonDownMasks()
+        Object obj = AccessController.doPrivileged(
+                                            new PrivilegedAction() {
+                                                public Object run() {
+                                                    try {
+                                                        Class clazz = Class.forName("java.awt.event.InputEvent");
+                                                        Method method  = clazz.getDeclaredMethod("getButtonDownMasks",new Class [] {});
+                                                        if (method != null) {
+                                                            method.setAccessible(true);
+                                                            return method.invoke(null, (Object[])null);
+                                                        }
+                                                    }catch (Exception e){
+                                                        throw new RuntimeException("Test failed. Exception occured:", e);
+                                                    }
+                                                    return null;
+                                                }
+                                            });
+
+        int [] buttonDownMasks = new int [Array.getLength(obj)];
+        checkNullAndPutValuesToArray(buttonDownMasks, obj);
+
+        //check lengths: array shouldn't contain less elements then the number of buttons on a mouse
+        if (buttonDownMasks.length < buttonDownMasksAPI.length){
+            throw new RuntimeException("Test failed. The lengths array is less then the number of buttons");
+        }
+
+        // verify values for first three buttons
+        for (int i = 0; i < 3; i++) {
+            if (eventDownMask[i] != buttonDownMasks[i])
+            {
+                System.out.println("Test : "+ i + " | " + " | " +eventDownMask[i] + " | "+ buttonDownMasks[i]);
+                throw new RuntimeException("Failure: masks are not correct for standard buttons");
+            }
+        }
+
+        // verify values for extra buttons if any
+        for (int i = 3; i < MouseInfo.getNumberOfButtons(); i++) {
+            if (buttonDownMasksAPI[i] != buttonDownMasks[i]) {
+                throw new RuntimeException("Failure: masks are not the same for extra buttons");
+            }
+        }
+        System.out.println("Test passed.");
+    }
+
+    public static void checkNullAndPutValuesToArray(int [] array, Object obj){
+        if (obj == null){
+            throw new RuntimeException("Test failed. The array obtained via reflection is "+obj);
+        }
+
+        for (int i = 0; i < Array.getLength(obj); i++){
+            System.out.println("Test (Reflection): "+ Array.getInt(obj, i));
+            array[i] = Array.getInt(obj, i);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/event/MouseEvent/AcceptExtraButton/AcceptExtraButton.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,53 @@
+/*
+  @test %I% %E%
+  @bug 6315717
+  @summary verifies that MouseEvent CTOR accepts extra mouse button numbers
+  @author Andrei Dmitriev : area=awt.event
+  @run main AcceptExtraButton
+ */
+
+//package acceptextrabutton;
+
+import java.awt.*;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseAdapter;
+
+public class AcceptExtraButton extends Frame {
+    static int [] eventID = new int []{MouseEvent.MOUSE_PRESSED, MouseEvent.MOUSE_RELEASED, MouseEvent.MOUSE_CLICKED};
+
+    public static void main(String []s){
+        AcceptExtraButton f = new AcceptExtraButton();
+        f.setSize(300, 300);
+        f.setVisible(true);
+
+        for (int buttonId = 0; buttonId<eventID.length; buttonId++) {
+            for (int button = 0; button <= MouseInfo.getNumberOfButtons(); button++){
+                System.out.println("button == "+button);
+                MouseEvent me = new MouseEvent(f,
+                                               eventID[buttonId],
+                                               System.currentTimeMillis(),
+                                               0, //MouseEvent.BUTTON1_DOWN_MASK, modifiers
+                                               100, 100, // x, y
+                                               150, 150, // x, y on screen
+                                               1,        //clickCount
+                                               false,              //popupTrigger
+                                               button );// MouseEvent.NOBUTTON : button
+
+                System.out.println("dispatching >>>"+me);
+                f.dispatchEvent( ( AWTEvent )me );
+            }
+        }
+        MouseAdapter ma1 = new MouseAdapter() {
+                public void mousePressed(MouseEvent e) {
+                    System.out.println("PRESSED "+e);
+                }
+                public void mouseReleased(MouseEvent e) {
+                    System.out.println("RELEASED "+e);
+                }
+                public void mouseClicked(MouseEvent e) {
+                    System.out.println("CLICKED "+e);
+                }
+            };
+        f.addMouseListener(ma1);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/event/MouseEvent/CTORRestrictions/CTORRestrictions.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,89 @@
+/*
+  test %I% %E%
+  @bug 6315717
+  @summary verifies that MouseEvent could be constructed correctly for mouse extra buttons in regard to sun.awt.enableExtraMouseButtons property
+  @author Andrei Dmitriev : area=awt.event
+  @run main CTORRestrictions
+ */
+
+/*
+ * verify that user can create the MouseEvent? with button1|2|3|4|5|... when property "sun.awt.enableExtraMouseButtons" is true by default
+ */
+import java.awt.*;
+import java.awt.event.*;
+
+public class CTORRestrictions{
+    static Frame frame = new Frame("MouseEvent Test Frame");
+    static Point mousePosition;
+    static Point mousePositionOnScreen;
+
+    public static void main(String []s){
+        Robot robot = null;
+        try {
+            robot = new Robot();
+        } catch (AWTException ex) {
+            throw new RuntimeException("Test Failed", ex);
+        }
+        frame.setSize (200,200);
+        frame.setLocation (300, 400);
+        frame.setVisible(true);
+        robot.delay(1000);
+        System.out.println("sun.awt.enableExtraMouseButtons = "+Toolkit.getDefaultToolkit().getDesktopProperty("sun.awt.enableExtraMouseButtons"));
+        mousePosition = new Point(100, 100);
+        mousePositionOnScreen = new  Point(frame.getLocationOnScreen().x + mousePosition.x,
+                                                 frame.getLocationOnScreen().y + mousePosition.y);
+
+        /*
+         * On Linux the native system count a wheel (both directions) as two more buttons on a mouse.
+         * So, MouseInfo.getNumberOfButtons() would report 5 buttons on a three-button mouse.
+         * On Windows it would still report that MouseInfo.getNumberOfButtons() == 3.
+         * We should handle XToolkit case and iterate through the buttons
+         * up to (MouseInfo.getNumberOfButtons() - 2) value.
+         */
+        int numberOfButtons;
+        if (Toolkit.getDefaultToolkit().getClass().getName().equals("sun.awt.windows.WToolkit")){
+            numberOfButtons = MouseInfo.getNumberOfButtons();
+        } else {
+            numberOfButtons = MouseInfo.getNumberOfButtons() - 2;
+        }
+        System.out.println("Stage 1. Number of buttons = "+ numberOfButtons);
+
+        for (int buttonId = 1; buttonId <= numberOfButtons; buttonId++){
+            postMouseEventNewCtor(buttonId);
+        }
+
+        System.out.println("Stage 2. Number of buttons = "+ numberOfButtons);
+        for (int buttonId = 1; buttonId <= numberOfButtons; buttonId++){
+            postMouseEventOldCtor(buttonId);
+        }
+        System.out.println("Test passed.");
+    }
+
+    public static void postMouseEventNewCtor(int buttonId)    {
+        MouseEvent me = new MouseEvent(frame,
+                                       MouseEvent.MOUSE_PRESSED,
+                                       System.currentTimeMillis(),
+                                       MouseEvent.BUTTON1_DOWN_MASK,
+                                       mousePosition.x, mousePosition.y,
+                                       mousePositionOnScreen.x,
+                                       mousePositionOnScreen.y,
+                                       1,
+                                       false,              //popupTrigger
+                                       buttonId            //button
+                                       );
+        frame.dispatchEvent( ( AWTEvent )me );
+    }
+
+    public static void postMouseEventOldCtor(int buttonId)    {
+        MouseEvent meOld = new MouseEvent(frame,
+                                          MouseEvent.MOUSE_PRESSED,
+                                          System.currentTimeMillis(),
+                                          MouseEvent.BUTTON1_DOWN_MASK,
+                                          mousePosition.x, mousePosition.y,
+                                          1,
+                                          false,              //popupTrigger
+                                          buttonId //button
+                                          );
+        frame.dispatchEvent( ( AWTEvent )meOld );
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/event/MouseEvent/CTORRestrictions/CTORRestrictions_Disable.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,101 @@
+/*
+  test %I% %E%
+  @bug 6315717
+  @summary verifies that MouseEvent could be constructed correctly for mouse extra buttons in regard to sun.awt.enableExtraMouseButtons property
+  @author Andrei Dmitriev : area=awt.event
+  @run main/othervm -Dsun.awt.enableExtraMouseButtons=false CTORRestrictions_Disable
+ */
+
+/*
+ * verify that user can't create the MouseEvent? with button4|5|... when property "sun.awt.enableExtraMouseButtons"=false
+ * verify that user can create the MouseEvent? with button1|2|3 when property "sun.awt.enableExtraMouseButtons"=false
+ */
+
+import java.awt.*;
+import java.awt.event.*;
+
+public class CTORRestrictions_Disable {
+    static Frame frame = new Frame("MouseEvent Test Frame");
+    static Point mousePosition;
+    static Point mousePositionOnScreen;
+
+    public static void main(String []s){
+        Robot robot = null;
+        try {
+            robot = new Robot();
+        } catch (AWTException ex) {
+            throw new RuntimeException("Test Failed", ex);
+        }
+        frame.setSize (200,200);
+        frame.setLocation (300, 400);
+        frame.setVisible(true);
+        robot.delay(1000);
+        System.out.println(Toolkit.getDefaultToolkit().getDesktopProperty("sun.awt.enableExtraMouseButtons"));
+        mousePosition = new Point(100, 100);
+        mousePositionOnScreen = new  Point(frame.getLocationOnScreen().x + mousePosition.x,
+                                                 frame.getLocationOnScreen().y + mousePosition.y);
+
+        System.out.println("Stage 1");
+        for (int buttonId = 1; buttonId <= MouseInfo.getNumberOfButtons(); buttonId++){
+           try {
+               postMouseEventNewCtor(buttonId);
+               if (buttonId > 3) {
+                   throw new RuntimeException("Stage 1 FAILED: MouseEvent CTOR accepted the extra button " + (buttonId+1) + " instead of throwing an exception.");
+               }
+           } catch (IllegalArgumentException e){
+                if (buttonId > 3) {
+                    System.out.println("Passed: an exception caught for extra button.");
+                } else {
+                    throw new RuntimeException("Stage 1 FAILED : exception happen on standard button.", e);
+                }
+            }
+        }
+
+        System.out.println("Stage 2");
+        for (int buttonId = 1; buttonId <= MouseInfo.getNumberOfButtons(); buttonId++){
+           try {
+               postMouseEventOldCtor(buttonId);
+               if (buttonId > 3) {
+                   throw new RuntimeException("Stage 2 FAILED: MouseEvent CTOR accepted the extra button " + (buttonId+1) + " instead of throwing an exception.");
+               }
+           } catch (IllegalArgumentException e){
+                if (buttonId > 3) {
+                    System.out.println("Passed: an exception caught for extra button.");
+                } else {
+                    throw new RuntimeException("Stage 2 FAILED : exception happen on standard button.", e);
+                }
+            }
+        }
+        System.out.println("Test passed.");
+    }
+
+    public static void postMouseEventNewCtor(int buttonId)    {
+        MouseEvent me = new MouseEvent(frame,
+                                       MouseEvent.MOUSE_PRESSED,
+                                       System.currentTimeMillis(),
+                                       MouseEvent.BUTTON1_DOWN_MASK,
+                                       mousePosition.x, mousePosition.y,
+                                       mousePositionOnScreen.x,
+                                       mousePositionOnScreen.y,
+                                       1,
+                                       false,              //popupTrigger
+                                       buttonId            //button
+                                       );
+        frame.dispatchEvent( ( AWTEvent )me );
+    }
+
+    public static void postMouseEventOldCtor(int buttonId)    {
+        MouseEvent meOld = new MouseEvent(frame,
+                                          MouseEvent.MOUSE_PRESSED,
+                                          System.currentTimeMillis(),
+                                          MouseEvent.BUTTON1_DOWN_MASK,
+                                          mousePosition.x, mousePosition.y,
+                                          1,
+                                          false,              //popupTrigger
+                                          buttonId //button
+                                          );
+        frame.dispatchEvent( ( AWTEvent )meOld );
+    }
+}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/event/MouseEvent/CheckGetMaskForButton/CheckGetMaskForButton.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,65 @@
+/*
+  @test %I% %E%
+  @bug 6315717
+  @summary verifies that InputEvent.getMaskForButton() returns the same values as in InputEvent.BUTTON_DOWN_MASK
+  @author Andrei Dmitriev : area=awt.event
+  @run main CheckGetMaskForButton
+*/
+
+import java.awt.*;
+import java.awt.event.InputEvent;
+import java.lang.reflect.*;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+
+public class CheckGetMaskForButton{
+    static Robot robot;
+
+    public static void main(String []s){
+        System.out.println("Number Of Buttons = "+ MouseInfo.getNumberOfButtons());
+        CheckGetMaskForButton f = new CheckGetMaskForButton();
+        int [] buttonMasksViaAPI = new int[MouseInfo.getNumberOfButtons()];
+        for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
+            buttonMasksViaAPI[i] = InputEvent.getMaskForButton(i+1);
+            System.out.println("Test (API): "+ buttonMasksViaAPI[i]);
+        }
+
+        //get same array via reflection
+        Object obj = AccessController.doPrivileged(
+                new PrivilegedAction() {
+            public Object run() {
+                try {
+                    Class clazz = Class.forName("java.awt.event.InputEvent");
+                    Method method  = clazz.getDeclaredMethod("getButtonDownMasks",new Class [] {});
+                    if (method != null) {
+                        method.setAccessible(true);
+                        return method.invoke(null, (Object[])null);
+                    }
+                }catch (Exception e){
+                    throw new RuntimeException("Test failed. Exception occured:", e);
+                }
+                return null;
+            }
+        });
+
+        if (obj == null){
+            throw new RuntimeException("Test failed. The value obtained via reflection is "+obj);
+        }
+
+        int [] buttonDownMasksViaReflection = new int [Array.getLength(obj)];
+        //check that length of API array greater or equals then Reflect array.
+        if (Array.getLength(obj) < buttonMasksViaAPI.length){
+            throw new RuntimeException("Test failed. The length of API array greater or equals then the length of  Reflect array.");
+        }
+
+        //Check that the values obtained via reflection from InputEvent.BUTTON_DOWN_MASK are the
+        // same as for standard API.
+        for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
+            System.out.println("Test (Reflection): "+ Array.getInt(obj, i));
+            if (buttonMasksViaAPI[i] != Array.getInt(obj, i)){
+                throw new RuntimeException("Test failed. Values of InputEvent array are different for API and Reflection invocations");
+            }
+        }
+        System.out.println("Test passed.");
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/lang/Enum/ValueOf.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,224 @@
+/*
+ * Copyright 2004-2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * @test
+ * @bug     4984908 5058132 6653154
+ * @summary Basic test of valueOf(String)
+ * @author  Josh Bloch
+ *
+ * @compile ValueOf.java
+ * @run main ValueOf
+ */
+
+import java.util.*;
+import java.lang.reflect.Method;
+
+public class ValueOf {
+    static Random rnd = new Random();
+
+    public static void main(String[] args) throws Exception {
+        test(Silly0.class);
+        test(Silly1.class);
+        test(Silly31.class);
+        test(Silly32.class);
+        test(Silly33.class);
+        test(Silly63.class);
+        test(Silly64.class);
+        test(Silly65.class);
+        test(Silly127.class);
+        test(Silly128.class);
+        test(Silly129.class);
+        test(Silly500.class);
+        test(Specialized.class);
+
+        testMissingException();
+    }
+
+    static <T extends Enum<T>> void test(Class<T> enumClass) throws Exception {
+        Set<T> s  = EnumSet.allOf(enumClass);
+        test(enumClass, s);
+
+        // Delete half the elements from set at random
+        for (Iterator<T> i = s.iterator(); i.hasNext(); ) {
+            i.next();
+            if (rnd.nextBoolean())
+                i.remove();
+        }
+
+        test(enumClass, s);
+    }
+
+    static <T extends Enum<T>> void test(Class<T> enumClass, Set<T> s)
+        throws Exception
+    {
+        Method valueOf = enumClass.getDeclaredMethod("valueOf", String.class);
+        Set<T> copy  = EnumSet.noneOf(enumClass);
+        for (T e : s)
+            copy.add((T) valueOf.invoke(null, e.name()));
+        if (!copy.equals(s))
+            throw new Exception(copy + " != " + s);
+    }
+
+    static void testMissingException() {
+        try {
+            Enum.valueOf(Specialized.class, "BAZ");
+            throw new RuntimeException("Expected IllegalArgumentException not thrown.");
+        } catch(IllegalArgumentException iae) {
+            String message = iae.getMessage();
+            if (! "No enum constant ValueOf.Specialized.BAZ".equals(message))
+                throw new RuntimeException("Unexpected detail message: ``" + message + "''.");
+        }
+    }
+
+    enum Silly0 { };
+
+    enum Silly1 { e1 }
+
+    enum Silly31 {
+        e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16,
+        e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30
+    }
+
+    enum Silly32 {
+        e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16,
+        e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31
+    }
+
+    enum Silly33 {
+        e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16,
+        e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31,
+        e32
+    }
+
+    enum Silly63 {
+        e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16,
+        e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31,
+        e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46,
+        e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61,
+        e62
+    }
+
+    enum Silly64 {
+        e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16,
+        e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31,
+        e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46,
+        e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61,
+        e62, e63
+    }
+
+    enum Silly65 {
+        e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16,
+        e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31,
+        e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46,
+        e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61,
+        e62, e63, e64
+    }
+
+    enum Silly127 {
+        e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16,
+        e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31,
+        e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46,
+        e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61,
+        e62, e63, e64, e65, e66, e67, e68, e69, e70, e71, e72, e73, e74, e75, e76,
+        e77, e78, e79, e80, e81, e82, e83, e84, e85, e86, e87, e88, e89, e90, e91,
+        e92, e93, e94, e95, e96, e97, e98, e99, e100, e101, e102, e103, e104, e105,
+        e106, e107, e108, e109, e110, e111, e112, e113, e114, e115, e116, e117,
+        e118, e119, e120, e121, e122, e123, e124, e125, e126
+    }
+
+    enum Silly128 {
+        e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16,
+        e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31,
+        e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46,
+        e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61,
+        e62, e63, e64, e65, e66, e67, e68, e69, e70, e71, e72, e73, e74, e75, e76,
+        e77, e78, e79, e80, e81, e82, e83, e84, e85, e86, e87, e88, e89, e90, e91,
+        e92, e93, e94, e95, e96, e97, e98, e99, e100, e101, e102, e103, e104, e105,
+        e106, e107, e108, e109, e110, e111, e112, e113, e114, e115, e116, e117,
+        e118, e119, e120, e121, e122, e123, e124, e125, e126, e127
+    }
+
+    enum Silly129 {
+        e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16,
+        e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31,
+        e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46,
+        e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61,
+        e62, e63, e64, e65, e66, e67, e68, e69, e70, e71, e72, e73, e74, e75, e76,
+        e77, e78, e79, e80, e81, e82, e83, e84, e85, e86, e87, e88, e89, e90, e91,
+        e92, e93, e94, e95, e96, e97, e98, e99, e100, e101, e102, e103, e104, e105,
+        e106, e107, e108, e109, e110, e111, e112, e113, e114, e115, e116, e117,
+        e118, e119, e120, e121, e122, e123, e124, e125, e126, e127, e128
+    }
+
+    enum Silly500 {
+        e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16,
+        e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31,
+        e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46,
+        e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61,
+        e62, e63, e64, e65, e66, e67, e68, e69, e70, e71, e72, e73, e74, e75, e76,
+        e77, e78, e79, e80, e81, e82, e83, e84, e85, e86, e87, e88, e89, e90, e91,
+        e92, e93, e94, e95, e96, e97, e98, e99, e100, e101, e102, e103, e104, e105,
+        e106, e107, e108, e109, e110, e111, e112, e113, e114, e115, e116, e117,
+        e118, e119, e120, e121, e122, e123, e124, e125, e126, e127, e128, e129,
+        e130, e131, e132, e133, e134, e135, e136, e137, e138, e139, e140, e141,
+        e142, e143, e144, e145, e146, e147, e148, e149, e150, e151, e152, e153,
+        e154, e155, e156, e157, e158, e159, e160, e161, e162, e163, e164, e165,
+        e166, e167, e168, e169, e170, e171, e172, e173, e174, e175, e176, e177,
+        e178, e179, e180, e181, e182, e183, e184, e185, e186, e187, e188, e189,
+        e190, e191, e192, e193, e194, e195, e196, e197, e198, e199, e200, e201,
+        e202, e203, e204, e205, e206, e207, e208, e209, e210, e211, e212, e213,
+        e214, e215, e216, e217, e218, e219, e220, e221, e222, e223, e224, e225,
+        e226, e227, e228, e229, e230, e231, e232, e233, e234, e235, e236, e237,
+        e238, e239, e240, e241, e242, e243, e244, e245, e246, e247, e248, e249,
+        e250, e251, e252, e253, e254, e255, e256, e257, e258, e259, e260, e261,
+        e262, e263, e264, e265, e266, e267, e268, e269, e270, e271, e272, e273,
+        e274, e275, e276, e277, e278, e279, e280, e281, e282, e283, e284, e285,
+        e286, e287, e288, e289, e290, e291, e292, e293, e294, e295, e296, e297,
+        e298, e299, e300, e301, e302, e303, e304, e305, e306, e307, e308, e309,
+        e310, e311, e312, e313, e314, e315, e316, e317, e318, e319, e320, e321,
+        e322, e323, e324, e325, e326, e327, e328, e329, e330, e331, e332, e333,
+        e334, e335, e336, e337, e338, e339, e340, e341, e342, e343, e344, e345,
+        e346, e347, e348, e349, e350, e351, e352, e353, e354, e355, e356, e357,
+        e358, e359, e360, e361, e362, e363, e364, e365, e366, e367, e368, e369,
+        e370, e371, e372, e373, e374, e375, e376, e377, e378, e379, e380, e381,
+        e382, e383, e384, e385, e386, e387, e388, e389, e390, e391, e392, e393,
+        e394, e395, e396, e397, e398, e399, e400, e401, e402, e403, e404, e405,
+        e406, e407, e408, e409, e410, e411, e412, e413, e414, e415, e416, e417,
+        e418, e419, e420, e421, e422, e423, e424, e425, e426, e427, e428, e429,
+        e430, e431, e432, e433, e434, e435, e436, e437, e438, e439, e440, e441,
+        e442, e443, e444, e445, e446, e447, e448, e449, e450, e451, e452, e453,
+        e454, e455, e456, e457, e458, e459, e460, e461, e462, e463, e464, e465,
+        e466, e467, e468, e469, e470, e471, e472, e473, e474, e475, e476, e477,
+        e478, e479, e480, e481, e482, e483, e484, e485, e486, e487, e488, e489,
+        e490, e491, e492, e493, e494, e495, e496, e497, e498, e499
+    }
+
+    enum Specialized {
+        FOO {
+            public void foo() {}
+        };
+        abstract public void foo();
+    };
+
+}
--- a/jdk/test/java/lang/reflect/Generics/Probe.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/test/java/lang/reflect/Generics/Probe.java	Wed Jul 05 16:47:27 2017 +0200
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 5003916
+ * @bug 5003916 6704655
  * @summary Testing parsing of signatures attributes of nested classes
  * @author Joseph D. Darcy
  * @compile -source 1.5 Probe.java
@@ -32,8 +32,10 @@
 
 import java.lang.reflect.*;
 import java.lang.annotation.*;
+import java.util.*;
+import static java.util.Arrays.*;
 
-@Classes({
+@Classes(value={
         "java.util.concurrent.FutureTask",
         "java.util.concurrent.ConcurrentHashMap$EntryIterator",
         "java.util.concurrent.ConcurrentHashMap$KeyIterator",
@@ -56,7 +58,9 @@
         "java.util.HashMap$ValueIterator",
         "java.util.LinkedHashMap$EntryIterator",
         "java.util.LinkedHashMap$KeyIterator",
-        "java.util.LinkedHashMap$ValueIterator",
+        "java.util.LinkedHashMap$ValueIterator"
+        },
+        sunClasses={
         "javax.crypto.SunJCE_c",
         "javax.crypto.SunJCE_e",
         "javax.crypto.SunJCE_f",
@@ -66,7 +70,15 @@
         })
 public class Probe {
     public static void main (String[] args) throws Throwable {
-        String [] names = (Probe.class).getAnnotation(Classes.class).value();
+        Classes classesAnnotation = (Probe.class).getAnnotation(Classes.class);
+        List<String> names =
+            new ArrayList<String>(asList(classesAnnotation.value()));
+
+        if (System.getProperty("java.runtime.name").startsWith("Java(TM)")) {
+            // Sun production JDK; test crypto classes too
+            for(String name: classesAnnotation.sunClasses())
+                names.add(name);
+        }
 
         int errs = 0;
         for(String name: names) {
@@ -140,4 +152,5 @@
 @Retention(RetentionPolicy.RUNTIME)
 @interface Classes {
     String [] value(); // list of classes to probe
+    String [] sunClasses(); // list of Sun-production JDK specific classes to probe
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/net/CookieHandler/B6791927.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/**
+ * @test
+ * @bug 6791927
+ * @summary Wrong Locale in HttpCookie::expiryDate2DeltaSeconds
+ */
+
+import java.net.*;
+import java.util.List;
+import java.util.Locale;
+
+public class B6791927 {
+    public static final void main( String[] aaParamters ) throws Exception{
+        // Forces a non US locale
+        Locale.setDefault(Locale.FRANCE);
+        List<HttpCookie> cookies = HttpCookie.parse("set-cookie: CUSTOMER=WILE_E_COYOTE; expires=Wednesday, 09-Nov-2019 23:12:40 GMT");
+        if (cookies == null || cookies.isEmpty()) {
+            throw new RuntimeException("No cookie found");
+        }
+        for (HttpCookie c : cookies) {
+            if (c.getMaxAge() == 0) {
+                throw new RuntimeException("Expiration date shouldn't be 0");
+            }
+        }
+    }
+}
--- a/jdk/test/java/net/CookieHandler/TestHttpCookie.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/test/java/net/CookieHandler/TestHttpCookie.java	Wed Jul 05 16:47:27 2017 +0200
@@ -24,7 +24,7 @@
 /**
  * @test
  * @summary Unit test for java.net.HttpCookie
- * @bug 6244040 6277796 6277801 6277808 6294071 6692802
+ * @bug 6244040 6277796 6277801 6277808 6294071 6692802 6790677
  * @author Edward Wang
  */
 
@@ -278,10 +278,6 @@
         .c("this is a coyote").cu("http://www.coyote.org").dsc(true)
         .d(".coyote.org").a(3600).port("80");
 
-        // illegal characters in set-cookie header
-        test("Set-Cookie2:Customer=;Version#=\"1\";Path=&\"/acme\"")
-        .nil();
-
         // empty set-cookie string
         test("").nil();
 
@@ -311,6 +307,9 @@
         test("Set-Cookie2:C1=\"V1\";Domain=\".sun1.com\";path=\"/www1\";Max-Age=\"100\",C2=\"V2\";Domain=\".sun2.com\";path=\"/www2\";Max-Age=\"200\"")
         .n(0, "C1").v(0, "V1").p(0, "/www1").a(0, 100).d(0, ".sun1.com")
         .n(1, "C2").v(1, "V2").p(1, "/www2").a(1, 200).d(1, ".sun2.com");
+
+        // Bug 6790677: Should ignore bogus attributes
+        test("Set-Cookie2:C1=\"V1\";foobar").n(0, "C1").v(0, "V1");
     }
 
     static void netscape() {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/net/URLClassLoader/closetest/CloseTest.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,246 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/**
+ * @test
+ * @bug 4167874
+ * @library ../../../../com/sun/net/httpserver
+ * @build FileServerHandler
+ * @run shell build.sh
+ * @run main/othervm CloseTest
+ * @summary URL-downloaded jar files can consume all available file descriptors
+ */
+
+import java.io.*;
+import java.net.*;
+import java.lang.reflect.*;
+import java.util.concurrent.*;
+import com.sun.net.httpserver.*;
+
+public class CloseTest {
+
+    static void copyFile (String src, String dst) {
+        copyFile (new File(src), new File(dst));
+    }
+
+    static void copyDir (String src, String dst) {
+        copyDir (new File(src), new File(dst));
+    }
+
+    static void copyFile (File src, File dst) {
+        try {
+            if (!src.isFile()) {
+                throw new RuntimeException ("File not found: " + src.toString());
+            }
+            dst.delete();
+            dst.createNewFile();
+            FileInputStream i = new FileInputStream (src);
+            FileOutputStream o = new FileOutputStream (dst);
+            byte[] buf = new byte [1024];
+            int count;
+            while ((count=i.read(buf)) >= 0) {
+                o.write (buf, 0, count);
+            }
+            i.close();
+            o.close();
+        } catch (IOException e) {
+            throw new RuntimeException (e);
+        }
+    }
+
+    static void rm_minus_rf (File path) {
+        if (!path.exists()) {
+            return;
+        }
+        if (path.isFile()) {
+            if (!path.delete()) {
+                throw new RuntimeException ("Could not delete " + path);
+            }
+        } else if (path.isDirectory ()) {
+            String[] names = path.list();
+            File[] files = path.listFiles();
+            for (int i=0; i<files.length; i++) {
+                rm_minus_rf (new File(path, names[i]));
+            }
+            if (!path.delete()) {
+                throw new RuntimeException ("Could not delete " + path);
+            }
+        } else {
+            throw new RuntimeException ("Trying to delete something that isn't a file or a directory");
+        }
+    }
+
+    static void copyDir (File src, File dst) {
+        if (!src.isDirectory()) {
+            throw new RuntimeException ("Dir not found: " + src.toString());
+        }
+        if (dst.exists()) {
+            throw new RuntimeException ("Dir exists: " + dst.toString());
+        }
+        dst.mkdir();
+        String[] names = src.list();
+        File[] files = src.listFiles();
+        for (int i=0; i<files.length; i++) {
+            String f = names[i];
+            if (files[i].isDirectory()) {
+                copyDir (files[i], new File (dst, f));
+            } else {
+                copyFile (new File (src, f), new File (dst, f));
+            }
+            assert false;
+        }
+    }
+
+    /* expect is true if you expect to find it, false if you expect not to */
+    static Class loadClass (String name, URLClassLoader loader, boolean expect){
+        try {
+            Class clazz = Class.forName (name, true, loader);
+            if (!expect) {
+                throw new RuntimeException ("loadClass: "+name+" unexpected");
+            }
+            return clazz;
+        } catch (ClassNotFoundException e) {
+            if (expect) {
+                throw new RuntimeException ("loadClass: " +name + " not found");
+            }
+        }
+        return null;
+    }
+
+//
+// needs two jar files test1.jar and test2.jar with following structure
+//
+// com/foo/TestClass
+// com/foo/TestClass1
+// com/foo/Resource1
+// com/foo/Resource2
+//
+// and a directory hierarchy with the same structure/contents
+
+    public static void main (String args[]) throws Exception {
+
+        String workdir = System.getProperty("test.classes");
+        if (workdir == null) {
+            workdir = args[0];
+        }
+        if (!workdir.endsWith("/")) {
+            workdir = workdir+"/";
+        }
+
+        startHttpServer (workdir+"serverRoot/");
+
+        String testjar = workdir + "test.jar";
+        copyFile (workdir+"test1.jar", testjar);
+        test (testjar, 1);
+
+        // repeat test with different implementation
+        // of test.jar (whose TestClass.getValue() returns 2
+
+        copyFile (workdir+"test2.jar", testjar);
+        test (testjar, 2);
+
+        // repeat test using a directory of files
+        String testdir=workdir+"testdir/";
+        rm_minus_rf (new File(testdir));
+        copyDir (workdir+"test1/", testdir);
+        test (testdir, 1);
+
+        testdir=workdir+"testdir/";
+        rm_minus_rf (new File(testdir));
+        copyDir (workdir+"test2/", testdir);
+        test (testdir, 2);
+        getHttpServer().stop (3);
+    }
+
+    // create a loader on jarfile (or directory), plus a http loader
+    // load a class , then look for a resource
+    // also load a class from http loader
+    // then close the loader
+    // check further new classes/resources cannot be loaded
+    // check jar (or dir) can be deleted
+    // check existing classes can be loaded
+    // check boot classes can be loaded
+
+    static void test (String name, int expectedValue) throws Exception {
+        URL url = new URL ("file", null, name);
+        URL url2 = getServerURL();
+        System.out.println ("Doing tests with URL: " + url + " and " + url2);
+        URL[] urls = new URL[2];
+        urls[0] =  url;
+        urls[1] =  url2;
+        URLClassLoader loader = new URLClassLoader (urls);
+        Class testclass = loadClass ("com.foo.TestClass", loader, true);
+        Class class2 = loadClass ("Test", loader, true); // from http
+        class2.newInstance();
+        Object test = testclass.newInstance();
+        Method method = testclass.getDeclaredMethods()[0]; // int getValue();
+        int res = (Integer) method.invoke (test);
+
+        if (res != expectedValue) {
+            throw new RuntimeException ("wrong value from getValue() ["+res+
+                        "/"+expectedValue+"]");
+        }
+
+        // should find /resource1
+        URL u1 = loader.findResource ("com/foo/Resource1");
+        if (u1 == null) {
+            throw new RuntimeException ("can't find com/foo/Resource1 in test1.jar");
+        }
+        loader.close ();
+
+        // should NOT find /resource2 even though it is in jar
+        URL u2 = loader.findResource ("com/foo/Resource2");
+        if (u2 != null) {
+            throw new RuntimeException ("com/foo/Resource2 unexpected in test1.jar");
+        }
+
+        // load tests
+        loadClass ("com.foo.TestClass1", loader, false);
+        loadClass ("com.foo.TestClass", loader, true);
+        loadClass ("java.awt.Button", loader, true);
+
+        // now check we can delete the path
+        rm_minus_rf (new File(name));
+        System.out.println (" ... OK");
+    }
+
+    static HttpServer httpServer;
+
+    static HttpServer getHttpServer() {
+        return httpServer;
+    }
+
+    static URL getServerURL () throws Exception {
+        int port = httpServer.getAddress().getPort();
+        String s = "http://127.0.0.1:"+port+"/";
+        return new URL(s);
+    }
+
+    static void startHttpServer (String docroot) throws Exception {
+        httpServer = HttpServer.create (new InetSocketAddress(0), 10);
+        HttpContext ctx = httpServer.createContext (
+                "/", new FileServerHandler(docroot)
+        );
+        httpServer.start();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/net/URLClassLoader/closetest/README	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,24 @@
+test1 and test2 contain two different implementations of the same
+classes. They are compiled and placed into two different target directories
+and two jar files test1.jar and test2.jar.
+
+The same class is in both jars/directories, but returns a different result
+from the TestClass.getValue() method. The test does the following
+
+1. copy test1.jar to a working directory and call it test.jar
+
+2. load class and invoke method (checking result)
+
+3. close the loader
+
+4. delete test.jar (check delete succeeds)
+
+5. copy test2.jar to same dir and repeat the test
+
+6. The two tests are then repeated by copying the directories
+   test1 and test2.
+
+The loader also includes a http:// URL in its search path and a http
+server is used to serve the required class.
+
+serverRoot is used as the root directory for the http server.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/net/URLClassLoader/closetest/build.sh	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,73 @@
+#!/bin/sh
+# 
+#  Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+#  DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+# 
+#  This code is free software; you can redistribute it and/or modify it
+#  under the terms of the GNU General Public License version 2 only, as
+#  published by the Free Software Foundation.
+# 
+#  This code is distributed in the hope that it will be useful, but WITHOUT
+#  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+#  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+#  version 2 for more details (a copy is included in the LICENSE file that
+#  accompanied this code).
+# 
+#  You should have received a copy of the GNU General Public License version
+#  2 along with this work; if not, write to the Free Software Foundation,
+#  Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+# 
+#  Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+#  CA 95054 USA or visit www.sun.com if you need additional information or
+#  have any questions.
+# 
+#
+#
+# This script builds the test files for the test
+# but not the actual test sources themselves.
+#
+if [ "${TESTSRC}" = "" ]
+then
+  echo "TESTSRC not set.  Test cannot execute.  Failed."
+  exit 1
+fi
+echo "TESTSRC=${TESTSRC}"
+
+if [ "${TESTJAVA}" = "" ]
+then
+  echo "TESTJAVA not set.  Test cannot execute.  Failed."
+  exit 1
+fi
+echo "TESTJAVA=${TESTJAVA}"
+
+if [ "${TESTCLASSES}" = "" ]
+then
+  echo "TESTCLASSES not set.  Test cannot execute.  Failed."
+  exit 1
+fi
+
+JAVAC="${TESTJAVA}/bin/javac"
+JAR="${TESTJAVA}/bin/jar"
+
+rm -rf ${TESTCLASSES}/test1
+rm -rf ${TESTCLASSES}/test2
+rm -rf ${TESTCLASSES}/serverRoot
+mkdir -p ${TESTCLASSES}/test1/com/foo
+mkdir -p ${TESTCLASSES}/test2/com/foo
+mkdir -p ${TESTCLASSES}/serverRoot
+
+cd ${TESTSRC}/test1/com/foo
+cp * ${TESTCLASSES}/test1/com/foo
+cd ${TESTCLASSES}/test1
+${JAVAC} com/foo/*.java
+${JAR} cvf ../test1.jar com/foo/*.class com/foo/Resource*
+
+cd ${TESTSRC}/test2/com/foo
+cp * ${TESTCLASSES}/test2/com/foo
+cd ${TESTCLASSES}/test2
+${JAVAC} com/foo/*.java
+${JAR} cvf ../test2.jar com/foo/*.class com/foo/Resource*
+
+cp ${TESTSRC}/serverRoot/Test.java ${TESTCLASSES}/serverRoot
+cd ${TESTCLASSES}/serverRoot
+${JAVAC} Test.java
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/net/URLClassLoader/closetest/serverRoot/Test.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+public class Test {
+    public Test () {
+        System.out.println ("Test created");
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/net/URLClassLoader/closetest/test1/com/foo/Resource1	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,1 @@
+Hello World
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/net/URLClassLoader/closetest/test1/com/foo/Resource2	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,1 @@
+Hello World Again
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/net/URLClassLoader/closetest/test1/com/foo/TestClass.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package com.foo;
+
+public class TestClass {
+    public int getValue () {
+        return 1;
+    }
+}
+
+/*
+public class TestClass {
+    public int getValue () {
+        return 2;
+    }
+}
+*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/net/URLClassLoader/closetest/test1/com/foo/TestClass1.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package com.foo;
+
+public class TestClass1 {}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/net/URLClassLoader/closetest/test2/com/foo/Resource1	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,1 @@
+Hello World
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/net/URLClassLoader/closetest/test2/com/foo/Resource2	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,1 @@
+Hello World Again
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/net/URLClassLoader/closetest/test2/com/foo/TestClass.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package com.foo;
+
+/*
+public class TestClass {
+    public int getValue () {
+        return 1;
+    }
+}
+*/
+
+public class TestClass {
+    public int getValue () {
+        return 2;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/net/URLClassLoader/closetest/test2/com/foo/TestClass1.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package com.foo;
+
+public class TestClass1 {}
--- a/jdk/test/sun/security/krb5/DnsFallback.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/test/sun/security/krb5/DnsFallback.java	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2008-2009 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,8 @@
 /*
  * @test
  * @bug 6673164
- * @summary dns_fallback parse error
+ * @bug 6552334
+ * @summary fix dns_fallback parse error, and use dns by default
  */
 
 import sun.security.krb5.*;
@@ -31,6 +32,8 @@
 
 public class DnsFallback {
     public static void main(String[] args) throws Exception {
+
+        // for 6673164
         check("true", "true", true);
         check("false", "true", false);
         check("true", "false", true);
@@ -39,6 +42,9 @@
         check("false", null, false);
         check(null, "true", true);
         check(null, "false", false);
+
+        // for 6552334
+        check(null, null, true);
     }
 
     static void check(String realm, String fallback, boolean output) throws Exception {
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/B6216082.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/B6216082.java	Wed Jul 05 16:47:27 2017 +0200
@@ -136,6 +136,7 @@
                                 server.getLocalPort(), "/");
             HttpURLConnection uc = (HttpURLConnection)url.openConnection();
             System.out.println(uc.getResponseCode());
+            uc.disconnect();
         } catch (IOException e) {
             e.printStackTrace();
         } finally {
--- a/langtools/.hgtags	Wed Jul 05 16:46:57 2017 +0200
+++ b/langtools/.hgtags	Wed Jul 05 16:47:27 2017 +0200
@@ -21,3 +21,4 @@
 28f0b10d6c1afc106465c13b8c663a6afa4fb1a1 jdk7-b44
 30db5e0aaf83fe262d9a7227d3fc3e451cd5d459 jdk7-b45
 be546a6c08e3c31fba2edcae1de43ae3515d2e59 jdk7-b46
+2b8f6bab23926aa32b9cf7e4c540b9d1ce74b7d5 jdk7-b47
--- a/langtools/src/share/classes/com/sun/tools/javac/code/Types.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/code/Types.java	Wed Jul 05 16:47:27 2017 +0200
@@ -709,12 +709,31 @@
         case UNDETVAR:
             if (s.tag == WILDCARD) {
                 UndetVar undetvar = (UndetVar)t;
-                undetvar.inst = glb(upperBound(s), undetvar.inst);
-                // We should check instantiated type against any of the
-                // undetvar's lower bounds.
-                for (Type t2 : undetvar.lobounds) {
-                    if (!isSubtype(t2, undetvar.inst))
-                        return false;
+                WildcardType wt = (WildcardType)s;
+                switch(wt.kind) {
+                    case UNBOUND: //similar to ? extends Object
+                    case EXTENDS: {
+                        Type bound = upperBound(s);
+                        // We should check the new upper bound against any of the
+                        // undetvar's lower bounds.
+                        for (Type t2 : undetvar.lobounds) {
+                            if (!isSubtype(t2, bound))
+                                return false;
+                        }
+                        undetvar.hibounds = undetvar.hibounds.prepend(bound);
+                        break;
+                    }
+                    case SUPER: {
+                        Type bound = lowerBound(s);
+                        // We should check the new lower bound against any of the
+                        // undetvar's lower bounds.
+                        for (Type t2 : undetvar.hibounds) {
+                            if (!isSubtype(bound, t2))
+                                return false;
+                        }
+                        undetvar.lobounds = undetvar.lobounds.prepend(bound);
+                        break;
+                    }
                 }
                 return true;
             } else {
@@ -930,12 +949,16 @@
                 }
 
                 if (t.isCompound()) {
+                    Warner oldWarner = warnStack.head;
+                    warnStack.head = Warner.noWarnings;
                     if (!visit(supertype(t), s))
                         return false;
                     for (Type intf : interfaces(t)) {
                         if (!visit(intf, s))
                             return false;
                     }
+                    if (warnStack.head.unchecked == true)
+                        oldWarner.warnUnchecked();
                     return true;
                 }
 
@@ -2108,9 +2131,6 @@
                                   List<Type> to) {
         if (tvars.isEmpty())
             return tvars;
-        if (tvars.tail.isEmpty())
-            // fast common case
-            return List.<Type>of(substBound((TypeVar)tvars.head, from, to));
         ListBuffer<Type> newBoundsBuf = lb();
         boolean changed = false;
         // calculate new bounds
@@ -2150,8 +2170,14 @@
         Type bound1 = subst(t.bound, from, to);
         if (bound1 == t.bound)
             return t;
-        else
-            return new TypeVar(t.tsym, bound1, syms.botType);
+        else {
+            // create new type variable without bounds
+            TypeVar tv = new TypeVar(t.tsym, null, syms.botType);
+            // the new bound should use the new type variable in place
+            // of the old
+            tv.bound = subst(bound1, List.<Type>of(t), List.<Type>of(tv));
+            return tv;
+        }
     }
     // </editor-fold>
 
@@ -2825,6 +2851,16 @@
     // </editor-fold>
 
     // <editor-fold defaultstate="collapsed" desc="Greatest lower bound">
+    public Type glb(List<Type> ts) {
+        Type t1 = ts.head;
+        for (Type t2 : ts.tail) {
+            if (t1.isErroneous())
+                return t1;
+            t1 = glb(t1, t2);
+        }
+        return t1;
+    }
+    //where
     public Type glb(Type t, Type s) {
         if (s == null)
             return t;
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Infer.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Infer.java	Wed Jul 05 16:47:27 2017 +0200
@@ -154,33 +154,15 @@
                 that.inst = syms.objectType;
             else if (that.hibounds.tail.isEmpty())
                 that.inst = that.hibounds.head;
-            else {
-                for (List<Type> bs = that.hibounds;
-                     bs.nonEmpty() && that.inst == null;
-                     bs = bs.tail) {
-                    // System.out.println("hibounds = " + that.hibounds);//DEBUG
-                    if (isSubClass(bs.head, that.hibounds))
-                        that.inst = types.fromUnknownFun.apply(bs.head);
-                }
-                if (that.inst == null) {
-                    int classCount = 0, interfaceCount = 0;
-                    for (Type t : that.hibounds) {
-                        if (t.tag == CLASS) {
-                            if (t.isInterface())
-                                interfaceCount++;
-                            else
-                                classCount++;
-                        }
-                    }
-                    if ((that.hibounds.size() == classCount + interfaceCount) && classCount == 1)
-                        that.inst = types.makeCompoundType(that.hibounds);
-                }
-                if (that.inst == null || !types.isSubtypeUnchecked(that.inst, that.hibounds, warn))
-                    throw ambiguousNoInstanceException
-                        .setMessage("no.unique.maximal.instance.exists",
-                                    that.qtype, that.hibounds);
-            }
+            else
+                that.inst = types.glb(that.hibounds);
         }
+        if (that.inst == null ||
+            that.inst.isErroneous() ||
+            !types.isSubtypeUnchecked(that.inst, that.hibounds, warn))
+            throw ambiguousNoInstanceException
+                .setMessage("no.unique.maximal.instance.exists",
+                            that.qtype, that.hibounds);
     }
     //where
         private boolean isSubClass(Type t, final List<Type> ts) {
--- a/langtools/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java	Wed Jul 05 16:47:27 2017 +0200
@@ -371,6 +371,7 @@
                         context.get(DiagnosticListener.class) != null;
         devVerbose    = options.get("dev") != null;
         processPcks   = options.get("process.packages") != null;
+        werror        = options.get("-Werror")        != null;
 
         verboseCompilePolicy = options.get("verboseCompilePolicy") != null;
 
@@ -434,6 +435,10 @@
      */
     protected boolean processPcks;
 
+    /** Switch: treat warnings as errors
+     */
+    protected boolean werror;
+
     /** Switch: is annotation processing requested explitly via
      * CompilationTask.setProcessors?
      */
@@ -490,7 +495,11 @@
     public int errorCount() {
         if (delegateCompiler != null && delegateCompiler != this)
             return delegateCompiler.errorCount();
-        else
+        else {
+            if (werror && log.nerrors == 0 && log.nwarnings > 0) {
+                log.error("warnings.and.werror");
+            }
+        }
             return log.nerrors;
     }
 
--- a/langtools/src/share/classes/com/sun/tools/javac/main/Main.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/main/Main.java	Wed Jul 05 16:47:27 2017 +0200
@@ -406,8 +406,7 @@
                 }
             }
 
-            if (comp.errorCount() != 0 ||
-                options.get("-Werror") != null && comp.warningCount() != 0)
+            if (comp.errorCount() != 0)
                 return EXIT_ERROR;
         } catch (IOException ex) {
             ioMessage(ex);
--- a/langtools/src/share/classes/com/sun/tools/javac/main/RecognizedOptions.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/main/RecognizedOptions.java	Wed Jul 05 16:47:27 2017 +0200
@@ -449,7 +449,7 @@
         },
 
         // treat warnings as errors
-        new HiddenOption(WERROR),
+        new Option(WERROR,                                      "opt.Werror"),
 
         // use complex inference from context in the position of a method call argument
         new HiddenOption(COMPLEXINFERENCE),
--- a/langtools/src/share/classes/com/sun/tools/javac/resources/compiler.properties	Wed Jul 05 16:46:57 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/resources/compiler.properties	Wed Jul 05 16:47:27 2017 +0200
@@ -346,6 +346,9 @@
 compiler.err.pkg.clashes.with.class.of.same.name=\
     package {0} clashes with class of same name
 
+compiler.err.warnings.and.werror=\
+    warnings found and -Werror specified
+
 # Errors related to annotation processing
 
 compiler.err.proc.cant.access=\
--- a/langtools/src/share/classes/com/sun/tools/javac/resources/javac.properties	Wed Jul 05 16:46:57 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/resources/javac.properties	Wed Jul 05 16:47:27 2017 +0200
@@ -69,6 +69,8 @@
     Generate class files for specific VM version
 javac.opt.source=\
     Provide source compatibility with specified release
+javac.opt.Werror=\
+    Terminate compilation if warnings occur
 javac.opt.A=\
     Options to pass to annotation processors
 javac.opt.implicit=\
--- a/langtools/src/share/classes/com/sun/tools/javadoc/DocletInvoker.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javadoc/DocletInvoker.java	Wed Jul 05 16:47:27 2017 +0200
@@ -83,7 +83,7 @@
         cpString = appendPath(docletPath, cpString);
         URL[] urls = pathToURLs(cpString);
         if (docletParentClassLoader == null)
-            appClassLoader = new URLClassLoader(urls);
+            appClassLoader = new URLClassLoader(urls, getDelegationClassLoader(docletClassName));
         else
             appClassLoader = new URLClassLoader(urls, docletParentClassLoader);
 
@@ -98,6 +98,57 @@
         docletClass = dc;
     }
 
+    /*
+     * Returns the delegation class loader to use when creating
+     * appClassLoader (used to load the doclet).  The context class
+     * loader is the best choice, but legacy behavior was to use the
+     * default delegation class loader (aka system class loader).
+     *
+     * Here we favor using the context class loader.  To ensure
+     * compatibility with existing apps, we revert to legacy
+     * behavior if either or both of the following conditions hold:
+     *
+     * 1) the doclet is loadable from the system class loader but not
+     *    from the context class loader,
+     *
+     * 2) this.getClass() is loadable from the system class loader but not
+     *    from the context class loader.
+     */
+    private ClassLoader getDelegationClassLoader(String docletClassName) {
+        ClassLoader ctxCL = Thread.currentThread().getContextClassLoader();
+        ClassLoader sysCL = ClassLoader.getSystemClassLoader();
+        if (sysCL == null)
+            return ctxCL;
+        if (ctxCL == null)
+            return sysCL;
+
+        // Condition 1.
+        try {
+            sysCL.loadClass(docletClassName);
+            try {
+                ctxCL.loadClass(docletClassName);
+            } catch (ClassNotFoundException e) {
+                return sysCL;
+            }
+        } catch (ClassNotFoundException e) {
+        }
+
+        // Condition 2.
+        try {
+            if (getClass() == sysCL.loadClass(getClass().getName())) {
+                try {
+                    if (getClass() != ctxCL.loadClass(getClass().getName()))
+                        return sysCL;
+                } catch (ClassNotFoundException e) {
+                    return sysCL;
+                }
+            }
+        } catch (ClassNotFoundException e) {
+        }
+
+        return ctxCL;
+    }
+
     /**
      * Generate documentation here.  Return true on success.
      */
@@ -231,6 +282,8 @@
                                docletClassName, methodName);
                 throw new DocletInvokeException();
             }
+            ClassLoader savedCCL =
+                Thread.currentThread().getContextClassLoader();
             try {
                 Thread.currentThread().setContextClassLoader(appClassLoader);
                 return meth.invoke(null , params);
@@ -256,6 +309,8 @@
                     exc.getTargetException().printStackTrace();
                 }
                 throw new DocletInvokeException();
+            } finally {
+                Thread.currentThread().setContextClassLoader(savedCCL);
             }
     }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/src/share/classes/javax/lang/model/UnknownEntityException.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package javax.lang.model;
+
+/**
+ * Superclass of exceptions which indicate that an unknown kind of
+ * entity was encountered.  This situation can occur if the language
+ * evolves and new kinds of constructs are introduced.  Subclasses of
+ * this exception may be thrown by visitors to indicate that the
+ * visitor was created for a prior version of the language.
+ *
+ * <p>A common superclass for those exceptions allows a single catch
+ * block to have code handling them uniformly.
+ *
+ * @author Joseph D. Darcy
+ * @see javax.lang.model.element.UnknownElementException
+ * @see javax.lang.model.element.UnknownAnnotationValueException
+ * @see javax.lang.model.type.UnknownTypeException
+ * @since 1.7
+ */
+public class UnknownEntityException extends RuntimeException {
+
+    private static final long serialVersionUID = 269L;
+
+    /**
+     * Creates a new {@code UnknownEntityException} with the specified
+     * detail message.
+     *
+     * @param message the detail message
+     */
+    protected UnknownEntityException(String message) {
+        super(message);
+    }
+}
--- a/langtools/src/share/classes/javax/lang/model/element/UnknownAnnotationValueException.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/langtools/src/share/classes/javax/lang/model/element/UnknownAnnotationValueException.java	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2005-2009 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,8 @@
 
 package javax.lang.model.element;
 
+import javax.lang.model.UnknownEntityException;
+
 /**
  * Indicates that an unknown kind of annotation value was encountered.
  * This can occur if the language evolves and new kinds of annotation
@@ -39,7 +41,7 @@
  * @see AnnotationValueVisitor#visitUnknown
  * @since 1.6
  */
-public class UnknownAnnotationValueException extends RuntimeException {
+public class UnknownAnnotationValueException extends UnknownEntityException {
 
     private static final long serialVersionUID = 269L;
 
--- a/langtools/src/share/classes/javax/lang/model/element/UnknownElementException.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/langtools/src/share/classes/javax/lang/model/element/UnknownElementException.java	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2005-2009 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,8 @@
 
 package javax.lang.model.element;
 
+import javax.lang.model.UnknownEntityException;
+
 /**
  * Indicates that an unknown kind of element was encountered.  This
  * can occur if the language evolves and new kinds of elements are
@@ -38,7 +40,7 @@
  * @see ElementVisitor#visitUnknown
  * @since 1.6
  */
-public class UnknownElementException extends RuntimeException {
+public class UnknownElementException extends UnknownEntityException {
 
     private static final long serialVersionUID = 269L;
 
--- a/langtools/src/share/classes/javax/lang/model/type/UnknownTypeException.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/langtools/src/share/classes/javax/lang/model/type/UnknownTypeException.java	Wed Jul 05 16:47:27 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2005-2009 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,8 @@
 
 package javax.lang.model.type;
 
+import javax.lang.model.UnknownEntityException;
+
 /**
  * Indicates that an unknown kind of type was encountered.  This can
  * occur if the language evolves and new kinds of types are added to
@@ -38,7 +40,7 @@
  * @see TypeVisitor#visitUnknown
  * @since 1.6
  */
-public class UnknownTypeException extends RuntimeException {
+public class UnknownTypeException extends UnknownEntityException {
 
     private static final long serialVersionUID = 269L;
 
--- a/langtools/test/tools/javac/6304921/T6304921.out	Wed Jul 05 16:46:57 2017 +0200
+++ b/langtools/test/tools/javac/6304921/T6304921.out	Wed Jul 05 16:47:27 2017 +0200
@@ -7,12 +7,7 @@
 required: java.util.List<java.lang.Integer>
         List<Integer> list = new ArrayList();
                              ^
-T6304921.java:445/445/453: warning: [fallthrough] possible fall-through into case
-        default:
-        ^
-T6304921.java:522/613/614: warning: [finally] finally clause cannot complete normally
-        }
-        ^
+error: warnings found and -Werror specified
 T6304921.java:727/733/737: cannot find symbol
 symbol  : variable orr
 location: class java.lang.System
@@ -21,5 +16,5 @@
 T6304921.java:812/816/822: operator + cannot be applied to int,boolean
         return 123 + true; // bad binary expression
                    ^
-2 errors
-4 warnings
+3 errors
+2 warnings
--- a/langtools/test/tools/javac/6758789/T6758789b.out	Wed Jul 05 16:46:57 2017 +0200
+++ b/langtools/test/tools/javac/6758789/T6758789b.out	Wed Jul 05 16:47:27 2017 +0200
@@ -1,3 +1,5 @@
 T6758789b.java:39:11: compiler.warn.prob.found.req: (- compiler.misc.unchecked.assign), T6758789a.Foo, T6758789a.Foo<X>
 T6758789b.java:39:10: compiler.warn.unchecked.meth.invocation.applied: kindname.method, m, T6758789a.Foo<X>, T6758789a.Foo, kindname.class, T6758789a
+- compiler.err.warnings.and.werror
+1 error
 2 warnings
--- a/langtools/test/tools/javac/T6241723.out	Wed Jul 05 16:46:57 2017 +0200
+++ b/langtools/test/tools/javac/T6241723.out	Wed Jul 05 16:47:27 2017 +0200
@@ -2,4 +2,6 @@
 T6241723.java:23:7: compiler.warn.has.been.deprecated: A2.A21, A2
 T6241723.java:26:5: compiler.warn.has.been.deprecated: Z1, unnamed package
 T6241723.java:28:7: compiler.warn.has.been.deprecated: Z2.Z21, Z2
+- compiler.err.warnings.and.werror
+1 error
 4 warnings
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/T6595666.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,68 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * @test
+ * @bug 6595666
+ * @summary fix -Werror
+ */
+
+import java.io.*;
+import java.util.*;
+
+public class T6595666 {
+    void m() {
+        // the following line must create warnings with -Xlint, because of unchecked conversion
+        List<Integer> list = new ArrayList();
+    }
+
+    public static void main(String... args) throws Exception {
+        File testSrc = new File(System.getProperty("test.src", "."));
+
+        String basename = T6595666.class.getName();
+        File srcFile = new File(testSrc, basename+".java");
+        File classFile = new File(basename+".class");
+        classFile.delete();
+        if (classFile.exists())
+            throw new Exception("setup error, can't delete " + classFile);
+
+        compile(1, "-d", ".", "-Xlint", "-Werror", srcFile.getPath());
+        if (classFile.exists())
+            throw new Exception("failed: found " + classFile);
+
+        compile(0, "-d", ".", "-Xlint", srcFile.getPath());
+        if (!classFile.exists())
+            throw new Exception("failed: " + classFile + " not found");
+    }
+
+    private static void compile(int rc, String... args) throws Exception {
+        System.err.println("compile: " + Arrays.asList(args));
+        StringWriter sw = new StringWriter();
+        PrintWriter pw = new PrintWriter(sw);
+        int rc2 = com.sun.tools.javac.Main.compile(args, pw);
+        pw.close();
+        System.err.println(sw);
+        if (rc != rc2)
+            throw new Exception("bad exit code; expected " + rc + ", found " + rc2);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/cast/6557182/T6557182.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * @test
+ * @author Maurizio Cimadamore
+ * @bug     6557182
+ * @summary  Unchecked warning *and* inconvertible types
+ * @compile/fail/ref=T6557182.out -XDrawDiagnostics -Xlint:unchecked T6557182.java
+ */
+
+class T6557182 {
+
+    <T extends Number & Comparable<String>> void test1(T t) {
+        Comparable<Integer> ci = (Comparable<Integer>) t;
+    }
+
+    <T extends Number & Comparable<? extends Number>> void test2(T t) {
+        Comparable<Integer> ci = (Comparable<Integer>) t;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/cast/6557182/T6557182.out	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,4 @@
+T6557182.java:35:56: compiler.err.prob.found.req: (- compiler.misc.inconvertible.types), T, java.lang.Comparable<java.lang.Integer>
+T6557182.java:39:56: compiler.warn.prob.found.req: (- compiler.misc.unchecked.cast.to.type), T, java.lang.Comparable<java.lang.Integer>
+1 error
+1 warning
--- a/langtools/test/tools/javac/depDocComment/DeprecatedDocComment.out	Wed Jul 05 16:46:57 2017 +0200
+++ b/langtools/test/tools/javac/depDocComment/DeprecatedDocComment.out	Wed Jul 05 16:47:27 2017 +0200
@@ -1,4 +1,6 @@
 DeprecatedDocComment.java:27:28: compiler.warn.has.been.deprecated: deprecatedTest1(), DeprecatedDocComment2
 DeprecatedDocComment.java:31:28: compiler.warn.has.been.deprecated: deprecatedTest5(), DeprecatedDocComment2
 DeprecatedDocComment.java:32:28: compiler.warn.has.been.deprecated: deprecatedTest6(), DeprecatedDocComment2
+- compiler.err.warnings.and.werror
+1 error
 3 warnings
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/generics/6729401/T6729401.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * @test
+ * @bug 6729401
+ *
+ * @summary  Compiler error when using F-bounded generics with free type variables
+ * @author Maurizio Cimadamore
+ * @compile T6729401.java
+ *
+ */
+
+class T6729401 {
+
+    interface I<U,W> {
+        <T extends I<U,T>> void m(I<U,T> x);
+    }
+
+    <X extends I<Object,X>,Y extends I<Object,Y>> void test(I<Object,X> x, I<Object,Y> y) {
+        x.<Y>m(y);
+        x.m(y);
+        y.<X>m(x);
+        y.m(x);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/generics/inference/6315770/T6315770.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/**
+ * @test
+ * @bug     6315770
+ * @summary javac inference allows creation of strange types: Integer & Runnable
+ * @author Maurizio Cimadamore
+ *
+ * @compile/fail/ref=T6315770.out T6315770.java -XDrawDiagnostics
+ */
+
+class T6315770<V> {
+    <T extends Integer & Runnable> T6315770<T> m() {
+        return null;
+    }
+    void test() {
+        T6315770<?> c1 = m();
+        T6315770<? extends String> c2 = m();
+        T6315770<? super String> c3 = m();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/generics/inference/6315770/T6315770.out	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,3 @@
+T6315770.java:39:42: compiler.err.undetermined.type.1: <T>T6315770<T>, (- compiler.misc.no.unique.maximal.instance.exists: T, java.lang.String,java.lang.Integer,java.lang.Runnable)
+T6315770.java:40:40: compiler.err.prob.found.req: (- compiler.misc.incompatible.types.1: (- compiler.misc.no.conforming.instance.exists: T, T6315770<T>, T6315770<? super java.lang.String>)), <T>T6315770<T>, T6315770<? super java.lang.String>
+2 errors
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/processing/model/TestExceptions.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * @test
+ * @bug 6794071
+ * @summary Test that exceptions have a proper parent class
+ * @author  Joseph D. Darcy
+ */
+
+import javax.lang.model.UnknownEntityException;
+import javax.lang.model.element.*;
+import javax.lang.model.type.*;
+
+/*
+ * Verify UnknownFooExceptions can be caught with a common parent
+ * exception.
+ */
+public class TestExceptions {
+    public static void main(String... args) {
+        RuntimeException[] exceptions = {
+            new UnknownElementException((Element)null, (Object)null),
+            new UnknownAnnotationValueException((AnnotationValue) null, (Object) null),
+            new UnknownTypeException((TypeMirror)null, (Object)null)
+        };
+
+        for(RuntimeException exception : exceptions) {
+            try {
+                throw exception;
+            } catch (UnknownEntityException uee) {
+                ;
+            }
+        }
+    }
+}
--- a/langtools/test/tools/javac/processing/model/testgetallmembers/Main.java	Wed Jul 05 16:46:57 2017 +0200
+++ b/langtools/test/tools/javac/processing/model/testgetallmembers/Main.java	Wed Jul 05 16:47:27 2017 +0200
@@ -23,7 +23,7 @@
 
 /**
  * @test
- * @bug     6374357 6308351
+ * @bug     6374357 6308351 6707027
  * @summary PackageElement.getEnclosedElements() throws ClassReader$BadClassFileException
  * @author  Peter von der Ah\u00e9
  * @run main/othervm -Xmx256m Main
@@ -118,7 +118,7 @@
                           packages.size(), classes, nestedClasses);
         if (classes < 9000)
             throw new AssertionError("Too few classes in PLATFORM_CLASS_PATH ;-)");
-        if (packages.size() < 545)
+        if (packages.size() < 530)
             throw new AssertionError("Too few packages in PLATFORM_CLASS_PATH ;-)");
         if (nestedClasses < 3000)
             throw new AssertionError("Too few nested classes in PLATFORM_CLASS_PATH ;-)");
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javadoc/6176978/T6176978.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,80 @@
+/*
+ * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * @test
+ * @bug 6176978
+ * @summary current Javadoc's invocation and extension (Doclet) mechanisms are problematic
+ * @build T6176978
+ * @run main T6176978
+ */
+
+import java.io.*;
+import java.net.*;
+
+public class T6176978
+{
+    public static void main(String[] args) throws Exception {
+        // create and use a temp dir that will not be on jtreg's
+        // default class path
+        File tmpDir = new File("tmp");
+        tmpDir.mkdirs();
+
+        File testSrc = new File(System.getProperty("test.src", "."));
+        String[] javac_args = {
+            "-d",
+            "tmp",
+            new File(testSrc, "X.java").getPath()
+        };
+
+        int rc = com.sun.tools.javac.Main.compile(javac_args);
+        if (rc != 0)
+            throw new Error("javac exit code: " + rc);
+
+        String[] jdoc_args = {
+            "-doclet",
+            "X",
+            new File(testSrc, "T6176978.java").getPath()
+        };
+
+        rc = com.sun.tools.javadoc.Main.execute(jdoc_args);
+        if (rc == 0)
+            throw new Error("javadoc unexpectedly succeeded");
+
+
+
+        Thread currThread = Thread.currentThread();
+        ClassLoader saveClassLoader = currThread.getContextClassLoader();
+        URLClassLoader urlCL = new URLClassLoader(new URL[] { tmpDir.toURL() });
+        currThread.setContextClassLoader(urlCL);
+
+        try {
+            rc = com.sun.tools.javadoc.Main.execute(jdoc_args);
+            if (rc != 0)
+                throw new Error("javadoc exit: " + rc);
+        }
+        finally {
+            currThread.setContextClassLoader(saveClassLoader);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javadoc/6176978/X.java	Wed Jul 05 16:47:27 2017 +0200
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+import com.sun.javadoc.*;
+
+public class X {
+    public static boolean start(RootDoc root) {
+        System.out.println("X.start");
+        return true;
+    }
+}