Merge
authorapangin
Thu, 26 Feb 2009 14:25:55 -0800
changeset 2120 d962d57ba99a
parent 2119 57dabaf796ea (current diff)
parent 2114 a43ce5eab2a3 (diff)
child 2124 6222ebfe4292
Merge
hotspot/src/cpu/x86/vm/vm_version_x86_32.cpp
hotspot/src/cpu/x86/vm/vm_version_x86_32.hpp
hotspot/src/cpu/x86/vm/vm_version_x86_64.cpp
hotspot/src/cpu/x86/vm/vm_version_x86_64.hpp
jdk/src/windows/native/sun/windows/UnicowsLoader.cpp
jdk/src/windows/native/sun/windows/UnicowsLoader.h
jdk/src/windows/native/sun/windows/awt_MMStub.cpp
jdk/src/windows/native/sun/windows/awt_MMStub.h
jdk/src/windows/native/sun/windows/awt_Multimon.h
jdk/src/windows/native/sun/windows/awt_Unicode.cpp
jdk/src/windows/native/sun/windows/awt_Unicode.h
jdk/src/windows/native/sun/windows/awt_dlls.cpp
jdk/src/windows/native/sun/windows/awt_dlls.h
--- a/.hgtags	Sun Feb 22 17:21:13 2009 -0800
+++ b/.hgtags	Thu Feb 26 14:25:55 2009 -0800
@@ -20,3 +20,5 @@
 41bd0a702bc8ec6feebd725a63e7c3227f82ab11 jdk7-b43
 5843778bda89b1d5ac8e1aa05e26930ac90b3145 jdk7-b44
 54dffad0bf066791a2793305875250c395011d5f jdk7-b45
+04b2620edc72de93671646e4720c5992c74ac8b5 jdk7-b46
+0c4657194eec95c08ba478aee9cfc3c295e41657 jdk7-b47
--- a/.hgtags-top-repo	Sun Feb 22 17:21:13 2009 -0800
+++ b/.hgtags-top-repo	Thu Feb 26 14:25:55 2009 -0800
@@ -20,3 +20,5 @@
 848e684279d2ba42577d9621d5b2e5af3823d12d jdk7-b43
 a395e3aac4744cc9033fcd819fad1239a45add52 jdk7-b44
 99846f001ca214015578d593802d26e27246a802 jdk7-b45
+e8a2a4d187773a62f3309b0fa265c13425bc2258 jdk7-b46
+d7744e86dedc21a8ecf6bdb73eb191b8eaf5b0da jdk7-b47
--- a/corba/.hgtags	Sun Feb 22 17:21:13 2009 -0800
+++ b/corba/.hgtags	Thu Feb 26 14:25:55 2009 -0800
@@ -20,3 +20,5 @@
 9cd740d48a4855321d69f137a7109c00bcda76be jdk7-b43
 9803dac7254041b30ca65e3852d4c566b9757c3b jdk7-b44
 68814aa5b44b1f16931a97e7cd4028c70eb9586b jdk7-b45
+1691dbfc08f8ee3f4e23a1ff30cdff920718696c jdk7-b46
+167ad0164301f318b069a947e1c9c07ed667748a jdk7-b47
--- a/hotspot/.hgtags	Sun Feb 22 17:21:13 2009 -0800
+++ b/hotspot/.hgtags	Thu Feb 26 14:25:55 2009 -0800
@@ -20,3 +20,5 @@
 fc6a5ae3fef5ebacfa896dbb3ae37715e388e282 jdk7-b43
 809e899c638bd9b21836abf9d09ab2a30ff3900b jdk7-b44
 945bf754069766e76873c53102fae48abf04cf5b jdk7-b45
+16bb38eeda35b46268eefa4c1f829eb086e0ca46 jdk7-b46
+fcb923bad68e2b10380a030ea83a723f4dc3d4d6 jdk7-b47
--- a/hotspot/make/hotspot_version	Sun Feb 22 17:21:13 2009 -0800
+++ b/hotspot/make/hotspot_version	Thu Feb 26 14:25:55 2009 -0800
@@ -35,7 +35,7 @@
 
 HS_MAJOR_VER=15
 HS_MINOR_VER=0
-HS_BUILD_NUMBER=01
+HS_BUILD_NUMBER=02
 
 JDK_MAJOR_VER=1
 JDK_MINOR_VER=7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/src/cpu/x86/vm/vm_version_x86.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -0,0 +1,514 @@
+/*
+ * Copyright 1997-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.
+ *
+ */
+
+# include "incls/_precompiled.incl"
+# include "incls/_vm_version_x86.cpp.incl"
+
+
+int VM_Version::_cpu;
+int VM_Version::_model;
+int VM_Version::_stepping;
+int VM_Version::_cpuFeatures;
+const char*           VM_Version::_features_str = "";
+VM_Version::CpuidInfo VM_Version::_cpuid_info   = { 0, };
+
+static BufferBlob* stub_blob;
+static const int stub_size = 300;
+
+extern "C" {
+  typedef void (*getPsrInfo_stub_t)(void*);
+}
+static getPsrInfo_stub_t getPsrInfo_stub = NULL;
+
+
+class VM_Version_StubGenerator: public StubCodeGenerator {
+ public:
+
+  VM_Version_StubGenerator(CodeBuffer *c) : StubCodeGenerator(c) {}
+
+  address generate_getPsrInfo() {
+    // Flags to test CPU type.
+    const uint32_t EFL_AC           = 0x40000;
+    const uint32_t EFL_ID           = 0x200000;
+    // Values for when we don't have a CPUID instruction.
+    const int      CPU_FAMILY_SHIFT = 8;
+    const uint32_t CPU_FAMILY_386   = (3 << CPU_FAMILY_SHIFT);
+    const uint32_t CPU_FAMILY_486   = (4 << CPU_FAMILY_SHIFT);
+
+    Label detect_486, cpu486, detect_586, std_cpuid1;
+    Label ext_cpuid1, ext_cpuid5, done;
+
+    StubCodeMark mark(this, "VM_Version", "getPsrInfo_stub");
+#   define __ _masm->
+
+    address start = __ pc();
+
+    //
+    // void getPsrInfo(VM_Version::CpuidInfo* cpuid_info);
+    //
+    // LP64: rcx and rdx are first and second argument registers on windows
+
+    __ push(rbp);
+#ifdef _LP64
+    __ mov(rbp, c_rarg0); // cpuid_info address
+#else
+    __ movptr(rbp, Address(rsp, 8)); // cpuid_info address
+#endif
+    __ push(rbx);
+    __ push(rsi);
+    __ pushf();          // preserve rbx, and flags
+    __ pop(rax);
+    __ push(rax);
+    __ mov(rcx, rax);
+    //
+    // if we are unable to change the AC flag, we have a 386
+    //
+    __ xorl(rax, EFL_AC);
+    __ push(rax);
+    __ popf();
+    __ pushf();
+    __ pop(rax);
+    __ cmpptr(rax, rcx);
+    __ jccb(Assembler::notEqual, detect_486);
+
+    __ movl(rax, CPU_FAMILY_386);
+    __ movl(Address(rbp, in_bytes(VM_Version::std_cpuid1_offset())), rax);
+    __ jmp(done);
+
+    //
+    // If we are unable to change the ID flag, we have a 486 which does
+    // not support the "cpuid" instruction.
+    //
+    __ bind(detect_486);
+    __ mov(rax, rcx);
+    __ xorl(rax, EFL_ID);
+    __ push(rax);
+    __ popf();
+    __ pushf();
+    __ pop(rax);
+    __ cmpptr(rcx, rax);
+    __ jccb(Assembler::notEqual, detect_586);
+
+    __ bind(cpu486);
+    __ movl(rax, CPU_FAMILY_486);
+    __ movl(Address(rbp, in_bytes(VM_Version::std_cpuid1_offset())), rax);
+    __ jmp(done);
+
+    //
+    // At this point, we have a chip which supports the "cpuid" instruction
+    //
+    __ bind(detect_586);
+    __ xorl(rax, rax);
+    __ cpuid();
+    __ orl(rax, rax);
+    __ jcc(Assembler::equal, cpu486);   // if cpuid doesn't support an input
+                                        // value of at least 1, we give up and
+                                        // assume a 486
+    __ lea(rsi, Address(rbp, in_bytes(VM_Version::std_cpuid0_offset())));
+    __ movl(Address(rsi, 0), rax);
+    __ movl(Address(rsi, 4), rbx);
+    __ movl(Address(rsi, 8), rcx);
+    __ movl(Address(rsi,12), rdx);
+
+    __ cmpl(rax, 3);     // Is cpuid(0x4) supported?
+    __ jccb(Assembler::belowEqual, std_cpuid1);
+
+    //
+    // cpuid(0x4) Deterministic cache params
+    //
+    __ movl(rax, 4);
+    __ xorl(rcx, rcx);   // L1 cache
+    __ cpuid();
+    __ push(rax);
+    __ andl(rax, 0x1f);  // Determine if valid cache parameters used
+    __ orl(rax, rax);    // eax[4:0] == 0 indicates invalid cache
+    __ pop(rax);
+    __ jccb(Assembler::equal, std_cpuid1);
+
+    __ lea(rsi, Address(rbp, in_bytes(VM_Version::dcp_cpuid4_offset())));
+    __ movl(Address(rsi, 0), rax);
+    __ movl(Address(rsi, 4), rbx);
+    __ movl(Address(rsi, 8), rcx);
+    __ movl(Address(rsi,12), rdx);
+
+    //
+    // Standard cpuid(0x1)
+    //
+    __ bind(std_cpuid1);
+    __ movl(rax, 1);
+    __ cpuid();
+    __ lea(rsi, Address(rbp, in_bytes(VM_Version::std_cpuid1_offset())));
+    __ movl(Address(rsi, 0), rax);
+    __ movl(Address(rsi, 4), rbx);
+    __ movl(Address(rsi, 8), rcx);
+    __ movl(Address(rsi,12), rdx);
+
+    __ movl(rax, 0x80000000);
+    __ cpuid();
+    __ cmpl(rax, 0x80000000);     // Is cpuid(0x80000001) supported?
+    __ jcc(Assembler::belowEqual, done);
+    __ cmpl(rax, 0x80000004);     // Is cpuid(0x80000005) supported?
+    __ jccb(Assembler::belowEqual, ext_cpuid1);
+    __ cmpl(rax, 0x80000007);     // Is cpuid(0x80000008) supported?
+    __ jccb(Assembler::belowEqual, ext_cpuid5);
+    //
+    // Extended cpuid(0x80000008)
+    //
+    __ movl(rax, 0x80000008);
+    __ cpuid();
+    __ lea(rsi, Address(rbp, in_bytes(VM_Version::ext_cpuid8_offset())));
+    __ movl(Address(rsi, 0), rax);
+    __ movl(Address(rsi, 4), rbx);
+    __ movl(Address(rsi, 8), rcx);
+    __ movl(Address(rsi,12), rdx);
+
+    //
+    // Extended cpuid(0x80000005)
+    //
+    __ bind(ext_cpuid5);
+    __ movl(rax, 0x80000005);
+    __ cpuid();
+    __ lea(rsi, Address(rbp, in_bytes(VM_Version::ext_cpuid5_offset())));
+    __ movl(Address(rsi, 0), rax);
+    __ movl(Address(rsi, 4), rbx);
+    __ movl(Address(rsi, 8), rcx);
+    __ movl(Address(rsi,12), rdx);
+
+    //
+    // Extended cpuid(0x80000001)
+    //
+    __ bind(ext_cpuid1);
+    __ movl(rax, 0x80000001);
+    __ cpuid();
+    __ lea(rsi, Address(rbp, in_bytes(VM_Version::ext_cpuid1_offset())));
+    __ movl(Address(rsi, 0), rax);
+    __ movl(Address(rsi, 4), rbx);
+    __ movl(Address(rsi, 8), rcx);
+    __ movl(Address(rsi,12), rdx);
+
+    //
+    // return
+    //
+    __ bind(done);
+    __ popf();
+    __ pop(rsi);
+    __ pop(rbx);
+    __ pop(rbp);
+    __ ret(0);
+
+#   undef __
+
+    return start;
+  };
+};
+
+
+void VM_Version::get_processor_features() {
+
+  _cpu = 4; // 486 by default
+  _model = 0;
+  _stepping = 0;
+  _cpuFeatures = 0;
+  _logical_processors_per_package = 1;
+
+  if (!Use486InstrsOnly) {
+    // Get raw processor info
+    getPsrInfo_stub(&_cpuid_info);
+    assert_is_initialized();
+    _cpu = extended_cpu_family();
+    _model = extended_cpu_model();
+    _stepping = cpu_stepping();
+
+    if (cpu_family() > 4) { // it supports CPUID
+      _cpuFeatures = feature_flags();
+      // Logical processors are only available on P4s and above,
+      // and only if hyperthreading is available.
+      _logical_processors_per_package = logical_processor_count();
+    }
+  }
+
+  _supports_cx8 = supports_cmpxchg8();
+
+#ifdef _LP64
+  // OS should support SSE for x64 and hardware should support at least SSE2.
+  if (!VM_Version::supports_sse2()) {
+    vm_exit_during_initialization("Unknown x64 processor: SSE2 not supported");
+  }
+#endif
+
+  // If the OS doesn't support SSE, we can't use this feature even if the HW does
+  if (!os::supports_sse())
+    _cpuFeatures &= ~(CPU_SSE|CPU_SSE2|CPU_SSE3|CPU_SSSE3|CPU_SSE4A|CPU_SSE4_1|CPU_SSE4_2);
+
+  if (UseSSE < 4) {
+    _cpuFeatures &= ~CPU_SSE4_1;
+    _cpuFeatures &= ~CPU_SSE4_2;
+  }
+
+  if (UseSSE < 3) {
+    _cpuFeatures &= ~CPU_SSE3;
+    _cpuFeatures &= ~CPU_SSSE3;
+    _cpuFeatures &= ~CPU_SSE4A;
+  }
+
+  if (UseSSE < 2)
+    _cpuFeatures &= ~CPU_SSE2;
+
+  if (UseSSE < 1)
+    _cpuFeatures &= ~CPU_SSE;
+
+  if (logical_processors_per_package() == 1) {
+    // HT processor could be installed on a system which doesn't support HT.
+    _cpuFeatures &= ~CPU_HT;
+  }
+
+  char buf[256];
+  jio_snprintf(buf, sizeof(buf), "(%u cores per cpu, %u threads per core) family %d model %d stepping %d%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
+               cores_per_cpu(), threads_per_core(),
+               cpu_family(), _model, _stepping,
+               (supports_cmov() ? ", cmov" : ""),
+               (supports_cmpxchg8() ? ", cx8" : ""),
+               (supports_fxsr() ? ", fxsr" : ""),
+               (supports_mmx()  ? ", mmx"  : ""),
+               (supports_sse()  ? ", sse"  : ""),
+               (supports_sse2() ? ", sse2" : ""),
+               (supports_sse3() ? ", sse3" : ""),
+               (supports_ssse3()? ", ssse3": ""),
+               (supports_sse4_1() ? ", sse4.1" : ""),
+               (supports_sse4_2() ? ", sse4.2" : ""),
+               (supports_mmx_ext() ? ", mmxext" : ""),
+               (supports_3dnow()   ? ", 3dnow"  : ""),
+               (supports_3dnow2()  ? ", 3dnowext" : ""),
+               (supports_sse4a()   ? ", sse4a": ""),
+               (supports_ht() ? ", ht": ""));
+  _features_str = strdup(buf);
+
+  // UseSSE is set to the smaller of what hardware supports and what
+  // the command line requires.  I.e., you cannot set UseSSE to 2 on
+  // older Pentiums which do not support it.
+  if( UseSSE > 4 ) UseSSE=4;
+  if( UseSSE < 0 ) UseSSE=0;
+  if( !supports_sse4_1() ) // Drop to 3 if no SSE4 support
+    UseSSE = MIN2((intx)3,UseSSE);
+  if( !supports_sse3() ) // Drop to 2 if no SSE3 support
+    UseSSE = MIN2((intx)2,UseSSE);
+  if( !supports_sse2() ) // Drop to 1 if no SSE2 support
+    UseSSE = MIN2((intx)1,UseSSE);
+  if( !supports_sse () ) // Drop to 0 if no SSE  support
+    UseSSE = 0;
+
+  // On new cpus instructions which update whole XMM register should be used
+  // to prevent partial register stall due to dependencies on high half.
+  //
+  // UseXmmLoadAndClearUpper == true  --> movsd(xmm, mem)
+  // UseXmmLoadAndClearUpper == false --> movlpd(xmm, mem)
+  // UseXmmRegToRegMoveAll == true  --> movaps(xmm, xmm), movapd(xmm, xmm).
+  // UseXmmRegToRegMoveAll == false --> movss(xmm, xmm),  movsd(xmm, xmm).
+
+  if( is_amd() ) { // AMD cpus specific settings
+    if( supports_sse2() && FLAG_IS_DEFAULT(UseAddressNop) ) {
+      // Use it on new AMD cpus starting from Opteron.
+      UseAddressNop = true;
+    }
+    if( supports_sse2() && FLAG_IS_DEFAULT(UseNewLongLShift) ) {
+      // Use it on new AMD cpus starting from Opteron.
+      UseNewLongLShift = true;
+    }
+    if( FLAG_IS_DEFAULT(UseXmmLoadAndClearUpper) ) {
+      if( supports_sse4a() ) {
+        UseXmmLoadAndClearUpper = true; // use movsd only on '10h' Opteron
+      } else {
+        UseXmmLoadAndClearUpper = false;
+      }
+    }
+    if( FLAG_IS_DEFAULT(UseXmmRegToRegMoveAll) ) {
+      if( supports_sse4a() ) {
+        UseXmmRegToRegMoveAll = true; // use movaps, movapd only on '10h'
+      } else {
+        UseXmmRegToRegMoveAll = false;
+      }
+    }
+    if( FLAG_IS_DEFAULT(UseXmmI2F) ) {
+      if( supports_sse4a() ) {
+        UseXmmI2F = true;
+      } else {
+        UseXmmI2F = false;
+      }
+    }
+    if( FLAG_IS_DEFAULT(UseXmmI2D) ) {
+      if( supports_sse4a() ) {
+        UseXmmI2D = true;
+      } else {
+        UseXmmI2D = false;
+      }
+    }
+  }
+
+  if( is_intel() ) { // Intel cpus specific settings
+    if( FLAG_IS_DEFAULT(UseStoreImmI16) ) {
+      UseStoreImmI16 = false; // don't use it on Intel cpus
+    }
+    if( cpu_family() == 6 || cpu_family() == 15 ) {
+      if( FLAG_IS_DEFAULT(UseAddressNop) ) {
+        // Use it on all Intel cpus starting from PentiumPro
+        UseAddressNop = true;
+      }
+    }
+    if( FLAG_IS_DEFAULT(UseXmmLoadAndClearUpper) ) {
+      UseXmmLoadAndClearUpper = true; // use movsd on all Intel cpus
+    }
+    if( FLAG_IS_DEFAULT(UseXmmRegToRegMoveAll) ) {
+      if( supports_sse3() ) {
+        UseXmmRegToRegMoveAll = true; // use movaps, movapd on new Intel cpus
+      } else {
+        UseXmmRegToRegMoveAll = false;
+      }
+    }
+    if( cpu_family() == 6 && supports_sse3() ) { // New Intel cpus
+#ifdef COMPILER2
+      if( FLAG_IS_DEFAULT(MaxLoopPad) ) {
+        // For new Intel cpus do the next optimization:
+        // don't align the beginning of a loop if there are enough instructions
+        // left (NumberOfLoopInstrToAlign defined in c2_globals.hpp)
+        // in current fetch line (OptoLoopAlignment) or the padding
+        // is big (> MaxLoopPad).
+        // Set MaxLoopPad to 11 for new Intel cpus to reduce number of
+        // generated NOP instructions. 11 is the largest size of one
+        // address NOP instruction '0F 1F' (see Assembler::nop(i)).
+        MaxLoopPad = 11;
+      }
+#endif // COMPILER2
+      if( FLAG_IS_DEFAULT(UseXMMForArrayCopy) ) {
+        UseXMMForArrayCopy = true; // use SSE2 movq on new Intel cpus
+      }
+      if( supports_sse4_2() && supports_ht() ) { // Newest Intel cpus
+        if( FLAG_IS_DEFAULT(UseUnalignedLoadStores) && UseXMMForArrayCopy ) {
+          UseUnalignedLoadStores = true; // use movdqu on newest Intel cpus
+        }
+      }
+    }
+  }
+
+  assert(0 <= ReadPrefetchInstr && ReadPrefetchInstr <= 3, "invalid value");
+  assert(0 <= AllocatePrefetchInstr && AllocatePrefetchInstr <= 3, "invalid value");
+
+  // set valid Prefetch instruction
+  if( ReadPrefetchInstr < 0 ) ReadPrefetchInstr = 0;
+  if( ReadPrefetchInstr > 3 ) ReadPrefetchInstr = 3;
+  if( ReadPrefetchInstr == 3 && !supports_3dnow() ) ReadPrefetchInstr = 0;
+  if( !supports_sse() && supports_3dnow() ) ReadPrefetchInstr = 3;
+
+  if( AllocatePrefetchInstr < 0 ) AllocatePrefetchInstr = 0;
+  if( AllocatePrefetchInstr > 3 ) AllocatePrefetchInstr = 3;
+  if( AllocatePrefetchInstr == 3 && !supports_3dnow() ) AllocatePrefetchInstr=0;
+  if( !supports_sse() && supports_3dnow() ) AllocatePrefetchInstr = 3;
+
+  // Allocation prefetch settings
+  intx cache_line_size = L1_data_cache_line_size();
+  if( cache_line_size > AllocatePrefetchStepSize )
+    AllocatePrefetchStepSize = cache_line_size;
+  if( FLAG_IS_DEFAULT(AllocatePrefetchLines) )
+    AllocatePrefetchLines = 3; // Optimistic value
+  assert(AllocatePrefetchLines > 0, "invalid value");
+  if( AllocatePrefetchLines < 1 ) // set valid value in product VM
+    AllocatePrefetchLines = 1; // Conservative value
+
+  AllocatePrefetchDistance = allocate_prefetch_distance();
+  AllocatePrefetchStyle    = allocate_prefetch_style();
+
+  if( AllocatePrefetchStyle == 2 && is_intel() &&
+      cpu_family() == 6 && supports_sse3() ) { // watermark prefetching on Core
+#ifdef _LP64
+    AllocatePrefetchDistance = 384;
+#else
+    AllocatePrefetchDistance = 320;
+#endif
+  }
+  assert(AllocatePrefetchDistance % AllocatePrefetchStepSize == 0, "invalid value");
+
+#ifdef _LP64
+  // Prefetch settings
+  PrefetchCopyIntervalInBytes = prefetch_copy_interval_in_bytes();
+  PrefetchScanIntervalInBytes = prefetch_scan_interval_in_bytes();
+  PrefetchFieldsAhead         = prefetch_fields_ahead();
+#endif
+
+#ifndef PRODUCT
+  if (PrintMiscellaneous && Verbose) {
+    tty->print_cr("Logical CPUs per core: %u",
+                  logical_processors_per_package());
+    tty->print_cr("UseSSE=%d",UseSSE);
+    tty->print("Allocation: ");
+    if (AllocatePrefetchStyle <= 0 || UseSSE == 0 && !supports_3dnow()) {
+      tty->print_cr("no prefetching");
+    } else {
+      if (UseSSE == 0 && supports_3dnow()) {
+        tty->print("PREFETCHW");
+      } else if (UseSSE >= 1) {
+        if (AllocatePrefetchInstr == 0) {
+          tty->print("PREFETCHNTA");
+        } else if (AllocatePrefetchInstr == 1) {
+          tty->print("PREFETCHT0");
+        } else if (AllocatePrefetchInstr == 2) {
+          tty->print("PREFETCHT2");
+        } else if (AllocatePrefetchInstr == 3) {
+          tty->print("PREFETCHW");
+        }
+      }
+      if (AllocatePrefetchLines > 1) {
+        tty->print_cr(" %d, %d lines with step %d bytes", AllocatePrefetchDistance, AllocatePrefetchLines, AllocatePrefetchStepSize);
+      } else {
+        tty->print_cr(" %d, one line", AllocatePrefetchDistance);
+      }
+    }
+
+    if (PrefetchCopyIntervalInBytes > 0) {
+      tty->print_cr("PrefetchCopyIntervalInBytes %d", PrefetchCopyIntervalInBytes);
+    }
+    if (PrefetchScanIntervalInBytes > 0) {
+      tty->print_cr("PrefetchScanIntervalInBytes %d", PrefetchScanIntervalInBytes);
+    }
+    if (PrefetchFieldsAhead > 0) {
+      tty->print_cr("PrefetchFieldsAhead %d", PrefetchFieldsAhead);
+    }
+  }
+#endif // !PRODUCT
+}
+
+void VM_Version::initialize() {
+  ResourceMark rm;
+  // Making this stub must be FIRST use of assembler
+
+  stub_blob = BufferBlob::create("getPsrInfo_stub", stub_size);
+  if (stub_blob == NULL) {
+    vm_exit_during_initialization("Unable to allocate getPsrInfo_stub");
+  }
+  CodeBuffer c(stub_blob->instructions_begin(),
+               stub_blob->instructions_size());
+  VM_Version_StubGenerator g(&c);
+  getPsrInfo_stub = CAST_TO_FN_PTR(getPsrInfo_stub_t,
+                                   g.generate_getPsrInfo());
+
+  get_processor_features();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/src/cpu/x86/vm/vm_version_x86.hpp	Thu Feb 26 14:25:55 2009 -0800
@@ -0,0 +1,459 @@
+/*
+ * Copyright 1997-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.
+ *
+ */
+
+class VM_Version : public Abstract_VM_Version {
+public:
+  // cpuid result register layouts.  These are all unions of a uint32_t
+  // (in case anyone wants access to the register as a whole) and a bitfield.
+
+  union StdCpuid1Eax {
+    uint32_t value;
+    struct {
+      uint32_t stepping   : 4,
+               model      : 4,
+               family     : 4,
+               proc_type  : 2,
+                          : 2,
+               ext_model  : 4,
+               ext_family : 8,
+                          : 4;
+    } bits;
+  };
+
+  union StdCpuid1Ebx { // example, unused
+    uint32_t value;
+    struct {
+      uint32_t brand_id         : 8,
+               clflush_size     : 8,
+               threads_per_cpu  : 8,
+               apic_id          : 8;
+    } bits;
+  };
+
+  union StdCpuid1Ecx {
+    uint32_t value;
+    struct {
+      uint32_t sse3     : 1,
+                        : 2,
+               monitor  : 1,
+                        : 1,
+               vmx      : 1,
+                        : 1,
+               est      : 1,
+                        : 1,
+               ssse3    : 1,
+               cid      : 1,
+                        : 2,
+               cmpxchg16: 1,
+                        : 4,
+               dca      : 1,
+               sse4_1   : 1,
+               sse4_2   : 1,
+                        : 11;
+    } bits;
+  };
+
+  union StdCpuid1Edx {
+    uint32_t value;
+    struct {
+      uint32_t          : 4,
+               tsc      : 1,
+                        : 3,
+               cmpxchg8 : 1,
+                        : 6,
+               cmov     : 1,
+                        : 7,
+               mmx      : 1,
+               fxsr     : 1,
+               sse      : 1,
+               sse2     : 1,
+                        : 1,
+               ht       : 1,
+                        : 3;
+    } bits;
+  };
+
+  union DcpCpuid4Eax {
+    uint32_t value;
+    struct {
+      uint32_t cache_type    : 5,
+                             : 21,
+               cores_per_cpu : 6;
+    } bits;
+  };
+
+  union DcpCpuid4Ebx {
+    uint32_t value;
+    struct {
+      uint32_t L1_line_size  : 12,
+               partitions    : 10,
+               associativity : 10;
+    } bits;
+  };
+
+  union ExtCpuid1Ecx {
+    uint32_t value;
+    struct {
+      uint32_t LahfSahf     : 1,
+               CmpLegacy    : 1,
+                            : 4,
+               abm          : 1,
+               sse4a        : 1,
+               misalignsse  : 1,
+               prefetchw    : 1,
+                            : 22;
+    } bits;
+  };
+
+  union ExtCpuid1Edx {
+    uint32_t value;
+    struct {
+      uint32_t           : 22,
+               mmx_amd   : 1,
+               mmx       : 1,
+               fxsr      : 1,
+                         : 4,
+               long_mode : 1,
+               tdnow2    : 1,
+               tdnow     : 1;
+    } bits;
+  };
+
+  union ExtCpuid5Ex {
+    uint32_t value;
+    struct {
+      uint32_t L1_line_size : 8,
+               L1_tag_lines : 8,
+               L1_assoc     : 8,
+               L1_size      : 8;
+    } bits;
+  };
+
+  union ExtCpuid8Ecx {
+    uint32_t value;
+    struct {
+      uint32_t cores_per_cpu : 8,
+                             : 24;
+    } bits;
+  };
+
+protected:
+   static int _cpu;
+   static int _model;
+   static int _stepping;
+   static int _cpuFeatures;     // features returned by the "cpuid" instruction
+                                // 0 if this instruction is not available
+   static const char* _features_str;
+
+   enum {
+     CPU_CX8    = (1 << 0), // next bits are from cpuid 1 (EDX)
+     CPU_CMOV   = (1 << 1),
+     CPU_FXSR   = (1 << 2),
+     CPU_HT     = (1 << 3),
+     CPU_MMX    = (1 << 4),
+     CPU_3DNOW  = (1 << 5), // 3DNow comes from cpuid 0x80000001 (EDX)
+     CPU_SSE    = (1 << 6),
+     CPU_SSE2   = (1 << 7),
+     CPU_SSE3   = (1 << 8), // SSE3 comes from cpuid 1 (ECX)
+     CPU_SSSE3  = (1 << 9),
+     CPU_SSE4A  = (1 << 10),
+     CPU_SSE4_1 = (1 << 11),
+     CPU_SSE4_2 = (1 << 12)
+   } cpuFeatureFlags;
+
+  // cpuid information block.  All info derived from executing cpuid with
+  // various function numbers is stored here.  Intel and AMD info is
+  // merged in this block: accessor methods disentangle it.
+  //
+  // The info block is laid out in subblocks of 4 dwords corresponding to
+  // eax, ebx, ecx and edx, whether or not they contain anything useful.
+  struct CpuidInfo {
+    // cpuid function 0
+    uint32_t std_max_function;
+    uint32_t std_vendor_name_0;
+    uint32_t std_vendor_name_1;
+    uint32_t std_vendor_name_2;
+
+    // cpuid function 1
+    StdCpuid1Eax std_cpuid1_eax;
+    StdCpuid1Ebx std_cpuid1_ebx;
+    StdCpuid1Ecx std_cpuid1_ecx;
+    StdCpuid1Edx std_cpuid1_edx;
+
+    // cpuid function 4 (deterministic cache parameters)
+    DcpCpuid4Eax dcp_cpuid4_eax;
+    DcpCpuid4Ebx dcp_cpuid4_ebx;
+    uint32_t     dcp_cpuid4_ecx; // unused currently
+    uint32_t     dcp_cpuid4_edx; // unused currently
+
+    // cpuid function 0x80000000 // example, unused
+    uint32_t ext_max_function;
+    uint32_t ext_vendor_name_0;
+    uint32_t ext_vendor_name_1;
+    uint32_t ext_vendor_name_2;
+
+    // cpuid function 0x80000001
+    uint32_t     ext_cpuid1_eax; // reserved
+    uint32_t     ext_cpuid1_ebx; // reserved
+    ExtCpuid1Ecx ext_cpuid1_ecx;
+    ExtCpuid1Edx ext_cpuid1_edx;
+
+    // cpuid functions 0x80000002 thru 0x80000004: example, unused
+    uint32_t proc_name_0, proc_name_1, proc_name_2, proc_name_3;
+    uint32_t proc_name_4, proc_name_5, proc_name_6, proc_name_7;
+    uint32_t proc_name_8, proc_name_9, proc_name_10,proc_name_11;
+
+    // cpuid function 0x80000005 //AMD L1, Intel reserved
+    uint32_t     ext_cpuid5_eax; // unused currently
+    uint32_t     ext_cpuid5_ebx; // reserved
+    ExtCpuid5Ex  ext_cpuid5_ecx; // L1 data cache info (AMD)
+    ExtCpuid5Ex  ext_cpuid5_edx; // L1 instruction cache info (AMD)
+
+    // cpuid function 0x80000008
+    uint32_t     ext_cpuid8_eax; // unused currently
+    uint32_t     ext_cpuid8_ebx; // reserved
+    ExtCpuid8Ecx ext_cpuid8_ecx;
+    uint32_t     ext_cpuid8_edx; // reserved
+  };
+
+  // The actual cpuid info block
+  static CpuidInfo _cpuid_info;
+
+  // Extractors and predicates
+  static uint32_t extended_cpu_family() {
+    uint32_t result = _cpuid_info.std_cpuid1_eax.bits.family;
+    result += _cpuid_info.std_cpuid1_eax.bits.ext_family;
+    return result;
+  }
+  static uint32_t extended_cpu_model() {
+    uint32_t result = _cpuid_info.std_cpuid1_eax.bits.model;
+    result |= _cpuid_info.std_cpuid1_eax.bits.ext_model << 4;
+    return result;
+  }
+  static uint32_t cpu_stepping() {
+    uint32_t result = _cpuid_info.std_cpuid1_eax.bits.stepping;
+    return result;
+  }
+  static uint logical_processor_count() {
+    uint result = threads_per_core();
+    return result;
+  }
+  static uint32_t feature_flags() {
+    uint32_t result = 0;
+    if (_cpuid_info.std_cpuid1_edx.bits.cmpxchg8 != 0)
+      result |= CPU_CX8;
+    if (_cpuid_info.std_cpuid1_edx.bits.cmov != 0)
+      result |= CPU_CMOV;
+    if (_cpuid_info.std_cpuid1_edx.bits.fxsr != 0 || is_amd() &&
+        _cpuid_info.ext_cpuid1_edx.bits.fxsr != 0)
+      result |= CPU_FXSR;
+    // HT flag is set for multi-core processors also.
+    if (threads_per_core() > 1)
+      result |= CPU_HT;
+    if (_cpuid_info.std_cpuid1_edx.bits.mmx != 0 || is_amd() &&
+        _cpuid_info.ext_cpuid1_edx.bits.mmx != 0)
+      result |= CPU_MMX;
+    if (is_amd() && _cpuid_info.ext_cpuid1_edx.bits.tdnow != 0)
+      result |= CPU_3DNOW;
+    if (_cpuid_info.std_cpuid1_edx.bits.sse != 0)
+      result |= CPU_SSE;
+    if (_cpuid_info.std_cpuid1_edx.bits.sse2 != 0)
+      result |= CPU_SSE2;
+    if (_cpuid_info.std_cpuid1_ecx.bits.sse3 != 0)
+      result |= CPU_SSE3;
+    if (_cpuid_info.std_cpuid1_ecx.bits.ssse3 != 0)
+      result |= CPU_SSSE3;
+    if (is_amd() && _cpuid_info.ext_cpuid1_ecx.bits.sse4a != 0)
+      result |= CPU_SSE4A;
+    if (_cpuid_info.std_cpuid1_ecx.bits.sse4_1 != 0)
+      result |= CPU_SSE4_1;
+    if (_cpuid_info.std_cpuid1_ecx.bits.sse4_2 != 0)
+      result |= CPU_SSE4_2;
+    return result;
+  }
+
+  static void get_processor_features();
+
+public:
+  // Offsets for cpuid asm stub
+  static ByteSize std_cpuid0_offset() { return byte_offset_of(CpuidInfo, std_max_function); }
+  static ByteSize std_cpuid1_offset() { return byte_offset_of(CpuidInfo, std_cpuid1_eax); }
+  static ByteSize dcp_cpuid4_offset() { return byte_offset_of(CpuidInfo, dcp_cpuid4_eax); }
+  static ByteSize ext_cpuid1_offset() { return byte_offset_of(CpuidInfo, ext_cpuid1_eax); }
+  static ByteSize ext_cpuid5_offset() { return byte_offset_of(CpuidInfo, ext_cpuid5_eax); }
+  static ByteSize ext_cpuid8_offset() { return byte_offset_of(CpuidInfo, ext_cpuid8_eax); }
+
+  // Initialization
+  static void initialize();
+
+  // Asserts
+  static void assert_is_initialized() {
+    assert(_cpuid_info.std_cpuid1_eax.bits.family != 0, "VM_Version not initialized");
+  }
+
+  //
+  // Processor family:
+  //       3   -  386
+  //       4   -  486
+  //       5   -  Pentium
+  //       6   -  PentiumPro, Pentium II, Celeron, Xeon, Pentium III, Athlon,
+  //              Pentium M, Core Solo, Core Duo, Core2 Duo
+  //    family 6 model:   9,        13,       14,        15
+  //    0x0f   -  Pentium 4, Opteron
+  //
+  // Note: The cpu family should be used to select between
+  //       instruction sequences which are valid on all Intel
+  //       processors.  Use the feature test functions below to
+  //       determine whether a particular instruction is supported.
+  //
+  static int  cpu_family()        { return _cpu;}
+  static bool is_P6()             { return cpu_family() >= 6; }
+
+  static bool is_amd()            { assert_is_initialized(); return _cpuid_info.std_vendor_name_0 == 0x68747541; } // 'htuA'
+  static bool is_intel()          { assert_is_initialized(); return _cpuid_info.std_vendor_name_0 == 0x756e6547; } // 'uneG'
+
+  static uint cores_per_cpu()  {
+    uint result = 1;
+    if (is_intel()) {
+      result = (_cpuid_info.dcp_cpuid4_eax.bits.cores_per_cpu + 1);
+    } else if (is_amd()) {
+      result = (_cpuid_info.ext_cpuid8_ecx.bits.cores_per_cpu + 1);
+    }
+    return result;
+  }
+
+  static uint threads_per_core()  {
+    uint result = 1;
+    if (_cpuid_info.std_cpuid1_edx.bits.ht != 0) {
+      result = _cpuid_info.std_cpuid1_ebx.bits.threads_per_cpu /
+               cores_per_cpu();
+    }
+    return result;
+  }
+
+  static intx L1_data_cache_line_size()  {
+    intx result = 0;
+    if (is_intel()) {
+      result = (_cpuid_info.dcp_cpuid4_ebx.bits.L1_line_size + 1);
+    } else if (is_amd()) {
+      result = _cpuid_info.ext_cpuid5_ecx.bits.L1_line_size;
+    }
+    if (result < 32) // not defined ?
+      result = 32;   // 32 bytes by default on x86 and other x64
+    return result;
+  }
+
+  //
+  // Feature identification
+  //
+  static bool supports_cpuid()    { return _cpuFeatures  != 0; }
+  static bool supports_cmpxchg8() { return (_cpuFeatures & CPU_CX8) != 0; }
+  static bool supports_cmov()     { return (_cpuFeatures & CPU_CMOV) != 0; }
+  static bool supports_fxsr()     { return (_cpuFeatures & CPU_FXSR) != 0; }
+  static bool supports_ht()       { return (_cpuFeatures & CPU_HT) != 0; }
+  static bool supports_mmx()      { return (_cpuFeatures & CPU_MMX) != 0; }
+  static bool supports_sse()      { return (_cpuFeatures & CPU_SSE) != 0; }
+  static bool supports_sse2()     { return (_cpuFeatures & CPU_SSE2) != 0; }
+  static bool supports_sse3()     { return (_cpuFeatures & CPU_SSE3) != 0; }
+  static bool supports_ssse3()    { return (_cpuFeatures & CPU_SSSE3)!= 0; }
+  static bool supports_sse4_1()   { return (_cpuFeatures & CPU_SSE4_1) != 0; }
+  static bool supports_sse4_2()   { return (_cpuFeatures & CPU_SSE4_2) != 0; }
+  //
+  // AMD features
+  //
+  static bool supports_3dnow()    { return (_cpuFeatures & CPU_3DNOW) != 0; }
+  static bool supports_mmx_ext()  { return is_amd() && _cpuid_info.ext_cpuid1_edx.bits.mmx_amd != 0; }
+  static bool supports_3dnow2()   { return is_amd() && _cpuid_info.ext_cpuid1_edx.bits.tdnow2 != 0; }
+  static bool supports_sse4a()    { return (_cpuFeatures & CPU_SSE4A) != 0; }
+
+  static bool supports_compare_and_exchange() { return true; }
+
+  static const char* cpu_features()           { return _features_str; }
+
+  static intx allocate_prefetch_distance() {
+    // This method should be called before allocate_prefetch_style().
+    //
+    // Hardware prefetching (distance/size in bytes):
+    // Pentium 3 -  64 /  32
+    // Pentium 4 - 256 / 128
+    // Athlon    -  64 /  32 ????
+    // Opteron   - 128 /  64 only when 2 sequential cache lines accessed
+    // Core      - 128 /  64
+    //
+    // Software prefetching (distance in bytes / instruction with best score):
+    // Pentium 3 - 128 / prefetchnta
+    // Pentium 4 - 512 / prefetchnta
+    // Athlon    - 128 / prefetchnta
+    // Opteron   - 256 / prefetchnta
+    // Core      - 256 / prefetchnta
+    // It will be used only when AllocatePrefetchStyle > 0
+
+    intx count = AllocatePrefetchDistance;
+    if (count < 0) {   // default ?
+      if (is_amd()) {  // AMD
+        if (supports_sse2())
+          count = 256; // Opteron
+        else
+          count = 128; // Athlon
+      } else {         // Intel
+        if (supports_sse2())
+          if (cpu_family() == 6) {
+            count = 256; // Pentium M, Core, Core2
+          } else {
+            count = 512; // Pentium 4
+          }
+        else
+          count = 128; // Pentium 3 (and all other old CPUs)
+      }
+    }
+    return count;
+  }
+  static intx allocate_prefetch_style() {
+    assert(AllocatePrefetchStyle >= 0, "AllocatePrefetchStyle should be positive");
+    // Return 0 if AllocatePrefetchDistance was not defined.
+    return AllocatePrefetchDistance > 0 ? AllocatePrefetchStyle : 0;
+  }
+
+  // Prefetch interval for gc copy/scan == 9 dcache lines.  Derived from
+  // 50-warehouse specjbb runs on a 2-way 1.8ghz opteron using a 4gb heap.
+  // Tested intervals from 128 to 2048 in increments of 64 == one cache line.
+  // 256 bytes (4 dcache lines) was the nearest runner-up to 576.
+
+  // gc copy/scan is disabled if prefetchw isn't supported, because
+  // Prefetch::write emits an inlined prefetchw on Linux.
+  // Do not use the 3dnow prefetchw instruction.  It isn't supported on em64t.
+  // The used prefetcht0 instruction works for both amd64 and em64t.
+  static intx prefetch_copy_interval_in_bytes() {
+    intx interval = PrefetchCopyIntervalInBytes;
+    return interval >= 0 ? interval : 576;
+  }
+  static intx prefetch_scan_interval_in_bytes() {
+    intx interval = PrefetchScanIntervalInBytes;
+    return interval >= 0 ? interval : 576;
+  }
+  static intx prefetch_fields_ahead() {
+    intx count = PrefetchFieldsAhead;
+    return count >= 0 ? count : 1;
+  }
+};
--- a/hotspot/src/cpu/x86/vm/vm_version_x86_32.cpp	Sun Feb 22 17:21:13 2009 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,472 +0,0 @@
-/*
- * 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
- * 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.
- *
- */
-
-# include "incls/_precompiled.incl"
-# include "incls/_vm_version_x86_32.cpp.incl"
-
-
-int VM_Version::_cpu;
-int VM_Version::_model;
-int VM_Version::_stepping;
-int VM_Version::_cpuFeatures;
-const char*           VM_Version::_features_str = "";
-VM_Version::CpuidInfo VM_Version::_cpuid_info   = { 0, };
-
-static BufferBlob* stub_blob;
-static const int stub_size = 300;
-
-extern "C" {
-  typedef void (*getPsrInfo_stub_t)(void*);
-}
-static getPsrInfo_stub_t getPsrInfo_stub = NULL;
-
-
-class VM_Version_StubGenerator: public StubCodeGenerator {
- public:
-
-  VM_Version_StubGenerator(CodeBuffer *c) : StubCodeGenerator(c) {}
-
-  address generate_getPsrInfo() {
-    // Flags to test CPU type.
-    const uint32_t EFL_AC           = 0x40000;
-    const uint32_t EFL_ID           = 0x200000;
-    // Values for when we don't have a CPUID instruction.
-    const int      CPU_FAMILY_SHIFT = 8;
-    const uint32_t CPU_FAMILY_386   = (3 << CPU_FAMILY_SHIFT);
-    const uint32_t CPU_FAMILY_486   = (4 << CPU_FAMILY_SHIFT);
-
-    Label detect_486, cpu486, detect_586, std_cpuid1;
-    Label ext_cpuid1, ext_cpuid5, done;
-
-    StubCodeMark mark(this, "VM_Version", "getPsrInfo_stub");
-#   define __ _masm->
-
-    address start = __ pc();
-
-    //
-    // void getPsrInfo(VM_Version::CpuidInfo* cpuid_info);
-    //
-    __ push(rbp);
-    __ movptr(rbp, Address(rsp, 8)); // cpuid_info address
-    __ push(rbx);
-    __ push(rsi);
-    __ pushf();          // preserve rbx, and flags
-    __ pop(rax);
-    __ push(rax);
-    __ mov(rcx, rax);
-    //
-    // if we are unable to change the AC flag, we have a 386
-    //
-    __ xorl(rax, EFL_AC);
-    __ push(rax);
-    __ popf();
-    __ pushf();
-    __ pop(rax);
-    __ cmpptr(rax, rcx);
-    __ jccb(Assembler::notEqual, detect_486);
-
-    __ movl(rax, CPU_FAMILY_386);
-    __ movl(Address(rbp, in_bytes(VM_Version::std_cpuid1_offset())), rax);
-    __ jmp(done);
-
-    //
-    // If we are unable to change the ID flag, we have a 486 which does
-    // not support the "cpuid" instruction.
-    //
-    __ bind(detect_486);
-    __ mov(rax, rcx);
-    __ xorl(rax, EFL_ID);
-    __ push(rax);
-    __ popf();
-    __ pushf();
-    __ pop(rax);
-    __ cmpptr(rcx, rax);
-    __ jccb(Assembler::notEqual, detect_586);
-
-    __ bind(cpu486);
-    __ movl(rax, CPU_FAMILY_486);
-    __ movl(Address(rbp, in_bytes(VM_Version::std_cpuid1_offset())), rax);
-    __ jmp(done);
-
-    //
-    // at this point, we have a chip which supports the "cpuid" instruction
-    //
-    __ bind(detect_586);
-    __ xorptr(rax, rax);
-    __ cpuid();
-    __ orptr(rax, rax);
-    __ jcc(Assembler::equal, cpu486);   // if cpuid doesn't support an input
-                                        // value of at least 1, we give up and
-                                        // assume a 486
-    __ lea(rsi, Address(rbp, in_bytes(VM_Version::std_cpuid0_offset())));
-    __ movl(Address(rsi, 0), rax);
-    __ movl(Address(rsi, 4), rbx);
-    __ movl(Address(rsi, 8), rcx);
-    __ movl(Address(rsi,12), rdx);
-
-    __ cmpl(rax, 3);     // Is cpuid(0x4) supported?
-    __ jccb(Assembler::belowEqual, std_cpuid1);
-
-    //
-    // cpuid(0x4) Deterministic cache params
-    //
-    __ movl(rax, 4);     // and rcx already set to 0x0
-    __ xorl(rcx, rcx);
-    __ cpuid();
-    __ push(rax);
-    __ andl(rax, 0x1f);  // Determine if valid cache parameters used
-    __ orl(rax, rax);    // rax,[4:0] == 0 indicates invalid cache
-    __ pop(rax);
-    __ jccb(Assembler::equal, std_cpuid1);
-
-    __ lea(rsi, Address(rbp, in_bytes(VM_Version::dcp_cpuid4_offset())));
-    __ movl(Address(rsi, 0), rax);
-    __ movl(Address(rsi, 4), rbx);
-    __ movl(Address(rsi, 8), rcx);
-    __ movl(Address(rsi,12), rdx);
-
-    //
-    // Standard cpuid(0x1)
-    //
-    __ bind(std_cpuid1);
-    __ movl(rax, 1);
-    __ cpuid();
-    __ lea(rsi, Address(rbp, in_bytes(VM_Version::std_cpuid1_offset())));
-    __ movl(Address(rsi, 0), rax);
-    __ movl(Address(rsi, 4), rbx);
-    __ movl(Address(rsi, 8), rcx);
-    __ movl(Address(rsi,12), rdx);
-
-    __ movl(rax, 0x80000000);
-    __ cpuid();
-    __ cmpl(rax, 0x80000000);     // Is cpuid(0x80000001) supported?
-    __ jcc(Assembler::belowEqual, done);
-    __ cmpl(rax, 0x80000004);     // Is cpuid(0x80000005) supported?
-    __ jccb(Assembler::belowEqual, ext_cpuid1);
-    __ cmpl(rax, 0x80000007);     // Is cpuid(0x80000008) supported?
-    __ jccb(Assembler::belowEqual, ext_cpuid5);
-    //
-    // Extended cpuid(0x80000008)
-    //
-    __ movl(rax, 0x80000008);
-    __ cpuid();
-    __ lea(rsi, Address(rbp, in_bytes(VM_Version::ext_cpuid8_offset())));
-    __ movl(Address(rsi, 0), rax);
-    __ movl(Address(rsi, 4), rbx);
-    __ movl(Address(rsi, 8), rcx);
-    __ movl(Address(rsi,12), rdx);
-
-    //
-    // Extended cpuid(0x80000005)
-    //
-    __ bind(ext_cpuid5);
-    __ movl(rax, 0x80000005);
-    __ cpuid();
-    __ lea(rsi, Address(rbp, in_bytes(VM_Version::ext_cpuid5_offset())));
-    __ movl(Address(rsi, 0), rax);
-    __ movl(Address(rsi, 4), rbx);
-    __ movl(Address(rsi, 8), rcx);
-    __ movl(Address(rsi,12), rdx);
-
-    //
-    // Extended cpuid(0x80000001)
-    //
-    __ bind(ext_cpuid1);
-    __ movl(rax, 0x80000001);
-    __ cpuid();
-    __ lea(rsi, Address(rbp, in_bytes(VM_Version::ext_cpuid1_offset())));
-    __ movl(Address(rsi, 0), rax);
-    __ movl(Address(rsi, 4), rbx);
-    __ movl(Address(rsi, 8), rcx);
-    __ movl(Address(rsi,12), rdx);
-
-    //
-    // return
-    //
-    __ bind(done);
-    __ popf();
-    __ pop(rsi);
-    __ pop(rbx);
-    __ pop(rbp);
-    __ ret(0);
-
-#   undef __
-
-    return start;
-  };
-};
-
-
-void VM_Version::get_processor_features() {
-
-  _cpu = 4; // 486 by default
-  _model = 0;
-  _stepping = 0;
-  _cpuFeatures = 0;
-  _logical_processors_per_package = 1;
-  if (!Use486InstrsOnly) {
-    // Get raw processor info
-    getPsrInfo_stub(&_cpuid_info);
-    assert_is_initialized();
-    _cpu = extended_cpu_family();
-    _model = extended_cpu_model();
-    _stepping = cpu_stepping();
-    if (cpu_family() > 4) { // it supports CPUID
-      _cpuFeatures = feature_flags();
-      // Logical processors are only available on P4s and above,
-      // and only if hyperthreading is available.
-      _logical_processors_per_package = logical_processor_count();
-    }
-  }
-  _supports_cx8 = supports_cmpxchg8();
-  // if the OS doesn't support SSE, we can't use this feature even if the HW does
-  if( !os::supports_sse())
-    _cpuFeatures &= ~(CPU_SSE|CPU_SSE2|CPU_SSE3|CPU_SSSE3|CPU_SSE4A|CPU_SSE4_1|CPU_SSE4_2);
-  if (UseSSE < 4) {
-    _cpuFeatures &= ~CPU_SSE4_1;
-    _cpuFeatures &= ~CPU_SSE4_2;
-  }
-  if (UseSSE < 3) {
-    _cpuFeatures &= ~CPU_SSE3;
-    _cpuFeatures &= ~CPU_SSSE3;
-    _cpuFeatures &= ~CPU_SSE4A;
-  }
-  if (UseSSE < 2)
-    _cpuFeatures &= ~CPU_SSE2;
-  if (UseSSE < 1)
-    _cpuFeatures &= ~CPU_SSE;
-
-  if (logical_processors_per_package() == 1) {
-    // HT processor could be installed on a system which doesn't support HT.
-    _cpuFeatures &= ~CPU_HT;
-  }
-
-  char buf[256];
-  jio_snprintf(buf, sizeof(buf), "(%u cores per cpu, %u threads per core) family %d model %d stepping %d%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
-               cores_per_cpu(), threads_per_core(),
-               cpu_family(), _model, _stepping,
-               (supports_cmov() ? ", cmov" : ""),
-               (supports_cmpxchg8() ? ", cx8" : ""),
-               (supports_fxsr() ? ", fxsr" : ""),
-               (supports_mmx()  ? ", mmx"  : ""),
-               (supports_sse()  ? ", sse"  : ""),
-               (supports_sse2() ? ", sse2" : ""),
-               (supports_sse3() ? ", sse3" : ""),
-               (supports_ssse3()? ", ssse3": ""),
-               (supports_sse4_1() ? ", sse4.1" : ""),
-               (supports_sse4_2() ? ", sse4.2" : ""),
-               (supports_mmx_ext() ? ", mmxext" : ""),
-               (supports_3dnow()   ? ", 3dnow"  : ""),
-               (supports_3dnow2()  ? ", 3dnowext" : ""),
-               (supports_sse4a()   ? ", sse4a": ""),
-               (supports_ht() ? ", ht": ""));
-  _features_str = strdup(buf);
-
-  // UseSSE is set to the smaller of what hardware supports and what
-  // the command line requires.  I.e., you cannot set UseSSE to 2 on
-  // older Pentiums which do not support it.
-  if( UseSSE > 4 ) UseSSE=4;
-  if( UseSSE < 0 ) UseSSE=0;
-  if( !supports_sse4_1() ) // Drop to 3 if no SSE4 support
-    UseSSE = MIN2((intx)3,UseSSE);
-  if( !supports_sse3() ) // Drop to 2 if no SSE3 support
-    UseSSE = MIN2((intx)2,UseSSE);
-  if( !supports_sse2() ) // Drop to 1 if no SSE2 support
-    UseSSE = MIN2((intx)1,UseSSE);
-  if( !supports_sse () ) // Drop to 0 if no SSE  support
-    UseSSE = 0;
-
-  // On new cpus instructions which update whole XMM register should be used
-  // to prevent partial register stall due to dependencies on high half.
-  //
-  // UseXmmLoadAndClearUpper == true  --> movsd(xmm, mem)
-  // UseXmmLoadAndClearUpper == false --> movlpd(xmm, mem)
-  // UseXmmRegToRegMoveAll == true  --> movaps(xmm, xmm), movapd(xmm, xmm).
-  // UseXmmRegToRegMoveAll == false --> movss(xmm, xmm),  movsd(xmm, xmm).
-
-  if( is_amd() ) { // AMD cpus specific settings
-    if( supports_sse2() && FLAG_IS_DEFAULT(UseAddressNop) ) {
-      // Use it on new AMD cpus starting from Opteron.
-      UseAddressNop = true;
-    }
-    if( supports_sse2() && FLAG_IS_DEFAULT(UseNewLongLShift) ) {
-      // Use it on new AMD cpus starting from Opteron.
-      UseNewLongLShift = true;
-    }
-    if( FLAG_IS_DEFAULT(UseXmmLoadAndClearUpper) ) {
-      if( supports_sse4a() ) {
-        UseXmmLoadAndClearUpper = true; // use movsd only on '10h' Opteron
-      } else {
-        UseXmmLoadAndClearUpper = false;
-      }
-    }
-    if( FLAG_IS_DEFAULT(UseXmmRegToRegMoveAll) ) {
-      if( supports_sse4a() ) {
-        UseXmmRegToRegMoveAll = true; // use movaps, movapd only on '10h'
-      } else {
-        UseXmmRegToRegMoveAll = false;
-      }
-    }
-    if( FLAG_IS_DEFAULT(UseXmmI2F) ) {
-      if( supports_sse4a() ) {
-        UseXmmI2F = true;
-      } else {
-        UseXmmI2F = false;
-      }
-    }
-    if( FLAG_IS_DEFAULT(UseXmmI2D) ) {
-      if( supports_sse4a() ) {
-        UseXmmI2D = true;
-      } else {
-        UseXmmI2D = false;
-      }
-    }
-  }
-
-  if( is_intel() ) { // Intel cpus specific settings
-    if( FLAG_IS_DEFAULT(UseStoreImmI16) ) {
-      UseStoreImmI16 = false; // don't use it on Intel cpus
-    }
-    if( cpu_family() == 6 || cpu_family() == 15 ) {
-      if( FLAG_IS_DEFAULT(UseAddressNop) ) {
-        // Use it on all Intel cpus starting from PentiumPro
-        UseAddressNop = true;
-      }
-    }
-    if( FLAG_IS_DEFAULT(UseXmmLoadAndClearUpper) ) {
-      UseXmmLoadAndClearUpper = true; // use movsd on all Intel cpus
-    }
-    if( FLAG_IS_DEFAULT(UseXmmRegToRegMoveAll) ) {
-      if( supports_sse3() ) {
-        UseXmmRegToRegMoveAll = true; // use movaps, movapd on new Intel cpus
-      } else {
-        UseXmmRegToRegMoveAll = false;
-      }
-    }
-    if( cpu_family() == 6 && supports_sse3() ) { // New Intel cpus
-#ifdef COMPILER2
-      if( FLAG_IS_DEFAULT(MaxLoopPad) ) {
-        // For new Intel cpus do the next optimization:
-        // don't align the beginning of a loop if there are enough instructions
-        // left (NumberOfLoopInstrToAlign defined in c2_globals.hpp)
-        // in current fetch line (OptoLoopAlignment) or the padding
-        // is big (> MaxLoopPad).
-        // Set MaxLoopPad to 11 for new Intel cpus to reduce number of
-        // generated NOP instructions. 11 is the largest size of one
-        // address NOP instruction '0F 1F' (see Assembler::nop(i)).
-        MaxLoopPad = 11;
-      }
-#endif // COMPILER2
-      if( FLAG_IS_DEFAULT(UseXMMForArrayCopy) ) {
-        UseXMMForArrayCopy = true; // use SSE2 movq on new Intel cpus
-      }
-      if( supports_sse4_2() && supports_ht() ) { // Newest Intel cpus
-        if( FLAG_IS_DEFAULT(UseUnalignedLoadStores) && UseXMMForArrayCopy ) {
-          UseUnalignedLoadStores = true; // use movdqu on newest Intel cpus
-        }
-      }
-    }
-  }
-
-  assert(0 <= ReadPrefetchInstr && ReadPrefetchInstr <= 3, "invalid value");
-  assert(0 <= AllocatePrefetchInstr && AllocatePrefetchInstr <= 3, "invalid value");
-
-  // set valid Prefetch instruction
-  if( ReadPrefetchInstr < 0 ) ReadPrefetchInstr = 0;
-  if( ReadPrefetchInstr > 3 ) ReadPrefetchInstr = 3;
-  if( ReadPrefetchInstr == 3 && !supports_3dnow() ) ReadPrefetchInstr = 0;
-  if( !supports_sse() && supports_3dnow() ) ReadPrefetchInstr = 3;
-
-  if( AllocatePrefetchInstr < 0 ) AllocatePrefetchInstr = 0;
-  if( AllocatePrefetchInstr > 3 ) AllocatePrefetchInstr = 3;
-  if( AllocatePrefetchInstr == 3 && !supports_3dnow() ) AllocatePrefetchInstr=0;
-  if( !supports_sse() && supports_3dnow() ) AllocatePrefetchInstr = 3;
-
-  // Allocation prefetch settings
-  intx cache_line_size = L1_data_cache_line_size();
-  if( cache_line_size > AllocatePrefetchStepSize )
-    AllocatePrefetchStepSize = cache_line_size;
-  if( FLAG_IS_DEFAULT(AllocatePrefetchLines) )
-    AllocatePrefetchLines = 3; // Optimistic value
-  assert(AllocatePrefetchLines > 0, "invalid value");
-  if( AllocatePrefetchLines < 1 ) // set valid value in product VM
-    AllocatePrefetchLines = 1; // Conservative value
-
-  AllocatePrefetchDistance = allocate_prefetch_distance();
-  AllocatePrefetchStyle    = allocate_prefetch_style();
-
-  if( AllocatePrefetchStyle == 2 && is_intel() &&
-      cpu_family() == 6 && supports_sse3() ) { // watermark prefetching on Core
-    AllocatePrefetchDistance = 320;
-  }
-  assert(AllocatePrefetchDistance % AllocatePrefetchStepSize == 0, "invalid value");
-
-#ifndef PRODUCT
-  if (PrintMiscellaneous && Verbose) {
-    tty->print_cr("Logical CPUs per core: %u",
-                  logical_processors_per_package());
-    tty->print_cr("UseSSE=%d",UseSSE);
-    tty->print("Allocation: ");
-    if (AllocatePrefetchStyle <= 0 || UseSSE == 0 && !supports_3dnow()) {
-      tty->print_cr("no prefetching");
-    } else {
-      if (UseSSE == 0 && supports_3dnow()) {
-        tty->print("PREFETCHW");
-      } else if (UseSSE >= 1) {
-        if (AllocatePrefetchInstr == 0) {
-          tty->print("PREFETCHNTA");
-        } else if (AllocatePrefetchInstr == 1) {
-          tty->print("PREFETCHT0");
-        } else if (AllocatePrefetchInstr == 2) {
-          tty->print("PREFETCHT2");
-        } else if (AllocatePrefetchInstr == 3) {
-          tty->print("PREFETCHW");
-        }
-      }
-      if (AllocatePrefetchLines > 1) {
-        tty->print_cr(" %d, %d lines with step %d bytes", AllocatePrefetchDistance, AllocatePrefetchLines, AllocatePrefetchStepSize);
-      } else {
-        tty->print_cr(" %d, one line", AllocatePrefetchDistance);
-      }
-    }
-  }
-#endif // !PRODUCT
-}
-
-void VM_Version::initialize() {
-  ResourceMark rm;
-  // Making this stub must be FIRST use of assembler
-
-  stub_blob = BufferBlob::create("getPsrInfo_stub", stub_size);
-  if (stub_blob == NULL) {
-    vm_exit_during_initialization("Unable to allocate getPsrInfo_stub");
-  }
-  CodeBuffer c(stub_blob->instructions_begin(),
-               stub_blob->instructions_size());
-  VM_Version_StubGenerator g(&c);
-  getPsrInfo_stub = CAST_TO_FN_PTR(getPsrInfo_stub_t,
-                                   g.generate_getPsrInfo());
-
-  get_processor_features();
-}
--- a/hotspot/src/cpu/x86/vm/vm_version_x86_32.hpp	Sun Feb 22 17:21:13 2009 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,439 +0,0 @@
-/*
- * 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
- * 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.
- *
- */
-
-class VM_Version: public Abstract_VM_Version {
-public:
-  // cpuid result register layouts.  These are all unions of a uint32_t
-  // (in case anyone wants access to the register as a whole) and a bitfield.
-
-  union StdCpuid1Eax {
-    uint32_t value;
-    struct {
-      uint32_t stepping   : 4,
-               model      : 4,
-               family     : 4,
-               proc_type  : 2,
-                          : 2,
-               ext_model  : 4,
-               ext_family : 8,
-                          : 4;
-    } bits;
-  };
-
-  union StdCpuid1Ebx { // example, unused
-    uint32_t value;
-    struct {
-      uint32_t brand_id         : 8,
-               clflush_size     : 8,
-               threads_per_cpu  : 8,
-               apic_id          : 8;
-    } bits;
-  };
-
-  union StdCpuid1Ecx {
-    uint32_t value;
-    struct {
-      uint32_t sse3     : 1,
-                        : 2,
-               monitor  : 1,
-                        : 1,
-               vmx      : 1,
-                        : 1,
-               est      : 1,
-                        : 1,
-               ssse3    : 1,
-               cid      : 1,
-                        : 2,
-               cmpxchg16: 1,
-                        : 4,
-               dca      : 1,
-               sse4_1   : 1,
-               sse4_2   : 1,
-                        : 11;
-    } bits;
-  };
-
-  union StdCpuid1Edx {
-    uint32_t value;
-    struct {
-      uint32_t          : 4,
-               tsc      : 1,
-                        : 3,
-               cmpxchg8 : 1,
-                        : 6,
-               cmov     : 1,
-                        : 7,
-               mmx      : 1,
-               fxsr     : 1,
-               sse      : 1,
-               sse2     : 1,
-                        : 1,
-               ht       : 1,
-                        : 3;
-    } bits;
-  };
-
-  union DcpCpuid4Eax {
-    uint32_t value;
-    struct {
-      uint32_t cache_type    : 5,
-                             : 21,
-               cores_per_cpu : 6;
-    } bits;
-  };
-
-  union DcpCpuid4Ebx {
-    uint32_t value;
-    struct {
-      uint32_t L1_line_size  : 12,
-               partitions    : 10,
-               associativity : 10;
-    } bits;
-  };
-
-  union ExtCpuid1Ecx {
-    uint32_t value;
-    struct {
-      uint32_t LahfSahf     : 1,
-               CmpLegacy    : 1,
-                            : 4,
-               abm          : 1,
-               sse4a        : 1,
-               misalignsse  : 1,
-               prefetchw    : 1,
-                            : 22;
-    } bits;
-  };
-
-  union ExtCpuid1Edx {
-    uint32_t value;
-    struct {
-      uint32_t           : 22,
-               mmx_amd   : 1,
-               mmx       : 1,
-               fxsr      : 1,
-                         : 4,
-               long_mode : 1,
-               tdnow2    : 1,
-               tdnow     : 1;
-    } bits;
-  };
-
-  union ExtCpuid5Ex {
-    uint32_t value;
-    struct {
-      uint32_t L1_line_size : 8,
-               L1_tag_lines : 8,
-               L1_assoc     : 8,
-               L1_size      : 8;
-    } bits;
-  };
-
-  union ExtCpuid8Ecx {
-    uint32_t value;
-    struct {
-      uint32_t cores_per_cpu : 8,
-                             : 24;
-    } bits;
-  };
-
-protected:
-   static int _cpu;
-   static int _model;
-   static int _stepping;
-   static int _cpuFeatures;     // features returned by the "cpuid" instruction
-                                // 0 if this instruction is not available
-   static const char* _features_str;
-
-   enum {
-     CPU_CX8  = (1 << 0), // next bits are from cpuid 1 (EDX)
-     CPU_CMOV = (1 << 1),
-     CPU_FXSR = (1 << 2),
-     CPU_HT   = (1 << 3),
-     CPU_MMX  = (1 << 4),
-     CPU_3DNOW= (1 << 5), // 3DNow comes from cpuid 0x80000001 (EDX)
-     CPU_SSE  = (1 << 6),
-     CPU_SSE2 = (1 << 7),
-     CPU_SSE3 = (1 << 8), // sse3  comes from cpuid 1 (ECX)
-     CPU_SSSE3= (1 << 9),
-     CPU_SSE4A= (1 <<10),
-     CPU_SSE4_1 = (1 << 11),
-     CPU_SSE4_2 = (1 << 12)
-   } cpuFeatureFlags;
-
-  // cpuid information block.  All info derived from executing cpuid with
-  // various function numbers is stored here.  Intel and AMD info is
-  // merged in this block: accessor methods disentangle it.
-  //
-  // The info block is laid out in subblocks of 4 dwords corresponding to
-  // rax, rbx, rcx and rdx, whether or not they contain anything useful.
-  struct CpuidInfo {
-    // cpuid function 0
-    uint32_t std_max_function;
-    uint32_t std_vendor_name_0;
-    uint32_t std_vendor_name_1;
-    uint32_t std_vendor_name_2;
-
-    // cpuid function 1
-    StdCpuid1Eax std_cpuid1_rax;
-    StdCpuid1Ebx std_cpuid1_rbx;
-    StdCpuid1Ecx std_cpuid1_rcx;
-    StdCpuid1Edx std_cpuid1_rdx;
-
-    // cpuid function 4 (deterministic cache parameters)
-    DcpCpuid4Eax dcp_cpuid4_rax;
-    DcpCpuid4Ebx dcp_cpuid4_rbx;
-    uint32_t     dcp_cpuid4_rcx; // unused currently
-    uint32_t     dcp_cpuid4_rdx; // unused currently
-
-    // cpuid function 0x80000000 // example, unused
-    uint32_t ext_max_function;
-    uint32_t ext_vendor_name_0;
-    uint32_t ext_vendor_name_1;
-    uint32_t ext_vendor_name_2;
-
-    // cpuid function 0x80000001
-    uint32_t     ext_cpuid1_rax; // reserved
-    uint32_t     ext_cpuid1_rbx; // reserved
-    ExtCpuid1Ecx ext_cpuid1_rcx;
-    ExtCpuid1Edx ext_cpuid1_rdx;
-
-    // cpuid functions 0x80000002 thru 0x80000004: example, unused
-    uint32_t proc_name_0, proc_name_1, proc_name_2, proc_name_3;
-    uint32_t proc_name_4, proc_name_5, proc_name_6, proc_name_7;
-    uint32_t proc_name_8, proc_name_9, proc_name_10,proc_name_11;
-
-    // cpuid function 0x80000005 //AMD L1, Intel reserved
-    uint32_t     ext_cpuid5_rax; // unused currently
-    uint32_t     ext_cpuid5_rbx; // reserved
-    ExtCpuid5Ex  ext_cpuid5_rcx; // L1 data cache info (AMD)
-    ExtCpuid5Ex  ext_cpuid5_rdx; // L1 instruction cache info (AMD)
-
-    // cpuid function 0x80000008
-    uint32_t     ext_cpuid8_rax; // unused currently
-    uint32_t     ext_cpuid8_rbx; // reserved
-    ExtCpuid8Ecx ext_cpuid8_rcx;
-    uint32_t     ext_cpuid8_rdx; // reserved
-  };
-
-  // The actual cpuid info block
-  static CpuidInfo _cpuid_info;
-
-  // Extractors and predicates
-  static uint32_t extended_cpu_family() {
-    uint32_t result = _cpuid_info.std_cpuid1_rax.bits.family;
-    result += _cpuid_info.std_cpuid1_rax.bits.ext_family;
-    return result;
-  }
-  static uint32_t extended_cpu_model() {
-    uint32_t result = _cpuid_info.std_cpuid1_rax.bits.model;
-    result |= _cpuid_info.std_cpuid1_rax.bits.ext_model << 4;
-    return result;
-  }
-  static uint32_t cpu_stepping() {
-    uint32_t result = _cpuid_info.std_cpuid1_rax.bits.stepping;
-    return result;
-  }
-  static uint logical_processor_count() {
-    uint result = threads_per_core();
-    return result;
-  }
-  static uint32_t feature_flags() {
-    uint32_t result = 0;
-    if (_cpuid_info.std_cpuid1_rdx.bits.cmpxchg8 != 0)
-      result |= CPU_CX8;
-    if (_cpuid_info.std_cpuid1_rdx.bits.cmov != 0)
-      result |= CPU_CMOV;
-    if (_cpuid_info.std_cpuid1_rdx.bits.fxsr != 0 || is_amd() &&
-        _cpuid_info.ext_cpuid1_rdx.bits.fxsr != 0)
-      result |= CPU_FXSR;
-    // HT flag is set for multi-core processors also.
-    if (threads_per_core() > 1)
-      result |= CPU_HT;
-    if (_cpuid_info.std_cpuid1_rdx.bits.mmx != 0 || is_amd() &&
-        _cpuid_info.ext_cpuid1_rdx.bits.mmx != 0)
-      result |= CPU_MMX;
-    if (is_amd() && _cpuid_info.ext_cpuid1_rdx.bits.tdnow != 0)
-      result |= CPU_3DNOW;
-    if (_cpuid_info.std_cpuid1_rdx.bits.sse != 0)
-      result |= CPU_SSE;
-    if (_cpuid_info.std_cpuid1_rdx.bits.sse2 != 0)
-      result |= CPU_SSE2;
-    if (_cpuid_info.std_cpuid1_rcx.bits.sse3 != 0)
-      result |= CPU_SSE3;
-    if (_cpuid_info.std_cpuid1_rcx.bits.ssse3 != 0)
-      result |= CPU_SSSE3;
-    if (is_amd() && _cpuid_info.ext_cpuid1_rcx.bits.sse4a != 0)
-      result |= CPU_SSE4A;
-    if (_cpuid_info.std_cpuid1_rcx.bits.sse4_1 != 0)
-      result |= CPU_SSE4_1;
-    if (_cpuid_info.std_cpuid1_rcx.bits.sse4_2 != 0)
-      result |= CPU_SSE4_2;
-    return result;
-  }
-
-  static void get_processor_features();
-
-public:
-  // Offsets for cpuid asm stub
-  static ByteSize std_cpuid0_offset() { return byte_offset_of(CpuidInfo, std_max_function); }
-  static ByteSize std_cpuid1_offset() { return byte_offset_of(CpuidInfo, std_cpuid1_rax); }
-  static ByteSize dcp_cpuid4_offset() { return byte_offset_of(CpuidInfo, dcp_cpuid4_rax); }
-  static ByteSize ext_cpuid1_offset() { return byte_offset_of(CpuidInfo, ext_cpuid1_rax); }
-  static ByteSize ext_cpuid5_offset() { return byte_offset_of(CpuidInfo, ext_cpuid5_rax); }
-  static ByteSize ext_cpuid8_offset() { return byte_offset_of(CpuidInfo, ext_cpuid8_rax); }
-
-  // Initialization
-  static void initialize();
-
-  // Asserts
-  static void assert_is_initialized() {
-    assert(_cpuid_info.std_cpuid1_rax.bits.family != 0, "VM_Version not initialized");
-  }
-
-  //
-  // Processor family:
-  //       3   -  386
-  //       4   -  486
-  //       5   -  Pentium
-  //       6   -  PentiumPro, Pentium II, Celeron, Xeon, Pentium III, Athlon,
-  //              Pentium M, Core Solo, Core Duo, Core2 Duo
-  //    family 6 model:   9,        13,       14,        15
-  //    0x0f   -  Pentium 4, Opteron
-  //
-  // Note: The cpu family should be used to select between
-  //       instruction sequences which are valid on all Intel
-  //       processors.  Use the feature test functions below to
-  //       determine whether a particular instruction is supported.
-  //
-  static int  cpu_family()        { return _cpu;}
-  static bool is_P6()             { return cpu_family() >= 6; }
-
-  static bool is_amd()            { assert_is_initialized(); return _cpuid_info.std_vendor_name_0 == 0x68747541; } // 'htuA'
-  static bool is_intel()          { assert_is_initialized(); return _cpuid_info.std_vendor_name_0 == 0x756e6547; } // 'uneG'
-
-  static uint cores_per_cpu()  {
-    uint result = 1;
-    if (is_intel()) {
-      result = (_cpuid_info.dcp_cpuid4_rax.bits.cores_per_cpu + 1);
-    } else if (is_amd()) {
-      result = (_cpuid_info.ext_cpuid8_rcx.bits.cores_per_cpu + 1);
-    }
-    return result;
-  }
-
-  static uint threads_per_core()  {
-    uint result = 1;
-    if (_cpuid_info.std_cpuid1_rdx.bits.ht != 0) {
-      result = _cpuid_info.std_cpuid1_rbx.bits.threads_per_cpu /
-               cores_per_cpu();
-    }
-    return result;
-  }
-
-  static intx L1_data_cache_line_size()  {
-    intx result = 0;
-    if (is_intel()) {
-      result = (_cpuid_info.dcp_cpuid4_rbx.bits.L1_line_size + 1);
-    } else if (is_amd()) {
-      result = _cpuid_info.ext_cpuid5_rcx.bits.L1_line_size;
-    }
-    if (result < 32) // not defined ?
-      result = 32;   // 32 bytes by default on x86
-    return result;
-  }
-
-  //
-  // Feature identification
-  //
-  static bool supports_cpuid()    { return _cpuFeatures  != 0; }
-  static bool supports_cmpxchg8() { return (_cpuFeatures & CPU_CX8) != 0; }
-  static bool supports_cmov()     { return (_cpuFeatures & CPU_CMOV) != 0; }
-  static bool supports_fxsr()     { return (_cpuFeatures & CPU_FXSR) != 0; }
-  static bool supports_ht()       { return (_cpuFeatures & CPU_HT) != 0; }
-  static bool supports_mmx()      { return (_cpuFeatures & CPU_MMX) != 0; }
-  static bool supports_sse()      { return (_cpuFeatures & CPU_SSE) != 0; }
-  static bool supports_sse2()     { return (_cpuFeatures & CPU_SSE2) != 0; }
-  static bool supports_sse3()     { return (_cpuFeatures & CPU_SSE3) != 0; }
-  static bool supports_ssse3()    { return (_cpuFeatures & CPU_SSSE3)!= 0; }
-  static bool supports_sse4_1()   { return (_cpuFeatures & CPU_SSE4_1) != 0; }
-  static bool supports_sse4_2()   { return (_cpuFeatures & CPU_SSE4_2) != 0; }
-  //
-  // AMD features
-  //
-  static bool supports_3dnow()    { return (_cpuFeatures & CPU_3DNOW) != 0; }
-  static bool supports_mmx_ext()  { return is_amd() && _cpuid_info.ext_cpuid1_rdx.bits.mmx_amd != 0; }
-  static bool supports_3dnow2()   { return is_amd() && _cpuid_info.ext_cpuid1_rdx.bits.tdnow2 != 0; }
-  static bool supports_sse4a()    { return (_cpuFeatures & CPU_SSE4A) != 0; }
-
-  static bool supports_compare_and_exchange() { return true; }
-
-  static const char* cpu_features()           { return _features_str; }
-
-  static intx allocate_prefetch_distance() {
-    // This method should be called before allocate_prefetch_style().
-    //
-    // Hardware prefetching (distance/size in bytes):
-    // Pentium 3 -  64 /  32
-    // Pentium 4 - 256 / 128
-    // Athlon    -  64 /  32 ????
-    // Opteron   - 128 /  64 only when 2 sequential cache lines accessed
-    // Core      - 128 /  64
-    //
-    // Software prefetching (distance in bytes / instruction with best score):
-    // Pentium 3 - 128 / prefetchnta
-    // Pentium 4 - 512 / prefetchnta
-    // Athlon    - 128 / prefetchnta
-    // Opteron   - 256 / prefetchnta
-    // Core      - 256 / prefetchnta
-    // It will be used only when AllocatePrefetchStyle > 0
-
-    intx count = AllocatePrefetchDistance;
-    if (count < 0) {   // default ?
-      if (is_amd()) {  // AMD
-        if (supports_sse2())
-          count = 256; // Opteron
-        else
-          count = 128; // Athlon
-      } else {         // Intel
-        if (supports_sse2())
-          if (cpu_family() == 6) {
-            count = 256; // Pentium M, Core, Core2
-          } else {
-            count = 512; // Pentium 4
-          }
-        else
-          count = 128; // Pentium 3 (and all other old CPUs)
-      }
-    }
-    return count;
-  }
-  static intx allocate_prefetch_style() {
-    assert(AllocatePrefetchStyle >= 0, "AllocatePrefetchStyle should be positive");
-    // Return 0 if AllocatePrefetchDistance was not defined or
-    // prefetch instruction is not supported.
-    return (AllocatePrefetchDistance > 0 &&
-            (supports_3dnow() || supports_sse())) ? AllocatePrefetchStyle : 0;
-  }
-};
--- a/hotspot/src/cpu/x86/vm/vm_version_x86_64.cpp	Sun Feb 22 17:21:13 2009 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,419 +0,0 @@
-/*
- * 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
- * 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.
- *
- */
-
-# include "incls/_precompiled.incl"
-# include "incls/_vm_version_x86_64.cpp.incl"
-
-int VM_Version::_cpu;
-int VM_Version::_model;
-int VM_Version::_stepping;
-int VM_Version::_cpuFeatures;
-const char*           VM_Version::_features_str = "";
-VM_Version::CpuidInfo VM_Version::_cpuid_info   = { 0, };
-
-static BufferBlob* stub_blob;
-static const int stub_size = 300;
-
-extern "C" {
-  typedef void (*getPsrInfo_stub_t)(void*);
-}
-static getPsrInfo_stub_t getPsrInfo_stub = NULL;
-
-
-class VM_Version_StubGenerator: public StubCodeGenerator {
- public:
-
-  VM_Version_StubGenerator(CodeBuffer *c) : StubCodeGenerator(c) {}
-
-  address generate_getPsrInfo() {
-
-    Label std_cpuid1, ext_cpuid1, ext_cpuid5, done;
-
-    StubCodeMark mark(this, "VM_Version", "getPsrInfo_stub");
-#   define __ _masm->
-
-    address start = __ pc();
-
-    //
-    // void getPsrInfo(VM_Version::CpuidInfo* cpuid_info);
-    //
-    // rcx and rdx are first and second argument registers on windows
-
-    __ push(rbp);
-    __ mov(rbp, c_rarg0); // cpuid_info address
-    __ push(rbx);
-    __ push(rsi);
-
-    //
-    // we have a chip which supports the "cpuid" instruction
-    //
-    __ xorl(rax, rax);
-    __ cpuid();
-    __ lea(rsi, Address(rbp, in_bytes(VM_Version::std_cpuid0_offset())));
-    __ movl(Address(rsi, 0), rax);
-    __ movl(Address(rsi, 4), rbx);
-    __ movl(Address(rsi, 8), rcx);
-    __ movl(Address(rsi,12), rdx);
-
-    __ cmpl(rax, 3);     // Is cpuid(0x4) supported?
-    __ jccb(Assembler::belowEqual, std_cpuid1);
-
-    //
-    // cpuid(0x4) Deterministic cache params
-    //
-    __ movl(rax, 4);
-    __ xorl(rcx, rcx);   // L1 cache
-    __ cpuid();
-    __ push(rax);
-    __ andl(rax, 0x1f);  // Determine if valid cache parameters used
-    __ orl(rax, rax);    // eax[4:0] == 0 indicates invalid cache
-    __ pop(rax);
-    __ jccb(Assembler::equal, std_cpuid1);
-
-    __ lea(rsi, Address(rbp, in_bytes(VM_Version::dcp_cpuid4_offset())));
-    __ movl(Address(rsi, 0), rax);
-    __ movl(Address(rsi, 4), rbx);
-    __ movl(Address(rsi, 8), rcx);
-    __ movl(Address(rsi,12), rdx);
-
-    //
-    // Standard cpuid(0x1)
-    //
-    __ bind(std_cpuid1);
-    __ movl(rax, 1);
-    __ cpuid();
-    __ lea(rsi, Address(rbp, in_bytes(VM_Version::std_cpuid1_offset())));
-    __ movl(Address(rsi, 0), rax);
-    __ movl(Address(rsi, 4), rbx);
-    __ movl(Address(rsi, 8), rcx);
-    __ movl(Address(rsi,12), rdx);
-
-    __ movl(rax, 0x80000000);
-    __ cpuid();
-    __ cmpl(rax, 0x80000000);     // Is cpuid(0x80000001) supported?
-    __ jcc(Assembler::belowEqual, done);
-    __ cmpl(rax, 0x80000004);     // Is cpuid(0x80000005) supported?
-    __ jccb(Assembler::belowEqual, ext_cpuid1);
-    __ cmpl(rax, 0x80000007);     // Is cpuid(0x80000008) supported?
-    __ jccb(Assembler::belowEqual, ext_cpuid5);
-    //
-    // Extended cpuid(0x80000008)
-    //
-    __ movl(rax, 0x80000008);
-    __ cpuid();
-    __ lea(rsi, Address(rbp, in_bytes(VM_Version::ext_cpuid8_offset())));
-    __ movl(Address(rsi, 0), rax);
-    __ movl(Address(rsi, 4), rbx);
-    __ movl(Address(rsi, 8), rcx);
-    __ movl(Address(rsi,12), rdx);
-
-    //
-    // Extended cpuid(0x80000005)
-    //
-    __ bind(ext_cpuid5);
-    __ movl(rax, 0x80000005);
-    __ cpuid();
-    __ lea(rsi, Address(rbp, in_bytes(VM_Version::ext_cpuid5_offset())));
-    __ movl(Address(rsi, 0), rax);
-    __ movl(Address(rsi, 4), rbx);
-    __ movl(Address(rsi, 8), rcx);
-    __ movl(Address(rsi,12), rdx);
-
-    //
-    // Extended cpuid(0x80000001)
-    //
-    __ bind(ext_cpuid1);
-    __ movl(rax, 0x80000001);
-    __ cpuid();
-    __ lea(rsi, Address(rbp, in_bytes(VM_Version::ext_cpuid1_offset())));
-    __ movl(Address(rsi, 0), rax);
-    __ movl(Address(rsi, 4), rbx);
-    __ movl(Address(rsi, 8), rcx);
-    __ movl(Address(rsi,12), rdx);
-
-    //
-    // return
-    //
-    __ bind(done);
-    __ pop(rsi);
-    __ pop(rbx);
-    __ pop(rbp);
-    __ ret(0);
-
-#   undef __
-
-    return start;
-  };
-};
-
-
-void VM_Version::get_processor_features() {
-
-  _logical_processors_per_package = 1;
-  // Get raw processor info
-  getPsrInfo_stub(&_cpuid_info);
-  assert_is_initialized();
-  _cpu = extended_cpu_family();
-  _model = extended_cpu_model();
-  _stepping = cpu_stepping();
-  _cpuFeatures = feature_flags();
-  // Logical processors are only available on P4s and above,
-  // and only if hyperthreading is available.
-  _logical_processors_per_package = logical_processor_count();
-  _supports_cx8    = supports_cmpxchg8();
-  // OS should support SSE for x64 and hardware should support at least SSE2.
-  if (!VM_Version::supports_sse2()) {
-    vm_exit_during_initialization("Unknown x64 processor: SSE2 not supported");
-  }
-  if (UseSSE < 4) {
-    _cpuFeatures &= ~CPU_SSE4_1;
-    _cpuFeatures &= ~CPU_SSE4_2;
-  }
-  if (UseSSE < 3) {
-    _cpuFeatures &= ~CPU_SSE3;
-    _cpuFeatures &= ~CPU_SSSE3;
-    _cpuFeatures &= ~CPU_SSE4A;
-  }
-  if (UseSSE < 2)
-    _cpuFeatures &= ~CPU_SSE2;
-  if (UseSSE < 1)
-    _cpuFeatures &= ~CPU_SSE;
-
-  if (logical_processors_per_package() == 1) {
-    // HT processor could be installed on a system which doesn't support HT.
-    _cpuFeatures &= ~CPU_HT;
-  }
-
-  char buf[256];
-  jio_snprintf(buf, sizeof(buf), "(%u cores per cpu, %u threads per core) family %d model %d stepping %d%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
-               cores_per_cpu(), threads_per_core(),
-               cpu_family(), _model, _stepping,
-               (supports_cmov() ? ", cmov" : ""),
-               (supports_cmpxchg8() ? ", cx8" : ""),
-               (supports_fxsr() ? ", fxsr" : ""),
-               (supports_mmx()  ? ", mmx"  : ""),
-               (supports_sse()  ? ", sse"  : ""),
-               (supports_sse2() ? ", sse2" : ""),
-               (supports_sse3() ? ", sse3" : ""),
-               (supports_ssse3()? ", ssse3": ""),
-               (supports_sse4_1() ? ", sse4.1" : ""),
-               (supports_sse4_2() ? ", sse4.2" : ""),
-               (supports_mmx_ext() ? ", mmxext" : ""),
-               (supports_3dnow()   ? ", 3dnow"  : ""),
-               (supports_3dnow2()  ? ", 3dnowext" : ""),
-               (supports_sse4a()   ? ", sse4a": ""),
-               (supports_ht() ? ", ht": ""));
-  _features_str = strdup(buf);
-
-  // UseSSE is set to the smaller of what hardware supports and what
-  // the command line requires.  I.e., you cannot set UseSSE to 2 on
-  // older Pentiums which do not support it.
-  if( UseSSE > 4 ) UseSSE=4;
-  if( UseSSE < 0 ) UseSSE=0;
-  if( !supports_sse4_1() ) // Drop to 3 if no SSE4 support
-    UseSSE = MIN2((intx)3,UseSSE);
-  if( !supports_sse3() ) // Drop to 2 if no SSE3 support
-    UseSSE = MIN2((intx)2,UseSSE);
-  if( !supports_sse2() ) // Drop to 1 if no SSE2 support
-    UseSSE = MIN2((intx)1,UseSSE);
-  if( !supports_sse () ) // Drop to 0 if no SSE  support
-    UseSSE = 0;
-
-  // On new cpus instructions which update whole XMM register should be used
-  // to prevent partial register stall due to dependencies on high half.
-  //
-  // UseXmmLoadAndClearUpper == true  --> movsd(xmm, mem)
-  // UseXmmLoadAndClearUpper == false --> movlpd(xmm, mem)
-  // UseXmmRegToRegMoveAll == true  --> movaps(xmm, xmm), movapd(xmm, xmm).
-  // UseXmmRegToRegMoveAll == false --> movss(xmm, xmm),  movsd(xmm, xmm).
-
-  if( is_amd() ) { // AMD cpus specific settings
-    if( FLAG_IS_DEFAULT(UseAddressNop) ) {
-      // Use it on all AMD cpus starting from Opteron (don't need
-      // a cpu check since only Opteron and new cpus support 64-bits mode).
-      UseAddressNop = true;
-    }
-    if( FLAG_IS_DEFAULT(UseXmmLoadAndClearUpper) ) {
-      if( supports_sse4a() ) {
-        UseXmmLoadAndClearUpper = true; // use movsd only on '10h' Opteron
-      } else {
-        UseXmmLoadAndClearUpper = false;
-      }
-    }
-    if( FLAG_IS_DEFAULT(UseXmmRegToRegMoveAll) ) {
-      if( supports_sse4a() ) {
-        UseXmmRegToRegMoveAll = true; // use movaps, movapd only on '10h'
-      } else {
-        UseXmmRegToRegMoveAll = false;
-      }
-    }
-    if( FLAG_IS_DEFAULT(UseXmmI2F) ) {
-      if( supports_sse4a() ) {
-        UseXmmI2F = true;
-      } else {
-        UseXmmI2F = false;
-      }
-    }
-    if( FLAG_IS_DEFAULT(UseXmmI2D) ) {
-      if( supports_sse4a() ) {
-        UseXmmI2D = true;
-      } else {
-        UseXmmI2D = false;
-      }
-    }
-  }
-
-  if( is_intel() ) { // Intel cpus specific settings
-    if( FLAG_IS_DEFAULT(UseStoreImmI16) ) {
-      UseStoreImmI16 = false; // don't use it on Intel cpus
-    }
-    if( FLAG_IS_DEFAULT(UseAddressNop) ) {
-      // Use it on all Intel cpus starting from PentiumPro
-      // (don't need a cpu check since only new cpus support 64-bits mode).
-      UseAddressNop = true;
-    }
-    if( FLAG_IS_DEFAULT(UseXmmLoadAndClearUpper) ) {
-      UseXmmLoadAndClearUpper = true; // use movsd on all Intel cpus
-    }
-    if( FLAG_IS_DEFAULT(UseXmmRegToRegMoveAll) ) {
-      if( supports_sse3() ) {
-        UseXmmRegToRegMoveAll = true; // use movaps, movapd on new Intel cpus
-      } else {
-        UseXmmRegToRegMoveAll = false;
-      }
-    }
-    if( cpu_family() == 6 && supports_sse3() ) { // New Intel cpus
-#ifdef COMPILER2
-      if( FLAG_IS_DEFAULT(MaxLoopPad) ) {
-        // For new Intel cpus do the next optimization:
-        // don't align the beginning of a loop if there are enough instructions
-        // left (NumberOfLoopInstrToAlign defined in c2_globals.hpp)
-        // in current fetch line (OptoLoopAlignment) or the padding
-        // is big (> MaxLoopPad).
-        // Set MaxLoopPad to 11 for new Intel cpus to reduce number of
-        // generated NOP instructions. 11 is the largest size of one
-        // address NOP instruction '0F 1F' (see Assembler::nop(i)).
-        MaxLoopPad = 11;
-      }
-#endif // COMPILER2
-      if( FLAG_IS_DEFAULT(UseXMMForArrayCopy) ) {
-        UseXMMForArrayCopy = true; // use SSE2 movq on new Intel cpus
-      }
-      if( supports_sse4_2() && supports_ht() ) { // Newest Intel cpus
-        if( FLAG_IS_DEFAULT(UseUnalignedLoadStores) && UseXMMForArrayCopy ) {
-          UseUnalignedLoadStores = true; // use movdqu on newest Intel cpus
-        }
-      }
-    }
-  }
-
-  assert(0 <= ReadPrefetchInstr && ReadPrefetchInstr <= 3, "invalid value");
-  assert(0 <= AllocatePrefetchInstr && AllocatePrefetchInstr <= 3, "invalid value");
-
-  // set valid Prefetch instruction
-  if( ReadPrefetchInstr < 0 ) ReadPrefetchInstr = 0;
-  if( ReadPrefetchInstr > 3 ) ReadPrefetchInstr = 3;
-  if( ReadPrefetchInstr == 3 && !supports_3dnow() ) ReadPrefetchInstr = 0;
-
-  if( AllocatePrefetchInstr < 0 ) AllocatePrefetchInstr = 0;
-  if( AllocatePrefetchInstr > 3 ) AllocatePrefetchInstr = 3;
-  if( AllocatePrefetchInstr == 3 && !supports_3dnow() ) AllocatePrefetchInstr=0;
-
-  // Allocation prefetch settings
-  intx cache_line_size = L1_data_cache_line_size();
-  if( cache_line_size > AllocatePrefetchStepSize )
-    AllocatePrefetchStepSize = cache_line_size;
-  if( FLAG_IS_DEFAULT(AllocatePrefetchLines) )
-    AllocatePrefetchLines = 3; // Optimistic value
-  assert(AllocatePrefetchLines > 0, "invalid value");
-  if( AllocatePrefetchLines < 1 ) // set valid value in product VM
-    AllocatePrefetchLines = 1; // Conservative value
-
-  AllocatePrefetchDistance = allocate_prefetch_distance();
-  AllocatePrefetchStyle    = allocate_prefetch_style();
-
-  if( AllocatePrefetchStyle == 2 && is_intel() &&
-      cpu_family() == 6 && supports_sse3() ) { // watermark prefetching on Core
-    AllocatePrefetchDistance = 384;
-  }
-  assert(AllocatePrefetchDistance % AllocatePrefetchStepSize == 0, "invalid value");
-
-  // Prefetch settings
-  PrefetchCopyIntervalInBytes = prefetch_copy_interval_in_bytes();
-  PrefetchScanIntervalInBytes = prefetch_scan_interval_in_bytes();
-  PrefetchFieldsAhead         = prefetch_fields_ahead();
-
-#ifndef PRODUCT
-  if (PrintMiscellaneous && Verbose) {
-    tty->print_cr("Logical CPUs per core: %u",
-                  logical_processors_per_package());
-    tty->print_cr("UseSSE=%d",UseSSE);
-    tty->print("Allocation: ");
-    if (AllocatePrefetchStyle <= 0) {
-      tty->print_cr("no prefetching");
-    } else {
-      if (AllocatePrefetchInstr == 0) {
-        tty->print("PREFETCHNTA");
-      } else if (AllocatePrefetchInstr == 1) {
-        tty->print("PREFETCHT0");
-      } else if (AllocatePrefetchInstr == 2) {
-        tty->print("PREFETCHT2");
-      } else if (AllocatePrefetchInstr == 3) {
-        tty->print("PREFETCHW");
-      }
-      if (AllocatePrefetchLines > 1) {
-        tty->print_cr(" %d, %d lines with step %d bytes", AllocatePrefetchDistance, AllocatePrefetchLines, AllocatePrefetchStepSize);
-      } else {
-        tty->print_cr(" %d, one line", AllocatePrefetchDistance);
-      }
-    }
-    if (PrefetchCopyIntervalInBytes > 0) {
-      tty->print_cr("PrefetchCopyIntervalInBytes %d", PrefetchCopyIntervalInBytes);
-    }
-    if (PrefetchScanIntervalInBytes > 0) {
-      tty->print_cr("PrefetchScanIntervalInBytes %d", PrefetchScanIntervalInBytes);
-    }
-    if (PrefetchFieldsAhead > 0) {
-      tty->print_cr("PrefetchFieldsAhead %d", PrefetchFieldsAhead);
-    }
-  }
-#endif // !PRODUCT
-}
-
-void VM_Version::initialize() {
-  ResourceMark rm;
-  // Making this stub must be FIRST use of assembler
-
-  stub_blob = BufferBlob::create("getPsrInfo_stub", stub_size);
-  if (stub_blob == NULL) {
-    vm_exit_during_initialization("Unable to allocate getPsrInfo_stub");
-  }
-  CodeBuffer c(stub_blob->instructions_begin(),
-               stub_blob->instructions_size());
-  VM_Version_StubGenerator g(&c);
-  getPsrInfo_stub = CAST_TO_FN_PTR(getPsrInfo_stub_t,
-                                   g.generate_getPsrInfo());
-
-  get_processor_features();
-}
--- a/hotspot/src/cpu/x86/vm/vm_version_x86_64.hpp	Sun Feb 22 17:21:13 2009 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,449 +0,0 @@
-/*
- * 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
- * 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.
- *
- */
-
-class VM_Version : public Abstract_VM_Version {
-public:
-  // cpuid result register layouts.  These are all unions of a uint32_t
-  // (in case anyone wants access to the register as a whole) and a bitfield.
-
-  union StdCpuid1Eax {
-    uint32_t value;
-    struct {
-      uint32_t stepping   : 4,
-               model      : 4,
-               family     : 4,
-               proc_type  : 2,
-                          : 2,
-               ext_model  : 4,
-               ext_family : 8,
-                          : 4;
-    } bits;
-  };
-
-  union StdCpuid1Ebx { // example, unused
-    uint32_t value;
-    struct {
-      uint32_t brand_id         : 8,
-               clflush_size     : 8,
-               threads_per_cpu  : 8,
-               apic_id          : 8;
-    } bits;
-  };
-
-  union StdCpuid1Ecx {
-    uint32_t value;
-    struct {
-      uint32_t sse3     : 1,
-                        : 2,
-               monitor  : 1,
-                        : 1,
-               vmx      : 1,
-                        : 1,
-               est      : 1,
-                        : 1,
-               ssse3    : 1,
-               cid      : 1,
-                        : 2,
-               cmpxchg16: 1,
-                        : 4,
-               dca      : 1,
-               sse4_1   : 1,
-               sse4_2   : 1,
-                        : 11;
-    } bits;
-  };
-
-  union StdCpuid1Edx {
-    uint32_t value;
-    struct {
-      uint32_t          : 4,
-               tsc      : 1,
-                        : 3,
-               cmpxchg8 : 1,
-                        : 6,
-               cmov     : 1,
-                        : 7,
-               mmx      : 1,
-               fxsr     : 1,
-               sse      : 1,
-               sse2     : 1,
-                        : 1,
-               ht       : 1,
-                        : 3;
-    } bits;
-  };
-
-  union DcpCpuid4Eax {
-    uint32_t value;
-    struct {
-      uint32_t cache_type    : 5,
-                             : 21,
-               cores_per_cpu : 6;
-    } bits;
-  };
-
-  union DcpCpuid4Ebx {
-    uint32_t value;
-    struct {
-      uint32_t L1_line_size  : 12,
-               partitions    : 10,
-               associativity : 10;
-    } bits;
-  };
-
-  union ExtCpuid1Edx {
-    uint32_t value;
-    struct {
-      uint32_t           : 22,
-               mmx_amd   : 1,
-               mmx       : 1,
-               fxsr      : 1,
-                         : 4,
-               long_mode : 1,
-               tdnow2    : 1,
-               tdnow     : 1;
-    } bits;
-  };
-
-  union ExtCpuid1Ecx {
-    uint32_t value;
-    struct {
-      uint32_t LahfSahf     : 1,
-               CmpLegacy    : 1,
-                            : 4,
-               abm          : 1,
-               sse4a        : 1,
-               misalignsse  : 1,
-               prefetchw    : 1,
-                            : 22;
-    } bits;
-  };
-
-  union ExtCpuid5Ex {
-    uint32_t value;
-    struct {
-      uint32_t L1_line_size : 8,
-               L1_tag_lines : 8,
-               L1_assoc     : 8,
-               L1_size      : 8;
-    } bits;
-  };
-
-  union ExtCpuid8Ecx {
-    uint32_t value;
-    struct {
-      uint32_t cores_per_cpu : 8,
-                             : 24;
-    } bits;
-  };
-
-protected:
-   static int _cpu;
-   static int _model;
-   static int _stepping;
-   static int _cpuFeatures;     // features returned by the "cpuid" instruction
-                                // 0 if this instruction is not available
-   static const char* _features_str;
-
-   enum {
-     CPU_CX8  = (1 << 0), // next bits are from cpuid 1 (EDX)
-     CPU_CMOV = (1 << 1),
-     CPU_FXSR = (1 << 2),
-     CPU_HT   = (1 << 3),
-     CPU_MMX  = (1 << 4),
-     CPU_3DNOW= (1 << 5),
-     CPU_SSE  = (1 << 6),
-     CPU_SSE2 = (1 << 7),
-     CPU_SSE3 = (1 << 8),
-     CPU_SSSE3= (1 << 9),
-     CPU_SSE4A= (1 <<10),
-     CPU_SSE4_1 = (1 << 11),
-     CPU_SSE4_2 = (1 << 12)
-   } cpuFeatureFlags;
-
-  // cpuid information block.  All info derived from executing cpuid with
-  // various function numbers is stored here.  Intel and AMD info is
-  // merged in this block: accessor methods disentangle it.
-  //
-  // The info block is laid out in subblocks of 4 dwords corresponding to
-  // eax, ebx, ecx and edx, whether or not they contain anything useful.
-  struct CpuidInfo {
-    // cpuid function 0
-    uint32_t std_max_function;
-    uint32_t std_vendor_name_0;
-    uint32_t std_vendor_name_1;
-    uint32_t std_vendor_name_2;
-
-    // cpuid function 1
-    StdCpuid1Eax std_cpuid1_eax;
-    StdCpuid1Ebx std_cpuid1_ebx;
-    StdCpuid1Ecx std_cpuid1_ecx;
-    StdCpuid1Edx std_cpuid1_edx;
-
-    // cpuid function 4 (deterministic cache parameters)
-    DcpCpuid4Eax dcp_cpuid4_eax;
-    DcpCpuid4Ebx dcp_cpuid4_ebx;
-    uint32_t     dcp_cpuid4_ecx; // unused currently
-    uint32_t     dcp_cpuid4_edx; // unused currently
-
-    // cpuid function 0x80000000 // example, unused
-    uint32_t ext_max_function;
-    uint32_t ext_vendor_name_0;
-    uint32_t ext_vendor_name_1;
-    uint32_t ext_vendor_name_2;
-
-    // cpuid function 0x80000001
-    uint32_t     ext_cpuid1_eax; // reserved
-    uint32_t     ext_cpuid1_ebx; // reserved
-    ExtCpuid1Ecx ext_cpuid1_ecx;
-    ExtCpuid1Edx ext_cpuid1_edx;
-
-    // cpuid functions 0x80000002 thru 0x80000004: example, unused
-    uint32_t proc_name_0, proc_name_1, proc_name_2, proc_name_3;
-    uint32_t proc_name_4, proc_name_5, proc_name_6, proc_name_7;
-    uint32_t proc_name_8, proc_name_9, proc_name_10,proc_name_11;
-
-    // cpuid function 0x80000005 //AMD L1, Intel reserved
-    uint32_t     ext_cpuid5_eax; // unused currently
-    uint32_t     ext_cpuid5_ebx; // reserved
-    ExtCpuid5Ex  ext_cpuid5_ecx; // L1 data cache info (AMD)
-    ExtCpuid5Ex  ext_cpuid5_edx; // L1 instruction cache info (AMD)
-
-    // cpuid function 0x80000008
-    uint32_t     ext_cpuid8_eax; // unused currently
-    uint32_t     ext_cpuid8_ebx; // reserved
-    ExtCpuid8Ecx ext_cpuid8_ecx;
-    uint32_t     ext_cpuid8_edx; // reserved
-  };
-
-  // The actual cpuid info block
-  static CpuidInfo _cpuid_info;
-
-  // Extractors and predicates
-  static uint32_t extended_cpu_family() {
-    uint32_t result = _cpuid_info.std_cpuid1_eax.bits.family;
-    result += _cpuid_info.std_cpuid1_eax.bits.ext_family;
-    return result;
-  }
-  static uint32_t extended_cpu_model() {
-    uint32_t result = _cpuid_info.std_cpuid1_eax.bits.model;
-    result |= _cpuid_info.std_cpuid1_eax.bits.ext_model << 4;
-    return result;
-  }
-  static uint32_t cpu_stepping() {
-    uint32_t result = _cpuid_info.std_cpuid1_eax.bits.stepping;
-    return result;
-  }
-  static uint logical_processor_count() {
-    uint result = threads_per_core();
-    return result;
-  }
-  static uint32_t feature_flags() {
-    uint32_t result = 0;
-    if (_cpuid_info.std_cpuid1_edx.bits.cmpxchg8 != 0)
-      result |= CPU_CX8;
-    if (_cpuid_info.std_cpuid1_edx.bits.cmov != 0)
-      result |= CPU_CMOV;
-    if (_cpuid_info.std_cpuid1_edx.bits.fxsr != 0 || is_amd() &&
-        _cpuid_info.ext_cpuid1_edx.bits.fxsr != 0)
-      result |= CPU_FXSR;
-    // HT flag is set for multi-core processors also.
-    if (threads_per_core() > 1)
-      result |= CPU_HT;
-    if (_cpuid_info.std_cpuid1_edx.bits.mmx != 0 || is_amd() &&
-        _cpuid_info.ext_cpuid1_edx.bits.mmx != 0)
-      result |= CPU_MMX;
-    if (is_amd() && _cpuid_info.ext_cpuid1_edx.bits.tdnow != 0)
-      result |= CPU_3DNOW;
-    if (_cpuid_info.std_cpuid1_edx.bits.sse != 0)
-      result |= CPU_SSE;
-    if (_cpuid_info.std_cpuid1_edx.bits.sse2 != 0)
-      result |= CPU_SSE2;
-    if (_cpuid_info.std_cpuid1_ecx.bits.sse3 != 0)
-      result |= CPU_SSE3;
-    if (_cpuid_info.std_cpuid1_ecx.bits.ssse3 != 0)
-      result |= CPU_SSSE3;
-    if (is_amd() && _cpuid_info.ext_cpuid1_ecx.bits.sse4a != 0)
-      result |= CPU_SSE4A;
-    if (_cpuid_info.std_cpuid1_ecx.bits.sse4_1 != 0)
-      result |= CPU_SSE4_1;
-    if (_cpuid_info.std_cpuid1_ecx.bits.sse4_2 != 0)
-      result |= CPU_SSE4_2;
-    return result;
-  }
-
-  static void get_processor_features();
-
-public:
-  // Offsets for cpuid asm stub
-  static ByteSize std_cpuid0_offset() { return byte_offset_of(CpuidInfo, std_max_function); }
-  static ByteSize std_cpuid1_offset() { return byte_offset_of(CpuidInfo, std_cpuid1_eax); }
-  static ByteSize dcp_cpuid4_offset() { return byte_offset_of(CpuidInfo, dcp_cpuid4_eax); }
-  static ByteSize ext_cpuid1_offset() { return byte_offset_of(CpuidInfo, ext_cpuid1_eax); }
-  static ByteSize ext_cpuid5_offset() { return byte_offset_of(CpuidInfo, ext_cpuid5_eax); }
-  static ByteSize ext_cpuid8_offset() { return byte_offset_of(CpuidInfo, ext_cpuid8_eax); }
-
-  // Initialization
-  static void initialize();
-
-  // Asserts
-  static void assert_is_initialized() {
-    assert(_cpuid_info.std_cpuid1_eax.bits.family != 0, "VM_Version not initialized");
-  }
-
-  //
-  // Processor family:
-  //       3   -  386
-  //       4   -  486
-  //       5   -  Pentium
-  //       6   -  PentiumPro, Pentium II, Celeron, Xeon, Pentium III, Athlon,
-  //              Pentium M, Core Solo, Core Duo, Core2 Duo
-  //    family 6 model:   9,        13,       14,        15
-  //    0x0f   -  Pentium 4, Opteron
-  //
-  // Note: The cpu family should be used to select between
-  //       instruction sequences which are valid on all Intel
-  //       processors.  Use the feature test functions below to
-  //       determine whether a particular instruction is supported.
-  //
-  static int  cpu_family()        { return _cpu;}
-  static bool is_P6()             { return cpu_family() >= 6; }
-
-  static bool is_amd()            { assert_is_initialized(); return _cpuid_info.std_vendor_name_0 == 0x68747541; } // 'htuA'
-  static bool is_intel()          { assert_is_initialized(); return _cpuid_info.std_vendor_name_0 == 0x756e6547; } // 'uneG'
-
-  static uint cores_per_cpu()  {
-    uint result = 1;
-    if (is_intel()) {
-      result = (_cpuid_info.dcp_cpuid4_eax.bits.cores_per_cpu + 1);
-    } else if (is_amd()) {
-      result = (_cpuid_info.ext_cpuid8_ecx.bits.cores_per_cpu + 1);
-    }
-    return result;
-  }
-
-  static uint threads_per_core()  {
-    uint result = 1;
-    if (_cpuid_info.std_cpuid1_edx.bits.ht != 0) {
-      result = _cpuid_info.std_cpuid1_ebx.bits.threads_per_cpu /
-               cores_per_cpu();
-    }
-    return result;
-  }
-
-  static intx L1_data_cache_line_size()  {
-    intx result = 0;
-    if (is_intel()) {
-      result = (_cpuid_info.dcp_cpuid4_ebx.bits.L1_line_size + 1);
-    } else if (is_amd()) {
-      result = _cpuid_info.ext_cpuid5_ecx.bits.L1_line_size;
-    }
-    if (result < 32) // not defined ?
-      result = 32;   // 32 bytes by default for other x64
-    return result;
-  }
-
-  //
-  // Feature identification
-  //
-  static bool supports_cpuid()    { return _cpuFeatures  != 0; }
-  static bool supports_cmpxchg8() { return (_cpuFeatures & CPU_CX8) != 0; }
-  static bool supports_cmov()     { return (_cpuFeatures & CPU_CMOV) != 0; }
-  static bool supports_fxsr()     { return (_cpuFeatures & CPU_FXSR) != 0; }
-  static bool supports_ht()       { return (_cpuFeatures & CPU_HT) != 0; }
-  static bool supports_mmx()      { return (_cpuFeatures & CPU_MMX) != 0; }
-  static bool supports_sse()      { return (_cpuFeatures & CPU_SSE) != 0; }
-  static bool supports_sse2()     { return (_cpuFeatures & CPU_SSE2) != 0; }
-  static bool supports_sse3()     { return (_cpuFeatures & CPU_SSE3) != 0; }
-  static bool supports_ssse3()    { return (_cpuFeatures & CPU_SSSE3)!= 0; }
-  static bool supports_sse4_1()   { return (_cpuFeatures & CPU_SSE4_1) != 0; }
-  static bool supports_sse4_2()   { return (_cpuFeatures & CPU_SSE4_2) != 0; }
-  //
-  // AMD features
-  //
-  static bool supports_3dnow()    { return (_cpuFeatures & CPU_3DNOW) != 0; }
-  static bool supports_mmx_ext()  { return is_amd() && _cpuid_info.ext_cpuid1_edx.bits.mmx_amd != 0; }
-  static bool supports_3dnow2()   { return is_amd() && _cpuid_info.ext_cpuid1_edx.bits.tdnow2 != 0; }
-  static bool supports_sse4a()    { return (_cpuFeatures & CPU_SSE4A) != 0; }
-
-  static bool supports_compare_and_exchange() { return true; }
-
-  static const char* cpu_features()           { return _features_str; }
-
-  static intx allocate_prefetch_distance() {
-    // This method should be called before allocate_prefetch_style().
-    //
-    // Hardware prefetching (distance/size in bytes):
-    // Pentium 4 - 256 / 128
-    // Opteron   - 128 /  64 only when 2 sequential cache lines accessed
-    // Core      - 128 /  64
-    //
-    // Software prefetching (distance in bytes / instruction with best score):
-    // Pentium 4 - 512 / prefetchnta
-    // Opteron   - 256 / prefetchnta
-    // Core      - 256 / prefetchnta
-    // It will be used only when AllocatePrefetchStyle > 0
-
-    intx count = AllocatePrefetchDistance;
-    if (count < 0) {  // default ?
-      if (is_amd()) { // AMD
-        count = 256;  // Opteron
-      } else {        // Intel
-        if (cpu_family() == 6) {
-          count = 256;// Pentium M, Core, Core2
-        } else {
-          count = 512;// Pentium 4
-        }
-      }
-    }
-    return count;
-  }
-  static intx allocate_prefetch_style() {
-    assert(AllocatePrefetchStyle >= 0, "AllocatePrefetchStyle should be positive");
-    // Return 0 if AllocatePrefetchDistance was not defined.
-    return AllocatePrefetchDistance > 0 ? AllocatePrefetchStyle : 0;
-  }
-
-  // Prefetch interval for gc copy/scan == 9 dcache lines.  Derived from
-  // 50-warehouse specjbb runs on a 2-way 1.8ghz opteron using a 4gb heap.
-  // Tested intervals from 128 to 2048 in increments of 64 == one cache line.
-  // 256 bytes (4 dcache lines) was the nearest runner-up to 576.
-
-  // gc copy/scan is disabled if prefetchw isn't supported, because
-  // Prefetch::write emits an inlined prefetchw on Linux.
-  // Do not use the 3dnow prefetchw instruction.  It isn't supported on em64t.
-  // The used prefetcht0 instruction works for both amd64 and em64t.
-  static intx prefetch_copy_interval_in_bytes() {
-    intx interval = PrefetchCopyIntervalInBytes;
-    return interval >= 0 ? interval : 576;
-  }
-  static intx prefetch_scan_interval_in_bytes() {
-    intx interval = PrefetchScanIntervalInBytes;
-    return interval >= 0 ? interval : 576;
-  }
-  static intx prefetch_fields_ahead() {
-    intx count = PrefetchFieldsAhead;
-    return count >= 0 ? count : 1;
-  }
-};
--- a/hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp	Sun Feb 22 17:21:13 2009 -0800
+++ b/hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright 1999-2008 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1999-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
@@ -299,14 +299,18 @@
 
 }
 
+#endif // AMD64
+
 bool os::supports_sse() {
+#ifdef AMD64
+  return true;
+#else
   if (sse_status == SSE_UNKNOWN)
     check_for_sse_support();
   return sse_status == SSE_SUPPORTED;
+#endif // AMD64
 }
 
-#endif // AMD64
-
 bool os::is_allocatable(size_t bytes) {
 #ifdef AMD64
   return true;
--- a/hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.hpp	Sun Feb 22 17:21:13 2009 -0800
+++ b/hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.hpp	Thu Feb 26 14:25:55 2009 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright 1999-2004 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1999-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
@@ -41,8 +41,9 @@
   static void  fence_bootstrap              ();
 
   static void setup_fpu();
+#endif // AMD64
+
   static bool supports_sse();
-#endif // AMD64
 
   static bool is_allocatable(size_t bytes);
 
--- a/hotspot/src/share/vm/includeDB_core	Sun Feb 22 17:21:13 2009 -0800
+++ b/hotspot/src/share/vm/includeDB_core	Thu Feb 26 14:25:55 2009 -0800
@@ -1,5 +1,5 @@
 //
-// Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
+// Copyright 1997-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
@@ -176,7 +176,7 @@
 arguments.cpp                           oop.inline.hpp
 arguments.cpp                           os_<os_family>.inline.hpp
 arguments.cpp                           universe.inline.hpp
-arguments.cpp                           vm_version_<arch_model>.hpp
+arguments.cpp                           vm_version_<arch>.hpp
 
 arguments.hpp                           java.hpp
 arguments.hpp                           perfData.hpp
@@ -241,7 +241,7 @@
 assembler.hpp                           register_<arch>.hpp
 assembler.hpp                           relocInfo.hpp
 assembler.hpp                           top.hpp
-assembler.hpp                           vm_version_<arch_model>.hpp
+assembler.hpp                           vm_version_<arch>.hpp
 
 assembler.inline.hpp                    assembler.hpp
 assembler.inline.hpp                    codeBuffer.hpp
@@ -280,7 +280,7 @@
 
 atomic_<os_arch>.inline.hpp             atomic.hpp
 atomic_<os_arch>.inline.hpp             os.hpp
-atomic_<os_arch>.inline.hpp             vm_version_<arch_model>.hpp
+atomic_<os_arch>.inline.hpp             vm_version_<arch>.hpp
 
 // attachListener is jck optional, put cpp deps in includeDB_features
 
@@ -2176,7 +2176,7 @@
 interpreterRuntime.cpp                  threadCritical.hpp
 interpreterRuntime.cpp                  universe.inline.hpp
 interpreterRuntime.cpp                  vmSymbols.hpp
-interpreterRuntime.cpp                  vm_version_<arch_model>.hpp
+interpreterRuntime.cpp                  vm_version_<arch>.hpp
 
 interpreterRuntime.hpp                  bytecode.hpp
 interpreterRuntime.hpp                  frame.inline.hpp
@@ -2279,7 +2279,7 @@
 java.cpp                                universe.hpp
 java.cpp                                vmError.hpp
 java.cpp                                vm_operations.hpp
-java.cpp                                vm_version_<arch_model>.hpp
+java.cpp                                vm_version_<arch>.hpp
 java.cpp                                vtune.hpp
 
 java.hpp                                os.hpp
@@ -3485,7 +3485,7 @@
 register_<arch>.cpp                     register_<arch>.hpp
 
 register_<arch>.hpp                     register.hpp
-register_<arch>.hpp                     vm_version_<arch_model>.hpp
+register_<arch>.hpp                     vm_version_<arch>.hpp
 
 registerMap.hpp                         globalDefinitions.hpp
 registerMap.hpp                         register_<arch>.hpp
@@ -3835,7 +3835,7 @@
 statSampler.cpp                         statSampler.hpp
 statSampler.cpp                         systemDictionary.hpp
 statSampler.cpp                         vmSymbols.hpp
-statSampler.cpp                         vm_version_<arch_model>.hpp
+statSampler.cpp                         vm_version_<arch>.hpp
 
 statSampler.hpp                         perfData.hpp
 statSampler.hpp                         task.hpp
@@ -4579,22 +4579,22 @@
 vm_version.cpp                          arguments.hpp
 vm_version.cpp                          oop.inline.hpp
 vm_version.cpp                          universe.hpp
-vm_version.cpp                          vm_version_<arch_model>.hpp
+vm_version.cpp                          vm_version_<arch>.hpp
 
 vm_version.hpp                          allocation.hpp
 vm_version.hpp                          ostream.hpp
 
-vm_version_<arch_model>.cpp             assembler_<arch>.inline.hpp
-vm_version_<arch_model>.cpp             java.hpp
-vm_version_<arch_model>.cpp             os_<os_family>.inline.hpp
-vm_version_<arch_model>.cpp             resourceArea.hpp
-vm_version_<arch_model>.cpp             stubCodeGenerator.hpp
-vm_version_<arch_model>.cpp             vm_version_<arch_model>.hpp
-
-vm_version_<arch_model>.hpp             globals_extension.hpp
-vm_version_<arch_model>.hpp             vm_version.hpp
-
-vm_version_<os_arch>.cpp                vm_version_<arch_model>.hpp
+vm_version_<arch>.cpp                   assembler_<arch>.inline.hpp
+vm_version_<arch>.cpp                   java.hpp
+vm_version_<arch>.cpp                   os_<os_family>.inline.hpp
+vm_version_<arch>.cpp                   resourceArea.hpp
+vm_version_<arch>.cpp                   stubCodeGenerator.hpp
+vm_version_<arch>.cpp                   vm_version_<arch>.hpp
+
+vm_version_<arch>.hpp                   globals_extension.hpp
+vm_version_<arch>.hpp                   vm_version.hpp
+
+vm_version_<os_arch>.cpp                vm_version_<arch>.hpp
 
 vmreg.cpp                               assembler.hpp
 vmreg.cpp                               vmreg.hpp
--- a/hotspot/src/share/vm/opto/escape.cpp	Sun Feb 22 17:21:13 2009 -0800
+++ b/hotspot/src/share/vm/opto/escape.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -756,6 +756,16 @@
       } else {
         break;
       }
+    } else if (result->Opcode() == Op_SCMemProj) {
+      assert(result->in(0)->is_LoadStore(), "sanity");
+      const Type *at = phase->type(result->in(0)->in(MemNode::Address));
+      if (at != Type::TOP) {
+        assert (at->isa_ptr() != NULL, "pointer type required.");
+        int idx = C->get_alias_index(at->is_ptr());
+        assert(idx != alias_idx, "Object is not scalar replaceable if a LoadStore node access its field");
+        break;
+      }
+      result = result->in(0)->in(MemNode::Memory);
     }
   }
   if (result->is_Phi()) {
--- a/hotspot/src/share/vm/opto/macro.cpp	Sun Feb 22 17:21:13 2009 -0800
+++ b/hotspot/src/share/vm/opto/macro.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -250,6 +250,15 @@
         assert(adr_idx == Compile::AliasIdxRaw, "address must match or be raw");
       }
       mem = mem->in(MemNode::Memory);
+    } else if (mem->Opcode() == Op_SCMemProj) {
+      assert(mem->in(0)->is_LoadStore(), "sanity");
+      const TypePtr* atype = mem->in(0)->in(MemNode::Address)->bottom_type()->is_ptr();
+      int adr_idx = Compile::current()->get_alias_index(atype);
+      if (adr_idx == alias_idx) {
+        assert(false, "Object is not scalar replaceable if a LoadStore node access its field");
+        return NULL;
+      }
+      mem = mem->in(0)->in(MemNode::Memory);
     } else {
       return mem;
     }
@@ -329,8 +338,15 @@
           return NULL;
         }
         values.at_put(j, val);
+      } else if (val->Opcode() == Op_SCMemProj) {
+        assert(val->in(0)->is_LoadStore(), "sanity");
+        assert(false, "Object is not scalar replaceable if a LoadStore node access its field");
+        return NULL;
       } else {
+#ifdef ASSERT
+        val->dump();
         assert(false, "unknown node on this path");
+#endif
         return NULL;  // unknown node on this path
       }
     }
--- a/hotspot/src/share/vm/opto/matcher.cpp	Sun Feb 22 17:21:13 2009 -0800
+++ b/hotspot/src/share/vm/opto/matcher.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -1707,11 +1707,18 @@
 void Matcher::find_shared( Node *n ) {
   // Allocate stack of size C->unique() * 2 to avoid frequent realloc
   MStack mstack(C->unique() * 2);
+  // Mark nodes as address_visited if they are inputs to an address expression
+  VectorSet address_visited(Thread::current()->resource_area());
   mstack.push(n, Visit);     // Don't need to pre-visit root node
   while (mstack.is_nonempty()) {
     n = mstack.node();       // Leave node on stack
     Node_State nstate = mstack.state();
+    uint nop = n->Opcode();
     if (nstate == Pre_Visit) {
+      if (address_visited.test(n->_idx)) { // Visited in address already?
+        // Flag as visited and shared now.
+        set_visited(n);
+      }
       if (is_visited(n)) {   // Visited already?
         // Node is shared and has no reason to clone.  Flag it as shared.
         // This causes it to match into a register for the sharing.
@@ -1726,7 +1733,7 @@
       set_visited(n);   // Flag as visited now
       bool mem_op = false;
 
-      switch( n->Opcode() ) {  // Handle some opcodes special
+      switch( nop ) {  // Handle some opcodes special
       case Op_Phi:             // Treat Phis as shared roots
       case Op_Parm:
       case Op_Proj:            // All handled specially during matching
@@ -1887,34 +1894,51 @@
             // to have a single use so force sharing here.
             set_shared(m->in(AddPNode::Base)->in(1));
           }
+
+          // Some inputs for address expression are not put on stack
+          // to avoid marking them as shared and forcing them into register
+          // if they are used only in address expressions.
+          // But they should be marked as shared if there are other uses
+          // besides address expressions.
+
           Node *off = m->in(AddPNode::Offset);
-          if( off->is_Con() ) {
-            set_visited(m);  // Flag as visited now
+          if( off->is_Con() &&
+              // When there are other uses besides address expressions
+              // put it on stack and mark as shared.
+              !is_visited(m) ) {
+            address_visited.test_set(m->_idx); // Flag as address_visited
             Node *adr = m->in(AddPNode::Address);
 
             // Intel, ARM and friends can handle 2 adds in addressing mode
             if( clone_shift_expressions && adr->is_AddP() &&
                 // AtomicAdd is not an addressing expression.
                 // Cheap to find it by looking for screwy base.
-                !adr->in(AddPNode::Base)->is_top() ) {
-              set_visited(adr);  // Flag as visited now
+                !adr->in(AddPNode::Base)->is_top() &&
+                // Are there other uses besides address expressions?
+                !is_visited(adr) ) {
+              address_visited.set(adr->_idx); // Flag as address_visited
               Node *shift = adr->in(AddPNode::Offset);
               // Check for shift by small constant as well
               if( shift->Opcode() == Op_LShiftX && shift->in(2)->is_Con() &&
-                  shift->in(2)->get_int() <= 3 ) {
-                set_visited(shift);  // Flag as visited now
+                  shift->in(2)->get_int() <= 3 &&
+                  // Are there other uses besides address expressions?
+                  !is_visited(shift) ) {
+                address_visited.set(shift->_idx); // Flag as address_visited
                 mstack.push(shift->in(2), Visit);
+                Node *conv = shift->in(1);
 #ifdef _LP64
                 // Allow Matcher to match the rule which bypass
                 // ConvI2L operation for an array index on LP64
                 // if the index value is positive.
-                if( shift->in(1)->Opcode() == Op_ConvI2L &&
-                    shift->in(1)->as_Type()->type()->is_long()->_lo >= 0 ) {
-                  set_visited(shift->in(1));  // Flag as visited now
-                  mstack.push(shift->in(1)->in(1), Pre_Visit);
+                if( conv->Opcode() == Op_ConvI2L &&
+                    conv->as_Type()->type()->is_long()->_lo >= 0 &&
+                    // Are there other uses besides address expressions?
+                    !is_visited(conv) ) {
+                  address_visited.set(conv->_idx); // Flag as address_visited
+                  mstack.push(conv->in(1), Pre_Visit);
                 } else
 #endif
-                mstack.push(shift->in(1), Pre_Visit);
+                mstack.push(conv, Pre_Visit);
               } else {
                 mstack.push(shift, Pre_Visit);
               }
--- a/hotspot/src/share/vm/opto/memnode.cpp	Sun Feb 22 17:21:13 2009 -0800
+++ b/hotspot/src/share/vm/opto/memnode.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -1066,11 +1066,11 @@
         break;
       }
     }
-    LoadNode* load = NULL;
-    if (allocation != NULL && base->in(load_index)->is_Load()) {
-      load = base->in(load_index)->as_Load();
-    }
-    if (load != NULL && in(Memory)->is_Phi() && in(Memory)->in(0) == base->in(0)) {
+    bool has_load = ( allocation != NULL &&
+                      (base->in(load_index)->is_Load() ||
+                       base->in(load_index)->is_DecodeN() &&
+                       base->in(load_index)->in(1)->is_Load()) );
+    if (has_load && in(Memory)->is_Phi() && in(Memory)->in(0) == base->in(0)) {
       // Push the loads from the phi that comes from valueOf up
       // through it to allow elimination of the loads and the recovery
       // of the original value.
@@ -1106,11 +1106,20 @@
       result->set_req(load_index, in2);
       return result;
     }
-  } else if (base->is_Load()) {
+  } else if (base->is_Load() ||
+             base->is_DecodeN() && base->in(1)->is_Load()) {
+    if (base->is_DecodeN()) {
+      // Get LoadN node which loads cached Integer object
+      base = base->in(1);
+    }
     // Eliminate the load of Integer.value for integers from the cache
     // array by deriving the value from the index into the array.
     // Capture the offset of the load and then reverse the computation.
     Node* load_base = base->in(Address)->in(AddPNode::Base);
+    if (load_base->is_DecodeN()) {
+      // Get LoadN node which loads IntegerCache.cache field
+      load_base = load_base->in(1);
+    }
     if (load_base != NULL) {
       Compile::AliasType* atp = phase->C->alias_type(load_base->adr_type());
       intptr_t cache_offset;
--- a/jaxp/.hgtags	Sun Feb 22 17:21:13 2009 -0800
+++ b/jaxp/.hgtags	Thu Feb 26 14:25:55 2009 -0800
@@ -20,3 +20,5 @@
 96fe28d4a9131e1a97bfe00f779e5626cd09c4d0 jdk7-b43
 b203df0741af3eb08687bc5eb798bac87363758d jdk7-b44
 0f113667880d335cfa2c35721b1b45144fb757f5 jdk7-b45
+b2271877894af809b7703767fe8d4e38591a02a2 jdk7-b46
+d711ad1954b294957737ea386cfd4d3c05028a36 jdk7-b47
--- a/jaxws/.hgtags	Sun Feb 22 17:21:13 2009 -0800
+++ b/jaxws/.hgtags	Thu Feb 26 14:25:55 2009 -0800
@@ -20,3 +20,5 @@
 1ad2f51564db6ca4c6d95760cf13fb083d3dec94 jdk7-b43
 344485a03674b6950a7a23d01a6efb8055afb6ec jdk7-b44
 dea7753d713936c5b6fd942a91811b0676537fd0 jdk7-b45
+af4a3eeb7812a5d09a241c50b51b3c648a9d45c1 jdk7-b46
+223011570edbd49bb0fe51cdeb2089f95d305267 jdk7-b47
--- a/jdk/.hgtags	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/.hgtags	Thu Feb 26 14:25:55 2009 -0800
@@ -20,3 +20,5 @@
 50c67678b0d180063ade199d398b67a54063fa7f jdk7-b43
 d8eb2738db6b148911177d9bcfe888109b7f2f71 jdk7-b44
 527b426497a259d0605d069e3930e838948531a6 jdk7-b45
+4b03e27a44090d1f646af28dc58f9ead827e24c7 jdk7-b46
+b4ac413b1f129eeef0acab3f31081c1b7dfe3b27 jdk7-b47
--- a/jdk/make/sun/awt/FILES_c_windows.gmk	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/make/sun/awt/FILES_c_windows.gmk	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/make/sun/awt/Makefile	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/make/sun/awt/make.depend	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/make/sun/jawt/make.depend	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/make/sun/splashscreen/Makefile	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/make/sun/xawt/mapfile-vers	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/make/tools/sharing/classlist.linux	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/make/tools/sharing/classlist.solaris	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/make/tools/sharing/classlist.windows	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/Choice.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/Component.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/Container.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/Dialog.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/EventDispatchThread.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/List.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/MenuItem.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/Robot.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/TextArea.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/TextField.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/Toolkit.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/Window.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/doc-files/DesktopProperties.html	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/event/InputEvent.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/event/MouseEvent.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/peer/ButtonPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/peer/CanvasPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/peer/CheckboxMenuItemPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/peer/CheckboxPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/peer/ChoicePeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/peer/ComponentPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/peer/ContainerPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/peer/DesktopPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/peer/DialogPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/peer/FileDialogPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/peer/FontPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/peer/FramePeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/peer/KeyboardFocusManagerPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/peer/LabelPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/peer/ListPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/peer/MenuBarPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/peer/MenuComponentPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/peer/MenuItemPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/peer/MenuPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/peer/MouseInfoPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/peer/PanelPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/peer/PopupMenuPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/peer/RobotPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/peer/ScrollPanePeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/peer/ScrollbarPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/peer/SystemTrayPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/peer/TextAreaPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/peer/TextComponentPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/peer/TextFieldPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/peer/TrayIconPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/awt/peer/WindowPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/io/InputStream.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/lang/Enum.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/lang/Object.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/lang/RuntimePermission.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/lang/annotation/Annotation.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/lang/instrument/package.html	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/net/CookieManager.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/net/HttpCookie.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/net/URLClassLoader.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/util/Formatter.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/java/util/logging/Logger.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/javax/swing/JRootPane.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/sun/awt/HeadlessToolkit.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/sun/awt/SunToolkit.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/sun/java2d/pipe/Region.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/sun/misc/URLClassPath.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/sun/security/krb5/Config.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/share/classes/sun/security/krb5/KrbServiceLocator.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/solaris/classes/sun/awt/X11/WindowDimensions.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/solaris/classes/sun/awt/X11/XBaseWindow.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/solaris/classes/sun/awt/X11/XComponentPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/solaris/classes/sun/awt/X11/XConstants.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/solaris/classes/sun/awt/X11/XDragSourceContextPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/solaris/classes/sun/awt/X11/XEmbedClientHelper.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/solaris/classes/sun/awt/X11/XEmbeddedFramePeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/solaris/classes/sun/awt/X11/XKeysym.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/solaris/classes/sun/awt/X11/XRobotPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/solaris/classes/sun/awt/X11/XWindow.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/solaris/classes/sun/awt/X11/XlibWrapper.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/solaris/classes/sun/awt/X11/keysym2ucs.h	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/solaris/native/java/lang/UNIXProcess_md.c	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/solaris/native/sun/awt/awt_Robot.c	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/solaris/native/sun/xawt/XlibWrapper.c	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/classes/sun/awt/windows/WComponentPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/classes/sun/awt/windows/WInputMethod.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/classes/sun/awt/windows/WRobotPeer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/classes/sun/awt/windows/WToolkit.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/awt/splashscreen/splashscreen_sys.c	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/java2d/d3d/D3DPipelineManager.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/java2d/d3d/D3DRenderQueue.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/java2d/d3d/D3DRenderer.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/java2d/d3d/D3DSurfaceData.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/java2d/windows/GDIBlitLoops.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/java2d/windows/GDIRenderer.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/java2d/windows/WindowsFlags.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/ComCtl32Util.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/ComCtl32Util.h	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/Devices.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/Devices.h	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/GDIHashtable.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/GDIHashtable.h	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/ShellFolder2.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ /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	Sun Feb 22 17:21:13 2009 -0800
+++ /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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/WPrinterJob.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt.h	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_Button.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_Checkbox.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_Choice.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_Color.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_Component.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_Component.h	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_Cursor.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_Cursor.h	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_DataTransferer.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_Desktop.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_DesktopProperties.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_Dialog.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_DnDDS.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_DnDDT.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_DrawingSurface.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_FileDialog.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_FileDialog.h	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_Font.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_Font.h	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_Frame.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_InputMethod.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_InputTextInfor.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_List.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ /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	Sun Feb 22 17:21:13 2009 -0800
+++ /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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_MenuItem.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ /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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_Object.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_Palette.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_PopupMenu.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_PrintControl.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_PrintDialog.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_PrintJob.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_Robot.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_Robot.h	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_ScrollPane.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_TextArea.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_TextArea.h	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_TextComponent.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_TextComponent.h	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_TextField.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_Toolkit.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_Toolkit.h	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_TrayIcon.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_TrayIcon.h	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ /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	Sun Feb 22 17:21:13 2009 -0800
+++ /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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_Win32GraphicsConfig.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_Win32GraphicsDevice.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_Win32GraphicsDevice.h	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_Win32GraphicsEnv.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awt_Window.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ /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	Sun Feb 22 17:21:13 2009 -0800
+++ /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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/awtmsg.h	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/src/windows/native/sun/windows/jawt.cpp	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/test/java/awt/Mixing/OpaqueTest.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/test/java/awt/Mixing/OverlappingButtons.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/test/java/lang/reflect/Generics/Probe.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/test/java/net/CookieHandler/TestHttpCookie.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/test/sun/security/krb5/DnsFallback.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/B6216082.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/langtools/.hgtags	Thu Feb 26 14:25:55 2009 -0800
@@ -20,3 +20,5 @@
 e2f8f6daee9decd5721d598dacf4d0b5915651df jdk7-b43
 28f0b10d6c1afc106465c13b8c663a6afa4fb1a1 jdk7-b44
 30db5e0aaf83fe262d9a7227d3fc3e451cd5d459 jdk7-b45
+be546a6c08e3c31fba2edcae1de43ae3515d2e59 jdk7-b46
+2b8f6bab23926aa32b9cf7e4c540b9d1ce74b7d5 jdk7-b47
--- a/langtools/src/share/classes/com/sun/tools/javac/code/Types.java	Sun Feb 22 17:21:13 2009 -0800
+++ b/langtools/src/share/classes/com/sun/tools/javac/code/Types.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Infer.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/langtools/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/langtools/src/share/classes/com/sun/tools/javac/main/Main.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/langtools/src/share/classes/com/sun/tools/javac/main/RecognizedOptions.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/langtools/src/share/classes/com/sun/tools/javac/resources/compiler.properties	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/langtools/src/share/classes/com/sun/tools/javac/resources/javac.properties	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/langtools/src/share/classes/com/sun/tools/javadoc/DocletInvoker.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/langtools/src/share/classes/javax/lang/model/element/UnknownAnnotationValueException.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/langtools/src/share/classes/javax/lang/model/element/UnknownElementException.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/langtools/src/share/classes/javax/lang/model/type/UnknownTypeException.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/langtools/test/tools/javac/6304921/T6304921.out	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/langtools/test/tools/javac/6758789/T6758789b.out	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/langtools/test/tools/javac/T6241723.out	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/langtools/test/tools/javac/depDocComment/DeprecatedDocComment.out	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Sun Feb 22 17:21:13 2009 -0800
+++ b/langtools/test/tools/javac/processing/model/testgetallmembers/Main.java	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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	Thu Feb 26 14:25:55 2009 -0800
@@ -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;
+    }
+}