changeset 14403:61939491c894

Merge
author mullan
date Mon, 05 Nov 2012 10:33:18 -0500
parents 424f3f23f1da 4314fe158bb9
children 7a5587e58dd2
files jdk/make/sun/jdbc/Makefile jdk/src/share/classes/sun/net/www/protocol/gopher/GopherClient.java jdk/src/share/classes/sun/net/www/protocol/gopher/Handler.java jdk/src/solaris/native/java/io/FileSystem_md.c jdk/src/windows/native/java/io/FileSystem_md.c
diffstat 443 files changed, 51132 insertions(+), 6719 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Mon Nov 05 10:30:49 2012 -0500
+++ b/.hgtags	Mon Nov 05 10:33:18 2012 -0500
@@ -182,3 +182,4 @@
 479d3302a26d7607ba271d66973e59ebf58825b6 jdk8-b58
 3bd874584fc01aae92fbc8827e2bd04d8b6ace04 jdk8-b59
 5e3adc681779037a2d33b7be6f75680619085492 jdk8-b60
+cdaa6122185f9bf512dcd6600f56bfccc4824e8c jdk8-b61
--- a/.hgtags-top-repo	Mon Nov 05 10:30:49 2012 -0500
+++ b/.hgtags-top-repo	Mon Nov 05 10:33:18 2012 -0500
@@ -182,3 +182,4 @@
 9367024804874faf8e958adeb333682bab1c0c47 jdk8-b58
 dae9821589ccd2611bdf7084269b98e819091770 jdk8-b59
 e07f499b9dccb529ecf74172cf6ac11a195ec57a jdk8-b60
+20ff117b509075c3aec4ee3a57990ecd5db5df9c jdk8-b61
--- a/README-builds.html	Mon Nov 05 10:30:49 2012 -0500
+++ b/README-builds.html	Mon Nov 05 10:33:18 2012 -0500
@@ -96,7 +96,8 @@
                                 </li>
                                 <li>Windows only:
                                     <ul>
-                                        <li>Unix Command Tools (<a href="#cygwin">CYGWIN</a>)</li>
+                                        <li>Unix Command Tools (<a href="#cygwin">CYGWIN</a>) <strong>or</strong></li>
+                                        <li>Minimalist GNU for Windows (<a href="#msys">MinGW/MSYS</a>)</li>
                                         <li><a href="#dxsdk">DirectX 9.0 SDK</a> </li>
                                     </ul>
                                 </li>
@@ -161,7 +162,7 @@
         <blockquote>
             This file often describes specific requirements for what we call the
             "minimum build environments" (MBE) for this 
-	    specific release of the JDK,
+            specific release of the JDK,
             Building with the MBE will generate the most compatible
             bits that install on, and run correctly on, the most variations
             of the same base OS and hardware architecture.
@@ -241,16 +242,16 @@
                 </tbody>
             </table>
             <p>
-	    These same sources do indeed build on many more systems than the
-	    above older generation systems, again the above is just a minimum.
+            These same sources do indeed build on many more systems than the
+            above older generation systems, again the above is just a minimum.
             <p>
-	    Compilation problems with newer or different C/C++ compilers is a
-	    common problem.
-	    Similarly, compilation problems related to changes to the
+            Compilation problems with newer or different C/C++ compilers is a
+            common problem.
+            Similarly, compilation problems related to changes to the
                 <tt>/usr/include</tt> or system header files is also a
-	    common problem with newer or unreleased OS versions.
-	    Please report these types of problems as bugs so that they
-	    can be dealt with accordingly.
+            common problem with newer or unreleased OS versions.
+            Please report these types of problems as bugs so that they
+            can be dealt with accordingly.
         </blockquote>
         <!-- ------------------------------------------------------ -->
         <hr>
@@ -266,15 +267,15 @@
             <p>
             <blockquote>
                 After installing <a href="http://fedoraproject.org">Fedora</a> 9
-	      you need to install several build dependencies. The simplest
-	      way to do it is to execute the following commands as user 
+              you need to install several build dependencies. The simplest
+              way to do it is to execute the following commands as user 
                 <tt>root</tt>:
                 <p/>
                 <code>yum-builddep java-1.6.0-openjdk</code>
                 <p/>
                 <code>yum install gcc gcc-c++</code>
                 <p/>
-	      In addition, it's necessary to set a few environment variables for the build:
+              In addition, it's necessary to set a few environment variables for the build:
 
                 <p/>
                 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code>
@@ -283,15 +284,15 @@
             <p>
             <blockquote>
                 After installing <a href="http://fedoraproject.org">Fedora</a> 10
-	      you need to install several build dependencies. The simplest
-	      way to do it is to execute the following commands as user 
+              you need to install several build dependencies. The simplest
+              way to do it is to execute the following commands as user 
                 <tt>root</tt>:
                 <p/>
                 <code>yum-builddep java-1.6.0-openjdk</code>
                 <p/>
                 <code>yum install gcc gcc-c++</code>
                 <p/>
-	      In addition, it's necessary to set a few environment variables for the build:
+              In addition, it's necessary to set a few environment variables for the build:
 
                 <p/>
                 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code>
@@ -300,15 +301,15 @@
             <p>
             <blockquote>
                 After installing <a href="http://fedoraproject.org">Fedora</a> 11
-	      you need to install several build dependencies. The simplest
-	      way to do it is to execute the following commands as user 
+              you need to install several build dependencies. The simplest
+              way to do it is to execute the following commands as user 
                 <tt>root</tt>:
                 <p/>
                 <code>yum-builddep java-1.6.0-openjdk</code>
                 <p/>
                 <code>yum install gcc gcc-c++</code>
                 <p/>
-	      In addition, it's necessary to set a few environment variables for the build:
+              In addition, it's necessary to set a few environment variables for the build:
 
                 <p/>
                 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code>
@@ -360,16 +361,16 @@
             <h4>Debian 5.0 (Lenny)</h4>
             <p>
             <blockquote>
-		After installing <a href="http://debian.org">Debian</a> 5 
-		you need to install several build dependencies. 
-		The simplest way to install the build dependencies is to 
-		execute the following commands as user <tt>root</tt>:
+                After installing <a href="http://debian.org">Debian</a> 5 
+                you need to install several build dependencies. 
+                The simplest way to install the build dependencies is to 
+                execute the following commands as user <tt>root</tt>:
                 <p/>
                 <code>aptitude build-dep openjdk-6</code>
                 <p/>
                 <code>aptitude install openjdk-6-jdk libmotif-dev</code>
                 <p/>
-		In addition, it's necessary to set a few environment variables for the build:
+                In addition, it's necessary to set a few environment variables for the build:
                 <p/>
                 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code>
             </blockquote>
@@ -380,52 +381,52 @@
             <h4>Ubuntu 8.04</h4>
             <p>
             <blockquote>
-		After installing <a href="http://ubuntu.org">Ubuntu</a> 8.04 
-		you need to install several build dependencies. 
+                After installing <a href="http://ubuntu.org">Ubuntu</a> 8.04 
+                you need to install several build dependencies. 
                 <p/>
-		First, you need to enable the universe repository in the 
-		Software Sources application and reload the repository 
-		information. The Software Sources application is available 
-		under the System/Administration menu. 
+                First, you need to enable the universe repository in the 
+                Software Sources application and reload the repository 
+                information. The Software Sources application is available 
+                under the System/Administration menu. 
                 <p/>
-		The simplest way to install the build dependencies is to 
-		execute the following commands:
+                The simplest way to install the build dependencies is to 
+                execute the following commands:
                 <p/>
                 <code>sudo aptitude build-dep openjdk-6</code>
                 <p/>
                 <code>sudo aptitude install openjdk-6-jdk</code>
                 <p/>
-		In addition, it's necessary to set a few environment variables for the build:
+                In addition, it's necessary to set a few environment variables for the build:
                 <p/>
                 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code>
             </blockquote>
             <h4>Ubuntu 8.10</h4>
             <p>
             <blockquote>
-		After installing <a href="http://ubuntu.org">Ubuntu</a> 8.10 
-		you need to install several build dependencies. The simplest
-		way to do it is to execute the following commands:
+                After installing <a href="http://ubuntu.org">Ubuntu</a> 8.10 
+                you need to install several build dependencies. The simplest
+                way to do it is to execute the following commands:
                 <p/>
                 <code>sudo aptitude build-dep openjdk-6</code>
                 <p/>
                 <code>sudo aptitude install openjdk-6-jdk</code>
                 <p/>
-		In addition, it's necessary to set a few environment variables for the build:
+                In addition, it's necessary to set a few environment variables for the build:
                 <p/>
                 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code>
             </blockquote>
             <h4>Ubuntu 9.04</h4>
             <p>
             <blockquote>
-		After installing <a href="http://ubuntu.org">Ubuntu</a> 9.04 
-		you need to install several build dependencies. The simplest
-		way to do it is to execute the following commands:
+                After installing <a href="http://ubuntu.org">Ubuntu</a> 9.04 
+                you need to install several build dependencies. The simplest
+                way to do it is to execute the following commands:
                 <p/>
                 <code>sudo aptitude build-dep openjdk-6</code>
                 <p/>
                 <code>sudo aptitude install openjdk-6-jdk</code>
                 <p/>
-		In addition, it's necessary to set a few environment variables for the build:
+                In addition, it's necessary to set a few environment variables for the build:
                 <p/>
                 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code>
             </blockquote>
@@ -436,20 +437,20 @@
             <h4>OpenSUSE 11.1</h4>
             <p>
             <blockquote>
-		After installing <a href="http://opensuse.org">OpenSUSE</a> 11.1 
-		you need to install several build dependencies. 
-		The simplest way to install the build dependencies is to 
-		execute the following commands:
+                After installing <a href="http://opensuse.org">OpenSUSE</a> 11.1 
+                you need to install several build dependencies. 
+                The simplest way to install the build dependencies is to 
+                execute the following commands:
                 <p/>
                 <code>sudo zypper source-install -d java-1_6_0-openjdk</code>
                 <p/>
                 <code>sudo zypper install make</code>
                 <p/>
-		In addition, it is necessary to set a few environment variables for the build:
+                In addition, it is necessary to set a few environment variables for the build:
                 <p/>
                 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk</code>
                 <p/>
-		Finally, you need to unset the <code>JAVA_HOME</code> environment variable:
+                Finally, you need to unset the <code>JAVA_HOME</code> environment variable:
                 <p/>
                 <code>export -n JAVA_HOME</code>
             </blockquote>
@@ -460,14 +461,14 @@
             <h4>Mandriva Linux One 2009 Spring</h4>
             <p>
             <blockquote>
-		After installing <a href="http://mandriva.org">Mandriva</a> Linux One 2009 Spring 
-		you need to install several build dependencies. 
-		The simplest way to install the build dependencies is to 
-		execute the following commands as user <tt>root</tt>:
+                After installing <a href="http://mandriva.org">Mandriva</a> Linux One 2009 Spring 
+                you need to install several build dependencies. 
+                The simplest way to install the build dependencies is to 
+                execute the following commands as user <tt>root</tt>:
                 <p/>
                 <code>urpmi java-1.6.0-openjdk-devel ant make gcc gcc-c++ freetype-devel zip unzip libcups2-devel libxrender1-devel libalsa2-devel libstc++-static-devel libxtst6-devel libxi-devel</code>
                 <p/>
-		In addition, it is necessary to set a few environment variables for the build:
+                In addition, it is necessary to set a few environment variables for the build:
                 <p/>
                 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk</code>
             </blockquote>
@@ -478,18 +479,18 @@
             <h4>OpenSolaris 2009.06</h4>
             <p>
             <blockquote>
-		After installing <a href="http://opensolaris.org">OpenSolaris</a> 2009.06 
-		you need to install several build dependencies. 
-		The simplest way to install the build dependencies is to 
-		execute the following commands:
+                After installing <a href="http://opensolaris.org">OpenSolaris</a> 2009.06 
+                you need to install several build dependencies. 
+                The simplest way to install the build dependencies is to 
+                execute the following commands:
                 <p/>
                 <code>pfexec pkg install SUNWgmake SUNWj6dev SUNWant sunstudioexpress SUNWcups SUNWzip SUNWunzip SUNWxwhl SUNWxorg-headers SUNWaudh SUNWfreetype2</code>
                 <p/>
-		In addition, it is necessary to set a few environment variables for the build:
+                In addition, it is necessary to set a few environment variables for the build:
                 <p/>
                 <code>export LANG=C ALT_COMPILER_PATH=/opt/SunStudioExpress/bin/ ALT_CUPS_HEADERS_PATH=/usr/include/</code>
                 <p/>
-		Finally, you need to make sure that the build process can find the Sun Studio compilers:
+                Finally, you need to make sure that the build process can find the Sun Studio compilers:
                 <p/>
                 <code>export PATH=$PATH:/opt/SunStudioExpress/bin/</code>
             </blockquote>
@@ -687,31 +688,20 @@
                 </li>
                 <li>
                     <strong>Windows:</strong>
-                    Make sure you start your build inside a bash/sh/ksh shell
-                    and are using a <tt>make.exe</tt> utility built for that
-                    environment (a cygwin <tt>make.exe</tt> is not the same
-                    as a <tt>make.exe</tt> built for something like
-                    <a href="http://www.mkssoftware.com/">MKS</a>). 
-                    <br>
-                    <b>WARNING:</b> Watch out on some make 3.81 versions, it may
-                    not work due to a lack of support for MS-DOS drive letter paths
-                    like <tt>C:/</tt> or <tt>C:\</tt>.
-                    <br>
-                    You may be able to use the information at the
-                    <a href="http://developer.mozilla.org/en/docs/Windows_build_prerequisites_using_cygwin#make" target="_blank">
-                        mozilla developer center</a>
-                    on this topic.
-                    <br>
-                    It's hoped that when make 3.82 starts shipping in a future cygwin
-                    release that this MS-DOS path issue will be fixed.
-                    <br>
-                    It may be possible to download the version at
-                    <a href="http://www.cmake.org/files/cygwin/make.exe">
-                        www.cmake.org make.exe</a>.
-                    <br>
-                    It might be necessary for you to build your own GNU make 3.81,
-                    see the <a href="#buildgmake">"Building GNU make"</a> section
-                    in that case.
+                    Make sure you start your build inside a bash/sh/ksh shell and are
+                    using a <tt>make.exe</tt> utility built for that environment.<br/>
+                    <strong>MKS</strong> builds need a native Windows version of GNU make
+                    (see <a href="#buildgmake">Building GNU make</a>).<br/>
+                    <strong>Cygwin</strong> builds need
+                    a make version which was specially compiled for the Cygwin environment
+                    (see <a href="#buildgmake">Building GNU make</a>). <strong>WARNING:</strong>
+                    the OpenJDK build with the make utility provided by Cygwin will <strong>not</strong>
+                    work because it does not support drive letters in paths. Make sure that
+                    your version of make will be found before the Cygwins default make by 
+                    setting an appropriate <tt>PATH</tt> environment variable or by removing
+                    Cygwin's make after you built your own make version.<br/>
+                    <strong>MinGW/MSYS</strong> builds can use the default make which 
+                    comes with the environment.
                 </li>
             </ul>
             <p>
@@ -727,7 +717,7 @@
             <!-- ------------------------------------------------------ -->
             <h4><a name="buildgmake">Building GNU make</a></h4>
             <blockquote>
-                First step is to get the GNU make 3.81 source from
+                First step is to get the GNU make 3.81 (or newer) source from
                 <a href="http://ftp.gnu.org/pub/gnu/make/" target="_blank">
                     ftp.gnu.org/pub/gnu/make/</a>.
                 Building is a little different depending on the OS and unix toolset
@@ -742,12 +732,24 @@
                         <tt>./configure && gmake CC=gcc</tt>
                     </li>
                     <li>
-                        <strong>Windows for CYGWIN:</strong>
-                        <tt>./configure && make</tt>
+                        <strong>Windows for CYGWIN:</strong><br/>
+                        <tt>./configure</tt><br/>
+                        Add the line <tt>#define HAVE_CYGWIN_SHELL 1</tt> to the end of <tt>config.h</tt><br/>
+                        <tt>make</tt><br/>
+                        <br/>
+                        This should produce <tt>make.exe</tt> in the current directory.
                     </li>
                     <li>
-                        <strong>Windows for MKS: (CYGWIN is recommended)</strong>
-                        <tt>./configure && make -f Makefile.win32</tt>
+                        <strong>Windows for MKS:</strong><br/>
+                        Edit <tt>config.h.W32</tt> and uncomment the line <tt>#define HAVE_MKS_SHELL 1</tt><br/>
+                        Set the environment for your native compiler (e.g. by calling:<br/>
+                        <tt>"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /Release /xp /x64)</tt>
+                        <tt>nmake -f NMakefile.win32</tt>
+                        <br/>
+                        This should produce <tt>WinDebug/make.exe</tt> and <tt>WinRel/make.exe</tt>
+                        <br/>
+                        If you get the error: <tt>NMAKE : fatal error U1045: spawn failed : Permission denied</tt>
+                        you have to set the <tt>Read &amp; execute</tt> permission for the file <tt>subproc.bat</tt>.
                     </li>
                 </ul>
             </blockquote>
@@ -894,39 +896,135 @@
         <h4><a name="paths">Windows Paths</a></h4>
         <blockquote>
             <strong>Windows:</strong>
-            Note that GNU make is a historic utility and is based very
-            heavily on shell scripting, so it does not tolerate the Windows habit
+            Note that GNU make, the shell and other Unix-tools required during the build
+            do not tolerate the Windows habit
             of having spaces in pathnames or the use of the <tt>\</tt>characters in pathnames.
-            Luckily on most Windows systems, you can use <tt>/</tt>instead of \, and
-            there is always a 'short' pathname without spaces for any path that 
-            contains spaces.
-            Unfortunately, this short pathname can be somewhat dynamic and the
-            formula is difficult to explain.
-            You can use <tt>cygpath</tt> utility to map pathnames with spaces
-            or the <tt>\</tt>character into the <tt>C:/</tt> style of pathname
-            (called 'mixed'), e.g.
-            <tt>cygpath -s -m "<i>path</i>"</tt>.
+            Luckily on most Windows systems, you can use <tt>/</tt>instead of <tt>\</tt>, and
+            there is always a short <a href="http://en.wikipedia.org/wiki/8.3_filename">
+	    "8.3" pathname</a> without spaces for any path that contains spaces.
+            Unfortunately, this short pathname is somewhat dynamic (i.e. dependant on the
+            other files and directories inside a given directory) and can not be 
+            algorithmicly calculated by only looking at a specific path name.
             <p>
                 The makefiles will try to translate any pathnames supplied
                 to it into the <tt>C:/</tt> style automatically.
+            </p>
             <p>
-                Note that use of CYGWIN creates a unique problem with regards to
+                Special care has to be taken if native Windows applications
+                like <tt>nmake</tt> or <tt>cl</tt> are called with file arguments processed
+                by Unix-tools like <tt>make</tt> or <tt>sh</tt>!
+            </p>
+        </blockquote>
+        <!-- ------------------------------------------------------ -->
+        <h4><a name="paths">Windows build environments</a></h4>
+        <blockquote>
+            Building on Windows requires a Unix-like environment, notably a Unix-like shell.
+            There are several such environments available of which 
+            <a href="http://www.mkssoftware.com/products/tk/ds_tkdev.asp">MKS</a>, 
+            <a href="http://www.cygwin.com/">Cygwin</a> and 
+            <a href="http://www.mingw.org/wiki/MSYS">MinGW/MSYS</a> are currently supported for
+            the OpenJDK build. One of the differences of these three systems is the way
+            they handle Windows path names, particularly path names which contain
+            spaces, backslashes as path separators and possibly drive letters. Depending
+            on the use case and the specifics of each environment these path problems can
+            be solved by a combination of quoting whole paths, translating backslashes to
+            forward slashes, escaping backslashes with additional backslashes and
+            translating the path names to their <a href="http://en.wikipedia.org/wiki/8.3_filename">
+	    "8.3" version</a>.
+            <p>
+                As of this writing (MKS ver. 9.4, Cygwin ver. 1.7.9, MinGW/MSYS 1.0.17),
+                MKS builds are known to be the fastest Windows builds while MingGW/MSYS
+                builds are slightly slower (about 10%) than MKS builds and Cygwin builds
+                require nearly twice the time (about 180%) of MKS builds (e.g. on a
+                DualCore i7 notebook with 8GB of RAM, HDD and 64-bit Windows 7 operating system
+                the complete OpenJDK 8 product build takes about 49min with MKS, 54min with
+                MinGW/MSYS and 88min with Cygwin).
+            </p>
+            <p>
+                Mixing tools from the different Unix emulation environments is not a good
+                idea and will probably not work!
+            </p>
+            <p>
+                <strong>MKS:</strong> is a commercial product which includes
+                all the Unix utilities which are required to build the OpenJDK except GNU
+                make. In pre-OpenJDK times it was the only supported build environment on
+                Windows. The MKS tools support Windows paths with drive letters and
+                forward slashes as path separator. Paths in environment variables like (for
+                example) <tt>PATH</tt> are separated by semicolon '<tt>;</tt>'.
+            </p>
+            <p>
+                Recent versions of MKS provide the <tt>dosname</tt> utility to convert paths
+                with spaces to short (8.3) path names,e .g.
+                <tt>dosname -s "<i>path</i>"</tt>.   
+            </p>
+            <p>
+                If you are using the MKS environment, you need a native Windows version
+                of Gnu make <a href="#buildgmake">which you can easily build yourself</a>. 
+            </p>
+            <p>
+                <strong>Cygwin:</strong>
+                is an open source, Linux-like environment which tries to emulate
+                a complete POSIX layer on Windows. It tries to be smart about path names
+                and can usually handle all kinds of paths if they are correctly quoted
+                or escaped although internally it maps drive letters <tt>&lt;drive&gt;:</tt> 
+                to a virtual directory <tt>/cygdrive/&lt;drive&gt;</tt>.
+            </p>
+            <p>
+                You can always use the <tt>cygpath</tt> utility to map pathnames with spaces
+                or the backslash character into the <tt>C:/</tt> style of pathname
+                (called 'mixed'), e.g. <tt>cygpath -s -m "<i>path</i>"</tt>.
+            </p>
+            <p>
+                Note that the use of CYGWIN creates a unique problem with regards to
                 setting <a href="#path"><tt>PATH</tt></a>. Normally on Windows
                 the <tt>PATH</tt> variable contains directories
-                separated with the ";" character (Solaris and Linux uses ":").
+                separated with the ";" character (Solaris and Linux use ":").
                 With CYGWIN, it uses ":", but that means that paths like "C:/path"
                 cannot be placed in the CYGWIN version  of <tt>PATH</tt> and
                 instead CYGWIN uses something like <tt>/cygdrive/c/path</tt>
                 which CYGWIN understands, but only CYGWIN understands.
-                So be careful with paths on Windows.
+            </p>
+            <p>
+                If you are using the Cygwin environment, you need to 
+                <a href="#buildgmake">compile your own version</a>
+                of GNU make because the default Cygwin make can not handle drive letters in paths. 
+            </p>
+            <p>
+                <strong>MinGW/MSYS:</strong> 
+                MinGW ("Minimalist GNU for Windows") is a collection of free Windows
+                specific header files and import libraries combined with GNU toolsets that
+                allow one to produce native Windows programs that do not rely on any
+                3rd-party C runtime DLLs. MSYS is a supplement to MinGW which allows building
+                applications and programs which rely on traditional UNIX tools to
+                be present. Among others this includes tools like <tt>bash</tt> and <tt>make</tt>.
+            </p>
+            <p>
+                Like Cygwin, MinGW/MSYS can handle different types of path formats. They
+                are internally converted to paths with forward slashes and drive letters
+                <tt>&lt;drive&gt;:</tt> replaced by a virtual
+                directory <tt>/&lt;drive&gt;</tt>.  Additionally, MSYS automatically
+                detects binaries compiled for the MSYS environment and feeds them with the
+                internal, Unix-style path names. If native Windows applications are called
+                from within MSYS programs their path arguments are automatically converted
+                back to Windows style path names with drive letters and backslashes as
+                path separators. This may cause problems for Windows applications which
+                use forward slashes as parameter separator (e.g. <tt>cl /nologo /I</tt>)
+                because MSYS may wrongly <a href="http://mingw.org/wiki/Posix_path_conversion">
+                replace such parameters by drive letters</a>.
+            </p>
+            <p>
+                If you are using the MinGW/MSYS system you can use the default make
+                version supplied by the environment.
+            </p>
         </blockquote>
         <!-- ------------------------------------------------------ -->
         <h4><a name="windows_checklist">Basic Windows Check List</a></h4>
         <blockquote>
             <ol>
                 <li>
-                    Install the
-                    <a href="#cygwin">CYGWIN product</a>. 
+                    Install one of the 
+                    <a href="#cygwin">CYGWIN</a>, <a href="#msys">MinGW/MSYS</a> or 
+                    <a href="http://www.mkssoftware.com/products/tk/ds_tkdev.asp">MKS</a> environments. 
                 </li>
                 <li>
                     Install the 
@@ -1097,9 +1195,9 @@
                     <a href="http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index.htm" target="_blank">
                         Sun Studio 12 Update 1 Compilers</a>
                     (containing version 5.10 of the C and C++ compilers) is required,
-		    including specific patches.
+                    including specific patches.
                     <p>
-		    The Solaris SPARC patch list is:
+                    The Solaris SPARC patch list is:
                     <ul>
                         <li>
                             118683-05: SunOS 5.10: Patch for profiling libraries and assembler
@@ -1286,7 +1384,8 @@
                     The XRender header file is included with the other X11 header files
                     in the package <strong>SFWxwinc</strong> on new enough versions of
                     Solaris and will be installed in
-                    <tt>/usr/X11/include/X11/extensions/Xrender.h</tt>
+                    <tt>/usr/X11/include/X11/extensions/Xrender.h</tt> or
+                    <tt>/usr/openwin/share/include/X11/extensions/Xrender.h</tt>
                 </p><p>
                     <strong>Linux:</strong>
                     XRender header files are required for building the
@@ -1456,7 +1555,9 @@
                                 <td>Devel</td>
                                 <td>make</td>
                                 <td>The GNU version of the 'make' utility built for CYGWIN.<br>
-                                    <b>NOTE</b>: See <a href="#gmake">the GNU make section</a></td>
+                                    <b>NOTE</b>: the Cygwin make can not be used to build the 
+                                    OpenJDK.  You only need it to build your own version of make 
+                                    (see <a href="#gmake">the GNU make section</a>)</td>
                             </tr>
                             <tr>
                                 <td>m4.exe</td>
@@ -1521,6 +1622,21 @@
                     So it's important that the Visual Studio paths in PATH preceed
                     the CYGWIN path <tt>/usr/bin</tt>.
             </blockquote>
+            <strong> Minimalist GNU for Windows (<a name="msys">MinGW/MSYS</a>)</strong>
+            <blockquote> 
+                Alternatively, the set of unix command tools for the OpenJDK build on 
+                Windows can be supplied by 
+                <a href="http://www.mingw.org/wiki/MSYS" target="_blank">MinGW/MSYS</a>.
+                <p>
+                    In addition to the tools which will be installed by default, you have
+                    to manually install the <tt>msys-zip</tt> and <tt>msys-unzip</tt> packages.
+                    This can be easily done with the MinGW command line installer:<br/>
+                    <tt><br/>
+                        mingw-get.exe install msys-zip<br/>
+                        mingw-get.exe install msys-unzip<br/>
+                    </tt>
+                </p>
+            </blockquote>
             <strong><a name="dxsdk">Microsoft DirectX 9.0 SDK header files and libraries</a></strong>
             <blockquote>
                 Microsoft DirectX 9.0 SDK (Summer 2004)
@@ -1781,10 +1897,10 @@
                 </dd>
                 <dt><a name="ALT_OPENWIN_HOME"><tt>ALT_OPENWIN_HOME</tt></a></dt>
                 <dd>
-		    The top-level directory of the libraries and include files for the platform's 
-		    graphical programming environment. The default location is platform specific. 
-		    For example, on Linux it defaults to <tt>/usr/X11R6/</tt>.
-		</dd>
+                    The top-level directory of the libraries and include files for the platform's 
+                    graphical programming environment. The default location is platform specific. 
+                    For example, on Linux it defaults to <tt>/usr/X11R6/</tt>.
+                </dd>
                 <dt><strong>Windows specific:</strong></dt>
                 <dd>
                     <dl>
@@ -1792,9 +1908,9 @@
                         <dd>
                             The location of the 
                             Microsoft Windows SDK where some tools will be
-			    located.
-			    The default is whatever WINDOWSSDKDIR is set to
-			    (or WindowsSdkDir) or the path
+                            located.
+                            The default is whatever WINDOWSSDKDIR is set to
+                            (or WindowsSdkDir) or the path
                             <br>
                             <tt>c:\Program Files\Microsoft SDKs\Windows\v7.0a</tt>
                         </dd>
@@ -1823,17 +1939,17 @@
                             is that <a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a> is set
                             to point to the cross-compiler and that any cross-compilation specific flags
                             are passed using <a href="#EXTRA_CFLAGS"><tt>EXTRA_CFLAGS</tt></a>.
-			    The <a href="#ALT_OPENWIN_HOME"><tt>ALT_OPENWIN_HOME</tt></a> variable should 
-			    also be set to point to the graphical header files (e.g. X11) provided with 
-			    the cross-compiler.
+                            The <a href="#ALT_OPENWIN_HOME"><tt>ALT_OPENWIN_HOME</tt></a> variable should 
+                            also be set to point to the graphical header files (e.g. X11) provided with 
+                            the cross-compiler.
                             When cross-compiling we skip execution of any demos etc that may be built, and
                             also skip binary-file verification.
                         </dd>
                         <dt><tt><a name="EXTRA_CFLAGS">EXTRA_CFLAGS</a></tt> </dt>
                         <dd>
-			   Used to pass cross-compilation options to the cross-compiler.
+                           Used to pass cross-compilation options to the cross-compiler.
                            These are added to the <tt>CFLAGS</tt> and <tt>CXXFLAGS</tt> variables. 
-			</dd>
+                        </dd>
                         <dt><tt><a name="USE_ONLY_BOOTDIR_TOOLS">USE_ONLY_BOOTDIR_TOOLS</a></tt> </dt>
                         <dd>
                             Used primarily for cross-compilation builds (and always set in that case)
@@ -1868,23 +1984,23 @@
                         <dt><tt><a name="BUILD_HEADLESS_ONLY"></a>BUILD_HEADLESS_ONLY</tt> </dt>
                         <dd>
                             Used when the build environment has no graphical capabilities at all. This
-			    excludes building anything that requires graphical libraries to be available.
+                            excludes building anything that requires graphical libraries to be available.
                         </dd>
                         <dt><tt><a name="JAVASE_EMBEDDED"></a>JAVASE_EMBEDDED</tt> </dt>
                         <dd>
-			    Used to indicate this is a build of the Oracle Java SE Embedded product. 
-			    This will enable the directives included in the SE-Embedded specific build 
-			    files.
+                            Used to indicate this is a build of the Oracle Java SE Embedded product. 
+                            This will enable the directives included in the SE-Embedded specific build 
+                            files.
                         </dd>
                         <dt><tt><a name="LIBZIP_CAN_USE_MMAP">LIBZIP_CAN_USE_MMAP</a></tt> </dt>
                         <dd>
-			    If set to false, disables the use of mmap by the zip utility. Otherwise,
-	                    mmap will be used.
+                            If set to false, disables the use of mmap by the zip utility. Otherwise,
+                            mmap will be used.
                         </dd>
                         <dt><tt><a name="COMPRESS_JARS"></a>COMPRESS_JARS</tt> </dt>
                         <dd>
-			  If set to true, causes certain jar files that would otherwise be built without
-			  compression, to use compression.
+                          If set to true, causes certain jar files that would otherwise be built without
+                          compression, to use compression.
                         </dd>
                     </dl>
                 </dd>
--- a/corba/.hgtags	Mon Nov 05 10:30:49 2012 -0500
+++ b/corba/.hgtags	Mon Nov 05 10:33:18 2012 -0500
@@ -182,3 +182,4 @@
 18462a19f7bd66d38015f61ea549a5e0c0c889a3 jdk8-b58
 d54dc53e223ed9ce7d5f4d2cd02ad9d5def3c2db jdk8-b59
 207ef43ba69ead6cbbab415d81834545e4d46747 jdk8-b60
+0e08ba7648fb3faa0986cb217887d7c4990977f3 jdk8-b61
--- a/corba/make/common/shared/Defs-utils.gmk	Mon Nov 05 10:30:49 2012 -0500
+++ b/corba/make/common/shared/Defs-utils.gmk	Mon Nov 05 10:33:18 2012 -0500
@@ -151,16 +151,26 @@
 ifeq ($(PLATFORM),windows)
   ifdef USING_CYGWIN
     # Intrinsic unix command, with backslash-escaped character interpretation
-    ECHO = $(UNIXCOMMAND_PATH)echo -e
-    ZIPEXE = $(UNIXCOMMAND_PATH)zip
-    UNZIP  = $(UNIXCOMMAND_PATH)unzip
+    ECHO     = $(UNIXCOMMAND_PATH)echo -e
+    ZIPEXE   = $(UNIXCOMMAND_PATH)zip
+    UNZIP    = $(UNIXCOMMAND_PATH)unzip
+    # Some CYGWIN nawk versions require BINMODE=w for proper '\r' interpretation
+    NAWK     = $(UNIXCOMMAND_PATH)awk -v BINMODE=w
   else
-    ZIPEXE = $(UTILS_DEVTOOL_PATH)zip
-    UNZIP  = $(UTILS_DEVTOOL_PATH)unzip
+    ifdef USING_MSYS
+      ECHO   = $(UTILS_COMMAND_PATH)echo -e
+      ZIPEXE = $(UTILS_DEVTOOL_PATH)zip
+      UNZIP  = $(UTILS_DEVTOOL_PATH)unzip
+      NAWK   = $(UNIXCOMMAND_PATH)awk
+    else
+      ZIPEXE = $(UTILS_DEVTOOL_PATH)zip
+      UNZIP  = $(UTILS_DEVTOOL_PATH)unzip
+      NAWK   = $(UNIXCOMMAND_PATH)awk
+    endif
   endif
   # Re-define some utilities
   LEX            =# override GNU Make intrinsic: no lex on windows
-  NAWK           = $(UNIXCOMMAND_PATH)awk
+  SHA1SUM        = $(UNIXCOMMAND_PATH)openssl sha1
 endif
 
 # Linux specific
--- a/corba/make/common/shared/Defs-windows.gmk	Mon Nov 05 10:30:49 2012 -0500
+++ b/corba/make/common/shared/Defs-windows.gmk	Mon Nov 05 10:33:18 2012 -0500
@@ -91,6 +91,15 @@
 $(shell if [ "$1" != "" -a -d "$1" ]; then $(CYGPATH_CMD) "$1"; else echo "$1"; fi)
 endef
 else
+ifdef USING_MSYS
+DOSPATH_CMD:=$(shell cd $(JDK_TOPDIR) 2> $(DEV_NULL) && pwd)/make/tools/msys_build_scripts/dospath.sh
+define FullPath
+$(subst \,/,$(shell $(DOSPATH_CMD) $1))
+endef
+define OptFullPath
+$(shell if [ "$1" != "" -a -d "$1" ]; then (cd $1 && pwd); else echo "$1"; fi)
+endef
+else
 # Temporary until we upgrade to MKS 8.7, MKS pwd returns mixed mode path
 define FullPath
 $(shell cd $1 2> $(DEV_NULL) && pwd)
@@ -99,6 +108,7 @@
 $(shell if [ "$1" != "" -a -d "$1" ]; then (cd $1 && pwd); else echo "$1"; fi)
 endef
 endif
+endif
 
 # System drive
 ifdef SYSTEMDRIVE
@@ -112,14 +122,21 @@
 
 # UNIXCOMMAND_PATH: path to where the most common Unix commands are.
 #  NOTE: Must end with / so that it could be empty, allowing PATH usage.
-ifndef UNIXCOMMAND_PATH
-  ifdef ALT_UNIXCOMMAND_PATH
+#        With cygwin, use this as is; don't use FullPath on it.
+ifdef ALT_UNIXCOMMAND_PATH
+  ifdef USING_CYGWIN
+    UNIXCOMMAND_PATH       :=$(call PrefixPath,$(ALT_UNIXCOMMAND_PATH))
+  else
     xALT_UNIXCOMMAND_PATH  :="$(subst \,/,$(ALT_UNIXCOMMAND_PATH))"
     fxALT_UNIXCOMMAND_PATH :=$(call FullPath,$(xALT_UNIXCOMMAND_PATH))
     UNIXCOMMAND_PATH       :=$(call PrefixPath,$(fxALT_UNIXCOMMAND_PATH))
+  endif
+else
+  ifdef USING_CYGWIN
+    UNIXCOMMAND_PATH :=$(call PrefixPath,/usr/bin)
   else
-    ifdef USING_CYGWIN
-      UNIXCOMMAND_PATH :=$(call PrefixPath,/usr/bin)
+    ifdef USING_MSYS
+      UNIXCOMMAND_PATH :=$(call PrefixPath,/bin)
     else
       ifdef ROOTDIR
         xROOTDIR :="$(subst \,/,$(ROOTDIR))"
@@ -131,41 +148,35 @@
       ifneq ($(_rootdir),)
         UNIXCOMMAND_PATH :=$(call PrefixPath,$(_rootdir)/mksnt)
       endif
-    endif
-  endif
-  UNIXCOMMAND_PATH:=$(call AltCheckSpaces,UNIXCOMMAND_PATH)
-  export UNIXCOMMAND_PATH
+    endif # USING_MSYS
+  endif # USING_CYGWIN
 endif
+UNIXCOMMAND_PATH:=$(call AltCheckSpaces,UNIXCOMMAND_PATH)
+export UNIXCOMMAND_PATH
 
 # Get version of MKS or CYGWIN
-ifdef USING_CYGWIN
-  ifndef CYGWIN_VER
-    _CYGWIN_VER :=$(shell $(UNAME))
-    CYGWIN_VER  :=$(call GetVersion,$(_CYGWIN_VER))
-    export CYGWIN_VER
+ifdef USING_MKS
+  _MKS_VER :=$(shell $(MKSINFO) 2>&1 | $(GREP) Release | $(TAIL) -1 | $(SED) -e 's@.*\(Release.*\)@\1@')
+  MKS_VER  :=$(call GetVersion,$(_MKS_VER))
+  # At this point, we can re-define FullPath to use DOSNAME_CMD
+  CHECK_MKS87:=$(call CheckVersions,$(MKS_VER),8.7)
+  TRY_DOSNAME:=false
+  ifeq ($(CHECK_MKS87),same)
+    TRY_DOSNAME:=true
   endif
-else # MKS
-_MKS_VER :=$(shell $(MKSINFO) 2>&1 | $(GREP) Release | $(TAIL) -1 | $(SED) -e 's@.*\(Release.*\)@\1@')
-MKS_VER  :=$(call GetVersion,$(_MKS_VER))
-# At this point, we can re-define FullPath to use DOSNAME_CMD
-CHECK_MKS87:=$(call CheckVersions,$(MKS_VER),8.7)
-TRY_DOSNAME:=false
-ifeq ($(CHECK_MKS87),same)
-TRY_DOSNAME:=true
-endif
-# Newer should be ok
-ifeq ($(CHECK_MKS87),newer)
-TRY_DOSNAME:=true
-endif
-ifeq ($(TRY_DOSNAME),true)
-ifeq ($(shell $(UNIXCOMMAND_PATH)dosname -s $(_system_drive)/ 2> $(DEV_NULL)),$(_system_drive)/)
-_DOSNAME=$(UNIXCOMMAND_PATH)dosname
-DOSNAME_CMD:=$(_DOSNAME) -s
+  # Newer should be ok
+  ifeq ($(CHECK_MKS87),newer)
+    TRY_DOSNAME:=true
+  endif
+  ifeq ($(TRY_DOSNAME),true)
+    ifeq ($(shell $(UNIXCOMMAND_PATH)dosname -s $(_system_drive)/ 2> $(DEV_NULL)),$(_system_drive)/)
+      _DOSNAME=$(UNIXCOMMAND_PATH)dosname
+      DOSNAME_CMD:=$(_DOSNAME) -s
 define FullPath
 $(subst //,/,$(shell echo $1 | $(DOSNAME_CMD) 2> $(DEV_NULL)))
 endef
-endif # test dosname -s
-endif # TRY_DOSNAME
+    endif # test dosname -s
+  endif # TRY_DOSNAME
 endif # MKS
 
 # We try to get references to what we need via the default component
@@ -240,6 +251,8 @@
 # DEVTOOLS_PATH: for other tools required for building (such as zip, etc.)
 #  NOTE: Must end with / so that it could be empty, allowing PATH usage.
 ifndef DEVTOOLS_PATH
+  # DEVTOOLS_PATH: for other tools required for building (such as zip, etc.)
+  #  NOTE: Must end with / so that it could be empty, allowing PATH usage.
   ifdef ALT_DEVTOOLS_PATH
     xALT_DEVTOOLS_PATH  :="$(subst \,/,$(ALT_DEVTOOLS_PATH))"
     fxALT_DEVTOOLS_PATH :=$(call FullPath,$(xALT_DEVTOOLS_PATH))
@@ -248,10 +261,14 @@
     ifdef USING_CYGWIN
       DEVTOOLS_PATH :=$(UNIXCOMMAND_PATH)
     else
-      xDEVTOOLS_PATH  :="$(_system_drive)/utils"
-      fxDEVTOOLS_PATH :=$(call FullPath,$(xDEVTOOLS_PATH))
-      DEVTOOLS_PATH  :=$(call PrefixPath,$(fxDEVTOOLS_PATH))
-    endif
+      ifdef USING_MSYS
+        DEVTOOLS_PATH :=$(UNIXCOMMAND_PATH)
+      else
+        xDEVTOOLS_PATH  :="$(_system_drive)/utils"
+        fxDEVTOOLS_PATH :=$(call FullPath,$(xDEVTOOLS_PATH))
+        DEVTOOLS_PATH  :=$(call PrefixPath,$(fxDEVTOOLS_PATH))
+      endif # USING_MSYS
+    endif # USING_CYGWIN
   endif
   DEVTOOLS_PATH:=$(call AltCheckSpaces,DEVTOOLS_PATH)
   export DEVTOOLS_PATH
--- a/corba/make/common/shared/Platform.gmk	Mon Nov 05 10:30:49 2012 -0500
+++ b/corba/make/common/shared/Platform.gmk	Mon Nov 05 10:33:18 2012 -0500
@@ -65,6 +65,8 @@
 #     REQUIRED_WINDOWS_NAME       windows only: basic name of windows
 #     REQUIRED_WINDOWS_VERSION    windows only: specific version of windows
 #     USING_CYGWIN                windows only: true or false
+#     USING_MSYS                  windows only: true or false
+#     USING_MKS                   windows only: true or false
 #     WINDOWS_NT_VERSION_STRING   windows only: long version name
 #     REQUIRED_OS_VERSION         required OS version, e.g. 5.10, 2.4
 #     REQUIRED_FREE_SPACE         minimum disk space needed for outputdir
@@ -327,6 +329,8 @@
 # Windows with and without CYGWIN will be slightly different
 ifeq ($(SYSTEM_UNAME), Windows_NT)
   PLATFORM = windows
+  USING_MKS = true
+  export USING_MKS
   OS_VERSION := $(shell uname -r)
   WINDOWS_NT_VERSION_STRING=Windows_NT
   REQUIRED_MKS_VER=6.1
@@ -339,6 +343,11 @@
   WINDOWS_NT_VERSION_STRING=CYGWIN_NT
   REQUIRED_CYGWIN_VER=4.0
 endif
+ifneq (,$(findstring MINGW,$(SYSTEM_UNAME)))
+  PLATFORM = windows
+  USING_MSYS = true
+  export USING_MSYS
+endif
 
 # Platform settings specific to Windows
 ifeq ($(PLATFORM), windows)
--- a/hotspot/.hgtags	Mon Nov 05 10:30:49 2012 -0500
+++ b/hotspot/.hgtags	Mon Nov 05 10:33:18 2012 -0500
@@ -285,3 +285,5 @@
 1cc7a2a11d00832e3d07f81f3744a6883422db7e hs25-b04
 3cfd05b2219a29649741a52637696f06acf24a4e jdk8-b60
 b261523fe66c40a02968f0aa7e73602491bb3386 hs25-b05
+4547dc71db765276e027b0c2780b724bae0a07d3 jdk8-b61
+d0337c31c8be7716369b4e7c3bd5f352983c6a06 hs25-b06
--- a/hotspot/make/hotspot_version	Mon Nov 05 10:30:49 2012 -0500
+++ b/hotspot/make/hotspot_version	Mon Nov 05 10:33:18 2012 -0500
@@ -35,7 +35,7 @@
 
 HS_MAJOR_VER=25
 HS_MINOR_VER=0
-HS_BUILD_NUMBER=05
+HS_BUILD_NUMBER=06
 
 JDK_MAJOR_VER=1
 JDK_MINOR_VER=8
--- a/hotspot/src/share/vm/classfile/classFileParser.cpp	Mon Nov 05 10:30:49 2012 -0500
+++ b/hotspot/src/share/vm/classfile/classFileParser.cpp	Mon Nov 05 10:33:18 2012 -0500
@@ -67,7 +67,7 @@
 
 #define JAVA_CLASSFILE_MAGIC              0xCAFEBABE
 #define JAVA_MIN_SUPPORTED_VERSION        45
-#define JAVA_MAX_SUPPORTED_VERSION        51
+#define JAVA_MAX_SUPPORTED_VERSION        52
 #define JAVA_MAX_SUPPORTED_MINOR_VERSION  0
 
 // Used for two backward compatibility reasons:
--- a/hotspot/src/share/vm/classfile/javaClasses.cpp	Mon Nov 05 10:30:49 2012 -0500
+++ b/hotspot/src/share/vm/classfile/javaClasses.cpp	Mon Nov 05 10:33:18 2012 -0500
@@ -413,8 +413,7 @@
 }
 
 bool java_lang_String::equals(oop java_string, jchar* chars, int len) {
-  assert(SharedSkipVerify ||
-         java_string->klass() == SystemDictionary::String_klass(),
+  assert(java_string->klass() == SystemDictionary::String_klass(),
          "must be java_string");
   typeArrayOop value  = java_lang_String::value(java_string);
   int          offset = java_lang_String::offset(java_string);
--- a/hotspot/src/share/vm/classfile/systemDictionary.cpp	Mon Nov 05 10:30:49 2012 -0500
+++ b/hotspot/src/share/vm/classfile/systemDictionary.cpp	Mon Nov 05 10:33:18 2012 -0500
@@ -1699,6 +1699,9 @@
   blk->do_oop(&_system_loader_lock_obj);
 
   dictionary()->always_strong_oops_do(blk);
+
+  // Visit extra methods
+  invoke_method_table()->oops_do(blk);
 }
 
 void SystemDictionary::always_strong_classes_do(KlassClosure* closure) {
--- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp	Mon Nov 05 10:30:49 2012 -0500
+++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp	Mon Nov 05 10:33:18 2012 -0500
@@ -2395,7 +2395,7 @@
 
   if (VerifyBeforeGC &&
       GenCollectedHeap::heap()->total_collections() >= VerifyGCStartAt) {
-    Universe::verify(true);
+    Universe::verify();
   }
 
   // Snapshot the soft reference policy to be used in this collection cycle.
@@ -2419,7 +2419,7 @@
         if (VerifyDuringGC &&
             GenCollectedHeap::heap()->total_collections() >= VerifyGCStartAt) {
           gclog_or_tty->print("Verify before initial mark: ");
-          Universe::verify(true);
+          Universe::verify();
         }
         {
           bool res = markFromRoots(false);
@@ -2431,7 +2431,7 @@
         if (VerifyDuringGC &&
             GenCollectedHeap::heap()->total_collections() >= VerifyGCStartAt) {
           gclog_or_tty->print("Verify before re-mark: ");
-          Universe::verify(true);
+          Universe::verify();
         }
         checkpointRootsFinal(false, clear_all_soft_refs,
                              init_mark_was_synchronous);
@@ -2443,7 +2443,7 @@
         if (VerifyDuringGC &&
             GenCollectedHeap::heap()->total_collections() >= VerifyGCStartAt) {
           gclog_or_tty->print("Verify before sweep: ");
-          Universe::verify(true);
+          Universe::verify();
         }
         sweep(false);
         assert(_collectorState == Resizing, "Incorrect state");
@@ -2459,7 +2459,7 @@
         if (VerifyDuringGC &&
             GenCollectedHeap::heap()->total_collections() >= VerifyGCStartAt) {
           gclog_or_tty->print("Verify before reset: ");
-          Universe::verify(true);
+          Universe::verify();
         }
         reset(false);
         assert(_collectorState == Idling, "Collector state should "
@@ -2486,7 +2486,7 @@
 
   if (VerifyAfterGC &&
       GenCollectedHeap::heap()->total_collections() >= VerifyGCStartAt) {
-    Universe::verify(true);
+    Universe::verify();
   }
   if (TraceCMSState) {
     gclog_or_tty->print_cr("CMS Thread " INTPTR_FORMAT
@@ -5668,7 +5668,7 @@
   if (VerifyDuringGC &&
       GenCollectedHeap::heap()->total_collections() >= VerifyGCStartAt) {
     HandleMark hm;  // Discard invalid handles created during verification
-    Universe::verify(true);
+    Universe::verify();
   }
   {
     TraceTime t("root rescan", PrintGCDetails, false, gclog_or_tty);
--- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/vmCMSOperations.cpp	Mon Nov 05 10:30:49 2012 -0500
+++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/vmCMSOperations.cpp	Mon Nov 05 10:33:18 2012 -0500
@@ -64,7 +64,7 @@
     FreelistLocker x(_collector);
     MutexLockerEx  y(_collector->bitMapLock(), Mutex::_no_safepoint_check_flag);
     Universe::heap()->prepare_for_verify();
-    Universe::verify(true);
+    Universe::verify();
   }
 }
 
@@ -74,7 +74,7 @@
     HandleMark hm;
     FreelistLocker x(_collector);
     MutexLockerEx  y(_collector->bitMapLock(), Mutex::_no_safepoint_check_flag);
-    Universe::verify(true);
+    Universe::verify();
   }
 }
 
--- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp	Mon Nov 05 10:30:49 2012 -0500
+++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp	Mon Nov 05 10:33:18 2012 -0500
@@ -426,11 +426,11 @@
   _markStack(this),
   // _finger set in set_non_marking_state
 
-  _max_task_num(MAX2((uint)ParallelGCThreads, 1U)),
+  _max_worker_id(MAX2((uint)ParallelGCThreads, 1U)),
   // _active_tasks set in set_non_marking_state
   // _tasks set inside the constructor
-  _task_queues(new CMTaskQueueSet((int) _max_task_num)),
-  _terminator(ParallelTaskTerminator((int) _max_task_num, _task_queues)),
+  _task_queues(new CMTaskQueueSet((int) _max_worker_id)),
+  _terminator(ParallelTaskTerminator((int) _max_worker_id, _task_queues)),
 
   _has_overflown(false),
   _concurrent(false),
@@ -481,17 +481,17 @@
 
   _root_regions.init(_g1h, this);
 
-  _tasks = NEW_C_HEAP_ARRAY(CMTask*, _max_task_num, mtGC);
-  _accum_task_vtime = NEW_C_HEAP_ARRAY(double, _max_task_num, mtGC);
-
-  _count_card_bitmaps = NEW_C_HEAP_ARRAY(BitMap,  _max_task_num, mtGC);
-  _count_marked_bytes = NEW_C_HEAP_ARRAY(size_t*, _max_task_num, mtGC);
+  _tasks = NEW_C_HEAP_ARRAY(CMTask*, _max_worker_id, mtGC);
+  _accum_task_vtime = NEW_C_HEAP_ARRAY(double, _max_worker_id, mtGC);
+
+  _count_card_bitmaps = NEW_C_HEAP_ARRAY(BitMap,  _max_worker_id, mtGC);
+  _count_marked_bytes = NEW_C_HEAP_ARRAY(size_t*, _max_worker_id, mtGC);
 
   BitMap::idx_t card_bm_size = _card_bm.size();
 
   // so that the assertion in MarkingTaskQueue::task_queue doesn't fail
-  _active_tasks = _max_task_num;
-  for (int i = 0; i < (int) _max_task_num; ++i) {
+  _active_tasks = _max_worker_id;
+  for (uint i = 0; i < _max_worker_id; ++i) {
     CMTaskQueue* task_queue = new CMTaskQueue();
     task_queue->initialize();
     _task_queues->register_queue(i, task_queue);
@@ -638,7 +638,7 @@
   // We do reset all of them, since different phases will use
   // different number of active threads. So, it's easiest to have all
   // of them ready.
-  for (int i = 0; i < (int) _max_task_num; ++i) {
+  for (uint i = 0; i < _max_worker_id; ++i) {
     _tasks[i]->reset(_nextMarkBitMap);
   }
 
@@ -648,7 +648,7 @@
 }
 
 void ConcurrentMark::set_phase(uint active_tasks, bool concurrent) {
-  assert(active_tasks <= _max_task_num, "we should not have more");
+  assert(active_tasks <= _max_worker_id, "we should not have more");
 
   _active_tasks = active_tasks;
   // Need to update the three data structures below according to the
@@ -659,7 +659,7 @@
 
   _concurrent = concurrent;
   // We propagate this to all tasks, not just the active ones.
-  for (int i = 0; i < (int) _max_task_num; ++i)
+  for (uint i = 0; i < _max_worker_id; ++i)
     _tasks[i]->set_concurrent(concurrent);
 
   if (concurrent) {
@@ -818,9 +818,9 @@
  * doesn't manipulate any data structures afterwards.
  */
 
-void ConcurrentMark::enter_first_sync_barrier(int task_num) {
+void ConcurrentMark::enter_first_sync_barrier(uint worker_id) {
   if (verbose_low()) {
-    gclog_or_tty->print_cr("[%d] entering first barrier", task_num);
+    gclog_or_tty->print_cr("[%u] entering first barrier", worker_id);
   }
 
   if (concurrent()) {
@@ -834,11 +834,11 @@
   // more work
 
   if (verbose_low()) {
-    gclog_or_tty->print_cr("[%d] leaving first barrier", task_num);
+    gclog_or_tty->print_cr("[%u] leaving first barrier", worker_id);
   }
 
-  // let task 0 do this
-  if (task_num == 0) {
+  // let the task associated with with worker 0 do this
+  if (worker_id == 0) {
     // task 0 is responsible for clearing the global data structures
     // We should be here because of an overflow. During STW we should
     // not clear the overflow flag since we rely on it being true when
@@ -858,9 +858,9 @@
   // then go into the second barrier
 }
 
-void ConcurrentMark::enter_second_sync_barrier(int task_num) {
+void ConcurrentMark::enter_second_sync_barrier(uint worker_id) {
   if (verbose_low()) {
-    gclog_or_tty->print_cr("[%d] entering second barrier", task_num);
+    gclog_or_tty->print_cr("[%u] entering second barrier", worker_id);
   }
 
   if (concurrent()) {
@@ -873,7 +873,7 @@
   // at this point everything should be re-initialised and ready to go
 
   if (verbose_low()) {
-    gclog_or_tty->print_cr("[%d] leaving second barrier", task_num);
+    gclog_or_tty->print_cr("[%u] leaving second barrier", worker_id);
   }
 }
 
@@ -1120,8 +1120,8 @@
     HandleMark hm;  // handle scope
     gclog_or_tty->print(" VerifyDuringGC:(before)");
     Universe::heap()->prepare_for_verify();
-    Universe::verify(/* silent      */ false,
-                     /* option      */ VerifyOption_G1UsePrevMarking);
+    Universe::verify(/* silent */ false,
+                     /* option */ VerifyOption_G1UsePrevMarking);
   }
 
   G1CollectorPolicy* g1p = g1h->g1_policy();
@@ -1159,8 +1159,8 @@
       HandleMark hm;  // handle scope
       gclog_or_tty->print(" VerifyDuringGC:(after)");
       Universe::heap()->prepare_for_verify();
-      Universe::verify(/* silent      */ false,
-                       /* option      */ VerifyOption_G1UseNextMarking);
+      Universe::verify(/* silent */ false,
+                       /* option */ VerifyOption_G1UseNextMarking);
     }
     assert(!restart_for_overflow(), "sanity");
   }
@@ -1811,8 +1811,8 @@
     HandleMark hm;  // handle scope
     gclog_or_tty->print(" VerifyDuringGC:(before)");
     Universe::heap()->prepare_for_verify();
-    Universe::verify(/* silent      */ false,
-                     /* option      */ VerifyOption_G1UsePrevMarking);
+    Universe::verify(/* silent */ false,
+                     /* option */ VerifyOption_G1UsePrevMarking);
   }
 
   G1CollectorPolicy* g1p = G1CollectedHeap::heap()->g1_policy();
@@ -1966,8 +1966,8 @@
     HandleMark hm;  // handle scope
     gclog_or_tty->print(" VerifyDuringGC:(after)");
     Universe::heap()->prepare_for_verify();
-    Universe::verify(/* silent      */ false,
-                     /* option      */ VerifyOption_G1UsePrevMarking);
+    Universe::verify(/* silent */ false,
+                     /* option */ VerifyOption_G1UsePrevMarking);
   }
 
   g1h->verify_region_sets_optional();
@@ -2113,9 +2113,9 @@
     if (!_cm->has_overflown()) {
       oop obj = oopDesc::load_decode_heap_oop(p);
       if (_cm->verbose_high()) {
-        gclog_or_tty->print_cr("\t[%d] we're looking at location "
+        gclog_or_tty->print_cr("\t[%u] we're looking at location "
                                "*"PTR_FORMAT" = "PTR_FORMAT,
-                               _task->task_id(), p, (void*) obj);
+                               _task->worker_id(), p, (void*) obj);
       }
 
       _task->deal_with_reference(obj);
@@ -2144,7 +2144,7 @@
       }
     } else {
       if (_cm->verbose_high()) {
-         gclog_or_tty->print_cr("\t[%d] CM Overflow", _task->task_id());
+         gclog_or_tty->print_cr("\t[%u] CM Overflow", _task->worker_id());
       }
     }
   }
@@ -2160,8 +2160,8 @@
   void do_void() {
     do {
       if (_cm->verbose_high()) {
-        gclog_or_tty->print_cr("\t[%d] Drain: Calling do marking_step",
-                               _task->task_id());
+        gclog_or_tty->print_cr("\t[%u] Drain: Calling do marking_step",
+                               _task->worker_id());
       }
 
       // We call CMTask::do_marking_step() to completely drain the local and
@@ -2300,7 +2300,7 @@
     // We use the work gang from the G1CollectedHeap and we utilize all
     // the worker threads.
     uint active_workers = g1h->workers() ? g1h->workers()->active_workers() : 1U;
-    active_workers = MAX2(MIN2(active_workers, _max_task_num), 1U);
+    active_workers = MAX2(MIN2(active_workers, _max_worker_id), 1U);
 
     G1CMRefProcTaskExecutor par_task_executor(g1h, this,
                                               g1h->workers(), active_workers);
@@ -2619,7 +2619,7 @@
 }
 
 HeapRegion*
-ConcurrentMark::claim_region(int task_num) {
+ConcurrentMark::claim_region(uint worker_id) {
   // "checkpoint" the finger
   HeapWord* finger = _finger;
 
@@ -2657,10 +2657,10 @@
     HeapWord*   limit         = curr_region->next_top_at_mark_start();
 
     if (verbose_low()) {
-      gclog_or_tty->print_cr("[%d] curr_region = "PTR_FORMAT" "
+      gclog_or_tty->print_cr("[%u] curr_region = "PTR_FORMAT" "
                              "["PTR_FORMAT", "PTR_FORMAT"), "
                              "limit = "PTR_FORMAT,
-                             task_num, curr_region, bottom, end, limit);
+                             worker_id, curr_region, bottom, end, limit);
     }
 
     // Is the gap between reading the finger and doing the CAS too long?
@@ -2673,22 +2673,22 @@
       assert(_finger >= end, "the finger should have moved forward");
 
       if (verbose_low()) {
-        gclog_or_tty->print_cr("[%d] we were successful with region = "
-                               PTR_FORMAT, task_num, curr_region);
+        gclog_or_tty->print_cr("[%u] we were successful with region = "
+                               PTR_FORMAT, worker_id, curr_region);
       }
 
       if (limit > bottom) {
         if (verbose_low()) {
-          gclog_or_tty->print_cr("[%d] region "PTR_FORMAT" is not empty, "
-                                 "returning it ", task_num, curr_region);
+          gclog_or_tty->print_cr("[%u] region "PTR_FORMAT" is not empty, "
+                                 "returning it ", worker_id, curr_region);
         }
         return curr_region;
       } else {
         assert(limit == bottom,
                "the region limit should be at bottom");
         if (verbose_low()) {
-          gclog_or_tty->print_cr("[%d] region "PTR_FORMAT" is empty, "
-                                 "returning NULL", task_num, curr_region);
+          gclog_or_tty->print_cr("[%u] region "PTR_FORMAT" is empty, "
+                                 "returning NULL", worker_id, curr_region);
         }
         // we return NULL and the caller should try calling
         // claim_region() again.
@@ -2697,10 +2697,10 @@
     } else {
       assert(_finger > finger, "the finger should have moved forward");
       if (verbose_low()) {
-        gclog_or_tty->print_cr("[%d] somebody else moved the finger, "
+        gclog_or_tty->print_cr("[%u] somebody else moved the finger, "
                                "global finger = "PTR_FORMAT", "
                                "our finger = "PTR_FORMAT,
-                               task_num, _finger, finger);
+                               worker_id, _finger, finger);
       }
 
       // read it again
@@ -2783,7 +2783,7 @@
     _markStack.oops_do(&cl);
 
     // Verify entries on the task queues
-    for (int i = 0; i < (int) _max_task_num; i += 1) {
+    for (uint i = 0; i < _max_worker_id; i += 1) {
       cl.set_phase(VerifyNoCSetOopsQueues, i);
       OopTaskQueue* queue = _task_queues->queue(i);
       queue->oops_do(&cl);
@@ -2822,7 +2822,7 @@
     }
 
     // Verify the task fingers
-    assert(parallel_marking_threads() <= _max_task_num, "sanity");
+    assert(parallel_marking_threads() <= _max_worker_id, "sanity");
     for (int i = 0; i < (int) parallel_marking_threads(); i += 1) {
       CMTask* task = _tasks[i];
       HeapWord* task_finger = task->finger();
@@ -2849,7 +2849,7 @@
   }
   _finger = _heap_start;
 
-  for (int i = 0; i < (int)_max_task_num; ++i) {
+  for (uint i = 0; i < _max_worker_id; ++i) {
     OopTaskQueue* queue = _task_queues->queue(i);
     queue->set_empty();
   }
@@ -2862,15 +2862,15 @@
   ConcurrentMark* _cm;
   CardTableModRefBS* _ct_bs;
   BitMap* _cm_card_bm;
-  size_t _max_task_num;
+  uint _max_worker_id;
 
  public:
   AggregateCountDataHRClosure(G1CollectedHeap* g1h,
                               BitMap* cm_card_bm,
-                              size_t max_task_num) :
+                              uint max_worker_id) :
     _g1h(g1h), _cm(g1h->concurrent_mark()),
     _ct_bs((CardTableModRefBS*) (g1h->barrier_set())),
-    _cm_card_bm(cm_card_bm), _max_task_num(max_task_num) { }
+    _cm_card_bm(cm_card_bm), _max_worker_id(max_worker_id) { }
 
   bool doHeapRegion(HeapRegion* hr) {
     if (hr->continuesHumongous()) {
@@ -2927,7 +2927,7 @@
     uint hrs_index = hr->hrs_index();
     size_t marked_bytes = 0;
 
-    for (int i = 0; (size_t)i < _max_task_num; i += 1) {
+    for (uint i = 0; i < _max_worker_id; i += 1) {
       size_t* marked_bytes_array = _cm->count_marked_bytes_array_for(i);
       BitMap* task_card_bm = _cm->count_card_bitmap_for(i);
 
@@ -2935,7 +2935,7 @@
       // add it to the running total for this region.
       marked_bytes += marked_bytes_array[hrs_index];
 
-      // Now union the bitmaps[0,max_task_num)[start_idx..limit_idx)
+      // Now union the bitmaps[0,max_worker_id)[start_idx..limit_idx)
       // into the global card bitmap.
       BitMap::idx_t scan_idx = task_card_bm->get_next_one_offset(start_idx, limit_idx);
 
@@ -2967,22 +2967,22 @@
   G1CollectedHeap* _g1h;
   ConcurrentMark* _cm;
   BitMap* _cm_card_bm;
-  size_t _max_task_num;
+  uint _max_worker_id;
   int _active_workers;
 
 public:
   G1AggregateCountDataTask(G1CollectedHeap* g1h,
                            ConcurrentMark* cm,
                            BitMap* cm_card_bm,
-                           size_t max_task_num,
+                           uint max_worker_id,
                            int n_workers) :
     AbstractGangTask("Count Aggregation"),
     _g1h(g1h), _cm(cm), _cm_card_bm(cm_card_bm),
-    _max_task_num(max_task_num),
+    _max_worker_id(max_worker_id),
     _active_workers(n_workers) { }
 
   void work(uint worker_id) {
-    AggregateCountDataHRClosure cl(_g1h, _cm_card_bm, _max_task_num);
+    AggregateCountDataHRClosure cl(_g1h, _cm_card_bm, _max_worker_id);
 
     if (G1CollectedHeap::use_parallel_gc_threads()) {
       _g1h->heap_region_par_iterate_chunked(&cl, worker_id,
@@ -3001,7 +3001,7 @@
                         1);
 
   G1AggregateCountDataTask g1_par_agg_task(_g1h, this, &_card_bm,
-                                           _max_task_num, n_workers);
+                                           _max_worker_id, n_workers);
 
   if (G1CollectedHeap::use_parallel_gc_threads()) {
     assert(_g1h->check_heap_region_claim_values(HeapRegion::InitialClaimValue),
@@ -3030,9 +3030,9 @@
   _region_bm.clear();
 
   uint max_regions = _g1h->max_regions();
-  assert(_max_task_num != 0, "unitialized");
-
-  for (int i = 0; (size_t) i < _max_task_num; i += 1) {
+  assert(_max_worker_id > 0, "uninitialized");
+
+  for (uint i = 0; i < _max_worker_id; i += 1) {
     BitMap* task_card_bm = count_card_bitmap_for(i);
     size_t* marked_bytes_array = count_marked_bytes_array_for(i);
 
@@ -3062,7 +3062,7 @@
   clear_all_count_data();
   // Empty mark stack
   clear_marking_state();
-  for (int i = 0; i < (int)_max_task_num; ++i) {
+  for (uint i = 0; i < _max_worker_id; ++i) {
     _tasks[i]->clear_region_fields();
   }
   _has_aborted = true;
@@ -3154,8 +3154,8 @@
 void ConcurrentMark::print_finger() {
   gclog_or_tty->print_cr("heap ["PTR_FORMAT", "PTR_FORMAT"), global finger = "PTR_FORMAT,
                          _heap_start, _heap_end, _finger);
-  for (int i = 0; i < (int) _max_task_num; ++i) {
-    gclog_or_tty->print("   %d: "PTR_FORMAT, i, _tasks[i]->finger());
+  for (uint i = 0; i < _max_worker_id; ++i) {
+    gclog_or_tty->print("   %u: "PTR_FORMAT, i, _tasks[i]->finger());
   }
   gclog_or_tty->print_cr("");
 }
@@ -3165,8 +3165,8 @@
   assert(_nextMarkBitMap->isMarked((HeapWord*) obj), "invariant");
 
   if (_cm->verbose_high()) {
-    gclog_or_tty->print_cr("[%d] we're scanning object "PTR_FORMAT,
-                           _task_id, (void*) obj);
+    gclog_or_tty->print_cr("[%u] we're scanning object "PTR_FORMAT,
+                           _worker_id, (void*) obj);
   }
 
   size_t obj_size = obj->size();
@@ -3245,8 +3245,8 @@
         "claim_region() should have filtered out continues humongous regions");
 
   if (_cm->verbose_low()) {
-    gclog_or_tty->print_cr("[%d] setting up for region "PTR_FORMAT,
-                           _task_id, hr);
+    gclog_or_tty->print_cr("[%u] setting up for region "PTR_FORMAT,
+                           _worker_id, hr);
   }
 
   _curr_region  = hr;
@@ -3261,9 +3261,9 @@
 
   if (limit == bottom) {
     if (_cm->verbose_low()) {
-      gclog_or_tty->print_cr("[%d] found an empty region "
+      gclog_or_tty->print_cr("[%u] found an empty region "
                              "["PTR_FORMAT", "PTR_FORMAT")",
-                             _task_id, bottom, limit);
+                             _worker_id, bottom, limit);
     }
     // The region was collected underneath our feet.
     // We set the finger to bottom to ensure that the bitmap
@@ -3294,8 +3294,8 @@
 void CMTask::giveup_current_region() {
   assert(_curr_region != NULL, "invariant");
   if (_cm->verbose_low()) {
-    gclog_or_tty->print_cr("[%d] giving up region "PTR_FORMAT,
-                           _task_id, _curr_region);
+    gclog_or_tty->print_cr("[%u] giving up region "PTR_FORMAT,
+                           _worker_id, _curr_region);
   }
   clear_region_fields();
 }
@@ -3321,7 +3321,7 @@
   guarantee(nextMarkBitMap != NULL, "invariant");
 
   if (_cm->verbose_low()) {
-    gclog_or_tty->print_cr("[%d] resetting", _task_id);
+    gclog_or_tty->print_cr("[%u] resetting", _worker_id);
   }
 
   _nextMarkBitMap                = nextMarkBitMap;
@@ -3415,9 +3415,9 @@
   _all_clock_intervals_ms.add(last_interval_ms);
 
   if (_cm->verbose_medium()) {
-      gclog_or_tty->print_cr("[%d] regular clock, interval = %1.2lfms, "
+      gclog_or_tty->print_cr("[%u] regular clock, interval = %1.2lfms, "
                         "scanned = %d%s, refs reached = %d%s",
-                        _task_id, last_interval_ms,
+                        _worker_id, last_interval_ms,
                         _words_scanned,
                         (_words_scanned >= _words_scanned_limit) ? " (*)" : "",
                         _refs_reached,
@@ -3449,8 +3449,8 @@
   SATBMarkQueueSet& satb_mq_set = JavaThread::satb_mark_queue_set();
   if (!_draining_satb_buffers && satb_mq_set.process_completed_buffers()) {
     if (_cm->verbose_low()) {
-      gclog_or_tty->print_cr("[%d] aborting to deal with pending SATB buffers",
-                             _task_id);
+      gclog_or_tty->print_cr("[%u] aborting to deal with pending SATB buffers",
+                             _worker_id);
     }
     // we do need to process SATB buffers, we'll abort and restart
     // the marking task to do so
@@ -3475,7 +3475,7 @@
   // scanning limit so that the clock is called earlier.
 
   if (_cm->verbose_medium()) {
-    gclog_or_tty->print_cr("[%d] decreasing limits", _task_id);
+    gclog_or_tty->print_cr("[%u] decreasing limits", _worker_id);
   }
 
   _words_scanned_limit = _real_words_scanned_limit -
@@ -3503,16 +3503,16 @@
 
     if (!_cm->mark_stack_push(buffer, n)) {
       if (_cm->verbose_low()) {
-        gclog_or_tty->print_cr("[%d] aborting due to global stack overflow",
-                               _task_id);
+        gclog_or_tty->print_cr("[%u] aborting due to global stack overflow",
+                               _worker_id);
       }
       set_has_aborted();
     } else {
       // the transfer was successful
 
       if (_cm->verbose_medium()) {
-        gclog_or_tty->print_cr("[%d] pushed %d entries to the global stack",
-                               _task_id, n);
+        gclog_or_tty->print_cr("[%u] pushed %d entries to the global stack",
+                               _worker_id, n);
       }
       statsOnly( int tmp_size = _cm->mark_stack_size();
                  if (tmp_size > _global_max_size) {
@@ -3539,8 +3539,8 @@
 
     statsOnly( ++_global_transfers_from; _global_pops += n );
     if (_cm->verbose_medium()) {
-      gclog_or_tty->print_cr("[%d] popped %d entries from the global stack",
-                             _task_id, n);
+      gclog_or_tty->print_cr("[%u] popped %d entries from the global stack",
+                             _worker_id, n);
     }
     for (int i = 0; i < n; ++i) {
       bool success = _task_queue->push(buffer[i]);
@@ -3575,8 +3575,8 @@
 
   if (_task_queue->size() > target_size) {
     if (_cm->verbose_high()) {
-      gclog_or_tty->print_cr("[%d] draining local queue, target size = %d",
-                             _task_id, target_size);
+      gclog_or_tty->print_cr("[%u] draining local queue, target size = %d",
+                             _worker_id, target_size);
     }
 
     oop obj;
@@ -3585,7 +3585,7 @@
       statsOnly( ++_local_pops );
 
       if (_cm->verbose_high()) {
-        gclog_or_tty->print_cr("[%d] popped "PTR_FORMAT, _task_id,
+        gclog_or_tty->print_cr("[%u] popped "PTR_FORMAT, _worker_id,
                                (void*) obj);
       }
 
@@ -3603,8 +3603,8 @@
     }
 
     if (_cm->verbose_high()) {
-      gclog_or_tty->print_cr("[%d] drained local queue, size = %d",
-                             _task_id, _task_queue->size());
+      gclog_or_tty->print_cr("[%u] drained local queue, size = %d",
+                             _worker_id, _task_queue->size());
     }
   }
 }
@@ -3631,8 +3631,8 @@
 
   if (_cm->mark_stack_size() > target_size) {
     if (_cm->verbose_low()) {
-      gclog_or_tty->print_cr("[%d] draining global_stack, target size %d",
-                             _task_id, target_size);
+      gclog_or_tty->print_cr("[%u] draining global_stack, target size %d",
+                             _worker_id, target_size);
     }
 
     while (!has_aborted() && _cm->mark_stack_size() > target_size) {
@@ -3641,8 +3641,8 @@
     }
 
     if (_cm->verbose_low()) {
-      gclog_or_tty->print_cr("[%d] drained global stack, size = %d",
-                             _task_id, _cm->mark_stack_size());
+      gclog_or_tty->print_cr("[%u] drained global stack, size = %d",
+                             _worker_id, _cm->mark_stack_size());
     }
   }
 }
@@ -3663,7 +3663,7 @@
   CMObjectClosure oc(this);
   SATBMarkQueueSet& satb_mq_set = JavaThread::satb_mark_queue_set();
   if (G1CollectedHeap::use_parallel_gc_threads()) {
-    satb_mq_set.set_par_closure(_task_id, &oc);
+    satb_mq_set.set_par_closure(_worker_id, &oc);
   } else {
     satb_mq_set.set_closure(&oc);
   }
@@ -3672,9 +3672,9 @@
   // until we run out of buffers or we need to abort.
   if (G1CollectedHeap::use_parallel_gc_threads()) {
     while (!has_aborted() &&
-           satb_mq_set.par_apply_closure_to_completed_buffer(_task_id)) {
+           satb_mq_set.par_apply_closure_to_completed_buffer(_worker_id)) {
       if (_cm->verbose_medium()) {
-        gclog_or_tty->print_cr("[%d] processed an SATB buffer", _task_id);
+        gclog_or_tty->print_cr("[%u] processed an SATB buffer", _worker_id);
       }
       statsOnly( ++_satb_buffers_processed );
       regular_clock_call();
@@ -3683,7 +3683,7 @@
     while (!has_aborted() &&
            satb_mq_set.apply_closure_to_completed_buffer()) {
       if (_cm->verbose_medium()) {
-        gclog_or_tty->print_cr("[%d] processed an SATB buffer", _task_id);
+        gclog_or_tty->print_cr("[%u] processed an SATB buffer", _worker_id);
       }
       statsOnly( ++_satb_buffers_processed );
       regular_clock_call();
@@ -3693,7 +3693,7 @@
   if (!concurrent() && !has_aborted()) {
     // We should only do this during remark.
     if (G1CollectedHeap::use_parallel_gc_threads()) {
-      satb_mq_set.par_iterate_closure_all_threads(_task_id);
+      satb_mq_set.par_iterate_closure_all_threads(_worker_id);
     } else {
       satb_mq_set.iterate_closure_all_threads();
     }
@@ -3706,7 +3706,7 @@
          satb_mq_set.completed_buffers_num() == 0, "invariant");
 
   if (G1CollectedHeap::use_parallel_gc_threads()) {
-    satb_mq_set.set_par_closure(_task_id, NULL);
+    satb_mq_set.set_par_closure(_worker_id, NULL);
   } else {
     satb_mq_set.set_closure(NULL);
   }
@@ -3717,8 +3717,8 @@
 }
 
 void CMTask::print_stats() {
-  gclog_or_tty->print_cr("Marking Stats, task = %d, calls = %d",
-                         _task_id, _calls);
+  gclog_or_tty->print_cr("Marking Stats, task = %u, calls = %d",
+                         _worker_id, _calls);
   gclog_or_tty->print_cr("  Elapsed time = %1.2lfms, Termination time = %1.2lfms",
                          _elapsed_time_ms, _termination_time_ms);
   gclog_or_tty->print_cr("  Step Times (cum): num = %d, avg = %1.2lfms, sd = %1.2lfms",
@@ -3866,7 +3866,7 @@
   G1CollectorPolicy* g1_policy = _g1h->g1_policy();
   assert(_task_queues != NULL, "invariant");
   assert(_task_queue != NULL, "invariant");
-  assert(_task_queues->queue(_task_id) == _task_queue, "invariant");
+  assert(_task_queues->queue(_worker_id) == _task_queue, "invariant");
 
   assert(!_claimed,
          "only one thread should claim this task at any one time");
@@ -3898,9 +3898,9 @@
   ++_calls;
 
   if (_cm->verbose_low()) {
-    gclog_or_tty->print_cr("[%d] >>>>>>>>>> START, call = %d, "
+    gclog_or_tty->print_cr("[%u] >>>>>>>>>> START, call = %d, "
                            "target = %1.2lfms >>>>>>>>>>",
-                           _task_id, _calls, _time_target_ms);
+                           _worker_id, _calls, _time_target_ms);
   }
 
   // Set up the bitmap and oop closures. Anything that uses them is
@@ -3948,10 +3948,10 @@
       MemRegion mr = MemRegion(_finger, _region_limit);
 
       if (_cm->verbose_low()) {
-        gclog_or_tty->print_cr("[%d] we're scanning part "
+        gclog_or_tty->print_cr("[%u] we're scanning part "
                                "["PTR_FORMAT", "PTR_FORMAT") "
                                "of region "PTR_FORMAT,
-                               _task_id, _finger, _region_limit, _curr_region);
+                               _worker_id, _finger, _region_limit, _curr_region);
       }
 
       // Let's iterate over the bitmap of the part of the
@@ -4007,17 +4007,17 @@
       assert(_finger       == NULL, "invariant");
       assert(_region_limit == NULL, "invariant");
       if (_cm->verbose_low()) {
-        gclog_or_tty->print_cr("[%d] trying to claim a new region", _task_id);
+        gclog_or_tty->print_cr("[%u] trying to claim a new region", _worker_id);
       }
-      HeapRegion* claimed_region = _cm->claim_region(_task_id);
+      HeapRegion* claimed_region = _cm->claim_region(_worker_id);
       if (claimed_region != NULL) {
         // Yes, we managed to claim one
         statsOnly( ++_regions_claimed );
 
         if (_cm->verbose_low()) {
-          gclog_or_tty->print_cr("[%d] we successfully claimed "
+          gclog_or_tty->print_cr("[%u] we successfully claimed "
                                  "region "PTR_FORMAT,
-                                 _task_id, claimed_region);
+                                 _worker_id, claimed_region);
         }
 
         setup_for_region(claimed_region);
@@ -4044,7 +4044,7 @@
            "at this point we should be out of regions");
 
     if (_cm->verbose_low()) {
-      gclog_or_tty->print_cr("[%d] all regions claimed", _task_id);
+      gclog_or_tty->print_cr("[%u] all regions claimed", _worker_id);
     }
 
     // Try to reduce the number of available SATB buffers so that
@@ -4068,17 +4068,17 @@
            "only way to reach here");
 
     if (_cm->verbose_low()) {
-      gclog_or_tty->print_cr("[%d] starting to steal", _task_id);
+      gclog_or_tty->print_cr("[%u] starting to steal", _worker_id);
     }
 
     while (!has_aborted()) {
       oop obj;
       statsOnly( ++_steal_attempts );
 
-      if (_cm->try_stealing(_task_id, &_hash_seed, obj)) {
+      if (_cm->try_stealing(_worker_id, &_hash_seed, obj)) {
         if (_cm->verbose_medium()) {
-          gclog_or_tty->print_cr("[%d] stolen "PTR_FORMAT" successfully",
-                                 _task_id, (void*) obj);
+          gclog_or_tty->print_cr("[%u] stolen "PTR_FORMAT" successfully",
+                                 _worker_id, (void*) obj);
         }
 
         statsOnly( ++_steals );
@@ -4116,7 +4116,7 @@
     assert(_task_queue->size() == 0, "only way to reach here");
 
     if (_cm->verbose_low()) {
-      gclog_or_tty->print_cr("[%d] starting termination protocol", _task_id);
+      gclog_or_tty->print_cr("[%u] starting termination protocol", _worker_id);
     }
 
     _termination_start_time_ms = os::elapsedVTime() * 1000.0;
@@ -4131,7 +4131,7 @@
     if (finished) {
       // We're all done.
 
-      if (_task_id == 0) {
+      if (_worker_id == 0) {
         // let's allow task 0 to do this
         if (concurrent()) {
           assert(_cm->concurrent_marking_in_progress(), "invariant");
@@ -4153,15 +4153,15 @@
       guarantee(!_cm->mark_stack_overflow(), "only way to reach here");
 
       if (_cm->verbose_low()) {
-        gclog_or_tty->print_cr("[%d] all tasks terminated", _task_id);
+        gclog_or_tty->print_cr("[%u] all tasks terminated", _worker_id);
       }
     } else {
       // Apparently there's more work to do. Let's abort this task. It
       // will restart it and we can hopefully find more things to do.
 
       if (_cm->verbose_low()) {
-        gclog_or_tty->print_cr("[%d] apparently there is more work to do",
-                               _task_id);
+        gclog_or_tty->print_cr("[%u] apparently there is more work to do",
+                               _worker_id);
       }
 
       set_has_aborted();
@@ -4200,10 +4200,10 @@
       // will achieve this with the use of two barrier sync points.
 
       if (_cm->verbose_low()) {
-        gclog_or_tty->print_cr("[%d] detected overflow", _task_id);
+        gclog_or_tty->print_cr("[%u] detected overflow", _worker_id);
       }
 
-      _cm->enter_first_sync_barrier(_task_id);
+      _cm->enter_first_sync_barrier(_worker_id);
       // When we exit this sync barrier we know that all tasks have
       // stopped doing marking work. So, it's now safe to
       // re-initialise our data structures. At the end of this method,
@@ -4215,39 +4215,39 @@
       clear_region_fields();
 
       // ...and enter the second barrier.
-      _cm->enter_second_sync_barrier(_task_id);
+      _cm->enter_second_sync_barrier(_worker_id);
       // At this point everything has bee re-initialised and we're
       // ready to restart.
     }
 
     if (_cm->verbose_low()) {
-      gclog_or_tty->print_cr("[%d] <<<<<<<<<< ABORTING, target = %1.2lfms, "
+      gclog_or_tty->print_cr("[%u] <<<<<<<<<< ABORTING, target = %1.2lfms, "
                              "elapsed = %1.2lfms <<<<<<<<<<",
-                             _task_id, _time_target_ms, elapsed_time_ms);
+                             _worker_id, _time_target_ms, elapsed_time_ms);
       if (_cm->has_aborted()) {
-        gclog_or_tty->print_cr("[%d] ========== MARKING ABORTED ==========",
-                               _task_id);
+        gclog_or_tty->print_cr("[%u] ========== MARKING ABORTED ==========",
+                               _worker_id);
       }
     }
   } else {
     if (_cm->verbose_low()) {
-      gclog_or_tty->print_cr("[%d] <<<<<<<<<< FINISHED, target = %1.2lfms, "
+      gclog_or_tty->print_cr("[%u] <<<<<<<<<< FINISHED, target = %1.2lfms, "
                              "elapsed = %1.2lfms <<<<<<<<<<",
-                             _task_id, _time_target_ms, elapsed_time_ms);
+                             _worker_id, _time_target_ms, elapsed_time_ms);
     }
   }
 
   _claimed = false;
 }
 
-CMTask::CMTask(int task_id,
+CMTask::CMTask(uint worker_id,
                ConcurrentMark* cm,
                size_t* marked_bytes,
                BitMap* card_bm,
                CMTaskQueue* task_queue,
                CMTaskQueueSet* task_queues)
   : _g1h(G1CollectedHeap::heap()),
-    _task_id(task_id), _cm(cm),
+    _worker_id(worker_id), _cm(cm),
     _claimed(false),
     _nextMarkBitMap(NULL), _hash_seed(17),
     _task_queue(task_queue),
--- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.hpp	Mon Nov 05 10:30:49 2012 -0500
+++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.hpp	Mon Nov 05 10:33:18 2012 -0500
@@ -399,9 +399,9 @@
                                     // last claimed region
 
   // marking tasks
-  uint                    _max_task_num; // maximum task number
+  uint                    _max_worker_id;// maximum worker id
   uint                    _active_tasks; // task num currently active
-  CMTask**                _tasks;        // task queue array (max_task_num len)
+  CMTask**                _tasks;        // task queue array (max_worker_id len)
   CMTaskQueueSet*         _task_queues;  // task queue set
   ParallelTaskTerminator  _terminator;   // for termination
 
@@ -492,10 +492,10 @@
   ParallelTaskTerminator* terminator()    { return &_terminator; }
 
   // It claims the next available region to be scanned by a marking
-  // task. It might return NULL if the next region is empty or we have
-  // run out of regions. In the latter case, out_of_regions()
+  // task/thread. It might return NULL if the next region is empty or
+  // we have run out of regions. In the latter case, out_of_regions()
   // determines whether we've really run out of regions or the task
-  // should call claim_region() again.  This might seem a bit
+  // should call claim_region() again. This might seem a bit
   // awkward. Originally, the code was written so that claim_region()
   // either successfully returned with a non-empty region or there
   // were no more regions to be claimed. The problem with this was
@@ -505,7 +505,7 @@
   // method. So, this way, each task will spend very little time in
   // claim_region() and is allowed to call the regular clock method
   // frequently.
-  HeapRegion* claim_region(int task);
+  HeapRegion* claim_region(uint worker_id);
 
   // It determines whether we've run out of regions to scan.
   bool        out_of_regions() { return _finger == _heap_end; }
@@ -537,8 +537,8 @@
   bool has_aborted()             { return _has_aborted; }
 
   // Methods to enter the two overflow sync barriers
-  void enter_first_sync_barrier(int task_num);
-  void enter_second_sync_barrier(int task_num);
+  void enter_first_sync_barrier(uint worker_id);
+  void enter_second_sync_barrier(uint worker_id);
 
   ForceOverflowSettings* force_overflow_conc() {
     return &_force_overflow_conc;
@@ -626,14 +626,14 @@
 
   double all_task_accum_vtime() {
     double ret = 0.0;
-    for (int i = 0; i < (int)_max_task_num; ++i)
+    for (uint i = 0; i < _max_worker_id; ++i)
       ret += _accum_task_vtime[i];
     return ret;
   }
 
   // Attempts to steal an object from the task queues of other tasks
-  bool try_stealing(int task_num, int* hash_seed, oop& obj) {
-    return _task_queues->steal(task_num, hash_seed, obj);
+  bool try_stealing(uint worker_id, int* hash_seed, oop& obj) {
+    return _task_queues->steal(worker_id, hash_seed, obj);
   }
 
   ConcurrentMark(ReservedSpace rs, uint max_regions);
@@ -823,7 +823,7 @@
 
   // Returns the card bitmap for a given task or worker id.
   BitMap* count_card_bitmap_for(uint worker_id) {
-    assert(0 <= worker_id && worker_id < _max_task_num, "oob");
+    assert(0 <= worker_id && worker_id < _max_worker_id, "oob");
     assert(_count_card_bitmaps != NULL, "uninitialized");
     BitMap* task_card_bm = &_count_card_bitmaps[worker_id];
     assert(task_card_bm->size() == _card_bm.size(), "size mismatch");
@@ -833,7 +833,7 @@
   // Returns the array containing the marked bytes for each region,
   // for the given worker or task id.
   size_t* count_marked_bytes_array_for(uint worker_id) {
-    assert(0 <= worker_id && worker_id < _max_task_num, "oob");
+    assert(0 <= worker_id && worker_id < _max_worker_id, "oob");
     assert(_count_marked_bytes != NULL, "uninitialized");
     size_t* marked_bytes_array = _count_marked_bytes[worker_id];
     assert(marked_bytes_array != NULL, "uninitialized");
@@ -939,7 +939,7 @@
     global_stack_transfer_size    = 16
   };
 
-  int                         _task_id;
+  uint                        _worker_id;
   G1CollectedHeap*            _g1h;
   ConcurrentMark*             _cm;
   CMBitMap*                   _nextMarkBitMap;
@@ -1115,8 +1115,8 @@
     _elapsed_time_ms = os::elapsedTime() * 1000.0 - _elapsed_time_ms;
   }
 
-  // returns the task ID
-  int task_id() { return _task_id; }
+  // returns the worker ID associated with this task.
+  uint worker_id() { return _worker_id; }
 
   // From TerminatorTerminator. It determines whether this task should
   // exit the termination protocol after it's entered it.
@@ -1170,7 +1170,7 @@
     _finger = new_finger;
   }
 
-  CMTask(int task_num, ConcurrentMark *cm,
+  CMTask(uint worker_id, ConcurrentMark *cm,
          size_t* marked_bytes, BitMap* card_bm,
          CMTaskQueue* task_queue, CMTaskQueueSet* task_queues);
 
--- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.inline.hpp	Mon Nov 05 10:30:49 2012 -0500
+++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.inline.hpp	Mon Nov 05 10:33:18 2012 -0500
@@ -279,7 +279,7 @@
   assert(_nextMarkBitMap->isMarked(objAddr), "invariant");
 
   if (_cm->verbose_high()) {
-    gclog_or_tty->print_cr("[%d] pushing "PTR_FORMAT, _task_id, (void*) obj);
+    gclog_or_tty->print_cr("[%u] pushing "PTR_FORMAT, _worker_id, (void*) obj);
   }
 
   if (!_task_queue->push(obj)) {
@@ -287,9 +287,9 @@
     // to the global stack.
 
     if (_cm->verbose_medium()) {
-      gclog_or_tty->print_cr("[%d] task queue overflow, "
+      gclog_or_tty->print_cr("[%u] task queue overflow, "
                              "moving entries to the global stack",
-                             _task_id);
+                             _worker_id);
     }
     move_entries_to_global_stack();
 
@@ -318,8 +318,8 @@
 
 inline void CMTask::deal_with_reference(oop obj) {
   if (_cm->verbose_high()) {
-    gclog_or_tty->print_cr("[%d] we're dealing with reference = "PTR_FORMAT,
-                           _task_id, (void*) obj);
+    gclog_or_tty->print_cr("[%u] we're dealing with reference = "PTR_FORMAT,
+                           _worker_id, (void*) obj);
   }
 
   ++_refs_reached;
@@ -335,8 +335,8 @@
       HeapRegion* hr = _g1h->heap_region_containing_raw(obj);
       if (!hr->obj_allocated_since_next_marking(obj)) {
         if (_cm->verbose_high()) {
-          gclog_or_tty->print_cr("[%d] "PTR_FORMAT" is not considered marked",
-                                 _task_id, (void*) obj);
+          gclog_or_tty->print_cr("[%u] "PTR_FORMAT" is not considered marked",
+                                 _worker_id, (void*) obj);
         }
 
         // we need to mark it first
@@ -350,8 +350,8 @@
 
           if (_finger != NULL && objAddr < _finger) {
             if (_cm->verbose_high()) {
-              gclog_or_tty->print_cr("[%d] below the local finger ("PTR_FORMAT"), "
-                                     "pushing it", _task_id, _finger);
+              gclog_or_tty->print_cr("[%u] below the local finger ("PTR_FORMAT"), "
+                                     "pushing it", _worker_id, _finger);
             }
             push(obj);
           } else if (_curr_region != NULL && objAddr < _region_limit) {
@@ -367,9 +367,9 @@
             // correctness problems.
 
             if (_cm->verbose_high()) {
-              gclog_or_tty->print_cr("[%d] below the global finger "
+              gclog_or_tty->print_cr("[%u] below the global finger "
                                      "("PTR_FORMAT"), pushing it",
-                                     _task_id, global_finger);
+                                     _worker_id, global_finger);
             }
             push(obj);
           } else {
@@ -382,9 +382,9 @@
             // see long comment above
 
             if (_cm->verbose_high()) {
-              gclog_or_tty->print_cr("[%d] below the global finger "
+              gclog_or_tty->print_cr("[%u] below the global finger "
                                      "("PTR_FORMAT"), pushing it",
-                                     _task_id, global_finger);
+                                     _worker_id, global_finger);
             }
             push(obj);
           }
--- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp	Mon Nov 05 10:30:49 2012 -0500
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp	Mon Nov 05 10:33:18 2012 -0500
@@ -3388,6 +3388,7 @@
   st->print("%u survivors (" SIZE_FORMAT "K)", survivor_regions,
             (size_t) survivor_regions * HeapRegion::GrainBytes / K);
   st->cr();
+  MetaspaceAux::print_on(st);
 }
 
 void G1CollectedHeap::print_extended_on(outputStream* st) const {
--- a/hotspot/src/share/vm/gc_implementation/g1/g1OopClosures.inline.hpp	Mon Nov 05 10:30:49 2012 -0500
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1OopClosures.inline.hpp	Mon Nov 05 10:33:18 2012 -0500
@@ -111,9 +111,9 @@
 
   oop obj = oopDesc::load_decode_heap_oop(p);
   if (_cm->verbose_high()) {
-    gclog_or_tty->print_cr("[%d] we're looking at location "
+    gclog_or_tty->print_cr("[%u] we're looking at location "
                            "*"PTR_FORMAT" = "PTR_FORMAT,
-                           _task->task_id(), p, (void*) obj);
+                           _task->worker_id(), p, (void*) obj);
   }
   _task->deal_with_reference(obj);
 }
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp	Mon Nov 05 10:30:49 2012 -0500
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp	Mon Nov 05 10:33:18 2012 -0500
@@ -139,7 +139,7 @@
   if (VerifyBeforeGC && heap->total_collections() >= VerifyGCStartAt) {
     HandleMark hm;  // Discard invalid handles created during verification
     gclog_or_tty->print(" VerifyBeforeGC:");
-    Universe::verify(true);
+    Universe::verify();
   }
 
   // Verify object start arrays
@@ -341,7 +341,7 @@
   if (VerifyAfterGC && heap->total_collections() >= VerifyGCStartAt) {
     HandleMark hm;  // Discard invalid handles created during verification
     gclog_or_tty->print(" VerifyAfterGC:");
-    Universe::verify(false);
+    Universe::verify();
   }
 
   // Re-verify object start arrays
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp	Mon Nov 05 10:30:49 2012 -0500
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp	Mon Nov 05 10:33:18 2012 -0500
@@ -983,7 +983,7 @@
   if (VerifyBeforeGC && heap->total_collections() >= VerifyGCStartAt) {
     HandleMark hm;  // Discard invalid handles created during verification
     gclog_or_tty->print(" VerifyBeforeGC:");
-    Universe::verify(true);
+    Universe::verify();
   }
 
   // Verify object start arrays
@@ -2184,7 +2184,7 @@
   if (VerifyAfterGC && heap->total_collections() >= VerifyGCStartAt) {
     HandleMark hm;  // Discard invalid handles created during verification
     gclog_or_tty->print(" VerifyAfterGC:");
-    Universe::verify(false);
+    Universe::verify();
   }
 
   // Re-verify object start arrays
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp	Mon Nov 05 10:30:49 2012 -0500
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp	Mon Nov 05 10:33:18 2012 -0500
@@ -315,7 +315,7 @@
   if (VerifyBeforeGC && heap->total_collections() >= VerifyGCStartAt) {
     HandleMark hm;  // Discard invalid handles created during verification
     gclog_or_tty->print(" VerifyBeforeGC:");
-    Universe::verify(true);
+    Universe::verify();
   }
 
   {
@@ -639,7 +639,7 @@
   if (VerifyAfterGC && heap->total_collections() >= VerifyGCStartAt) {
     HandleMark hm;  // Discard invalid handles created during verification
     gclog_or_tty->print(" VerifyAfterGC:");
-    Universe::verify(false);
+    Universe::verify();
   }
 
   heap->print_heap_after_gc();
--- a/hotspot/src/share/vm/memory/allocation.cpp	Mon Nov 05 10:30:49 2012 -0500
+++ b/hotspot/src/share/vm/memory/allocation.cpp	Mon Nov 05 10:33:18 2012 -0500
@@ -92,6 +92,26 @@
   return res;
 }
 
+void* ResourceObj::operator new(size_t size, const std::nothrow_t&  nothrow_constant,
+    allocation_type type, MEMFLAGS flags) {
+  //should only call this with std::nothrow, use other operator new() otherwise
+  address res;
+  switch (type) {
+   case C_HEAP:
+    res = (address)AllocateHeap(size, flags, CALLER_PC, AllocFailStrategy::RETURN_NULL);
+    DEBUG_ONLY(if (res!= NULL) set_allocation_type(res, C_HEAP);)
+    break;
+   case RESOURCE_AREA:
+    // new(size) sets allocation type RESOURCE_AREA.
+    res = (address)operator new(size, std::nothrow);
+    break;
+   default:
+    ShouldNotReachHere();
+  }
+  return res;
+}
+
+
 void ResourceObj::operator delete(void* p) {
   assert(((ResourceObj *)p)->allocated_on_C_heap(),
          "delete only allowed for C_HEAP objects");
@@ -506,7 +526,7 @@
 }
 
 // Grow a new Chunk
-void* Arena::grow( size_t x ) {
+void* Arena::grow(size_t x, AllocFailType alloc_failmode) {
   // Get minimal required size.  Either real big, or even bigger for giant objs
   size_t len = MAX2(x, (size_t) Chunk::size);
 
@@ -514,7 +534,10 @@
   _chunk = new (len) Chunk(len);
 
   if (_chunk == NULL) {
-    signal_out_of_memory(len * Chunk::aligned_overhead_size(), "Arena::grow");
+    if (alloc_failmode == AllocFailStrategy::EXIT_OOM) {
+      signal_out_of_memory(len * Chunk::aligned_overhead_size(), "Arena::grow");
+    }
+    return NULL;
   }
   if (k) k->set_next(_chunk);   // Append new chunk to end of linked list
   else _first = _chunk;
@@ -529,13 +552,16 @@
 
 
 // Reallocate storage in Arena.
-void *Arena::Arealloc(void* old_ptr, size_t old_size, size_t new_size) {
+void *Arena::Arealloc(void* old_ptr, size_t old_size, size_t new_size, AllocFailType alloc_failmode) {
   assert(new_size >= 0, "bad size");
   if (new_size == 0) return NULL;
 #ifdef ASSERT
   if (UseMallocOnly) {
     // always allocate a new object  (otherwise we'll free this one twice)
-    char* copy = (char*)Amalloc(new_size);
+    char* copy = (char*)Amalloc(new_size, alloc_failmode);
+    if (copy == NULL) {
+      return NULL;
+    }
     size_t n = MIN2(old_size, new_size);
     if (n > 0) memcpy(copy, old_ptr, n);
     Afree(old_ptr,old_size);    // Mostly done to keep stats accurate
@@ -561,7 +587,10 @@
   }
 
   // Oops, got to relocate guts
-  void *new_ptr = Amalloc(new_size);
+  void *new_ptr = Amalloc(new_size, alloc_failmode);
+  if (new_ptr == NULL) {
+    return NULL;
+  }
   memcpy( new_ptr, c_old, old_size );
   Afree(c_old,old_size);        // Mostly done to keep stats accurate
   return new_ptr;
--- a/hotspot/src/share/vm/memory/allocation.hpp	Mon Nov 05 10:30:49 2012 -0500
+++ b/hotspot/src/share/vm/memory/allocation.hpp	Mon Nov 05 10:33:18 2012 -0500
@@ -53,6 +53,12 @@
   #endif
 #endif
 
+class AllocFailStrategy {
+public:
+  enum AllocFailEnum { EXIT_OOM, RETURN_NULL };
+};
+typedef AllocFailStrategy::AllocFailEnum AllocFailType;
+
 // All classes in the virtual machine must be subclassed
 // by one of the following allocation classes:
 //
@@ -315,7 +321,8 @@
   Chunk *_first;                // First chunk
   Chunk *_chunk;                // current chunk
   char *_hwm, *_max;            // High water mark and max in current chunk
-  void* grow(size_t x);         // Get a new Chunk of at least size x
+  // Get a new Chunk of at least size x
+  void* grow(size_t x, AllocFailType alloc_failmode = AllocFailStrategy::EXIT_OOM);
   size_t _size_in_bytes;        // Size of arena (used for native memory tracking)
 
   NOT_PRODUCT(static julong _bytes_allocated;) // total #bytes allocated since start
@@ -350,14 +357,14 @@
   void  operator delete(void* p);
 
   // Fast allocate in the arena.  Common case is: pointer test + increment.
-  void* Amalloc(size_t x) {
+  void* Amalloc(size_t x, AllocFailType alloc_failmode = AllocFailStrategy::EXIT_OOM) {
     assert(is_power_of_2(ARENA_AMALLOC_ALIGNMENT) , "should be a power of 2");
     x = ARENA_ALIGN(x);
     debug_only(if (UseMallocOnly) return malloc(x);)
     check_for_overflow(x, "Arena::Amalloc");
     NOT_PRODUCT(inc_bytes_allocated(x);)
     if (_hwm + x > _max) {
-      return grow(x);
+      return grow(x, alloc_failmode);
     } else {
       char *old = _hwm;
       _hwm += x;
@@ -365,13 +372,13 @@
     }
   }
   // Further assume size is padded out to words
-  void *Amalloc_4(size_t x) {
+  void *Amalloc_4(size_t x, AllocFailType alloc_failmode = AllocFailStrategy::EXIT_OOM) {
     assert( (x&(sizeof(char*)-1)) == 0, "misaligned size" );
     debug_only(if (UseMallocOnly) return malloc(x);)
     check_for_overflow(x, "Arena::Amalloc_4");
     NOT_PRODUCT(inc_bytes_allocated(x);)
     if (_hwm + x > _max) {
-      return grow(x);
+      return grow(x, alloc_failmode);
     } else {
       char *old = _hwm;
       _hwm += x;
@@ -381,7 +388,7 @@
 
   // Allocate with 'double' alignment. It is 8 bytes on sparc.
   // In other cases Amalloc_D() should be the same as Amalloc_4().
-  void* Amalloc_D(size_t x) {
+  void* Amalloc_D(size_t x, AllocFailType alloc_failmode = AllocFailStrategy::EXIT_OOM) {
     assert( (x&(sizeof(char*)-1)) == 0, "misaligned size" );
     debug_only(if (UseMallocOnly) return malloc(x);)
 #if defined(SPARC) && !defined(_LP64)
@@ -392,7 +399,7 @@
     check_for_overflow(x, "Arena::Amalloc_D");
     NOT_PRODUCT(inc_bytes_allocated(x);)
     if (_hwm + x > _max) {
-      return grow(x); // grow() returns a result aligned >= 8 bytes.
+      return grow(x, alloc_failmode); // grow() returns a result aligned >= 8 bytes.
     } else {
       char *old = _hwm;
       _hwm += x;
@@ -412,7 +419,8 @@
     if (((char*)ptr) + size == _hwm) _hwm = (char*)ptr;
   }
 
-  void *Arealloc( void *old_ptr, size_t old_size, size_t new_size );
+  void *Arealloc( void *old_ptr, size_t old_size, size_t new_size,
+      AllocFailType alloc_failmode = AllocFailStrategy::EXIT_OOM);
 
   // Move contents of this arena into an empty arena
   Arena *move_contents(Arena *empty_arena);
@@ -458,9 +466,12 @@
 
 
 //%note allocation_1
-extern char* resource_allocate_bytes(size_t size);
-extern char* resource_allocate_bytes(Thread* thread, size_t size);
-extern char* resource_reallocate_bytes( char *old, size_t old_size, size_t new_size);
+extern char* resource_allocate_bytes(size_t size,
+    AllocFailType alloc_failmode = AllocFailStrategy::EXIT_OOM);
+extern char* resource_allocate_bytes(Thread* thread, size_t size,
+    AllocFailType alloc_failmode = AllocFailStrategy::EXIT_OOM);
+extern char* resource_reallocate_bytes( char *old, size_t old_size, size_t new_size,
+    AllocFailType alloc_failmode = AllocFailStrategy::EXIT_OOM);
 extern void resource_free_bytes( char *old, size_t size );
 
 //----------------------------------------------------------------------
@@ -496,6 +507,8 @@
 
  public:
   void* operator new(size_t size, allocation_type type, MEMFLAGS flags);
+  void* operator new(size_t size, const std::nothrow_t&  nothrow_constant,
+      allocation_type type, MEMFLAGS flags);
   void* operator new(size_t size, Arena *arena) {
       address res = (address)arena->Amalloc(size);
       DEBUG_ONLY(set_allocation_type(res, ARENA);)
@@ -506,6 +519,13 @@
       DEBUG_ONLY(set_allocation_type(res, RESOURCE_AREA);)
       return res;
   }
+
+  void* operator new(size_t size, const std::nothrow_t& nothrow_constant) {
+      address res = (address)resource_allocate_bytes(size, AllocFailStrategy::RETURN_NULL);
+      DEBUG_ONLY(if (res != NULL) set_allocation_type(res, RESOURCE_AREA);)
+      return res;
+  }
+
   void  operator delete(void* p);
 };
 
--- a/hotspot/src/share/vm/memory/allocation.inline.hpp	Mon Nov 05 10:30:49 2012 -0500
+++ b/hotspot/src/share/vm/memory/allocation.inline.hpp	Mon Nov 05 10:33:18 2012 -0500
@@ -48,7 +48,8 @@
 #endif
 
 // allocate using malloc; will fail if no memory available
-inline char* AllocateHeap(size_t size, MEMFLAGS flags, address pc = 0) {
+inline char* AllocateHeap(size_t size, MEMFLAGS flags, address pc = 0,
+    AllocFailType alloc_failmode = AllocFailStrategy::EXIT_OOM) {
   if (pc == 0) {
     pc = CURRENT_PC;
   }
@@ -56,16 +57,17 @@
   #ifdef ASSERT
   if (PrintMallocFree) trace_heap_malloc(size, "AllocateHeap", p);
   #endif
-  if (p == NULL) vm_exit_out_of_memory(size, "AllocateHeap");
+  if (p == NULL && alloc_failmode == AllocFailStrategy::EXIT_OOM) vm_exit_out_of_memory(size, "AllocateHeap");
   return p;
 }
 
-inline char* ReallocateHeap(char *old, size_t size, MEMFLAGS flags) {
+inline char* ReallocateHeap(char *old, size_t size, MEMFLAGS flags,
+    AllocFailType alloc_failmode = AllocFailStrategy::EXIT_OOM) {
   char* p = (char*) os::realloc(old, size, flags, CURRENT_PC);
   #ifdef ASSERT
   if (PrintMallocFree) trace_heap_malloc(size, "ReallocateHeap", p);
   #endif
-  if (p == NULL) vm_exit_out_of_memory(size, "ReallocateHeap");
+  if (p == NULL && alloc_failmode == AllocFailStrategy::EXIT_OOM) vm_exit_out_of_memory(size, "ReallocateHeap");
   return p;
 }
 
@@ -91,11 +93,13 @@
 template <MEMFLAGS F> void* CHeapObj<F>::operator new (size_t size,
   const std::nothrow_t&  nothrow_constant, address caller_pc) {
 #ifdef ASSERT
-    void* p = os::malloc(size, F, (caller_pc != 0 ? caller_pc : CALLER_PC));
+  void* p = (void*)AllocateHeap(size, F, (caller_pc != 0 ? caller_pc : CALLER_PC),
+      AllocFailStrategy::RETURN_NULL);
     if (PrintMallocFree) trace_heap_malloc(size, "CHeapObj-new", p);
     return p;
 #else
-    return os::malloc(size, F, (caller_pc != 0 ? caller_pc : CALLER_PC));
+  return (void *) AllocateHeap(size, F, (caller_pc != 0 ? caller_pc : CALLER_PC),
+      AllocFailStrategy::RETURN_NULL);
 #endif
 }
 
--- a/hotspot/src/share/vm/memory/genCollectedHeap.cpp	Mon Nov 05 10:30:49 2012 -0500
+++ b/hotspot/src/share/vm/memory/genCollectedHeap.cpp	Mon Nov 05 10:33:18 2012 -0500
@@ -447,7 +447,7 @@
             prepared_for_verification = true;
           }
           gclog_or_tty->print(" VerifyBeforeGC:");
-          Universe::verify(true);
+          Universe::verify();
         }
         COMPILER2_PRESENT(DerivedPointerTable::clear());
 
@@ -519,7 +519,7 @@
             total_collections() >= VerifyGCStartAt) {
           HandleMark hm;  // Discard invalid handles created during verification
           gclog_or_tty->print(" VerifyAfterGC:");
-          Universe::verify(false);
+          Universe::verify();
         }
 
         if (PrintGCDetails) {
--- a/hotspot/src/share/vm/memory/resourceArea.cpp	Mon Nov 05 10:30:49 2012 -0500
+++ b/hotspot/src/share/vm/memory/resourceArea.cpp	Mon Nov 05 10:33:18 2012 -0500
@@ -45,15 +45,15 @@
 // The following routines are declared in allocation.hpp and used everywhere:
 
 // Allocation in thread-local resource area
-extern char* resource_allocate_bytes(size_t size) {
-  return Thread::current()->resource_area()->allocate_bytes(size);
+extern char* resource_allocate_bytes(size_t size, AllocFailType alloc_failmode) {
+  return Thread::current()->resource_area()->allocate_bytes(size, alloc_failmode);
 }
-extern char* resource_allocate_bytes(Thread* thread, size_t size) {
-  return thread->resource_area()->allocate_bytes(size);
+extern char* resource_allocate_bytes(Thread* thread, size_t size, AllocFailType alloc_failmode) {
+  return thread->resource_area()->allocate_bytes(size, alloc_failmode);
 }
 
-extern char* resource_reallocate_bytes( char *old, size_t old_size, size_t new_size){
-  return (char*)Thread::current()->resource_area()->Arealloc(old, old_size, new_size);
+extern char* resource_reallocate_bytes( char *old, size_t old_size, size_t new_size, AllocFailType alloc_failmode){
+  return (char*)Thread::current()->resource_area()->Arealloc(old, old_size, new_size, alloc_failmode);
 }
 
 extern void resource_free_bytes( char *old, size_t size ) {
--- a/hotspot/src/share/vm/memory/resourceArea.hpp	Mon Nov 05 10:30:49 2012 -0500
+++ b/hotspot/src/share/vm/memory/resourceArea.hpp	Mon Nov 05 10:33:18 2012 -0500
@@ -68,7 +68,7 @@
     debug_only(_nesting = 0;);
   }
 
-  char* allocate_bytes(size_t size) {
+  char* allocate_bytes(size_t size, AllocFailType alloc_failmode = AllocFailStrategy::EXIT_OOM) {
 #ifdef ASSERT
     if (_nesting < 1 && !_warned++)
       fatal("memory leak: allocating without ResourceMark");
@@ -78,7 +78,7 @@
       return (*save = (char*)os::malloc(size, mtThread));
     }
 #endif
-    return (char*)Amalloc(size);
+    return (char*)Amalloc(size, alloc_failmode);
   }
 
   debug_only(int nesting() const { return _nesting; });
--- a/hotspot/src/share/vm/memory/universe.cpp	Mon Nov 05 10:30:49 2012 -0500
+++ b/hotspot/src/share/vm/memory/universe.cpp	Mon Nov 05 10:33:18 2012 -0500
@@ -1268,10 +1268,6 @@
 }
 
 void Universe::verify(bool silent, VerifyOption option) {
-  if (SharedSkipVerify) {
-    return;
-  }
-
   // The use of _verify_in_progress is a temporary work around for
   // 6320749.  Don't bother with a creating a class to set and clear
   // it since it is only used in this method and the control flow is
--- a/hotspot/src/share/vm/memory/universe.hpp	Mon Nov 05 10:30:49 2012 -0500
+++ b/hotspot/src/share/vm/memory/universe.hpp	Mon Nov 05 10:33:18 2012 -0500
@@ -435,8 +435,14 @@
 
   // Debugging
   static bool verify_in_progress() { return _verify_in_progress; }
-  static void verify(bool silent = false,
-                     VerifyOption option = VerifyOption_Default );
+  static void verify(bool silent, VerifyOption option);
+  static void verify(bool silent) {
+    verify(silent, VerifyOption_Default /* option */);
+  }
+  static void verify() {
+    verify(false /* silent */);
+  }
+
   static int  verify_count()       { return _verify_count; }
   // The default behavior is to call print_on() on gclog_or_tty.
   static void print();
--- a/hotspot/src/share/vm/oops/klass.cpp	Mon Nov 05 10:30:49 2012 -0500
+++ b/hotspot/src/share/vm/oops/klass.cpp	Mon Nov 05 10:33:18 2012 -0500
@@ -356,12 +356,11 @@
 }
 
 void Klass::append_to_sibling_list() {
-  debug_only(if (!SharedSkipVerify) verify();)
+  debug_only(verify();)
   // add ourselves to superklass' subklass list
   InstanceKlass* super = superklass();
   if (super == NULL) return;        // special case: class Object
-  assert(SharedSkipVerify ||
-         (!super->is_interface()    // interfaces cannot be supers
+  assert((!super->is_interface()    // interfaces cannot be supers
           && (super->superklass() == NULL || !is_interface())),
          "an interface can only be a subklass of Object");
   Klass* prev_first_subklass = super->subklass_oop();
@@ -371,7 +370,7 @@
   }
   // make ourselves the superklass' first subklass
   super->set_subklass(this);
-  debug_only(if (!SharedSkipVerify) verify();)
+  debug_only(verify();)
 }
 
 void Klass::remove_from_sibling_list() {
--- a/hotspot/src/share/vm/prims/jvmtiTagMap.cpp	Mon Nov 05 10:30:49 2012 -0500
+++ b/hotspot/src/share/vm/prims/jvmtiTagMap.cpp	Mon Nov 05 10:33:18 2012 -0500
@@ -1135,7 +1135,7 @@
 
     // get offset and field value
     int offset = field->field_offset();
-    address addr = (address)klass + offset;
+    address addr = (address)klass->java_mirror() + offset;
     jvalue value;
     copy_to_jvalue(&value, addr, value_type);
 
--- a/hotspot/src/share/vm/runtime/globals.hpp	Mon Nov 05 10:30:49 2012 -0500
+++ b/hotspot/src/share/vm/runtime/globals.hpp	Mon Nov 05 10:33:18 2012 -0500
@@ -3539,10 +3539,6 @@
   product(uintx, SharedDummyBlockSize, 0,                                   \
           "Size of dummy block used to shift heap addresses (in bytes)")    \
                                                                             \
-  diagnostic(bool, SharedSkipVerify, false,                                 \
-          "Skip assert() and verify() which page-in unwanted shared "       \
-          "objects. ")                                                      \
-                                                                            \
   diagnostic(bool, EnableInvokeDynamic, true,                               \
           "support JSR 292 (method handles, invokedynamic, "                \
           "anonymous classes")                                              \
--- a/hotspot/src/share/vm/runtime/handles.cpp	Mon Nov 05 10:30:49 2012 -0500
+++ b/hotspot/src/share/vm/runtime/handles.cpp	Mon Nov 05 10:33:18 2012 -0500
@@ -48,7 +48,7 @@
 oop* HandleArea::allocate_handle(oop obj) {
   assert(_handle_mark_nesting > 1, "memory leak: allocating handle outside HandleMark");
   assert(_no_handle_mark_nesting == 0, "allocating handle inside NoHandleMark");
-  assert(SharedSkipVerify || obj->is_oop(), "sanity check");
+  assert(obj->is_oop(), "sanity check");
   return real_allocate_handle(obj);
 }
 
--- a/hotspot/src/share/vm/runtime/handles.hpp	Mon Nov 05 10:30:49 2012 -0500
+++ b/hotspot/src/share/vm/runtime/handles.hpp	Mon Nov 05 10:33:18 2012 -0500
@@ -110,11 +110,11 @@
     /* Constructors */                           \
     type##Handle ()                              : Handle()                 {} \
     type##Handle (type##Oop obj) : Handle((oop)obj) {                         \
-      assert(SharedSkipVerify || is_null() || ((oop)obj)->is_a(),             \
+      assert(is_null() || ((oop)obj)->is_a(),                                 \
              "illegal type");                                                 \
     }                                                                         \
     type##Handle (Thread* thread, type##Oop obj) : Handle(thread, (oop)obj) { \
-      assert(SharedSkipVerify || is_null() || ((oop)obj)->is_a(), "illegal type");  \
+      assert(is_null() || ((oop)obj)->is_a(), "illegal type");                \
     }                                                                         \
     \
     /* Operators for ease of use */              \
@@ -201,11 +201,11 @@
   /* Constructors */
   instanceKlassHandle () : KlassHandle() {}
   instanceKlassHandle (const Klass* k) : KlassHandle(k) {
-    assert(SharedSkipVerify || k == NULL || k->oop_is_instance(),
+    assert(k == NULL || k->oop_is_instance(),
            "illegal type");
   }
   instanceKlassHandle (Thread* thread, const Klass* k) : KlassHandle(thread, k) {
-    assert(SharedSkipVerify || k == NULL || k->oop_is_instance(),
+    assert(k == NULL || k->oop_is_instance(),
            "illegal type");
   }
   /* Access to klass part */
--- a/hotspot/src/share/vm/runtime/thread.cpp	Mon Nov 05 10:30:49 2012 -0500
+++ b/hotspot/src/share/vm/runtime/thread.cpp	Mon Nov 05 10:33:18 2012 -0500
@@ -177,7 +177,8 @@
     const int alignment = markOopDesc::biased_lock_alignment;
     size_t aligned_size = size + (alignment - sizeof(intptr_t));
     void* real_malloc_addr = throw_excpt? AllocateHeap(aligned_size, flags, CURRENT_PC)
-                                          : os::malloc(aligned_size, flags, CURRENT_PC);
+                                          : AllocateHeap(aligned_size, flags, CURRENT_PC,
+                                              AllocFailStrategy::RETURN_NULL);
     void* aligned_addr     = (void*) align_size_up((intptr_t) real_malloc_addr, alignment);
     assert(((uintptr_t) aligned_addr + (uintptr_t) size) <=
            ((uintptr_t) real_malloc_addr + (uintptr_t) aligned_size),
@@ -191,7 +192,7 @@
     return aligned_addr;
   } else {
     return throw_excpt? AllocateHeap(size, flags, CURRENT_PC)
-                       : os::malloc(size, flags, CURRENT_PC);
+                       : AllocateHeap(size, flags, CURRENT_PC, AllocFailStrategy::RETURN_NULL);
   }
 }
 
--- a/hotspot/src/share/vm/runtime/thread.hpp	Mon Nov 05 10:30:49 2012 -0500
+++ b/hotspot/src/share/vm/runtime/thread.hpp	Mon Nov 05 10:33:18 2012 -0500
@@ -110,7 +110,7 @@
   void*       _real_malloc_address;
  public:
   void* operator new(size_t size) { return allocate(size, true); }
-  void* operator new(size_t size, std::nothrow_t& nothrow_constant) { return allocate(size, false); }
+  void* operator new(size_t size, const std::nothrow_t& nothrow_constant) { return allocate(size, false); }
   void  operator delete(void* p);
 
  protected:
--- a/hotspot/src/share/vm/utilities/debug.cpp	Mon Nov 05 10:30:49 2012 -0500
+++ b/hotspot/src/share/vm/utilities/debug.cpp	Mon Nov 05 10:33:18 2012 -0500
@@ -477,7 +477,7 @@
   }
   // Ensure Eden top is correct before verification
   Universe::heap()->prepare_for_verify();
-  Universe::verify(true);
+  Universe::verify();
   if (!safe) SafepointSynchronize::set_is_not_at_safepoint();
 }
 
--- a/hotspot/test/runtime/6929067/Test6929067.sh	Mon Nov 05 10:30:49 2012 -0500
+++ b/hotspot/test/runtime/6929067/Test6929067.sh	Mon Nov 05 10:33:18 2012 -0500
@@ -4,6 +4,7 @@
 ## @test Test6929067.sh
 ## @bug 6929067
 ## @summary Stack guard pages should be removed when thread is detached
+## @compile T.java
 ## @run shell Test6929067.sh
 ##
 
@@ -33,31 +34,97 @@
     ;;
 esac
 
-# Choose arch: i386 or amd64 (test is Linux-specific)
+${TESTJAVA}${FS}bin${FS}java ${TESTVMOPTS} -Xinternalversion > vm_version.out 2>&1 
+
+# Bitness:
 # Cannot simply look at TESTVMOPTS as -d64 is not
 # passed if there is only a 64-bit JVM available.
 
-${TESTJAVA}/bin/java ${TESTVMOPTS} -version 2>1 | grep "64-Bit" >/dev/null
+grep "64-Bit" vm_version.out > ${NULL}
 if [ "$?" = "0" ]
 then
-  ARCH=amd64
+  COMP_FLAG="-m64"
 else
-  ARCH=i386
+  COMP_FLAG="-m32"
 fi
 
-LD_LIBRARY_PATH=.:${TESTJAVA}/jre/lib/${ARCH}/client:/usr/openwin/lib:/usr/dt/lib:/usr/lib:$LD_LIBRARY_PATH
+
+# Architecture:
+# Translate uname output to JVM directory name, but permit testing
+# 32-bit x86 on an x64 platform.
+ARCH=`uname -m`
+case "$ARCH" in
+  x86_64)
+    if [ "$COMP_FLAG" = "-m32" ]; then
+      ARCH=i386
+    else 
+      ARCH=amd64
+    fi
+    ;;
+  ppc64)
+    if [ "$COMP_FLAG" = "-m32" ]; then
+      ARCH=ppc
+    else 
+      ARCH=ppc64
+    fi
+    ;;
+  sparc64)
+    if [ "$COMP_FLAG" = "-m32" ]; then
+      ARCH=sparc
+    else 
+      ARCH=sparc64
+    fi
+    ;;
+  arm*)
+    # 32-bit ARM machine: compiler may not recognise -m32
+    COMP_FLAG=""
+    ARCH=arm
+    ;;
+  aarch64)
+    # 64-bit arm machine, could be testing 32 or 64-bit:
+    if [ "$COMP_FLAG" = "-m32" ]; then
+      ARCH=arm
+    else 
+      ARCH=aarch64
+    fi
+    ;;
+  i586)
+    ARCH=i386
+    ;;
+  i686)
+    ARCH=i386
+    ;;
+  # Assuming other ARCH values need no translation
+esac
+
+
+# VM type: need to know server or client
+VMTYPE=client
+grep Server vm_version.out > ${NULL}
+if [ "$?" = "0" ]
+then
+  VMTYPE=server
+fi
+
+
+LD_LIBRARY_PATH=.:${TESTJAVA}/jre/lib/${ARCH}/${VMTYPE}:/usr/lib:$LD_LIBRARY_PATH
 export LD_LIBRARY_PATH
 
-THIS_DIR=`pwd`
+cp ${TESTSRC}${FS}invoke.c .
 
-cp ${TESTSRC}${FS}invoke.c ${THIS_DIR}
-cp ${TESTSRC}${FS}T.java ${THIS_DIR}
-
+# Copy the result of our @compile action:
+cp ${TESTCLASSES}${FS}T.class .
 
 ${TESTJAVA}${FS}bin${FS}java ${TESTVMOPTS} -fullversion
 
-${TESTJAVA}${FS}bin${FS}javac T.java
+echo "Architecture: ${ARCH}"
+echo "Compilation flag: ${COMP_FLAG}"
+echo "VM type: ${VMTYPE}"
 
-gcc -o invoke -I${TESTJAVA}/include -I${TESTJAVA}/include/linux invoke.c ${TESTJAVA}/jre/lib/${ARCH}/client/libjvm.so
+gcc -DLINUX ${COMP_FLAG} -o invoke \
+  -I${TESTJAVA}/include -I${TESTJAVA}/include/linux \
+  -L${TESTJAVA}/jre/lib/${ARCH}/${VMTYPE} \
+  -ljvm -lpthread invoke.c
+
 ./invoke
 exit $?
--- a/jaxp/.hgtags	Mon Nov 05 10:30:49 2012 -0500
+++ b/jaxp/.hgtags	Mon Nov 05 10:33:18 2012 -0500
@@ -182,3 +182,4 @@
 1cb19abb3f7b40bf233b349cd2f51f02d37a9f5b jdk8-b58
 af9e8b0f1900b631a8a0fcccff9f1514fe58c808 jdk8-b59
 2d1dff5310daaf226421a8c92823cb8afcf35f31 jdk8-b60
+6b1db0b41d2f6e2a7b3bdbc8a8db823b47752906 jdk8-b61
--- a/jaxws/.hgtags	Mon Nov 05 10:30:49 2012 -0500
+++ b/jaxws/.hgtags	Mon Nov 05 10:33:18 2012 -0500
@@ -182,3 +182,4 @@
 cac4c393706343df778a13dc6c84cad0f8c237c9 jdk8-b58
 ae107401be116f9e384d3a23192f543828e03da5 jdk8-b59
 5c5a65ad5291b7cefcdc308f627cf2b195cf2b69 jdk8-b60
+97e5e74e2a341d9142ce28043912a3c255e28e03 jdk8-b61
--- a/jdk/.hgtags	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/.hgtags	Mon Nov 05 10:33:18 2012 -0500
@@ -182,3 +182,5 @@
 d94613ac03d8de375ef60493e2bb76dbd30d875d jdk8-b58
 abad1f417bd3df4296631fc943cd3b7f5062c88a jdk8-b59
 cec8fa02f15634acd7d02d04b0b2d8c044cdbaaa jdk8-b60
+61ddb3fd000a09ab05bff1940b0ac211661e94cf jdk8-b61
+50b8b17449d200c66bfd68fb4f3a9197432c9e2b jdk8-b62
--- a/jdk/THIRD_PARTY_README	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/THIRD_PARTY_README	Mon Nov 05 10:33:18 2012 -0500
@@ -2,11 +2,11 @@
 -----------------------------
 
 %% This notice is provided with respect to ASM Bytecode Manipulation 
-Framework v3.1, which is included with JRE 7, JDK 7, and OpenJDK 7.
+Framework v4.0, which is included with JRE 8, and JDK 8.
 
 --- begin of LICENSE ---
 
-Copyright (c) 2000-2005 INRIA, France Telecom
+Copyright (c) 2000-2011 France TÚlÚcom
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
--- a/jdk/make/Makefile	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/Makefile	Mon Nov 05 10:33:18 2012 -0500
@@ -233,7 +233,7 @@
 
 all build:: sanity-all post-sanity-all
 
-SUBDIRS       = tools java javax sun com
+SUBDIRS       = tools java javax sun com jdk
 ifeq ($(PLATFORM), macosx)
   SUBDIRS += apple
 endif
--- a/jdk/make/com/oracle/security/ucrypto/Makefile	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/com/oracle/security/ucrypto/Makefile	Mon Nov 05 10:33:18 2012 -0500
@@ -198,9 +198,9 @@
   #
   # Build ucrypto.jar.
   #
-  $(UNSIGNED_DIR)/ucrypto.jar: build
+  $(UNSIGNED_DIR)/ucrypto.jar: build $(JCE_MANIFEST_FILE)
 	$(prep-target)
-	$(BOOT_JAR_CMD) cf $@ $(JAR_DIRS) \
+	$(BOOT_JAR_CMD) cmf $(JCE_MANIFEST_FILE) $@ $(JAR_DIRS) \
 	    $(BOOT_JAR_JFLAGS)
 	@$(java-vm-cleanup)
 
--- a/jdk/make/com/sun/java/pack/Makefile	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/com/sun/java/pack/Makefile	Mon Nov 05 10:33:18 2012 -0500
@@ -94,9 +94,9 @@
   LDOUTPUT = -Fe
 
   # JDK name required here
-  RC_FLAGS += /D "JDK_FNAME=$(PGRM).exe" \
-	/D "JDK_INTERNAL_NAME=$(PGRM)" \
-	/D "JDK_FTYPE=0x1L"
+  RC_FLAGS += -D "JDK_FNAME=$(PGRM).exe" \
+	-D "JDK_INTERNAL_NAME=$(PGRM)" \
+	-D "JDK_FTYPE=0x1L"
 
   RES = $(OBJDIR)/$(PGRM).res
 else
@@ -161,7 +161,7 @@
 	$(CP) mapfile-vers-unpack200 $(TEMPDIR)/mapfile-vers
 	$(LINKER)  $(LDDFLAGS) $(sort $(UNPACK_EXE_FILES_o)) $(RES) $(LIBCXX) $(LDOUTPUT)$(TEMPDIR)/unpack200$(EXE_SUFFIX)
 ifdef MT
-	$(MT) /manifest $(OBJDIR)/unpack200$(EXE_SUFFIX).manifest /outputresource:$(TEMPDIR)/unpack200$(EXE_SUFFIX);#1
+	$(MT) -manifest $(OBJDIR)/unpack200$(EXE_SUFFIX).manifest -outputresource:$(TEMPDIR)/unpack200$(EXE_SUFFIX);#1
 endif
 	$(CP) $(TEMPDIR)/unpack200$(EXE_SUFFIX) $(UNPACK_EXE)
 	@$(call binary_file_verification,$@)
--- a/jdk/make/common/Defs-windows.gmk	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/common/Defs-windows.gmk	Mon Nov 05 10:33:18 2012 -0500
@@ -78,7 +78,7 @@
   MS_RUNTIME_LIBRARIES = $(MSVCRNN_DLL)
 endif
 
-EXTRA_LFLAGS += /LIBPATH:$(DXSDK_LIB_PATH)
+EXTRA_LFLAGS += -LIBPATH:$(DXSDK_LIB_PATH)
 
 # Full Debug Symbols has been enabled on Windows since JDK1.4.1.
 # The Full Debug Symbols (FDS) default for VARIANT == OPT builds is
@@ -198,7 +198,7 @@
 #   -MTd       Use static debug version (better than -MDd, no runtime issues)
 #   -D_DEBUG   Change use of malloc/free/etc to use special debug ones (-MTd)
 #
-#      NOTE: We also will use /D _STATIC_CPPLIB  so we don't need msvcpnn.dll
+#      NOTE: We also will use -D _STATIC_CPPLIB  so we don't need msvcpnn.dll
 #
 # If MS_RUNTIME_STATIC is requested we may have a problem, it is no longer
 #     supported by VS2010
@@ -223,12 +223,12 @@
 endif
 
 # Always add _STATIC_CPPLIB definition
-STATIC_CPPLIB_OPTION = /D _STATIC_CPPLIB
+STATIC_CPPLIB_OPTION = -D _STATIC_CPPLIB
 
 # Silence the warning about using _STATIC_CPPLIB
 ifneq ($(SHOW_ALL_WARNINGS),true)
   # Needed with VS2010 to turn off the deprecated warning.
-  STATIC_CPPLIB_OPTION += /D _DISABLE_DEPRECATE_STATIC_CPPLIB
+  STATIC_CPPLIB_OPTION += -D _DISABLE_DEPRECATE_STATIC_CPPLIB
 endif
 
 MS_RUNTIME_OPTION += $(STATIC_CPPLIB_OPTION)
@@ -242,7 +242,7 @@
   #   -Od      Turns off optimization and speeds compilation
   #   -YX -Fp/.../foobar.pch   Use precompiled headers (try someday?)
   #   -nologo  Don't print out startup message
-  #   /D _STATIC_CPPLIB
+  #  -D _STATIC_CPPLIB
   #            Use static link for the C++ runtime (so msvcpnn.dll not needed)
   #   
   ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
@@ -258,12 +258,12 @@
   CFLAGS_COMMON += $(MS_RUNTIME_OPTION) $(CFLAGS_$(COMPILER_VERSION))
 
   ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
-    LDEBUG = /debug
+    LDEBUG = -debug
   endif
   
   ifeq ($(VTUNE_SUPPORT), true)
     OTHER_CFLAGS = -Z7 -Ox 
-    LDEBUG += /pdb:NONE
+    LDEBUG += -pdb:NONE
   endif
   
   # VS2010, always need safe exception handlers, not needed on 64bit
@@ -272,7 +272,7 @@
   endif
 
   # LFLAGS are the flags given to $(LINK) and used to build the actual DLL file
-  BASELFLAGS = -nologo /opt:REF /incremental:no
+  BASELFLAGS = -nologo -opt:REF -incremental:no
 
   LFLAGS = $(BASELFLAGS) $(LDEBUG) $(EXTRA_LFLAGS) $(LFLAGS_$(COMPILER_VERSION))
   LDDFLAGS += $(LFLAGS_$(COMPILER_VERSION))
@@ -404,7 +404,7 @@
   JDK_UPDATE_VER := 0
 endif
 
-RC_FLAGS = /l 0x409 /r
+RC_FLAGS = -l 0x409 -r
 
 ifeq ($(VARIANT), OPT)
   RC_FLAGS += -d NDEBUG 
--- a/jdk/make/common/Demo.gmk	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/common/Demo.gmk	Mon Nov 05 10:33:18 2012 -0500
@@ -292,9 +292,9 @@
 
 ifeq ($(PLATFORM),windows)
 # JDK name required here
-RC_FLAGS += /D "JDK_FNAME=$(LIBRARY).dll" \
-            /D "JDK_INTERNAL_NAME=$(LIBRARY)" \
-            /D "JDK_FTYPE=0x2L"
+RC_FLAGS += -D "JDK_FNAME=$(LIBRARY).dll" \
+            -D "JDK_INTERNAL_NAME=$(LIBRARY)" \
+            -D "JDK_FTYPE=0x2L"
 endif
 
 # Native library building
--- a/jdk/make/common/Library.gmk	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/common/Library.gmk	Mon Nov 05 10:33:18 2012 -0500
@@ -206,9 +206,9 @@
 	@$(ECHO) Created $@ 
 
 # JDK name required here
-RC_FLAGS += /D "JDK_FNAME=$(LIBRARY).dll" \
-            /D "JDK_INTERNAL_NAME=$(LIBRARY)" \
-            /D "JDK_FTYPE=0x2L"
+RC_FLAGS += -D "JDK_FNAME=$(LIBRARY).dll" \
+            -D "JDK_INTERNAL_NAME=$(LIBRARY)" \
+            -D "JDK_FTYPE=0x2L"
 
 $(OBJDIR)/$(LIBRARY).res: $(VERSIONINFO_RESOURCE)
 ifndef LOCAL_RESOURCE_FILE
--- a/jdk/make/common/Program.gmk	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/common/Program.gmk	Mon Nov 05 10:33:18 2012 -0500
@@ -157,9 +157,9 @@
 #
 ifeq ($(PLATFORM), windows)
   # JDK name required here
-  RC_FLAGS += /D "JDK_FNAME=$(PROGRAM)$(EXE_SUFFIX)" \
-              /D "JDK_INTERNAL_NAME=$(PROGRAM)" \
-              /D "JDK_FTYPE=0x1L"
+  RC_FLAGS += -D "JDK_FNAME=$(PROGRAM)$(EXE_SUFFIX)" \
+              -D "JDK_INTERNAL_NAME=$(PROGRAM)" \
+              -D "JDK_FTYPE=0x1L"
 
   $(OBJDIR)/$(PROGRAM).res: $(VERSIONINFO_RESOURCE)
 	@$(prep-target)
@@ -201,11 +201,11 @@
 	@$(prep-target)
 	@set -- $?; \
 	    $(ECHO) Rebuilding $@ because of $$1 $$2 $$3 $$4 $$5 $$6 $${7:+...};
-	$(LINK) -out:$@ /STACK:$(STACK_SIZE) \
+	$(LINK) -out:$@ -STACK:$(STACK_SIZE) \
 	    $(MAP_OPTION) $(LFLAGS) $(LDFLAGS) \
 	    @$(OBJDIR)/$(PROGRAM).lcf $(LDLIBS)
   ifdef MT
-	$(MT) /manifest $(OBJDIR)/$(PROGRAM).exe.manifest /outputresource:$@;#1
+	$(MT) -manifest $(OBJDIR)/$(PROGRAM).exe.manifest /outputresource:$@;#1
   endif
 	@$(call binary_file_verification,$@)
   ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
--- a/jdk/make/common/Release.gmk	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/common/Release.gmk	Mon Nov 05 10:33:18 2012 -0500
@@ -784,11 +784,22 @@
 		    $(RT_JAR) $(RESOURCES_JAR) $(JSSE_JAR) $(JFR_JAR) \
 		    $(BUILDMETAINDEX_JARFILE)
 	@# Copy in bin directory
+ifeq ($(USING_MSYS),true)
+        # No cpio in MinGW/MSYS
+	$(CD) $(OUTPUTDIR) && $(TAR) -cf - bin | ($(CD) $(JRE_IMAGE_DIR) && $(TAR) -xpf -)
+else
 	$(CD) $(OUTPUTDIR) && $(FIND) bin -depth | $(CPIO) -pdum $(JRE_IMAGE_DIR)
+endif
 	@# CTE plugin security change require new empty directory lib/applet
 	$(MKDIR) -p $(JRE_IMAGE_DIR)/lib/applet
 	@# Copy in lib directory
+ifeq ($(USING_MSYS),true)
+        # No cpio in MinGW/MSYS
+	$(CD) $(OUTPUTDIR) && $(TAR) -cf - lib | ($(CD) $(JRE_IMAGE_DIR) && $(TAR) -xpf -)
+else
 	$(CD) $(OUTPUTDIR) && $(FIND) lib -depth | $(CPIO) -pdum $(JRE_IMAGE_DIR)
+endif
+
   ifeq ($(USING_CYGWIN),true)
 	  $(RM) -rf $(JRE_IMAGE_DIR)/[A-Za-z]:
 	  $(RM) -rf $(OUTPUTDIR)/[A-Za-z]:
@@ -919,11 +930,17 @@
 # only places from which we copy everything), but because the presence
 # of this file causes cygwin's find to bomb out, thus breaking the build
 # in "install".
+
 initial-image-jdk-setup:
 	$(RM) -r $(JDK_IMAGE_DIR)
 	$(MKDIR) -p $(JDK_IMAGE_DIR)/jre
+ifeq ($(USING_MSYS),true)
+	($(CD) $(JRE_IMAGE_DIR) && $(TAR) -cf - . \
+	      | ($(CD) $(JDK_IMAGE_DIR)/jre && $(TAR) -xpf -))
+else
 	($(CD) $(JRE_IMAGE_DIR) && $(FIND) . -depth -print \
 	      | $(CPIO) -pdum $(JDK_IMAGE_DIR)/jre )
+endif
   ifeq ($(USING_CYGWIN),true)
 	  $(RM) -rf $(JRE_IMAGE_DIR)/[A-Za-z]:
 	  $(RM) -rf $(JDK_IMAGE_DIR)/jre/[A-Za-z]:
--- a/jdk/make/common/Sanity.gmk	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/common/Sanity.gmk	Mon Nov 05 10:33:18 2012 -0500
@@ -64,7 +64,6 @@
     sane-math_iso \
     sane-libCrun \
     sane-unixccs_path \
-    sane-odbcdir \
     sane-msdevtools_path \
     sane-dxsdk \
     sane-compiler \
--- a/jdk/make/common/shared/Defs-solaris.gmk	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/common/shared/Defs-solaris.gmk	Mon Nov 05 10:33:18 2012 -0500
@@ -206,13 +206,12 @@
 #     libjdgaSUNWffb.so
 #     libjdgaSUNWm64.so
 #     libxinerama.so
-#   The library libJdbcOdbc.so has also been given an exception.
 #   The JNI/JVMTI demo libraries are also missing mapfiles, no exceptions yet.
 ifeq ($(ARCH_FAMILY),sparc)
   MAPFILE_EXCEPTIONS = \
-    (libJdbcOdbc|libjdgaSUNWafb|libjdgaSUNWcg6|libjdgaSUNWffb|libjdgaSUNWm64|libxinerama)
+    (libjdgaSUNWafb|libjdgaSUNWcg6|libjdgaSUNWffb|libjdgaSUNWm64|libxinerama)
 else
-  MAPFILE_EXCEPTIONS = (libJdbcOdbc)
+  MAPFILE_EXCEPTIONS = ()
 endif
 
 # Macro to check it's input file for banned dependencies and verify the
--- a/jdk/make/common/shared/Defs-utils.gmk	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/common/shared/Defs-utils.gmk	Mon Nov 05 10:33:18 2012 -0500
@@ -169,15 +169,19 @@
 ifeq ($(PLATFORM),windows)
   ifdef USING_CYGWIN
     # Intrinsic unix command, with backslash-escaped character interpretation
-    ECHO = $(UNIXCOMMAND_PATH)echo -e
-    ZIPEXE = $(UNIXCOMMAND_PATH)zip
-    UNZIP  = $(UNIXCOMMAND_PATH)unzip
+    ECHO     = $(UNIXCOMMAND_PATH)echo -e
+    ZIPEXE   = $(UNIXCOMMAND_PATH)zip
+    UNZIP    = $(UNIXCOMMAND_PATH)unzip
     # Some CYGWIN nawk versions require BINMODE=w for proper '\r' interpretation
-    NAWK   = $(UNIXCOMMAND_PATH)awk -v BINMODE=w
+    NAWK     = $(UNIXCOMMAND_PATH)awk -v BINMODE=w
   else
     ZIPEXE = $(UTILS_DEVTOOL_PATH)zip
     UNZIP  = $(UTILS_DEVTOOL_PATH)unzip
     NAWK   = $(UNIXCOMMAND_PATH)awk
+    ifdef USING_MSYS
+      ECHO   = $(UTILS_COMMAND_PATH)echo -e
+      AR     = $(UTILS_DEVTOOL_PATH)ar
+    endif
   endif
   # Re-define some utilities
   LEX            =# override GNU Make intrinsic: no lex on windows
--- a/jdk/make/common/shared/Defs-windows.gmk	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/common/shared/Defs-windows.gmk	Mon Nov 05 10:33:18 2012 -0500
@@ -112,6 +112,15 @@
 $(shell if [ "$1" != "" -a -d "$1" ]; then $(CYGPATH_CMD) "$1" 2> $(DEV_NULL); else echo "$1"; fi)
 endef
 else
+ifdef USING_MSYS
+DOSPATH_CMD:=$(shell cd $(JDK_TOPDIR) 2> $(DEV_NULL) && pwd)/make/tools/msys_build_scripts/dospath.sh
+define FullPath
+$(subst \,/,$(shell $(DOSPATH_CMD) $1))
+endef
+define OptFullPath
+$(shell if [ "$1" != "" -a -d "$1" ]; then (cd $1 && pwd); else echo "$1"; fi)
+endef
+else
 # Temporary until we upgrade to MKS 8.7, MKS pwd returns mixed mode path
 define FullPath
 $(shell cd $1 2> $(DEV_NULL) && pwd)
@@ -120,6 +129,7 @@
 $(shell if [ "$1" != "" -a -d "$1" ]; then (cd $1 && pwd); else echo "$1"; fi)
 endef
 endif
+endif
 
 # System drive
 ifdef SYSTEMDRIVE
@@ -146,43 +156,47 @@
   ifdef USING_CYGWIN
     UNIXCOMMAND_PATH :=$(call PrefixPath,/usr/bin)
   else
-    ifdef ROOTDIR
-      xROOTDIR :="$(subst \,/,$(ROOTDIR))"
-      _rootdir :=$(call FullPath,$(xROOTDIR))
+    ifdef USING_MSYS
+      UNIXCOMMAND_PATH :=$(call PrefixPath,/bin)
     else
-      xROOTDIR :="$(_system_drive)/mksnt"
-      _rootdir :=$(call FullPath,$(xROOTDIR))
-    endif
-    ifneq ($(_rootdir),)
-      UNIXCOMMAND_PATH :=$(call PrefixPath,$(_rootdir)/mksnt)
-    endif
-  endif
+      ifdef ROOTDIR
+        xROOTDIR :="$(subst \,/,$(ROOTDIR))"
+        _rootdir :=$(call FullPath,$(xROOTDIR))
+      else
+        xROOTDIR :="$(_system_drive)/mksnt"
+        _rootdir :=$(call FullPath,$(xROOTDIR))
+      endif
+      ifneq ($(_rootdir),)
+        UNIXCOMMAND_PATH :=$(call PrefixPath,$(_rootdir)/mksnt)
+      endif
+    endif # USING_MSYS
+  endif # USING_CYGWIN
 endif
 UNIXCOMMAND_PATH:=$(call AltCheckSpaces,UNIXCOMMAND_PATH)
 
 # Get version of MKS or CYGWIN
-ifndef USING_CYGWIN
-_MKS_VER :=$(shell $(MKSINFO) 2>&1 | $(GREP) Release | $(TAIL) -1 | $(SED) -e 's@.*\(Release.*\)@\1@')
-MKS_VER  :=$(call GetVersion,$(_MKS_VER))
-# At this point, we can re-define FullPath to use DOSNAME_CMD
-CHECK_MKS87:=$(call CheckVersions,$(MKS_VER),8.7)
-TRY_DOSNAME:=false
-ifeq ($(CHECK_MKS87),same)
-TRY_DOSNAME:=true
-endif
-# Newer should be ok
-ifeq ($(CHECK_MKS87),newer)
-TRY_DOSNAME:=true
-endif
-ifeq ($(TRY_DOSNAME),true)
-ifeq ($(shell $(UNIXCOMMAND_PATH)dosname -s $(_system_drive)/ 2> $(DEV_NULL)),$(_system_drive)/)
-_DOSNAME=$(UNIXCOMMAND_PATH)dosname
-DOSNAME_CMD:=$(_DOSNAME) -s
+ifdef USING_MKS
+  _MKS_VER :=$(shell $(MKSINFO) 2>&1 | $(GREP) Release | $(TAIL) -1 | $(SED) -e 's@.*\(Release.*\)@\1@')
+  MKS_VER  :=$(call GetVersion,$(_MKS_VER))
+  # At this point, we can re-define FullPath to use DOSNAME_CMD
+  CHECK_MKS87:=$(call CheckVersions,$(MKS_VER),8.7)
+  TRY_DOSNAME:=false
+  ifeq ($(CHECK_MKS87),same)
+    TRY_DOSNAME:=true
+  endif
+  # Newer should be ok
+  ifeq ($(CHECK_MKS87),newer)
+    TRY_DOSNAME:=true
+  endif
+  ifeq ($(TRY_DOSNAME),true)
+    ifeq ($(shell $(UNIXCOMMAND_PATH)dosname -s $(_system_drive)/ 2> $(DEV_NULL)),$(_system_drive)/)
+      _DOSNAME=$(UNIXCOMMAND_PATH)dosname
+      DOSNAME_CMD:=$(_DOSNAME) -s
 define FullPath
 $(subst //,/,$(shell echo $1 | $(DOSNAME_CMD) 2> $(DEV_NULL)))
 endef
-endif # test dosname -s
-endif # TRY_DOSNAME
+    endif # test dosname -s
+  endif # TRY_DOSNAME
 endif # MKS
 
 # We try to get references to what we need via the default component
@@ -440,10 +454,14 @@
   ifdef USING_CYGWIN
     DEVTOOLS_PATH :=$(UNIXCOMMAND_PATH)
   else
-    xDEVTOOLS_PATH  :="$(_system_drive)/utils"
-    fxDEVTOOLS_PATH :=$(call FullPath,$(xDEVTOOLS_PATH))
-    DEVTOOLS_PATH  :=$(call PrefixPath,$(fxDEVTOOLS_PATH))
-  endif
+    ifdef USING_MSYS
+      DEVTOOLS_PATH :=$(UNIXCOMMAND_PATH)
+    else
+      xDEVTOOLS_PATH  :="$(_system_drive)/utils"
+      fxDEVTOOLS_PATH :=$(call FullPath,$(xDEVTOOLS_PATH))
+      DEVTOOLS_PATH  :=$(call PrefixPath,$(fxDEVTOOLS_PATH))
+    endif # USING_MSYS
+  endif # USING_CYGWIN
 endif
 DEVTOOLS_PATH:=$(call AltCheckSpaces,DEVTOOLS_PATH)
 
@@ -636,7 +654,7 @@
 
 # Special define for checking the binaries
 
-# All windows dll and exe files should have been built with /NXCOMPAT
+# All windows dll and exe files should have been built with -NXCOMPAT
 #   and be setup for dynamic base addresses.
 #   In addition, we should not be dependent on certain dll files that
 #   we do not or cannot redistribute.
@@ -648,37 +666,37 @@
   BANNED_DLLS=msvcp100[.]dll|msvcr100d[.]dll|msvcrtd[.]dll
 endif
 
-# Check for /safeseh (only used on 32bit)
+# Check for -safeseh (only used on 32bit)
 define binary_file_safeseh_verification # binary_file
 ( \
-  $(ECHO) "Checking for /SAFESEH usage in: $1" && \
-  if [ "`$(DUMPBIN) /loadconfig $1 | $(EGREP) -i 'Safe Exception Handler Table'`" = "" ] ; then \
+  $(ECHO) "Checking for -SAFESEH usage in: $1" && \
+  if [ "`$(DUMPBIN) -loadconfig $1 | $(EGREP) -i 'Safe Exception Handler Table'`" = "" ] ; then \
     $(ECHO) "ERROR: Did not find 'Safe Exception Handler Table' in loadconfig: $1" ; \
-    $(DUMPBIN) /loadconfig $1 ; \
+    $(DUMPBIN) -loadconfig $1 ; \
     exit 6 ; \
   fi ; \
 )
 endef
 
-# Check for /NXCOMPAT usage
+# Check for -NXCOMPAT usage
 define binary_file_nxcompat_verification # binary_file
 ( \
-  $(ECHO) "Checking for /NXCOMPAT usage in: $1" && \
-  if [ "`$(DUMPBIN) /headers $1 | $(EGREP) -i 'NX compatible'`" = "" ] ; then \
+  $(ECHO) "Checking for -NXCOMPAT usage in: $1" && \
+  if [ "`$(DUMPBIN) -headers $1 | $(EGREP) -i 'NX compatible'`" = "" ] ; then \
     $(ECHO) "ERROR: Did not find 'NX compatible' in headers: $1" ; \
-    $(DUMPBIN) /headers $1 ; \
+    $(DUMPBIN) -headers $1 ; \
     exit 7 ; \
   fi ; \
 )
 endef
 
-# Check for /DYNAMICBASE usage
+# Check for -DYNAMICBASE usage
 define binary_file_dynamicbase_verification # binary_file
 ( \
-  $(ECHO) "Checking for /DYNAMICBASE usage in: $1" && \
-  if [ "`$(DUMPBIN) /headers $1 | $(EGREP) -i 'Dynamic base'`" = "" ] ; then \
+  $(ECHO) "Checking for -DYNAMICBASE usage in: $1" && \
+  if [ "`$(DUMPBIN) -headers $1 | $(EGREP) -i 'Dynamic base'`" = "" ] ; then \
     $(ECHO) "ERROR: Did not find 'Dynamic base' in headers: $1" ; \
-    $(DUMPBIN) /headers $1 ; \
+    $(DUMPBIN) -headers $1 ; \
     exit 8 ; \
   fi ; \
 )
@@ -688,9 +706,9 @@
 define binary_file_dll_verification # binary_file
 ( \
   $(ECHO) "Checking for banned dependencies in: $1" && \
-  if [ "`$(DUMPBIN) /dependents $1 | $(EGREP) -i '$(BANNED_DLLS)'`" != "" ] ; then \
+  if [ "`$(DUMPBIN) -dependents $1 | $(EGREP) -i '$(BANNED_DLLS)'`" != "" ] ; then \
     $(ECHO) "ERROR: Found use of $(BANNED_DLLS)"; \
-    $(DUMPBIN) /dependents $1 ; \
+    $(DUMPBIN) -dependents $1 ; \
     exit 9 ; \
   fi ; \
 )
--- a/jdk/make/common/shared/Platform.gmk	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/common/shared/Platform.gmk	Mon Nov 05 10:33:18 2012 -0500
@@ -70,6 +70,8 @@
 #     LIBARCH32                   solaris only: sparc or i386
 #     LIBARCH64                   solaris only: sparcv9 or amd64
 #     USING_CYGWIN                windows only: true or false
+#     USING_MSYS                  windows only: true or false
+#     USING_MKS                   windows only: true or false
 #     ISHIELD_TEMP_MIN            windows only: minimum disk space in temp area
 
 # Only run uname once in this make session.
@@ -306,6 +308,8 @@
 # Windows with and without CYGWIN will be slightly different
 ifeq ($(SYSTEM_UNAME), Windows_NT)
   PLATFORM = windows
+  USING_MKS = true
+  export USING_MKS
 endif
 ifneq (,$(findstring CYGWIN,$(SYSTEM_UNAME)))
   PLATFORM = windows
@@ -318,6 +322,11 @@
     export CYGWIN_HOME
   endif
 endif
+ifneq (,$(findstring MINGW,$(SYSTEM_UNAME)))
+  PLATFORM = windows
+  USING_MSYS = true
+  export USING_MSYS
+endif
 
 # Platform settings specific to Windows
 ifeq ($(PLATFORM), windows)
@@ -395,11 +404,12 @@
   endif
   ARCH_FAMILY = $(ARCH)
   # Where is unwanted output to be delivered?
-  # MKS uses the special file "NUL", cygwin uses the customary unix file.
-  ifeq ($(USING_CYGWIN),true)
+  # MKS uses the special file "NUL"; Cygwin and MinGW/MSYS use the
+  # customary unix file.
+  ifeq ($(USING_MKS),true)
+    DEV_NULL = NUL
+  else
     DEV_NULL = /dev/null
-  else
-    DEV_NULL = NUL
   endif
   export DEV_NULL
   # Classpath separator
@@ -440,28 +450,11 @@
       _MB_OF_MEMORY := \
 	   $(shell free -m | grep Mem: | awk '{print $$2;}' )
     else
-      # Windows 2000 has the mem utility, but two memory areas
-      #    extended memory is what is beyond 1024M
-      _B_OF_EXT_MEMORY := \
-	   $(shell mem 2> $(DEV_NULL) | \
-		   grep 'total contiguous extended memory' | awk '{print $$1;}')
-      ifeq ($(_B_OF_EXT_MEMORY),)
-          _B_OF_MEMORY := \
-	   $(shell mem 2> $(DEV_NULL) | \
-		   grep 'total conventional memory' | awk '{print $$1;}')
-      else
-        _B_OF_MEMORY := \
-           $(shell expr 1048576 '+' $(_B_OF_EXT_MEMORY) 2> $(DEV_NULL))
-      endif
-      ifeq ($(_B_OF_MEMORY),)
-        # Windows 2003 has the systeminfo utility use it if mem doesn't work
-        _MB_OF_MEMORY := \
-	    $(shell systeminfo 2> $(DEV_NULL) | \
-		    grep 'Total Physical Memory:' | \
-		    awk '{print $$4;}' | sed -e 's@,@@')
-      else
-        _MB_OF_MEMORY := $(shell expr $(_B_OF_MEMORY) '/' 1024 2> $(DEV_NULL))
-      endif
+      # Windows XP and higher has the systeminfo utility
+      _MB_OF_MEMORY := \
+            $(shell systeminfo 2> $(DEV_NULL) | \
+                    grep 'Total Physical Memory:' | \
+                    awk '{print $$4;}' | sed -e 's@,@@')
     endif
     ifeq ($(shell expr $(_MB_OF_MEMORY) '+' 0 2> $(DEV_NULL)), $(_MB_OF_MEMORY))
       MB_OF_MEMORY := $(_MB_OF_MEMORY)
--- a/jdk/make/common/shared/Sanity-Settings.gmk	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/common/shared/Sanity-Settings.gmk	Mon Nov 05 10:33:18 2012 -0500
@@ -182,8 +182,13 @@
     ALL_SETTINGS+=$(call addRequiredVersionSetting,CYGWIN_VER)
     ALL_SETTINGS+=$(call addRequiredSetting,CYGPATH_CMD)
   else
-    ALL_SETTINGS+=$(call addRequiredVersionSetting,MKS_VER)
-    ALL_SETTINGS+=$(call addOptionalSetting,DOSNAME_CMD)
+    ifdef USING_MSYS
+      ALL_SETTINGS+=$(call addRequiredSetting,USING_MSYS)
+      ALL_SETTINGS+=$(call addRequiredSetting,DOSPATH_CMD)
+    else
+      ALL_SETTINGS+=$(call addRequiredVersionSetting,MKS_VER)
+      ALL_SETTINGS+=$(call addOptionalSetting,DOSNAME_CMD)
+    endif
   endif
 endif
 ifeq ($(PLATFORM),linux)
--- a/jdk/make/common/shared/Sanity.gmk	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/common/shared/Sanity.gmk	Mon Nov 05 10:33:18 2012 -0500
@@ -208,7 +208,6 @@
 	sane-docs_import \
 	sane-math_iso \
 	sane-libCrun \
-	sane-odbcdir \
 	sane-msdevtools_path \
 	sane-hotspot_binaries \
 	sane-hotspot_import \
@@ -395,7 +394,7 @@
 ifeq ($(PLATFORM), windows)
     MKS_CHECK :=$(call CheckVersions,$(MKS_VER),$(REQUIRED_MKS_VER))
 sane-mks:
-  ifndef USING_CYGWIN
+  ifdef USING_MKS
     ifeq ($(MKS_CHECK),missing)
 	@$(call OfficialErrorMessage,MKS version,$(MKS_VER),$(REQUIRED_MKS_VER))
     endif
@@ -905,14 +904,25 @@
 	    "" >> $(ERROR_FILE) ; \
 	fi
 ifeq ($(PLATFORM), windows)
-	@for utility in cpio ar file m4 ; do \
+ifeq ($(USING_MSYS), true)
+	@for utility in $(AR) $(FILE) $(M4) ; do \
 	  if [ ! -r "`$(WHICH) $${utility}`" ]; then \
 	    $(ECHO) "WARNING: You do not have the utility $${utility} in the \n" \
 	      "      directory $(UNIXCOMMAND_PATH). \n" \
-	      "      The utilities cpio, ar, file, and m4 are required. \n" \
+	      "      The utilities ar, file and m4 are required. \n" \
 	      "" >> $(WARNING_FILE) ; \
 	  fi; \
 	done
+else
+	@for utility in $(AR) $(CPIO) $(FILE) $(M4) ; do \
+	  if [ ! -r "`$(WHICH) $${utility}`" ]; then \
+	    $(ECHO) "WARNING: You do not have the utility $${utility} in the \n" \
+	      "      directory $(UNIXCOMMAND_PATH). \n" \
+	      "      The utilities ar, cpio, file and m4 are required. \n" \
+	      "" >> $(WARNING_FILE) ; \
+	  fi; \
+	done
+endif
 endif
 
 ######################################################
@@ -999,7 +1009,8 @@
 	    "      This is normally obtained from the WINDOWSSDKDIR." \
 	    "" >> $(ERROR_FILE)
   endif
-  ifeq ($(wildcard $(DUMPBIN)),)
+  # MinGW/MSYS make 3.81 will not tolerate a path with a quoted substring
+  ifeq ($(wildcard $(subst ",,$(DUMPBIN))),)
 	@$(ECHO) "ERROR: Cannot find the DUMPBIN utility from path: $(DUMPBIN)\n" \
 	    "      This is normally obtained from the COMPILER_PATH." \
 	    "" >> $(ERROR_FILE)
--- a/jdk/make/java/java/Exportedfiles.gmk	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/java/java/Exportedfiles.gmk	Mon Nov 05 10:33:18 2012 -0500
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1997, 2012, Oracle and/or its affiliates. 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,6 +66,7 @@
     java/util/prefs/FileSystemPreferences.java \
     java/io/Console.java \
     java/io/FileDescriptor.java \
+    java/io/DefaultFileSystem.java \
     java/io/InputStream.java \
     java/io/FileInputStream.java \
     java/io/FileOutputStream.java \
@@ -142,6 +143,7 @@
     java/io/Console.java \
     java/io/FileSystem.java \
     java/io/FileDescriptor.java \
+    java/io/DefaultFileSystem.java \
     java/io/InputStream.java \
     java/io/FileInputStream.java \
     java/io/FileOutputStream.java \
--- a/jdk/make/java/java/FILES_c.gmk	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/java/java/FILES_c.gmk	Mon Nov 05 10:33:18 2012 -0500
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1996, 2006, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1996, 2012, Oracle and/or its affiliates. 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
@@ -32,7 +32,6 @@
 	Compiler.c \
 	Console_md.c \
 	Double.c \
-	FileSystem_md.c \
 	FileDescriptor_md.c \
 	FileInputStream.c \
 	FileInputStream_md.c \
--- a/jdk/make/java/java/FILES_java.gmk	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/java/java/FILES_java.gmk	Mon Nov 05 10:33:18 2012 -0500
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1996, 2012, Oracle and/or its affiliates. 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
@@ -438,6 +438,7 @@
     java/io/File.java \
     java/io/FileSystem.java \
     java/io/FileDescriptor.java \
+    java/io/DefaultFileSystem.java \
     java/io/FilenameFilter.java \
     java/io/FileFilter.java \
     java/io/FilePermission.java \
--- a/jdk/make/java/java/genlocales.gmk	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/java/java/genlocales.gmk	Mon Nov 05 10:33:18 2012 -0500
@@ -38,31 +38,31 @@
 # only FILES_java and FILES_compiled_properties variables will be picked up
 #
 # $(BUILDDIR)/java/util/FILES_java.gmk & $(BUILDDIR)/java/util/FILES_properties.gmk
-# contain "sun.util.resources" for European language support
+# contain "sun.util.resources" for US language support
 
 include $(BUILDDIR)/java/util/FILES_java.gmk
 include $(BUILDDIR)/java/util/FILES_properties.gmk
 
-Euro_Resources_java := $(FILES_java)
-Euro_Resources_properties := $(FILES_compiled_properties)
+US_Resources_java := $(FILES_java)
+US_Resources_properties := $(FILES_compiled_properties)
 
 # $(BUILDDIR)/java/text/FILES_java.gmk contains the "sun.text.resources" for 
-# European language support
+# US language support
 
 include $(BUILDDIR)/java/text/base/FILES_java.gmk
 
-Euro_Resources_java += $(FILES_java)
+US_Resources_java += $(FILES_java)
 
 FILES_compiled_properties=
 
 # $(BUILDDIR)/sun/text/FILES_java.gmk & $(BUILDDIR)/sun/text/FILES_properties.gmk
-# contain both resources for Non-European language support
+# contain both resources for Non-US language support
 
 include $(BUILDDIR)/sun/text/FILES_java.gmk
 include $(BUILDDIR)/sun/text/FILES_properties.gmk
 
-NonEuro_Resources_java := $(FILES_java)
-NonEuro_Resources_properties := $(FILES_compiled_properties)
+NonUS_Resources_java := $(FILES_java)
+NonUS_Resources_properties := $(FILES_compiled_properties)
 
 # Restore the orignal FILES_java & FILES_compiled_properties variables
 FILES_java := $(FILES_java_orig)
@@ -80,30 +80,30 @@
 ifeq ($(PLATFORM), macosx)
 
 $(LocaleDataMetaInfo_Dest):$(LocaleDataMetaInfo_Src) $(LOCALEGEN_SH)
-	@$(RM) $@.tmp.euro $@.tmp.noneuro;
+	@$(RM) $@.tmp.us $@.tmp.nonus;
 	@$(prep-target) 
-	@$(ECHO) $(Euro_Resources_properties) | $(NAWK) 'gsub(/.properties/,"\n") {print}'  > $@.tmp.euro;
-	@$(ECHO) $(Euro_Resources_java) | $(NAWK) 'gsub(/.java/,"\n") {print}' >> $@.tmp.euro;
-	@$(ECHO) $(NonEuro_Resources_properties) | $(NAWK) 'gsub(/.properties/,"\n") {print}' > $@.tmp.noneuro;
-	@$(ECHO) $(NonEuro_Resources_java) | $(NAWK) 'gsub(/.java/,"\n") {print}' >> $@.tmp.noneuro;
+	@$(ECHO) $(US_Resources_properties) | $(NAWK) 'gsub(/.properties/,"\n") {print}'  > $@.tmp.us;
+	@$(ECHO) $(US_Resources_java) | $(NAWK) 'gsub(/.java/,"\n") {print}' >> $@.tmp.us;
+	@$(ECHO) $(NonUS_Resources_properties) | $(NAWK) 'gsub(/.properties/,"\n") {print}' > $@.tmp.nonus;
+	@$(ECHO) $(NonUS_Resources_java) | $(NAWK) 'gsub(/.java/,"\n") {print}' >> $@.tmp.nonus;
 	NAWK="$(NAWK)" SED="$(SED)" SORT="$(SORT)" \
-	     $(SH) $(LOCALEGEN_SH) $(RESOURCE_NAMES) $@.tmp.euro \
-		$@.tmp.noneuro $< $@
-	@$(RM) $@.tmp.euro $@.tmp.noneuro;
+	     $(SH) $(LOCALEGEN_SH) $(RESOURCE_NAMES) $@.tmp.us \
+		$@.tmp.nonus $< $@
+	@$(RM) $@.tmp.us $@.tmp.nonus;
 
 else
 
 $(LocaleDataMetaInfo_Dest):$(LocaleDataMetaInfo_Src) $(LOCALEGEN_SH)
-	@$(RM) $@.tmp.euro $@.tmp.noneuro;
+	@$(RM) $@.tmp.us $@.tmp.nonus;
 	@$(prep-target) 
-	@$(ECHO) $(subst .properties,'\n',$(Euro_Resources_properties)) > $@.tmp.euro;
-	@$(ECHO) $(subst .java,'\n',$(Euro_Resources_java)) >> $@.tmp.euro;	
-	@$(ECHO) $(subst .properties,'\n',$(NonEuro_Resources_properties)) > $@.tmp.noneuro;
-	@$(ECHO) $(subst .java,'\n',$(NonEuro_Resources_java)) >> $@.tmp.noneuro;
+	@$(ECHO) $(subst .properties,'\n',$(US_Resources_properties)) > $@.tmp.us;
+	@$(ECHO) $(subst .java,'\n',$(US_Resources_java)) >> $@.tmp.us;	
+	@$(ECHO) $(subst .properties,'\n',$(NonUS_Resources_properties)) > $@.tmp.nonus;
+	@$(ECHO) $(subst .java,'\n',$(NonUS_Resources_java)) >> $@.tmp.nonus;
 	NAWK="$(NAWK)" SED="$(SED)" SORT="$(SORT)" \
-	     $(SH) $(LOCALEGEN_SH) $(RESOURCE_NAMES) $@.tmp.euro \
-		$@.tmp.noneuro $< $@
-	@$(RM) $@.tmp.euro $@.tmp.noneuro;
+	     $(SH) $(LOCALEGEN_SH) $(RESOURCE_NAMES) $@.tmp.us \
+		$@.tmp.nonus $< $@
+	@$(RM) $@.tmp.us $@.tmp.nonus;
 endif
 	
 genlocales : $(LocaleDataMetaInfo_Dest)  
--- a/jdk/make/java/java/localegen.sh	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/java/java/localegen.sh	Mon Nov 05 10:33:18 2012 -0500
@@ -35,11 +35,11 @@
 # A list of resource base name list;
 RESOURCE_NAMES=$1
 
-# A list of European resources;
-EURO_FILES_LIST=$2
+# A list of US resources;
+US_FILES_LIST=$2
 
-# A list of non-European resources;
-NONEURO_FILES_LIST=$3
+# A list of non-US resources;
+NONUS_FILES_LIST=$3
 
 INPUT_FILE=$4
 OUTPUT_FILE=$5
@@ -53,23 +53,23 @@
 sed_script="$SED -e \"s@^#warn .*@// -- This file was mechanically generated: Do not edit! -- //@\" "
 
 # ja-JP-JP and th-TH-TH need to be manually added, as they don't have any resource files.
-noneuroall=" ja-JP-JP th-TH-TH "
+nonusall=" ja-JP-JP th-TH-TH "
 
 for FILE in $RESOURCE_NAMES
 do
-    getlocalelist $FILE $EURO_FILES_LIST
-    sed_script=$sed_script"-e \"s@#"$FILE"_EuroLocales#@$localelist@g\" "
-    euroall=$euroall" "$localelist
-    getlocalelist $FILE $NONEURO_FILES_LIST
-    sed_script=$sed_script"-e \"s@#"$FILE"_NonEuroLocales#@$localelist@g\" "
-    noneuroall=$noneuroall" "$localelist
+    getlocalelist $FILE $US_FILES_LIST
+    sed_script=$sed_script"-e \"s@#"$FILE"_USLocales#@$localelist@g\" "
+    usall=$usall" "$localelist
+    getlocalelist $FILE $NONUS_FILES_LIST
+    sed_script=$sed_script"-e \"s@#"$FILE"_NonUSLocales#@$localelist@g\" "
+    nonusall=$nonusall" "$localelist
 done
 
-euroall=`(for LOC in $euroall; do echo $LOC;done) |$SORT -u`
-noneuroall=`(for LOC in $noneuroall; do echo $LOC;done) |$SORT -u`
+usall=`(for LOC in $usall; do echo $LOC;done) |$SORT -u`
+nonusall=`(for LOC in $nonusall; do echo $LOC;done) |$SORT -u`
 
-sed_script=$sed_script"-e \"s@#AvailableLocales_EuroLocales#@$euroall@g\" "
-sed_script=$sed_script"-e \"s@#AvailableLocales_NonEuroLocales#@$noneuroall@g\" "
+sed_script=$sed_script"-e \"s@#AvailableLocales_USLocales#@$usall@g\" "
+sed_script=$sed_script"-e \"s@#AvailableLocales_NonUSLocales#@$nonusall@g\" "
 
 sed_script=$sed_script"$INPUT_FILE > $OUTPUT_FILE"
 eval $sed_script
--- a/jdk/make/java/java/mapfile-vers	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/java/java/mapfile-vers	Mon Nov 05 10:33:18 2012 -0500
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1997, 2012, Oracle and/or its affiliates. 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
@@ -87,7 +87,6 @@
 		Java_java_io_FileOutputStream_open;
 		Java_java_io_FileOutputStream_write;
 		Java_java_io_FileOutputStream_writeBytes;
-		Java_java_io_FileSystem_getFileSystem;
 		Java_java_io_ObjectInputStream_bytesToDoubles;
 		Java_java_io_ObjectInputStream_bytesToFloats;
 		Java_java_io_ObjectOutputStream_doublesToBytes;
--- a/jdk/make/java/text/base/FILES_java.gmk	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/java/text/base/FILES_java.gmk	Mon Nov 05 10:33:18 2012 -0500
@@ -103,150 +103,7 @@
         sun/text/resources/BreakIteratorInfo.java \
 	\
         sun/text/resources/CollationData.java \
-        sun/text/resources/be/CollationData_be.java \
-        sun/text/resources/bg/CollationData_bg.java \
-        sun/text/resources/ca/CollationData_ca.java \
-        sun/text/resources/cs/CollationData_cs.java \
-        sun/text/resources/da/CollationData_da.java \
-        sun/text/resources/el/CollationData_el.java \
-        sun/text/resources/es/CollationData_es.java \
-        sun/text/resources/et/CollationData_et.java \
-        sun/text/resources/fi/CollationData_fi.java \
-        sun/text/resources/fr/CollationData_fr.java \
-        sun/text/resources/hr/CollationData_hr.java \
-        sun/text/resources/hu/CollationData_hu.java \
-        sun/text/resources/is/CollationData_is.java \
-        sun/text/resources/lt/CollationData_lt.java \
-        sun/text/resources/lv/CollationData_lv.java \
-        sun/text/resources/mk/CollationData_mk.java \
-        sun/text/resources/no/CollationData_no.java \
-        sun/text/resources/pl/CollationData_pl.java \
-        sun/text/resources/ro/CollationData_ro.java \
-        sun/text/resources/ru/CollationData_ru.java \
-        sun/text/resources/sk/CollationData_sk.java \
-        sun/text/resources/sl/CollationData_sl.java \
-        sun/text/resources/sq/CollationData_sq.java \
-        sun/text/resources/sr/CollationData_sr.java \
-        sun/text/resources/sr/CollationData_sr_Latn.java \
-        sun/text/resources/sv/CollationData_sv.java \
-        sun/text/resources/tr/CollationData_tr.java \
-        sun/text/resources/uk/CollationData_uk.java \
 	\
         sun/text/resources/FormatData.java \
-        sun/text/resources/be/FormatData_be.java \
-        sun/text/resources/be/FormatData_be_BY.java \
-        sun/text/resources/bg/FormatData_bg.java \
-        sun/text/resources/bg/FormatData_bg_BG.java \
-        sun/text/resources/ca/FormatData_ca.java \
-        sun/text/resources/ca/FormatData_ca_ES.java \
-        sun/text/resources/cs/FormatData_cs.java \
-        sun/text/resources/cs/FormatData_cs_CZ.java \
-        sun/text/resources/da/FormatData_da.java \
-        sun/text/resources/da/FormatData_da_DK.java \
-        sun/text/resources/de/FormatData_de.java \
-        sun/text/resources/de/FormatData_de_AT.java \
-        sun/text/resources/de/FormatData_de_CH.java \
-        sun/text/resources/de/FormatData_de_DE.java \
-        sun/text/resources/de/FormatData_de_LU.java \
-        sun/text/resources/el/FormatData_el.java \
-        sun/text/resources/el/FormatData_el_CY.java \
-        sun/text/resources/el/FormatData_el_GR.java \
         sun/text/resources/en/FormatData_en.java \
-        sun/text/resources/en/FormatData_en_US.java \
-        sun/text/resources/en/FormatData_en_AU.java \
-        sun/text/resources/en/FormatData_en_CA.java \
-        sun/text/resources/en/FormatData_en_GB.java \
-        sun/text/resources/en/FormatData_en_IE.java \
-        sun/text/resources/en/FormatData_en_IN.java \
-        sun/text/resources/en/FormatData_en_MT.java \
-        sun/text/resources/en/FormatData_en_NZ.java \
-        sun/text/resources/en/FormatData_en_PH.java \
-        sun/text/resources/en/FormatData_en_SG.java \
-        sun/text/resources/en/FormatData_en_ZA.java \
-        sun/text/resources/es/FormatData_es.java \
-        sun/text/resources/es/FormatData_es_BO.java \
-        sun/text/resources/es/FormatData_es_AR.java \
-        sun/text/resources/es/FormatData_es_CL.java \
-        sun/text/resources/es/FormatData_es_CO.java \
-        sun/text/resources/es/FormatData_es_CR.java \
-        sun/text/resources/es/FormatData_es_DO.java \
-        sun/text/resources/es/FormatData_es_EC.java \
-        sun/text/resources/es/FormatData_es_ES.java \
-        sun/text/resources/es/FormatData_es_GT.java \
-        sun/text/resources/es/FormatData_es_HN.java \
-        sun/text/resources/es/FormatData_es_MX.java \
-        sun/text/resources/es/FormatData_es_NI.java \
-        sun/text/resources/es/FormatData_es_PA.java \
-        sun/text/resources/es/FormatData_es_PE.java \
-        sun/text/resources/es/FormatData_es_PR.java \
-        sun/text/resources/es/FormatData_es_PY.java \
-        sun/text/resources/es/FormatData_es_SV.java \
-        sun/text/resources/es/FormatData_es_US.java \
-        sun/text/resources/es/FormatData_es_UY.java \
-        sun/text/resources/es/FormatData_es_VE.java \
-        sun/text/resources/et/FormatData_et.java \
-        sun/text/resources/et/FormatData_et_EE.java \
-        sun/text/resources/fi/FormatData_fi.java \
-        sun/text/resources/fi/FormatData_fi_FI.java \
-        sun/text/resources/fr/FormatData_fr.java \
-        sun/text/resources/fr/FormatData_fr_BE.java \
-        sun/text/resources/fr/FormatData_fr_CA.java \
-        sun/text/resources/fr/FormatData_fr_CH.java \
-        sun/text/resources/fr/FormatData_fr_FR.java \
-        sun/text/resources/ga/FormatData_ga.java \
-        sun/text/resources/ga/FormatData_ga_IE.java \
-        sun/text/resources/hr/FormatData_hr.java \
-        sun/text/resources/hr/FormatData_hr_HR.java \
-        sun/text/resources/hu/FormatData_hu.java \
-        sun/text/resources/hu/FormatData_hu_HU.java \
-        sun/text/resources/in/FormatData_in.java \
-        sun/text/resources/in/FormatData_in_ID.java \
-        sun/text/resources/is/FormatData_is.java \
-        sun/text/resources/is/FormatData_is_IS.java \
-        sun/text/resources/it/FormatData_it.java \
-        sun/text/resources/it/FormatData_it_CH.java \
-        sun/text/resources/it/FormatData_it_IT.java \
-        sun/text/resources/lt/FormatData_lt.java \
-        sun/text/resources/lt/FormatData_lt_LT.java \
-        sun/text/resources/lv/FormatData_lv.java \
-        sun/text/resources/lv/FormatData_lv_LV.java \
-        sun/text/resources/mk/FormatData_mk.java \
-        sun/text/resources/mk/FormatData_mk_MK.java \
-        sun/text/resources/ms/FormatData_ms.java \
-        sun/text/resources/ms/FormatData_ms_MY.java \
-        sun/text/resources/mt/FormatData_mt.java \
-        sun/text/resources/mt/FormatData_mt_MT.java \
-        sun/text/resources/nl/FormatData_nl.java \
-        sun/text/resources/nl/FormatData_nl_BE.java \
-        sun/text/resources/nl/FormatData_nl_NL.java \
-        sun/text/resources/no/FormatData_no.java \
-        sun/text/resources/no/FormatData_no_NO.java \
-        sun/text/resources/no/FormatData_no_NO_NY.java \
-        sun/text/resources/pl/FormatData_pl.java \
-        sun/text/resources/pl/FormatData_pl_PL.java \
-        sun/text/resources/pt/FormatData_pt.java \
-        sun/text/resources/pt/FormatData_pt_BR.java \
-        sun/text/resources/pt/FormatData_pt_PT.java \
-        sun/text/resources/ro/FormatData_ro.java \
-        sun/text/resources/ro/FormatData_ro_RO.java \
-        sun/text/resources/ru/FormatData_ru.java \
-        sun/text/resources/ru/FormatData_ru_RU.java \
-        sun/text/resources/sk/FormatData_sk.java \
-        sun/text/resources/sk/FormatData_sk_SK.java \
-        sun/text/resources/sl/FormatData_sl.java \
-        sun/text/resources/sl/FormatData_sl_SI.java \
-        sun/text/resources/sq/FormatData_sq.java \
-        sun/text/resources/sq/FormatData_sq_AL.java \
-        sun/text/resources/sr/FormatData_sr.java \
-        sun/text/resources/sr/FormatData_sr_BA.java \
-        sun/text/resources/sr/FormatData_sr_CS.java \
-        sun/text/resources/sr/FormatData_sr_ME.java \
-        sun/text/resources/sr/FormatData_sr_RS.java \
-        sun/text/resources/sr/FormatData_sr_Latn.java \
-        sun/text/resources/sr/FormatData_sr_Latn_ME.java \
-        sun/text/resources/sv/FormatData_sv.java \
-        sun/text/resources/sv/FormatData_sv_SE.java \
-        sun/text/resources/tr/FormatData_tr.java \
-        sun/text/resources/tr/FormatData_tr_TR.java \
-        sun/text/resources/uk/FormatData_uk.java \
-        sun/text/resources/uk/FormatData_uk_UA.java
+        sun/text/resources/en/FormatData_en_US.java
--- a/jdk/make/java/util/FILES_java.gmk	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/java/util/FILES_java.gmk	Mon Nov 05 10:33:18 2012 -0500
@@ -29,13 +29,4 @@
         sun/util/resources/LocaleNamesBundle.java \
         sun/util/resources/TimeZoneNamesBundle.java \
         sun/util/resources/TimeZoneNames.java \
-        sun/util/resources/de/TimeZoneNames_de.java \
-        sun/util/resources/en/TimeZoneNames_en.java \
-        sun/util/resources/en/TimeZoneNames_en_CA.java \
-        sun/util/resources/en/TimeZoneNames_en_GB.java \
-        sun/util/resources/en/TimeZoneNames_en_IE.java \
-        sun/util/resources/es/TimeZoneNames_es.java \
-        sun/util/resources/fr/TimeZoneNames_fr.java \
-        sun/util/resources/it/TimeZoneNames_it.java \
-        sun/util/resources/pt/TimeZoneNames_pt_BR.java \
-        sun/util/resources/sv/TimeZoneNames_sv.java
+        sun/util/resources/en/TimeZoneNames_en.java
--- a/jdk/make/java/util/FILES_properties.gmk	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/java/util/FILES_properties.gmk	Mon Nov 05 10:33:18 2012 -0500
@@ -25,189 +25,10 @@
 
 FILES_compiled_properties = \
         sun/util/resources/LocaleNames.properties \
-        sun/util/resources/be/LocaleNames_be.properties \
-        sun/util/resources/bg/LocaleNames_bg.properties \
-        sun/util/resources/ca/LocaleNames_ca.properties \
-        sun/util/resources/cs/LocaleNames_cs.properties \
-        sun/util/resources/da/LocaleNames_da.properties \
-        sun/util/resources/de/LocaleNames_de.properties \
-        sun/util/resources/el/LocaleNames_el.properties \
-        sun/util/resources/el/LocaleNames_el_CY.properties \
         sun/util/resources/en/LocaleNames_en.properties \
-        sun/util/resources/en/LocaleNames_en_MT.properties \
-        sun/util/resources/en/LocaleNames_en_PH.properties \
-        sun/util/resources/en/LocaleNames_en_SG.properties \
-        sun/util/resources/es/LocaleNames_es.properties \
-        sun/util/resources/es/LocaleNames_es_US.properties \
-        sun/util/resources/et/LocaleNames_et.properties \
-        sun/util/resources/fi/LocaleNames_fi.properties \
-        sun/util/resources/fr/LocaleNames_fr.properties \
-        sun/util/resources/ga/LocaleNames_ga.properties \
-        sun/util/resources/hr/LocaleNames_hr.properties \
-        sun/util/resources/hu/LocaleNames_hu.properties \
-        sun/util/resources/in/LocaleNames_in.properties \
-        sun/util/resources/is/LocaleNames_is.properties \
-        sun/util/resources/it/LocaleNames_it.properties \
-        sun/util/resources/lt/LocaleNames_lt.properties \
-        sun/util/resources/lv/LocaleNames_lv.properties \
-        sun/util/resources/mk/LocaleNames_mk.properties \
-        sun/util/resources/ms/LocaleNames_ms.properties \
-        sun/util/resources/mt/LocaleNames_mt.properties \
-        sun/util/resources/nl/LocaleNames_nl.properties \
-        sun/util/resources/no/LocaleNames_no.properties \
-        sun/util/resources/no/LocaleNames_no_NO_NY.properties \
-        sun/util/resources/pl/LocaleNames_pl.properties \
-        sun/util/resources/pt/LocaleNames_pt.properties \
-        sun/util/resources/pt/LocaleNames_pt_BR.properties \
-        sun/util/resources/pt/LocaleNames_pt_PT.properties \
-        sun/util/resources/ro/LocaleNames_ro.properties \
-        sun/util/resources/ru/LocaleNames_ru.properties \
-        sun/util/resources/sk/LocaleNames_sk.properties \
-        sun/util/resources/sl/LocaleNames_sl.properties \
-        sun/util/resources/sq/LocaleNames_sq.properties \
-        sun/util/resources/sr/LocaleNames_sr.properties \
-        sun/util/resources/sr/LocaleNames_sr_Latn.properties \
-        sun/util/resources/sv/LocaleNames_sv.properties \
-        sun/util/resources/tr/LocaleNames_tr.properties \
-        sun/util/resources/uk/LocaleNames_uk.properties \
 	\
         sun/util/resources/CalendarData.properties \
-        sun/util/resources/be/CalendarData_be.properties \
-        sun/util/resources/bg/CalendarData_bg.properties \
-        sun/util/resources/ca/CalendarData_ca.properties \
-        sun/util/resources/cs/CalendarData_cs.properties \
-        sun/util/resources/da/CalendarData_da.properties \
-        sun/util/resources/de/CalendarData_de.properties \
-        sun/util/resources/el/CalendarData_el.properties \
-        sun/util/resources/el/CalendarData_el_CY.properties \
         sun/util/resources/en/CalendarData_en.properties \
-        sun/util/resources/en/CalendarData_en_GB.properties \
-        sun/util/resources/en/CalendarData_en_IE.properties \
-        sun/util/resources/en/CalendarData_en_MT.properties \
-        sun/util/resources/es/CalendarData_es.properties \
-        sun/util/resources/es/CalendarData_es_ES.properties \
-        sun/util/resources/es/CalendarData_es_US.properties \
-        sun/util/resources/et/CalendarData_et.properties \
-        sun/util/resources/fi/CalendarData_fi.properties \
-        sun/util/resources/fr/CalendarData_fr.properties \
-        sun/util/resources/fr/CalendarData_fr_CA.properties \
-        sun/util/resources/hr/CalendarData_hr.properties \
-        sun/util/resources/hu/CalendarData_hu.properties \
-        sun/util/resources/in/CalendarData_in_ID.properties \
-        sun/util/resources/is/CalendarData_is.properties \
-        sun/util/resources/it/CalendarData_it.properties \
-        sun/util/resources/lt/CalendarData_lt.properties \
-        sun/util/resources/lv/CalendarData_lv.properties \
-        sun/util/resources/mk/CalendarData_mk.properties \
-        sun/util/resources/ms/CalendarData_ms_MY.properties \
-        sun/util/resources/mt/CalendarData_mt.properties \
-        sun/util/resources/mt/CalendarData_mt_MT.properties \
-        sun/util/resources/nl/CalendarData_nl.properties \
-        sun/util/resources/no/CalendarData_no.properties \
-        sun/util/resources/pl/CalendarData_pl.properties \
-        sun/util/resources/pt/CalendarData_pt.properties \
-        sun/util/resources/pt/CalendarData_pt_PT.properties \
-        sun/util/resources/ro/CalendarData_ro.properties \
-        sun/util/resources/ru/CalendarData_ru.properties \
-        sun/util/resources/sk/CalendarData_sk.properties \
-        sun/util/resources/sl/CalendarData_sl.properties \
-        sun/util/resources/sq/CalendarData_sq.properties \
-        sun/util/resources/sr/CalendarData_sr.properties \
-        sun/util/resources/sr/CalendarData_sr_Latn_BA.properties \
-        sun/util/resources/sr/CalendarData_sr_Latn_ME.properties \
-        sun/util/resources/sr/CalendarData_sr_Latn_RS.properties \
-        sun/util/resources/sv/CalendarData_sv.properties \
-        sun/util/resources/tr/CalendarData_tr.properties \
-        sun/util/resources/uk/CalendarData_uk.properties \
 	\
         sun/util/resources/CurrencyNames.properties \
-        sun/util/resources/be/CurrencyNames_be_BY.properties \
-        sun/util/resources/bg/CurrencyNames_bg_BG.properties \
-        sun/util/resources/ca/CurrencyNames_ca_ES.properties \
-        sun/util/resources/cs/CurrencyNames_cs_CZ.properties \
-        sun/util/resources/da/CurrencyNames_da_DK.properties \
-        sun/util/resources/de/CurrencyNames_de.properties \
-        sun/util/resources/de/CurrencyNames_de_AT.properties \
-        sun/util/resources/de/CurrencyNames_de_CH.properties \
-        sun/util/resources/de/CurrencyNames_de_DE.properties \
-        sun/util/resources/de/CurrencyNames_de_GR.properties \
-        sun/util/resources/de/CurrencyNames_de_LU.properties \
-        sun/util/resources/el/CurrencyNames_el_CY.properties \
-        sun/util/resources/el/CurrencyNames_el_GR.properties \
-        sun/util/resources/en/CurrencyNames_en_AU.properties \
-        sun/util/resources/en/CurrencyNames_en_CA.properties \
-        sun/util/resources/en/CurrencyNames_en_GB.properties \
-        sun/util/resources/en/CurrencyNames_en_IE.properties \
-        sun/util/resources/en/CurrencyNames_en_IN.properties \
-        sun/util/resources/en/CurrencyNames_en_MT.properties \
-        sun/util/resources/en/CurrencyNames_en_NZ.properties \
-        sun/util/resources/en/CurrencyNames_en_PH.properties \
-        sun/util/resources/en/CurrencyNames_en_SG.properties \
-        sun/util/resources/en/CurrencyNames_en_US.properties \
-        sun/util/resources/en/CurrencyNames_en_ZA.properties \
-        sun/util/resources/es/CurrencyNames_es.properties \
-        sun/util/resources/es/CurrencyNames_es_AR.properties \
-        sun/util/resources/es/CurrencyNames_es_BO.properties \
-        sun/util/resources/es/CurrencyNames_es_CL.properties \
-        sun/util/resources/es/CurrencyNames_es_CO.properties \
-        sun/util/resources/es/CurrencyNames_es_CR.properties \
-        sun/util/resources/es/CurrencyNames_es_CU.properties \
-        sun/util/resources/es/CurrencyNames_es_DO.properties \
-        sun/util/resources/es/CurrencyNames_es_EC.properties \
-        sun/util/resources/es/CurrencyNames_es_ES.properties \
-        sun/util/resources/es/CurrencyNames_es_GT.properties \
-        sun/util/resources/es/CurrencyNames_es_HN.properties \
-        sun/util/resources/es/CurrencyNames_es_MX.properties \
-        sun/util/resources/es/CurrencyNames_es_NI.properties \
-        sun/util/resources/es/CurrencyNames_es_PA.properties \
-        sun/util/resources/es/CurrencyNames_es_PE.properties \
-        sun/util/resources/es/CurrencyNames_es_PR.properties \
-        sun/util/resources/es/CurrencyNames_es_PY.properties \
-        sun/util/resources/es/CurrencyNames_es_SV.properties \
-        sun/util/resources/es/CurrencyNames_es_US.properties \
-        sun/util/resources/es/CurrencyNames_es_UY.properties \
-        sun/util/resources/es/CurrencyNames_es_VE.properties \
-        sun/util/resources/et/CurrencyNames_et_EE.properties \
-        sun/util/resources/fi/CurrencyNames_fi_FI.properties \
-        sun/util/resources/fr/CurrencyNames_fr.properties \
-        sun/util/resources/fr/CurrencyNames_fr_BE.properties \
-        sun/util/resources/fr/CurrencyNames_fr_CA.properties \
-        sun/util/resources/fr/CurrencyNames_fr_CH.properties \
-        sun/util/resources/fr/CurrencyNames_fr_FR.properties \
-        sun/util/resources/fr/CurrencyNames_fr_LU.properties \
-        sun/util/resources/ga/CurrencyNames_ga_IE.properties \
-        sun/util/resources/hr/CurrencyNames_hr_HR.properties \
-        sun/util/resources/hu/CurrencyNames_hu_HU.properties \
-        sun/util/resources/in/CurrencyNames_in_ID.properties \
-        sun/util/resources/is/CurrencyNames_is_IS.properties \
-        sun/util/resources/it/CurrencyNames_it.properties \
-        sun/util/resources/it/CurrencyNames_it_CH.properties \
-        sun/util/resources/it/CurrencyNames_it_IT.properties \
-        sun/util/resources/lt/CurrencyNames_lt_LT.properties \
-        sun/util/resources/lv/CurrencyNames_lv_LV.properties \
-        sun/util/resources/mk/CurrencyNames_mk_MK.properties \
-        sun/util/resources/ms/CurrencyNames_ms_MY.properties \
-        sun/util/resources/mt/CurrencyNames_mt_MT.properties \
-        sun/util/resources/nl/CurrencyNames_nl_BE.properties \
-        sun/util/resources/nl/CurrencyNames_nl_NL.properties \
-        sun/util/resources/no/CurrencyNames_no_NO.properties \
-        sun/util/resources/pl/CurrencyNames_pl_PL.properties \
-        sun/util/resources/pt/CurrencyNames_pt.properties \
-        sun/util/resources/pt/CurrencyNames_pt_BR.properties \
-        sun/util/resources/pt/CurrencyNames_pt_PT.properties \
-        sun/util/resources/ro/CurrencyNames_ro_RO.properties \
-        sun/util/resources/ru/CurrencyNames_ru_RU.properties \
-        sun/util/resources/sk/CurrencyNames_sk_SK.properties \
-        sun/util/resources/sl/CurrencyNames_sl_SI.properties \
-        sun/util/resources/sq/CurrencyNames_sq_AL.properties \
-        sun/util/resources/sr/CurrencyNames_sr_BA.properties \
-        sun/util/resources/sr/CurrencyNames_sr_CS.properties \
-        sun/util/resources/sr/CurrencyNames_sr_ME.properties \
-        sun/util/resources/sr/CurrencyNames_sr_RS.properties \
-        sun/util/resources/sr/CurrencyNames_sr_Latn_BA.properties \
-        sun/util/resources/sr/CurrencyNames_sr_Latn_ME.properties \
-        sun/util/resources/sr/CurrencyNames_sr_Latn_RS.properties \
-        sun/util/resources/sv/CurrencyNames_sv.properties \
-        sun/util/resources/sv/CurrencyNames_sv_SE.properties \
-        sun/util/resources/tr/CurrencyNames_tr_TR.properties \
-        sun/util/resources/uk/CurrencyNames_uk_UA.properties
+        sun/util/resources/en/CurrencyNames_en_US.properties
--- a/jdk/make/javax/crypto/Defs-jce.gmk	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/javax/crypto/Defs-jce.gmk	Mon Nov 05 10:33:18 2012 -0500
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2007, 2012, Oracle and/or its affiliates. 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,7 +31,7 @@
 JCE_MANIFEST_FILE    = $(TEMPDIR)/manifest.mf
 $(JCE_MANIFEST_FILE): $(MAINMANIFEST)
 	$(prep-target)
-	$(SED) -e "s#@@RELEASE@@#$(RELEASE)#"           \
+	$(SED) -e "s#@@RELEASE@@#$(JDK_VERSION)#"       \
                -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \
                $(MAINMANIFEST) >> $@
 	$(ECHO) "Extension-Name: javax.crypto" >> $@
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/jdk/Makefile	Mon Nov 05 10:33:18 2012 -0500
@@ -0,0 +1,38 @@
+#
+# Copyright (c) 1997, 2012, Oracle and/or its affiliates. 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.  Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+#
+# Makefile for building all of java
+#
+
+BUILDDIR = ..
+PRODUCT = jdk
+include $(BUILDDIR)/common/Defs.gmk
+
+SUBDIRS = asm
+include $(BUILDDIR)/common/Subdirs.gmk
+
+all build clean clobber::
+	$(SUBDIRS-loop)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/jdk/asm/Makefile	Mon Nov 05 10:33:18 2012 -0500
@@ -0,0 +1,40 @@
+#
+# Copyright (c) 1995, 2012, Oracle and/or its affiliates. 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.  Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+BUILDDIR = ../..
+PACKAGE = jdk.internal.org.objectweb.asm
+PRODUCT = jdk
+JAVAC_LINT_OPTIONS=-Xlint:all
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Files to compile
+#
+AUTO_FILES_JAVA_DIRS = jdk/internal/org/objectweb/asm
+
+#
+# Rules
+#
+include $(BUILDDIR)/common/Classes.gmk
--- a/jdk/make/jdk_generic_profile.sh	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/jdk_generic_profile.sh	Mon Nov 05 10:33:18 2012 -0500
@@ -176,17 +176,38 @@
   else
     windows_arch=i586
   fi
+
+  repo=`hg root | sed -e 's@\\\\@/@g'`
   # We need to check if we are running a CYGWIN shell
-  if [ "$(uname -a | fgrep Cygwin)" != "" -a -f /bin/cygpath ] ; then
+  if [ "$(echo ${osname} | fgrep Cygwin)" != "" -a -f /bin/cygpath ] ; then
     # For CYGWIN, uname will have "Cygwin" in it, and /bin/cygpath should exist
     # Utility to convert to short pathnames without spaces
     cygpath="/usr/bin/cygpath -a -m -s"
+    cygpathp="/usr/bin/cygpath -p"
     # Most unix utilities are in the /usr/bin
     unixcommand_path="/usr/bin"
     # Make the prompt tell you CYGWIN
     export PS1="CYGWIN:${COMPUTERNAME}:${USERNAME}[\!] "
+  elif [ "$(echo ${osname} | fgrep MINGW)" != "" ] ; then
+    # Utility to convert to short pathnames without spaces
+    cygpath="${repo}/make/tools/msys_build_scripts/dospath.sh"
+    if [ ! -f ${cygpath} ] ; then
+        echo "ERROR: Cannot find cygpath or equivalent on this machine"
+        exit 1
+    fi
+    # Utility to fix a path to MinGW/MSYS format - the equivalent of 'cygpath -p'
+    for tfile in "${repo}/make/scripts/fixpath.pl" "${repo}/../make/scripts/fixpath.pl"; do
+        if [ -f ${tfile} ] ; then
+            cygpathp="/bin/perl ${tfile} -m"
+        fi
+    done;
+    if [ -z "${cygpathp}" ] ; then
+        echo "ERROR: Cannot find make/scripts/fixpath.pl on this machine"
+        exit 1
+    fi
+    unixcommand_path="/usr/bin"
   else
-    echo "ERROR: Cannot find CYGWIN on this machine"
+    echo "ERROR: Cannot find CYGWIN or MinGW/MSYS on this machine"
     exit 1
   fi
   if [ "${ALT_UNIXCOMMAND_PATH}" != "" ] ; then
@@ -204,17 +225,18 @@
   else
     sys_root=$(${cygpath} "C:/WINNT")
   fi
-  path4sdk="${unixcommand_path};${sys_root}/system32;${sys_root};${sys_root}/System32/Wbem"
   if [ ! -d "${sys_root}" ] ; then
     echo "WARNING: No system root found at: ${sys_root}"
   fi
 
+  # Build a : separated path making sure each segment is acceptable to ${osname}
+  path4sdk="${unixcommand_path}:"`${cygpathp} "${sys_root}/system32;${sys_root};${sys_root}/System32/Wbem"`
+
   # Compiler setup (nasty part)
   #   NOTE: You can use vcvars32.bat to set PATH, LIB, and INCLUDE.
   #   NOTE: CYGWIN has a link.exe too, make sure the compilers are first
 
   # Use supplied vsvars.sh
-  repo=`hg root`
   if [ -f "${repo}/make/scripts/vsvars.sh" ] ; then
     eval `sh ${repo}/make/scripts/vsvars.sh -v10`
   elif [ -f "${repo}/../make/scripts/vsvars.sh" ] ; then
--- a/jdk/make/sun/Makefile	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/sun/Makefile	Mon Nov 05 10:33:18 2012 -0500
@@ -63,12 +63,6 @@
   LWAWT_SUBDIR = lwawt
 endif
 
-ifndef OPENJDK
-ifneq ($(PLATFORM), macosx)
-  JDBC_SUBDIR = jdbc
-endif
-endif
-
 ifdef OPENJDK
   RENDER_SUBDIR = pisces
 else
@@ -89,7 +83,7 @@
                      $(LWAWT_PRE_SUBDIR) $(DISPLAY_LIBS) $(DGA_SUBDIR) $(LWAWT_SUBDIR) \
                      jawt font jpeg cmm $(DISPLAY_TOOLS)
 SUBDIRS_management = management
-SUBDIRS_misc       = $(ORG_SUBDIR) rmi $(JDBC_SUBDIR) tracing
+SUBDIRS_misc       = $(ORG_SUBDIR) rmi tracing
 SUBDIRS_tools      = native2ascii serialver tools jconsole
 
 ifndef OPENJDK
--- a/jdk/make/sun/jdbc/Makefile	Mon Nov 05 10:30:49 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,142 +0,0 @@
-#
-# Copyright (c) 1996, 2011, Oracle and/or its affiliates. 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.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-
-#
-# Makefile for JDBC-ODBC Bridge Driver 
-#
-# Note - the native library for the bridge may be linked with the 
-# shared library for the ODBC driver manager.  Or dummy libraries
-# may be used to just create libJdbcOdbc.so with a dependency on
-# libodbc.so and libodbcinst.so.
-#
-
-BUILDDIR = ../..
-PACKAGE = sun.jdbc.odbc
-LIBRARY = JdbcOdbc
-PRODUCT = sun
-include $(BUILDDIR)/common/Defs.gmk
-
-#
-# Files
-#
-
-AUTO_FILES_JAVA_DIRS = sun/jdbc/odbc
-
-FILES_c = \
-	JdbcOdbc.c
-
-FILES_export = \
-    sun/jdbc/odbc/JdbcOdbc.java 
-
-# Use fake libraries on Solaris and Linux just so the library we create has
-#   a dependency on these two library names. (which are not part of the jdk)
-ifneq ($(PLATFORM), windows)
-  # In jdk5 and jdk6, and on Solaris 32bit, we would have required that
-  #    these two libraries exist at: $(ALT_ODBCDIR)/ISLIodbc/2.11/lib
-  #    In jdk7, we just fake them out like we did on Linux in jdk5 and jdk6.
-  #
-  # If you wanted to use the real odbc libraries, change the value of
-  #    ODBC_LIBRARY_LOCATION, and delete the variable assignments below.
-  #
-  # Tell linker to ignore missing externals when building this shared library.
-  LDFLAGS_DEFS_OPTION = -Xlinker -z -Xlinker nodefs
-  # Define a place to create the fake libraries and their names.
-  ODBC_LIBRARY_LOCATION = $(TEMPDIR)
-  ODBC_FAKE_LIBRARIES = $(ODBC_LIBRARY_LOCATION)/libodbcinst.so $(ODBC_LIBRARY_LOCATION)/libodbc.so
-  # Make sure they get created early.
-  INIT += $(ODBC_FAKE_LIBRARIES)
-endif
-
-#
-# Rules
-#
-include $(BUILDDIR)/common/Library.gmk
-
-#
-# The UNIX define specifies conditional compilation for UNIX
-#
-ifeq ($(PLATFORM), windows)
-  LDLIBS += odbc32.lib odbccp32.lib
-else
-  CFLAGS += -DUNIX
-  LDFLAGS += -L$(ODBC_LIBRARY_LOCATION) -lodbcinst -lodbc
-endif
-
-#
-# The native code for the bridge uses conditional compilation to 
-# support Solaris, Win95 and Mac PPC. This is the path to the shared C files
-# (which unfortunately are in the same directory as shared Java files).
-#
-vpath %.c $(CLOSED_SHARE_SRC)/classes/sun/jdbc/odbc
-
-#
-# Rules to generate fake libraries
-#
-
-ifdef ODBC_FAKE_LIBRARIES
-$(TEMPDIR)/dummyodbc.c: 
-	@$(prep-target)
-	$(ECHO) "void dummyOdbc(void){}" >> $@
-$(TEMPDIR)/dummyodbc.o: $(TEMPDIR)/dummyodbc.c
-	@$(prep-target)
-	$(COMPILE.c) $(CC_OBJECT_OUTPUT_FLAG)$@ $(CFLAGS_GPROF) $<
-$(ODBC_FAKE_LIBRARIES): $(TEMPDIR)/dummyodbc.o
-	@$(prep-target)
-	$(CC) $(SHARED_LIBRARY_FLAG) $(LDFLAGS_COMMON) -o $@ $< $(EXTRA_LIBS)
-clean::
-	$(RM) -f $(ODBC_FAKE_LIBRARIES)
-	$(RM) -f $(TEMPDIR)/dummyodbc.c
-	$(RM) -f $(TEMPDIR)/dummyodbc.o
-endif
-
-#
-# Files that need to be copied
-#
-SERVICEDIR = $(CLASSBINDIR)/META-INF/services
-
-FILES_copy = \
-	$(SERVICEDIR)/java.sql.Driver
-
-
-FILES_mkdirs = \
-	$(CLASSBINDIR)/META-INF \
-	$(CLASSBINDIR)/META-INF/services
-
-FILES_copydirs = \
-	$(CLASSBINDIR) \
-	$(FILES_mkdirs)
-
-build: copy-files
-
-copy-files: $(FILES_copy)
-
-$(SERVICEDIR)/%: $(CLOSED_SHARE_SRC)/classes/sun/jdbc/odbc/META-INF/services/%
-	$(install-file)
-
-clean clobber::
-	$(RM) $(FILES_copy)
-
-.PHONY: copy-files
-
--- a/jdk/make/sun/net/FILES_java.gmk	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/sun/net/FILES_java.gmk	Mon Nov 05 10:33:18 2012 -0500
@@ -128,8 +128,6 @@
 	sun/net/www/content/audio/x_wav.java \
 	sun/net/www/protocol/ftp/Handler.java \
 	sun/net/www/protocol/ftp/FtpURLConnection.java \
-	sun/net/www/protocol/gopher/GopherClient.java \
-	sun/net/www/protocol/gopher/Handler.java \
 	sun/net/www/protocol/mailto/Handler.java \
 	sun/net/www/protocol/mailto/MailToURLConnection.java \
 	sun/net/idn/Punycode.java \
--- a/jdk/make/sun/security/ec/Makefile	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/sun/security/ec/Makefile	Mon Nov 05 10:33:18 2012 -0500
@@ -246,9 +246,9 @@
 #
 # Build sunec.jar.
 #
-$(UNSIGNED_DIR)/sunec.jar: build
+$(UNSIGNED_DIR)/sunec.jar: build $(JCE_MANIFEST_FILE)
 	$(prep-target)
-	$(BOOT_JAR_CMD) cf $@ $(JAR_DIRS) \
+	$(BOOT_JAR_CMD) cmf $(JCE_MANIFEST_FILE) $@ $(JAR_DIRS) \
 	    $(BOOT_JAR_JFLAGS)
 	@$(java-vm-cleanup)
 
--- a/jdk/make/sun/security/mscapi/Makefile	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/sun/security/mscapi/Makefile	Mon Nov 05 10:33:18 2012 -0500
@@ -209,9 +209,9 @@
 #
 # Build sunmscapi.jar.
 #
-$(UNSIGNED_DIR)/sunmscapi.jar: build
+$(UNSIGNED_DIR)/sunmscapi.jar: build $(JCE_MANIFEST_FILE)
 	$(prep-target)
-	$(BOOT_JAR_CMD) cf $@ $(JAR_DIRS) \
+	$(BOOT_JAR_CMD) cmf $(JCE_MANIFEST_FILE) $@ $(JAR_DIRS) \
 	    $(BOOT_JAR_JFLAGS)
 	@$(java-vm-cleanup)
 
--- a/jdk/make/sun/security/pkcs11/Makefile	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/sun/security/pkcs11/Makefile	Mon Nov 05 10:33:18 2012 -0500
@@ -225,9 +225,9 @@
 #
 # Build sunpkcs11.jar.
 #
-$(UNSIGNED_DIR)/sunpkcs11.jar: build
+$(UNSIGNED_DIR)/sunpkcs11.jar: build $(JCE_MANIFEST_FILE)
 	$(prep-target)
-	$(BOOT_JAR_CMD) cf $@ $(JAR_DIRS) \
+	$(BOOT_JAR_CMD) cmf $(JCE_MANIFEST_FILE) $@ $(JAR_DIRS) \
 	    $(BOOT_JAR_JFLAGS)
 	@$(java-vm-cleanup)
 
--- a/jdk/make/sun/text/FILES_java.gmk	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/sun/text/FILES_java.gmk	Mon Nov 05 10:33:18 2012 -0500
@@ -24,10 +24,10 @@
 #
 
 # Locale data files for lib/ext/localedata.jar.
-# This includes resource bundles and data for non-European
+# This includes resource bundles and data for non-US
 # languages in sun.text.resources as well as sun.util.resources.
 #
-# Locale data for European languages is built from
+# Locale data for US languages is built from
 # - make/java/text for classes in sun.text.resources
 # - make/java/util for classes in sun.util.resources
 #
@@ -36,11 +36,39 @@
 		sun/text/resources/th/BreakIteratorInfo_th.java \
 		\
 		sun/text/resources/ar/CollationData_ar.java \
+                sun/text/resources/be/CollationData_be.java \
+                sun/text/resources/bg/CollationData_bg.java \
+                sun/text/resources/ca/CollationData_ca.java \
+                sun/text/resources/cs/CollationData_cs.java \
+                sun/text/resources/da/CollationData_da.java \
+                sun/text/resources/el/CollationData_el.java \
+                sun/text/resources/es/CollationData_es.java \
+                sun/text/resources/et/CollationData_et.java \
+                sun/text/resources/fi/CollationData_fi.java \
+                sun/text/resources/fr/CollationData_fr.java \
 		sun/text/resources/hi/CollationData_hi.java \
+                sun/text/resources/hr/CollationData_hr.java \
+                sun/text/resources/hu/CollationData_hu.java \
+                sun/text/resources/is/CollationData_is.java \
 		sun/text/resources/iw/CollationData_iw.java \
 		sun/text/resources/ja/CollationData_ja.java \
 		sun/text/resources/ko/CollationData_ko.java \
+                sun/text/resources/lt/CollationData_lt.java \
+                sun/text/resources/lv/CollationData_lv.java \
+                sun/text/resources/mk/CollationData_mk.java \
+                sun/text/resources/no/CollationData_no.java \
+                sun/text/resources/pl/CollationData_pl.java \
+                sun/text/resources/ro/CollationData_ro.java \
+                sun/text/resources/ru/CollationData_ru.java \
+                sun/text/resources/sk/CollationData_sk.java \
+                sun/text/resources/sl/CollationData_sl.java \
+                sun/text/resources/sq/CollationData_sq.java \
+                sun/text/resources/sr/CollationData_sr.java \
+                sun/text/resources/sr/CollationData_sr_Latn.java \
+                sun/text/resources/sv/CollationData_sv.java \
 		sun/text/resources/th/CollationData_th.java \
+                sun/text/resources/tr/CollationData_tr.java \
+                sun/text/resources/uk/CollationData_uk.java \
 		sun/text/resources/vi/CollationData_vi.java \
 		sun/text/resources/zh/CollationData_zh.java \
 		sun/text/resources/zh/CollationData_zh_HK.java \
@@ -50,15 +78,130 @@
 		sun/text/resources/ar/FormatData_ar_JO.java \
 		sun/text/resources/ar/FormatData_ar_LB.java \
 		sun/text/resources/ar/FormatData_ar_SY.java \
+                sun/text/resources/be/FormatData_be.java \
+                sun/text/resources/be/FormatData_be_BY.java \
+                sun/text/resources/bg/FormatData_bg.java \
+                sun/text/resources/bg/FormatData_bg_BG.java \
+                sun/text/resources/ca/FormatData_ca.java \
+                sun/text/resources/ca/FormatData_ca_ES.java \
+                sun/text/resources/cs/FormatData_cs.java \
+                sun/text/resources/cs/FormatData_cs_CZ.java \
+                sun/text/resources/da/FormatData_da.java \
+                sun/text/resources/da/FormatData_da_DK.java \
+                sun/text/resources/de/FormatData_de.java \
+                sun/text/resources/de/FormatData_de_AT.java \
+                sun/text/resources/de/FormatData_de_CH.java \
+                sun/text/resources/de/FormatData_de_DE.java \
+                sun/text/resources/de/FormatData_de_LU.java \
+                sun/text/resources/el/FormatData_el.java \
+                sun/text/resources/el/FormatData_el_CY.java \
+                sun/text/resources/el/FormatData_el_GR.java \
+                sun/text/resources/en/FormatData_en_AU.java \
+                sun/text/resources/en/FormatData_en_CA.java \
+                sun/text/resources/en/FormatData_en_GB.java \
+                sun/text/resources/en/FormatData_en_IE.java \
+                sun/text/resources/en/FormatData_en_IN.java \
+                sun/text/resources/en/FormatData_en_MT.java \
+                sun/text/resources/en/FormatData_en_NZ.java \
+                sun/text/resources/en/FormatData_en_PH.java \
+                sun/text/resources/en/FormatData_en_SG.java \
+                sun/text/resources/en/FormatData_en_ZA.java \
+                sun/text/resources/es/FormatData_es.java \
+                sun/text/resources/es/FormatData_es_BO.java \
+                sun/text/resources/es/FormatData_es_AR.java \
+                sun/text/resources/es/FormatData_es_CL.java \
+                sun/text/resources/es/FormatData_es_CO.java \
+                sun/text/resources/es/FormatData_es_CR.java \
+                sun/text/resources/es/FormatData_es_DO.java \
+                sun/text/resources/es/FormatData_es_EC.java \
+                sun/text/resources/es/FormatData_es_ES.java \
+                sun/text/resources/es/FormatData_es_GT.java \
+                sun/text/resources/es/FormatData_es_HN.java \
+                sun/text/resources/es/FormatData_es_MX.java \
+                sun/text/resources/es/FormatData_es_NI.java \
+                sun/text/resources/es/FormatData_es_PA.java \
+                sun/text/resources/es/FormatData_es_PE.java \
+                sun/text/resources/es/FormatData_es_PR.java \
+                sun/text/resources/es/FormatData_es_PY.java \
+                sun/text/resources/es/FormatData_es_SV.java \
+                sun/text/resources/es/FormatData_es_US.java \
+                sun/text/resources/es/FormatData_es_UY.java \
+                sun/text/resources/es/FormatData_es_VE.java \
+                sun/text/resources/et/FormatData_et.java \
+                sun/text/resources/et/FormatData_et_EE.java \
+                sun/text/resources/fi/FormatData_fi.java \
+                sun/text/resources/fi/FormatData_fi_FI.java \
+                sun/text/resources/fr/FormatData_fr.java \
+                sun/text/resources/fr/FormatData_fr_BE.java \
+                sun/text/resources/fr/FormatData_fr_CA.java \
+                sun/text/resources/fr/FormatData_fr_CH.java \
+                sun/text/resources/fr/FormatData_fr_FR.java \
+                sun/text/resources/ga/FormatData_ga.java \
+                sun/text/resources/ga/FormatData_ga_IE.java \
                 sun/text/resources/hi/FormatData_hi_IN.java \
+                sun/text/resources/hr/FormatData_hr.java \
+                sun/text/resources/hr/FormatData_hr_HR.java \
+                sun/text/resources/hu/FormatData_hu.java \
+                sun/text/resources/hu/FormatData_hu_HU.java \
+                sun/text/resources/in/FormatData_in.java \
+                sun/text/resources/in/FormatData_in_ID.java \
+                sun/text/resources/is/FormatData_is.java \
+                sun/text/resources/is/FormatData_is_IS.java \
+                sun/text/resources/it/FormatData_it.java \
+                sun/text/resources/it/FormatData_it_CH.java \
+                sun/text/resources/it/FormatData_it_IT.java \
 		sun/text/resources/iw/FormatData_iw.java \
 		sun/text/resources/iw/FormatData_iw_IL.java \
 		sun/text/resources/ja/FormatData_ja.java \
 		sun/text/resources/ja/FormatData_ja_JP.java \
 		sun/text/resources/ko/FormatData_ko.java \
 		sun/text/resources/ko/FormatData_ko_KR.java \
+                sun/text/resources/lt/FormatData_lt.java \
+                sun/text/resources/lt/FormatData_lt_LT.java \
+                sun/text/resources/lv/FormatData_lv.java \
+                sun/text/resources/lv/FormatData_lv_LV.java \
+                sun/text/resources/mk/FormatData_mk.java \
+                sun/text/resources/mk/FormatData_mk_MK.java \
+                sun/text/resources/ms/FormatData_ms.java \
+                sun/text/resources/ms/FormatData_ms_MY.java \
+                sun/text/resources/mt/FormatData_mt.java \
+                sun/text/resources/mt/FormatData_mt_MT.java \
+                sun/text/resources/nl/FormatData_nl.java \
+                sun/text/resources/nl/FormatData_nl_BE.java \
+                sun/text/resources/nl/FormatData_nl_NL.java \
+                sun/text/resources/no/FormatData_no.java \
+                sun/text/resources/no/FormatData_no_NO.java \
+                sun/text/resources/no/FormatData_no_NO_NY.java \
+                sun/text/resources/pl/FormatData_pl.java \
+                sun/text/resources/pl/FormatData_pl_PL.java \
+                sun/text/resources/pt/FormatData_pt.java \
+                sun/text/resources/pt/FormatData_pt_BR.java \
+                sun/text/resources/pt/FormatData_pt_PT.java \
+                sun/text/resources/ro/FormatData_ro.java \
+                sun/text/resources/ro/FormatData_ro_RO.java \
+                sun/text/resources/ru/FormatData_ru.java \
+                sun/text/resources/ru/FormatData_ru_RU.java \
+                sun/text/resources/sk/FormatData_sk.java \
+                sun/text/resources/sk/FormatData_sk_SK.java \
+                sun/text/resources/sl/FormatData_sl.java \
+                sun/text/resources/sl/FormatData_sl_SI.java \
+                sun/text/resources/sq/FormatData_sq.java \
+                sun/text/resources/sq/FormatData_sq_AL.java \
+                sun/text/resources/sr/FormatData_sr.java \
+                sun/text/resources/sr/FormatData_sr_BA.java \
+                sun/text/resources/sr/FormatData_sr_CS.java \
+                sun/text/resources/sr/FormatData_sr_ME.java \
+                sun/text/resources/sr/FormatData_sr_RS.java \
+                sun/text/resources/sr/FormatData_sr_Latn.java \
+                sun/text/resources/sr/FormatData_sr_Latn_ME.java \
+                sun/text/resources/sv/FormatData_sv.java \
+                sun/text/resources/sv/FormatData_sv_SE.java \
 		sun/text/resources/th/FormatData_th.java \
 		sun/text/resources/th/FormatData_th_TH.java \
+                sun/text/resources/tr/FormatData_tr.java \
+                sun/text/resources/tr/FormatData_tr_TR.java \
+                sun/text/resources/uk/FormatData_uk.java \
+                sun/text/resources/uk/FormatData_uk_UA.java \
 		sun/text/resources/vi/FormatData_vi.java \
 		sun/text/resources/vi/FormatData_vi_VN.java \
 		sun/text/resources/zh/FormatData_zh.java \
@@ -70,9 +213,18 @@
                 sun/util/resources/zh/CurrencyNames_zh_HK.java \
                 sun/util/resources/zh/CurrencyNames_zh_SG.java \
                 sun/util/resources/zh/LocaleNames_zh_HK.java \
+                sun/util/resources/de/TimeZoneNames_de.java \
+                sun/util/resources/en/TimeZoneNames_en_CA.java \
+                sun/util/resources/en/TimeZoneNames_en_GB.java \
+                sun/util/resources/en/TimeZoneNames_en_IE.java \
+                sun/util/resources/es/TimeZoneNames_es.java \
+                sun/util/resources/fr/TimeZoneNames_fr.java \
                 sun/util/resources/hi/TimeZoneNames_hi.java \
+                sun/util/resources/it/TimeZoneNames_it.java \
 		sun/util/resources/ja/TimeZoneNames_ja.java \
 		sun/util/resources/ko/TimeZoneNames_ko.java \
+                sun/util/resources/pt/TimeZoneNames_pt_BR.java \
+                sun/util/resources/sv/TimeZoneNames_sv.java \
 		sun/util/resources/zh/TimeZoneNames_zh_CN.java \
 		sun/util/resources/zh/TimeZoneNames_zh_TW.java \
 		sun/util/resources/zh/TimeZoneNames_zh_HK.java
--- a/jdk/make/sun/text/FILES_properties.gmk	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/sun/text/FILES_properties.gmk	Mon Nov 05 10:33:18 2012 -0500
@@ -25,22 +25,112 @@
 
 FILES_compiled_properties = \
         sun/util/resources/ar/LocaleNames_ar.properties \
+        sun/util/resources/be/LocaleNames_be.properties \
+        sun/util/resources/bg/LocaleNames_bg.properties \
+        sun/util/resources/ca/LocaleNames_ca.properties \
+        sun/util/resources/cs/LocaleNames_cs.properties \
+        sun/util/resources/da/LocaleNames_da.properties \
+        sun/util/resources/de/LocaleNames_de.properties \
+        sun/util/resources/el/LocaleNames_el.properties \
+        sun/util/resources/el/LocaleNames_el_CY.properties \
+        sun/util/resources/en/LocaleNames_en_MT.properties \
+        sun/util/resources/en/LocaleNames_en_PH.properties \
+        sun/util/resources/en/LocaleNames_en_SG.properties \
+        sun/util/resources/es/LocaleNames_es.properties \
+        sun/util/resources/es/LocaleNames_es_US.properties \
+        sun/util/resources/et/LocaleNames_et.properties \
+        sun/util/resources/fi/LocaleNames_fi.properties \
+        sun/util/resources/fr/LocaleNames_fr.properties \
+        sun/util/resources/ga/LocaleNames_ga.properties \
         sun/util/resources/hi/LocaleNames_hi.properties \
+        sun/util/resources/hr/LocaleNames_hr.properties \
+        sun/util/resources/hu/LocaleNames_hu.properties \
+        sun/util/resources/in/LocaleNames_in.properties \
+        sun/util/resources/is/LocaleNames_is.properties \
+        sun/util/resources/it/LocaleNames_it.properties \
         sun/util/resources/iw/LocaleNames_iw.properties \
         sun/util/resources/ja/LocaleNames_ja.properties \
         sun/util/resources/ko/LocaleNames_ko.properties \
+        sun/util/resources/lt/LocaleNames_lt.properties \
+        sun/util/resources/lv/LocaleNames_lv.properties \
+        sun/util/resources/mk/LocaleNames_mk.properties \
+        sun/util/resources/ms/LocaleNames_ms.properties \
+        sun/util/resources/mt/LocaleNames_mt.properties \
+        sun/util/resources/nl/LocaleNames_nl.properties \
+        sun/util/resources/no/LocaleNames_no.properties \
+        sun/util/resources/no/LocaleNames_no_NO_NY.properties \
+        sun/util/resources/pl/LocaleNames_pl.properties \
+        sun/util/resources/pt/LocaleNames_pt.properties \
+        sun/util/resources/pt/LocaleNames_pt_BR.properties \
+        sun/util/resources/pt/LocaleNames_pt_PT.properties \
+        sun/util/resources/ro/LocaleNames_ro.properties \
+        sun/util/resources/ru/LocaleNames_ru.properties \
+        sun/util/resources/sk/LocaleNames_sk.properties \
+        sun/util/resources/sl/LocaleNames_sl.properties \
+        sun/util/resources/sq/LocaleNames_sq.properties \
+        sun/util/resources/sr/LocaleNames_sr.properties \
+        sun/util/resources/sr/LocaleNames_sr_Latn.properties \
+        sun/util/resources/sv/LocaleNames_sv.properties \
         sun/util/resources/th/LocaleNames_th.properties \
+        sun/util/resources/tr/LocaleNames_tr.properties \
+        sun/util/resources/uk/LocaleNames_uk.properties \
         sun/util/resources/vi/LocaleNames_vi.properties \
         sun/util/resources/zh/LocaleNames_zh.properties \
         sun/util/resources/zh/LocaleNames_zh_SG.properties \
         sun/util/resources/zh/LocaleNames_zh_TW.properties \
 	\
         sun/util/resources/ar/CalendarData_ar.properties \
+        sun/util/resources/be/CalendarData_be.properties \
+        sun/util/resources/bg/CalendarData_bg.properties \
+        sun/util/resources/ca/CalendarData_ca.properties \
+        sun/util/resources/cs/CalendarData_cs.properties \
+        sun/util/resources/da/CalendarData_da.properties \
+        sun/util/resources/de/CalendarData_de.properties \
+        sun/util/resources/el/CalendarData_el.properties \
+        sun/util/resources/el/CalendarData_el_CY.properties \
+        sun/util/resources/en/CalendarData_en_GB.properties \
+        sun/util/resources/en/CalendarData_en_IE.properties \
+        sun/util/resources/en/CalendarData_en_MT.properties \
+        sun/util/resources/es/CalendarData_es.properties \
+        sun/util/resources/es/CalendarData_es_ES.properties \
+        sun/util/resources/es/CalendarData_es_US.properties \
+        sun/util/resources/et/CalendarData_et.properties \
+        sun/util/resources/fi/CalendarData_fi.properties \
+        sun/util/resources/fr/CalendarData_fr.properties \
+        sun/util/resources/fr/CalendarData_fr_CA.properties \
         sun/util/resources/hi/CalendarData_hi.properties \
+        sun/util/resources/hr/CalendarData_hr.properties \
+        sun/util/resources/hu/CalendarData_hu.properties \
+        sun/util/resources/in/CalendarData_in_ID.properties \
+        sun/util/resources/is/CalendarData_is.properties \
+        sun/util/resources/it/CalendarData_it.properties \
         sun/util/resources/iw/CalendarData_iw.properties \
         sun/util/resources/ja/CalendarData_ja.properties \
         sun/util/resources/ko/CalendarData_ko.properties \
+        sun/util/resources/lt/CalendarData_lt.properties \
+        sun/util/resources/lv/CalendarData_lv.properties \
+        sun/util/resources/mk/CalendarData_mk.properties \
+        sun/util/resources/ms/CalendarData_ms_MY.properties \
+        sun/util/resources/mt/CalendarData_mt.properties \
+        sun/util/resources/mt/CalendarData_mt_MT.properties \
+        sun/util/resources/nl/CalendarData_nl.properties \
+        sun/util/resources/no/CalendarData_no.properties \
+        sun/util/resources/pl/CalendarData_pl.properties \
+        sun/util/resources/pt/CalendarData_pt.properties \
+        sun/util/resources/pt/CalendarData_pt_PT.properties \
+        sun/util/resources/ro/CalendarData_ro.properties \
+        sun/util/resources/ru/CalendarData_ru.properties \
+        sun/util/resources/sk/CalendarData_sk.properties \
+        sun/util/resources/sl/CalendarData_sl.properties \
+        sun/util/resources/sq/CalendarData_sq.properties \
+        sun/util/resources/sr/CalendarData_sr.properties \
+        sun/util/resources/sr/CalendarData_sr_Latn_BA.properties \
+        sun/util/resources/sr/CalendarData_sr_Latn_ME.properties \
+        sun/util/resources/sr/CalendarData_sr_Latn_RS.properties \
+        sun/util/resources/sv/CalendarData_sv.properties \
         sun/util/resources/th/CalendarData_th.properties \
+        sun/util/resources/tr/CalendarData_tr.properties \
+        sun/util/resources/uk/CalendarData_uk.properties \
         sun/util/resources/vi/CalendarData_vi.properties \
         sun/util/resources/zh/CalendarData_zh.properties \
 	\
@@ -61,13 +151,102 @@
         sun/util/resources/ar/CurrencyNames_ar_SY.properties \
         sun/util/resources/ar/CurrencyNames_ar_TN.properties \
         sun/util/resources/ar/CurrencyNames_ar_YE.properties \
+        sun/util/resources/be/CurrencyNames_be_BY.properties \
+        sun/util/resources/bg/CurrencyNames_bg_BG.properties \
+        sun/util/resources/ca/CurrencyNames_ca_ES.properties \
+        sun/util/resources/cs/CurrencyNames_cs_CZ.properties \
+        sun/util/resources/da/CurrencyNames_da_DK.properties \
+        sun/util/resources/de/CurrencyNames_de.properties \
+        sun/util/resources/de/CurrencyNames_de_AT.properties \
+        sun/util/resources/de/CurrencyNames_de_CH.properties \
+        sun/util/resources/de/CurrencyNames_de_DE.properties \
+        sun/util/resources/de/CurrencyNames_de_GR.properties \
+        sun/util/resources/de/CurrencyNames_de_LU.properties \
+        sun/util/resources/el/CurrencyNames_el_CY.properties \
+        sun/util/resources/el/CurrencyNames_el_GR.properties \
+        sun/util/resources/en/CurrencyNames_en_AU.properties \
+        sun/util/resources/en/CurrencyNames_en_CA.properties \
+        sun/util/resources/en/CurrencyNames_en_GB.properties \
+        sun/util/resources/en/CurrencyNames_en_IE.properties \
+        sun/util/resources/en/CurrencyNames_en_IN.properties \
+        sun/util/resources/en/CurrencyNames_en_MT.properties \
+        sun/util/resources/en/CurrencyNames_en_NZ.properties \
+        sun/util/resources/en/CurrencyNames_en_PH.properties \
+        sun/util/resources/en/CurrencyNames_en_SG.properties \
+        sun/util/resources/en/CurrencyNames_en_ZA.properties \
+        sun/util/resources/es/CurrencyNames_es.properties \
+        sun/util/resources/es/CurrencyNames_es_AR.properties \
+        sun/util/resources/es/CurrencyNames_es_BO.properties \
+        sun/util/resources/es/CurrencyNames_es_CL.properties \
+        sun/util/resources/es/CurrencyNames_es_CO.properties \
+        sun/util/resources/es/CurrencyNames_es_CR.properties \
+        sun/util/resources/es/CurrencyNames_es_CU.properties \
+        sun/util/resources/es/CurrencyNames_es_DO.properties \
+        sun/util/resources/es/CurrencyNames_es_EC.properties \
+        sun/util/resources/es/CurrencyNames_es_ES.properties \
+        sun/util/resources/es/CurrencyNames_es_GT.properties \
+        sun/util/resources/es/CurrencyNames_es_HN.properties \
+        sun/util/resources/es/CurrencyNames_es_MX.properties \
+        sun/util/resources/es/CurrencyNames_es_NI.properties \
+        sun/util/resources/es/CurrencyNames_es_PA.properties \
+        sun/util/resources/es/CurrencyNames_es_PE.properties \
+        sun/util/resources/es/CurrencyNames_es_PR.properties \
+        sun/util/resources/es/CurrencyNames_es_PY.properties \
+        sun/util/resources/es/CurrencyNames_es_SV.properties \
+        sun/util/resources/es/CurrencyNames_es_US.properties \
+        sun/util/resources/es/CurrencyNames_es_UY.properties \
+        sun/util/resources/es/CurrencyNames_es_VE.properties \
+        sun/util/resources/et/CurrencyNames_et_EE.properties \
+        sun/util/resources/fi/CurrencyNames_fi_FI.properties \
+        sun/util/resources/fr/CurrencyNames_fr.properties \
+        sun/util/resources/fr/CurrencyNames_fr_BE.properties \
+        sun/util/resources/fr/CurrencyNames_fr_CA.properties \
+        sun/util/resources/fr/CurrencyNames_fr_CH.properties \
+        sun/util/resources/fr/CurrencyNames_fr_FR.properties \
+        sun/util/resources/fr/CurrencyNames_fr_LU.properties \
+        sun/util/resources/ga/CurrencyNames_ga_IE.properties \
         sun/util/resources/hi/CurrencyNames_hi_IN.properties \
+        sun/util/resources/hr/CurrencyNames_hr_HR.properties \
+        sun/util/resources/hu/CurrencyNames_hu_HU.properties \
+        sun/util/resources/in/CurrencyNames_in_ID.properties \
+        sun/util/resources/is/CurrencyNames_is_IS.properties \
+        sun/util/resources/it/CurrencyNames_it.properties \
+        sun/util/resources/it/CurrencyNames_it_CH.properties \
+        sun/util/resources/it/CurrencyNames_it_IT.properties \
         sun/util/resources/iw/CurrencyNames_iw_IL.properties \
         sun/util/resources/ja/CurrencyNames_ja.properties \
         sun/util/resources/ja/CurrencyNames_ja_JP.properties \
         sun/util/resources/ko/CurrencyNames_ko.properties \
         sun/util/resources/ko/CurrencyNames_ko_KR.properties \
+        sun/util/resources/lt/CurrencyNames_lt_LT.properties \
+        sun/util/resources/lv/CurrencyNames_lv_LV.properties \
+        sun/util/resources/mk/CurrencyNames_mk_MK.properties \
+        sun/util/resources/ms/CurrencyNames_ms_MY.properties \
+        sun/util/resources/mt/CurrencyNames_mt_MT.properties \
+        sun/util/resources/nl/CurrencyNames_nl_BE.properties \
+        sun/util/resources/nl/CurrencyNames_nl_NL.properties \
+        sun/util/resources/no/CurrencyNames_no_NO.properties \
+        sun/util/resources/pl/CurrencyNames_pl_PL.properties \
+        sun/util/resources/pt/CurrencyNames_pt.properties \
+        sun/util/resources/pt/CurrencyNames_pt_BR.properties \
+        sun/util/resources/pt/CurrencyNames_pt_PT.properties \
+        sun/util/resources/ro/CurrencyNames_ro_RO.properties \
+        sun/util/resources/ru/CurrencyNames_ru_RU.properties \
+        sun/util/resources/sk/CurrencyNames_sk_SK.properties \
+        sun/util/resources/sl/CurrencyNames_sl_SI.properties \
+        sun/util/resources/sq/CurrencyNames_sq_AL.properties \
+        sun/util/resources/sr/CurrencyNames_sr_BA.properties \
+        sun/util/resources/sr/CurrencyNames_sr_CS.properties \
+        sun/util/resources/sr/CurrencyNames_sr_ME.properties \
+        sun/util/resources/sr/CurrencyNames_sr_RS.properties \
+        sun/util/resources/sr/CurrencyNames_sr_Latn_BA.properties \
+        sun/util/resources/sr/CurrencyNames_sr_Latn_ME.properties \
+        sun/util/resources/sr/CurrencyNames_sr_Latn_RS.properties \
+        sun/util/resources/sv/CurrencyNames_sv.properties \
+        sun/util/resources/sv/CurrencyNames_sv_SE.properties \
         sun/util/resources/th/CurrencyNames_th_TH.properties \
+        sun/util/resources/tr/CurrencyNames_tr_TR.properties \
+        sun/util/resources/uk/CurrencyNames_uk_UA.properties \
         sun/util/resources/vi/CurrencyNames_vi_VN.properties \
         sun/util/resources/zh/CurrencyNames_zh_CN.properties \
         sun/util/resources/zh/CurrencyNames_zh_TW.properties
--- a/jdk/make/tools/freetypecheck/Makefile	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/tools/freetypecheck/Makefile	Mon Nov 05 10:33:18 2012 -0500
@@ -37,11 +37,11 @@
 
 # Start with CFLAGS (which gets us the required -xarch setting on solaris)
 ifeq ($(PLATFORM), windows)
-  FT_OPTIONS  = /nologo /c
+  FT_OPTIONS  = -nologo -c
   FREETYPE_DLL = $(FREETYPE_LIB_PATH)/freetype.dll
   FT_LD_OPTIONS  = $(FREETYPE_LIB_PATH)/freetype.lib
   ifdef MT
-    FT_LD_OPTIONS += /manifest
+    FT_LD_OPTIONS += -manifest
   endif
 else
   FT_OPTIONS  = $(CFLAGS)
@@ -72,11 +72,11 @@
 	$(prep-target)
 ifeq ($(PLATFORM), windows)
 	$(CC) $(FT_OPTIONS) $(CC_OBJECT_OUTPUT_FLAG)$(FT_OBJ) $<
-	$(LINK) $(FT_LD_OPTIONS) /OUT:$(FT_TEST) $(FT_OBJ)
+	$(LINK) $(FT_LD_OPTIONS) -OUT:$(FT_TEST) $(FT_OBJ)
 	$(CP) $(FREETYPE_DLL) $(@D)/
   ifdef MT
 	$(CP) $(MSVCRNN_DLL_PATH)/$(MSVCRNN_DLL) $(@D)/
-	$(MT) /manifest $(FT_TEST).manifest /outputresource:$(FT_TEST);#1
+	$(MT) -manifest $(FT_TEST).manifest -outputresource:$(FT_TEST);#1
   endif
 else
 	@$(CC) $(FT_OPTIONS) -o $@ $< $(FT_LD_OPTIONS)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/msys_build_scripts/dospath.sh	Mon Nov 05 10:33:18 2012 -0500
@@ -0,0 +1,42 @@
+#
+# Copyright (c) 2012, Oracle and/or its affiliates. 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.  Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# A shell script which converts its first argument, which must be an existing 
+# path name, into a DOS (aka 8.3) path name. If the path is a file, only the 
+# directory part of the whole path will be converted.
+# This shell script executes the Visual Basic helper script 'dospath.vbs'
+# which must be located in the same directory as this script itself.
+# The Visual Basic script will be invoked trough the "Windows Script Host"
+# which is available by default on Windows since Windows 98.
+
+pushd `dirname "$0"` > /dev/null
+ABS_PATH=`pwd`
+popd > /dev/null
+if [ -d "$1" ]; then
+  echo `cd "$1" && cscript.exe -nologo $ABS_PATH/dospath.vbs`;
+elif [ -f "$1" ]; then
+  DIR=`dirname "$1"`;
+  echo `cd "$DIR" && cscript.exe -nologo $ABS_PATH/dospath.vbs`\\`basename "$1"`;
+fi
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/msys_build_scripts/dospath.vbs	Mon Nov 05 10:33:18 2012 -0500
@@ -0,0 +1,34 @@
+'
+' Copyright (c) 2012, Oracle and/or its affiliates. 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.  Oracle designates this
+' particular file as subject to the "Classpath" exception as provided
+' by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+' or visit www.oracle.com if you need additional information or have any
+' questions.
+'
+
+'
+' Visual Basic Script which returns the DOS (aka 8.3) filename of the current
+' directory.
+' Only called from 'dospath.sh' during a Windows build under MinGW/MSYS.
+'
+
+Set fso=CreateObject("Scripting.FileSystemObject")
+Set path = fso.GetFolder(".")
+WScript.Echo path.ShortPath
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/generatenimbus/AbstractGradient.java	Mon Nov 05 10:33:18 2012 -0500
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package build.tools.generatenimbus;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlElement;
+
+class AbstractGradient extends Paint {
+    public static enum CycleMethod {
+        NO_CYCLE, REFLECT, REPEAT
+    }
+
+    @XmlElement(name="stop") private ArrayList<GradientStop> stops;
+    public List<GradientStop> getStops() { return stops; }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/generatenimbus/Border.java	Mon Nov 05 10:33:18 2012 -0500
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package build.tools.generatenimbus;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlEnumValue;
+
+class Border {
+    enum BorderType {
+        @XmlEnumValue("empty") EMPTY,
+        @XmlEnumValue("painter") PAINTER
+    }
+    @XmlAttribute private BorderType type;
+    @XmlAttribute private String painter;
+    @XmlAttribute private int top;
+    @XmlAttribute private int left;
+    @XmlAttribute private int bottom;
+    @XmlAttribute private int right;
+
+    public String write() {
+        switch (type) {
+            case PAINTER:
+                return String.format("new PainterBorder(\"%s\", new Insets(%d, %d, %d, %d))",
+                                     painter, top, left, bottom, right);
+            case EMPTY:
+                return String.format("BorderFactory.createEmptyBorder(%d, %d, %d, %d)",
+                                     top, left, bottom, right);
+            default:
+                return "### Look, here's an unknown border! $$$";
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/generatenimbus/Canvas.java	Mon Nov 05 10:33:18 2012 -0500
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package build.tools.generatenimbus;
+
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlElement;
+
+class Canvas {
+    @XmlElement private Dimension size;
+    public Dimension getSize() { return size; }
+
+    @XmlElement(name="layer") private List<Layer> layers;
+    public List<Layer> getLayers() { return layers; }
+
+    @XmlElement private Insets stretchingInsets = null;
+    public Insets getStretchingInsets() { return stretchingInsets; }
+
+    public boolean isBlank() {
+        return layers.size() == 0 || (layers.size() == 1 && layers.get(0).isEmpty());
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/generatenimbus/ComponentColor.java	Mon Nov 05 10:33:18 2012 -0500
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package build.tools.generatenimbus;
+
+class ComponentColor {
+    private String propertyName;
+    private String defaultColorVariableName;
+    private float saturationOffset = 0,  brightnessOffset = 0;
+    private int alphaOffset = 0;
+
+    ComponentColor(String propertyName,
+            String defaultColorVariableName,
+            float saturationOffset,
+            float brightnessOffset,
+            int alphaOffset) {
+        this.propertyName = propertyName;
+        this.defaultColorVariableName = defaultColorVariableName;
+        this.saturationOffset = saturationOffset;
+        this.brightnessOffset = brightnessOffset;
+        this.alphaOffset = alphaOffset;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+
+        ComponentColor c = (ComponentColor) o;
+        if (alphaOffset != c.alphaOffset) {
+            return false;
+        }
+        if (Float.compare(saturationOffset, c.saturationOffset) != 0) {
+            return false;
+        }
+        if (Float.compare(brightnessOffset, c.brightnessOffset) != 0) {
+            return false;
+        }
+        if (defaultColorVariableName != null ? !defaultColorVariableName.equals(c.defaultColorVariableName) : c.defaultColorVariableName != null) {
+            return false;
+        }
+        if (propertyName != null ? !propertyName.equals(c.propertyName) : c.propertyName != null) {
+            return false;
+        }
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int hash = 5;
+        hash = 61 * hash + (this.propertyName != null ? this.propertyName.hashCode() : 0);
+        hash = 61 * hash + (this.defaultColorVariableName != null ? this.defaultColorVariableName.hashCode() : 0);
+        hash = 61 * hash + Float.floatToIntBits(this.saturationOffset);
+        hash = 61 * hash + Float.floatToIntBits(this.brightnessOffset);
+        hash = 61 * hash + this.alphaOffset;
+        return hash;
+    }
+
+    public void write(StringBuilder sb) {
+        sb.append("                     getComponentColor(c, \"").
+           append(propertyName).append("\", ").
+           append(defaultColorVariableName).append(", ").
+           append(saturationOffset).append("f, ").
+           append(brightnessOffset).append("f, ").
+           append(alphaOffset);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/generatenimbus/Dimension.java	Mon Nov 05 10:33:18 2012 -0500
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package build.tools.generatenimbus;
+
+import javax.xml.bind.annotation.XmlAttribute;
+
+class Dimension {
+    @XmlAttribute int width;
+    @XmlAttribute int height;
+
+    public String write(boolean uiResource) {
+        String uiSuffix = (uiResource ? "UIResource" : "");
+        return String.format("new Dimension%s(%d, %d)", uiSuffix, width, height);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/generatenimbus/Ellipse.java	Mon Nov 05 10:33:18 2012 -0500
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package build.tools.generatenimbus;
+
+import javax.xml.bind.annotation.XmlAttribute;
+
+class Ellipse extends Shape {
+    @XmlAttribute private double x1;
+    public double getX1() { return x1; }
+
+    @XmlAttribute private double x2;
+    public double getX2() { return x2; }
+
+    @XmlAttribute private double y1;
+    public double getY1() { return y1; }
+
+    @XmlAttribute private double y2;
+    public double getY2() { return y2; }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/generatenimbus/Gradient.java	Mon Nov 05 10:33:18 2012 -0500
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package build.tools.generatenimbus;
+
+class Gradient extends AbstractGradient {
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/generatenimbus/GradientStop.java	Mon Nov 05 10:33:18 2012 -0500
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package build.tools.generatenimbus;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+
+class GradientStop {
+    @XmlAttribute private float position;
+    public float getPosition() { return position; }
+
+    @XmlAttribute private float midpoint;
+    public float getMidpoint() { return midpoint; }
+
+    @XmlElement private Matte matte;
+    public Matte getColor() { return matte; }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/generatenimbus/Insets.java	Mon Nov 05 10:33:18 2012 -0500
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package build.tools.generatenimbus;
+
+import javax.xml.bind.annotation.XmlAttribute;
+
+class Insets {
+    @XmlAttribute int top;
+    @XmlAttribute int left;
+    @XmlAttribute int bottom;
+    @XmlAttribute int right;
+
+    public Insets() {
+        this(0, 0, 0, 0);
+    }
+
+    public Insets(int top, int left, int bottom, int right) {
+        this.top = top;
+        this.left = left;
+        this.bottom = bottom;
+        this.right = right;
+    }
+
+    public String write(boolean uiResource) {
+        String uiSuffix = (uiResource ? "UIResource" : "");
+        return String.format("new Insets%s(%d, %d, %d, %d)",
+                             uiSuffix, top, left, bottom, right);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/generatenimbus/Layer.java	Mon Nov 05 10:33:18 2012 -0500
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package build.tools.generatenimbus;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
+import javax.xml.bind.annotation.XmlElements;
+
+class Layer {
+    /** List of shapes in this layer, first shape is painted on top */
+    @XmlElements({
+        @XmlElement(name = "ellipse", type = Ellipse.class),
+        @XmlElement(name = "path", type = Path.class),
+        @XmlElement(name = "rectangle", type = Rectangle.class)
+    })
+    @XmlElementWrapper(name="shapes")
+    private List<Shape> shapes = new ArrayList<Shape>();
+    public List<Shape> getShapes() { return shapes; }
+
+    public boolean isEmpty() {
+        return shapes.isEmpty();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/generatenimbus/Matte.java	Mon Nov 05 10:33:18 2012 -0500
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package build.tools.generatenimbus;
+
+import javax.xml.bind.annotation.XmlAttribute;
+
+class Matte extends Paint {
+    @XmlAttribute private int red;
+    @XmlAttribute private int green;
+    @XmlAttribute private int blue;
+    @XmlAttribute private int alpha;
+
+    @XmlAttribute private String uiDefaultParentName = null;
+    @XmlAttribute private float hueOffset = 0;
+    @XmlAttribute private float saturationOffset = 0;
+    @XmlAttribute private float brightnessOffset = 0;
+    @XmlAttribute private int alphaOffset = 0;
+
+    @XmlAttribute private String componentPropertyName = null;
+    public String getComponentPropertyName() { return componentPropertyName; }
+
+    @XmlAttribute private boolean uiResource = true;
+
+    public boolean isAbsolute() {
+        return uiDefaultParentName == null;
+    }
+
+    public String getDeclaration() {
+        if (isAbsolute()) {
+            return String.format("new Color(%d, %d, %d, %d)",
+                                 red, green, blue, alpha);
+        } else {
+            return String.format("decodeColor(\"%s\", %sf, %sf, %sf, %d)",
+                    uiDefaultParentName, String.valueOf(hueOffset),
+                    String.valueOf(saturationOffset),
+                    String.valueOf(brightnessOffset), alphaOffset);
+        }
+    }
+
+    public String write() {
+        if (isAbsolute()) {
+            return String.format("%s, %s, %s, %s", red, green, blue, alpha);
+        } else {
+            String s = String.format("\"%s\", %sf, %sf, %sf, %d",
+                    uiDefaultParentName, String.valueOf(hueOffset),
+                    String.valueOf(saturationOffset),
+                    String.valueOf(brightnessOffset), alphaOffset);
+            if (! uiResource) {
+                s += ", false";
+            }
+            return s;
+        }
+    }
+
+    public ComponentColor createComponentColor(String variableName) {
+        return new ComponentColor(componentPropertyName, variableName,
+                saturationOffset, brightnessOffset, alphaOffset);
+    }
+}
--- a/jdk/make/tools/src/build/tools/generatenimbus/Paint.java	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/tools/src/build/tools/generatenimbus/Paint.java	Mon Nov 05 10:33:18 2012 -0500
@@ -25,157 +25,6 @@
 
 package build.tools.generatenimbus;
 
-import java.util.ArrayList;
-import java.util.List;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
 
 public abstract class Paint {
 }
-
-class Matte extends Paint {
-    @XmlAttribute private int red;
-    @XmlAttribute private int green;
-    @XmlAttribute private int blue;
-    @XmlAttribute private int alpha;
-
-    @XmlAttribute private String uiDefaultParentName = null;
-    @XmlAttribute private float hueOffset = 0;
-    @XmlAttribute private float saturationOffset = 0;
-    @XmlAttribute private float brightnessOffset = 0;
-    @XmlAttribute private int alphaOffset = 0;
-
-    @XmlAttribute private String componentPropertyName = null;
-    public String getComponentPropertyName() { return componentPropertyName; }
-
-    @XmlAttribute private boolean uiResource = true;
-
-    public boolean isAbsolute() {
-        return uiDefaultParentName == null;
-    }
-
-    public String getDeclaration() {
-        if (isAbsolute()) {
-            return String.format("new Color(%d, %d, %d, %d)",
-                                 red, green, blue, alpha);
-        } else {
-            return String.format("decodeColor(\"%s\", %sf, %sf, %sf, %d)",
-                    uiDefaultParentName, String.valueOf(hueOffset),
-                    String.valueOf(saturationOffset),
-                    String.valueOf(brightnessOffset), alphaOffset);
-        }
-    }
-
-    public String write() {
-        if (isAbsolute()) {
-            return String.format("%s, %s, %s, %s", red, green, blue, alpha);
-        } else {
-            String s = String.format("\"%s\", %sf, %sf, %sf, %d",
-                    uiDefaultParentName, String.valueOf(hueOffset),
-                    String.valueOf(saturationOffset),
-                    String.valueOf(brightnessOffset), alphaOffset);
-            if (! uiResource) {
-                s += ", false";
-            }
-            return s;
-        }
-    }
-
-    public ComponentColor createComponentColor(String variableName) {
-        return new ComponentColor(componentPropertyName, variableName,
-                saturationOffset, brightnessOffset, alphaOffset);
-    }
-}
-
-class ComponentColor {
-    private String propertyName;
-    private String defaultColorVariableName;
-    private float saturationOffset = 0,  brightnessOffset = 0;
-    private int alphaOffset = 0;
-
-    ComponentColor(String propertyName,
-            String defaultColorVariableName,
-            float saturationOffset,
-            float brightnessOffset,
-            int alphaOffset) {
-        this.propertyName = propertyName;
-        this.defaultColorVariableName = defaultColorVariableName;
-        this.saturationOffset = saturationOffset;
-        this.brightnessOffset = brightnessOffset;
-        this.alphaOffset = alphaOffset;
-    }
-
-    @Override
-    public boolean equals(Object o) {
-        if (this == o) {
-            return true;
-        }
-        if (o == null || getClass() != o.getClass()) {
-            return false;
-        }
-
-        ComponentColor c = (ComponentColor) o;
-        if (alphaOffset != c.alphaOffset) {
-            return false;
-        }
-        if (Float.compare(saturationOffset, c.saturationOffset) != 0) {
-            return false;
-        }
-        if (Float.compare(brightnessOffset, c.brightnessOffset) != 0) {
-            return false;
-        }
-        if (defaultColorVariableName != null ? !defaultColorVariableName.equals(c.defaultColorVariableName) : c.defaultColorVariableName != null) {
-            return false;
-        }
-        if (propertyName != null ? !propertyName.equals(c.propertyName) : c.propertyName != null) {
-            return false;
-        }
-        return true;
-    }
-
-    @Override
-    public int hashCode() {
-        int hash = 5;
-        hash = 61 * hash + (this.propertyName != null ? this.propertyName.hashCode() : 0);
-        hash = 61 * hash + (this.defaultColorVariableName != null ? this.defaultColorVariableName.hashCode() : 0);
-        hash = 61 * hash + Float.floatToIntBits(this.saturationOffset);
-        hash = 61 * hash + Float.floatToIntBits(this.brightnessOffset);
-        hash = 61 * hash + this.alphaOffset;
-        return hash;
-    }
-
-    public void write(StringBuilder sb) {
-        sb.append("                     getComponentColor(c, \"").
-           append(propertyName).append("\", ").
-           append(defaultColorVariableName).append(", ").
-           append(saturationOffset).append("f, ").
-           append(brightnessOffset).append("f, ").
-           append(alphaOffset);
-    }
-}
-
-class GradientStop {
-    @XmlAttribute private float position;
-    public float getPosition() { return position; }
-
-    @XmlAttribute private float midpoint;
-    public float getMidpoint() { return midpoint; }
-
-    @XmlElement private Matte matte;
-    public Matte getColor() { return matte; }
-}
-
-class AbstractGradient extends Paint {
-    public static enum CycleMethod {
-        NO_CYCLE, REFLECT, REPEAT
-    }
-
-    @XmlElement(name="stop") private ArrayList<GradientStop> stops;
-    public List<GradientStop> getStops() { return stops; }
-}
-
-class Gradient extends AbstractGradient {
-}
-
-class RadialGradient extends AbstractGradient {
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/generatenimbus/Path.java	Mon Nov 05 10:33:18 2012 -0500
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package build.tools.generatenimbus;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
+
+class Path extends Shape {
+    @XmlElement(name="point")
+    @XmlElementWrapper(name="points")
+    private List<Point> controlPoints = new ArrayList<Point>();
+    public List<Point> getControlPoints() { return controlPoints; }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/generatenimbus/Point.java	Mon Nov 05 10:33:18 2012 -0500
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package build.tools.generatenimbus;
+
+import javax.xml.bind.annotation.XmlAttribute;
+
+class Point {
+    @XmlAttribute private double x;
+    public double getX() { return x; }
+
+    @XmlAttribute private double y;
+    public double getY() { return y; }
+
+    @XmlAttribute(name="cp1x") private double cp1x;
+    public double getCp1X() { return cp1x; }
+
+    @XmlAttribute(name="cp1y") private double cp1y;
+    public double getCp1Y() { return cp1y; }
+
+    @XmlAttribute(name="cp2x") private double cp2x;
+    public double getCp2X() { return cp2x; }
+
+    @XmlAttribute(name="cp2y") private double cp2y;
+    public double getCp2Y() { return cp2y; }
+
+    public boolean isP1Sharp() {
+        return cp1x == x && cp1y == y;
+    }
+
+    public boolean isP2Sharp() {
+        return cp2x == x && cp2y == y;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/generatenimbus/RadialGradient.java	Mon Nov 05 10:33:18 2012 -0500
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package build.tools.generatenimbus;
+
+class RadialGradient extends AbstractGradient {
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/generatenimbus/Rectangle.java	Mon Nov 05 10:33:18 2012 -0500
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package build.tools.generatenimbus;
+
+import javax.xml.bind.annotation.XmlAttribute;
+
+class Rectangle extends Shape {
+    @XmlAttribute private double x1;
+    public double getX1() { return x1; }
+
+    @XmlAttribute private double x2;
+    public double getX2() { return x2; }
+
+    @XmlAttribute private double y1;
+    public double getY1() { return y1; }
+
+    @XmlAttribute private double y2;
+    public double getY2() { return y2; }
+
+    @XmlAttribute
+    public double getRounding() {
+        double rounding = Math.abs(roundingX - x1) * 2;
+        return rounding > 2 ? rounding : 0;
+    }
+
+    public void setRounding(double rounding) {
+        if (rounding > 0 && rounding < 2) {
+            rounding = 0;
+        }
+        roundingX = rounding / 2d + x1;
+    }
+    private double roundingX;
+
+    public boolean isRounded() {
+        return getRounding() > 0;
+    }
+
+}
--- a/jdk/make/tools/src/build/tools/generatenimbus/Shape.java	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/tools/src/build/tools/generatenimbus/Shape.java	Mon Nov 05 10:33:18 2012 -0500
@@ -25,11 +25,8 @@
 
 package build.tools.generatenimbus;
 
-import java.util.ArrayList;
-import java.util.List;
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
 import javax.xml.bind.annotation.XmlElements;
 
 
@@ -56,85 +53,3 @@
         @XmlAttribute double y2;
     }
 }
-
-class Point {
-    @XmlAttribute private double x;
-    public double getX() { return x; }
-
-    @XmlAttribute private double y;
-    public double getY() { return y; }
-
-    @XmlAttribute(name="cp1x") private double cp1x;
-    public double getCp1X() { return cp1x; }
-
-    @XmlAttribute(name="cp1y") private double cp1y;
-    public double getCp1Y() { return cp1y; }
-
-    @XmlAttribute(name="cp2x") private double cp2x;
-    public double getCp2X() { return cp2x; }
-
-    @XmlAttribute(name="cp2y") private double cp2y;
-    public double getCp2Y() { return cp2y; }
-
-    public boolean isP1Sharp() {
-        return cp1x == x && cp1y == y;
-    }
-
-    public boolean isP2Sharp() {
-        return cp2x == x && cp2y == y;
-    }
-}
-
-class Path extends Shape {
-    @XmlElement(name="point")
-    @XmlElementWrapper(name="points")
-    private List<Point> controlPoints = new ArrayList<Point>();
-    public List<Point> getControlPoints() { return controlPoints; }
-}
-
-class Rectangle extends Shape {
-    @XmlAttribute private double x1;
-    public double getX1() { return x1; }
-
-    @XmlAttribute private double x2;
-    public double getX2() { return x2; }
-
-    @XmlAttribute private double y1;
-    public double getY1() { return y1; }
-
-    @XmlAttribute private double y2;
-    public double getY2() { return y2; }
-
-    @XmlAttribute
-    public double getRounding() {
-        double rounding = Math.abs(roundingX - x1) * 2;
-        return rounding > 2 ? rounding : 0;
-    }
-
-    public void setRounding(double rounding) {
-        if (rounding > 0 && rounding < 2) {
-            rounding = 0;
-        }
-        roundingX = rounding / 2d + x1;
-    }
-    private double roundingX;
-
-    public boolean isRounded() {
-        return getRounding() > 0;
-    }
-
-}
-
-class Ellipse extends Shape {
-    @XmlAttribute private double x1;
-    public double getX1() { return x1; }
-
-    @XmlAttribute private double x2;
-    public double getX2() { return x2; }
-
-    @XmlAttribute private double y1;
-    public double getY1() { return y1; }
-
-    @XmlAttribute private double y2;
-    public double getY2() { return y2; }
-}
--- a/jdk/make/tools/src/build/tools/generatenimbus/SynthModel.java	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/tools/src/build/tools/generatenimbus/SynthModel.java	Mon Nov 05 10:33:18 2012 -0500
@@ -25,9 +25,7 @@
 
 package build.tools.generatenimbus;
 
-import java.awt.Font;
 import java.util.ArrayList;
-import java.util.List;
 import javax.xml.bind.annotation.*;
 
 
@@ -78,139 +76,3 @@
         }
     }
 }
-
-class Typeface {
-    public enum DeriveStyle {
-        Default, Off, On;
-
-        @Override public String toString() {
-            switch (this) {
-                default:  return "null";
-                case On:  return "true";
-                case Off: return "false";
-            }
-        }
-    }
-
-    @XmlAttribute private String uiDefaultParentName;
-    @XmlAttribute(name="family") private String name;
-    @XmlAttribute private int size;
-    @XmlAttribute private DeriveStyle bold = DeriveStyle.Default;
-    @XmlAttribute private DeriveStyle italic = DeriveStyle.Default;
-    @XmlAttribute private float sizeOffset = 1f;
-
-    public boolean isAbsolute() {
-        return uiDefaultParentName == null;
-    }
-
-    public String write() {
-        if (isAbsolute()) {
-            int style = Font.PLAIN;
-            if (bold == DeriveStyle.On) {
-                style = style | Font.BOLD;
-            }
-            if (italic == DeriveStyle.On) {
-                style = style | Font.ITALIC;
-            }
-
-            return String.format(
-                    "new javax.swing.plaf.FontUIResource(\"%s\", %d, %d)",
-                    name, style, size);
-        } else {
-            return String.format(
-                    "new DerivedFont(\"%s\", %sf, %s, %s)",
-                    uiDefaultParentName, String.valueOf(sizeOffset), bold, italic);
-        }
-    }
-}
-
-class Border {
-    enum BorderType {
-        @XmlEnumValue("empty") EMPTY,
-        @XmlEnumValue("painter") PAINTER
-    }
-    @XmlAttribute private BorderType type;
-    @XmlAttribute private String painter;
-    @XmlAttribute private int top;
-    @XmlAttribute private int left;
-    @XmlAttribute private int bottom;
-    @XmlAttribute private int right;
-
-    public String write() {
-        switch (type) {
-            case PAINTER:
-                return String.format("new PainterBorder(\"%s\", new Insets(%d, %d, %d, %d))",
-                                     painter, top, left, bottom, right);
-            case EMPTY:
-                return String.format("BorderFactory.createEmptyBorder(%d, %d, %d, %d)",
-                                     top, left, bottom, right);
-            default:
-                return "### Look, here's an unknown border! $$$";
-        }
-    }
-}
-
-class Insets {
-    @XmlAttribute int top;
-    @XmlAttribute int left;
-    @XmlAttribute int bottom;
-    @XmlAttribute int right;
-
-    public Insets() {
-        this(0, 0, 0, 0);
-    }
-
-    public Insets(int top, int left, int bottom, int right) {
-        this.top = top;
-        this.left = left;
-        this.bottom = bottom;
-        this.right = right;
-    }
-
-    public String write(boolean uiResource) {
-        String uiSuffix = (uiResource ? "UIResource" : "");
-        return String.format("new Insets%s(%d, %d, %d, %d)",
-                             uiSuffix, top, left, bottom, right);
-    }
-}
-
-class Dimension {
-    @XmlAttribute int width;
-    @XmlAttribute int height;
-
-    public String write(boolean uiResource) {
-        String uiSuffix = (uiResource ? "UIResource" : "");
-        return String.format("new Dimension%s(%d, %d)", uiSuffix, width, height);
-    }
-}
-
-class Canvas {
-    @XmlElement private Dimension size;
-    public Dimension getSize() { return size; }
-
-    @XmlElement(name="layer") private List<Layer> layers;
-    public List<Layer> getLayers() { return layers; }
-
-    @XmlElement private Insets stretchingInsets = null;
-    public Insets getStretchingInsets() { return stretchingInsets; }
-
-    public boolean isBlank() {
-        return layers.size() == 0 || (layers.size() == 1 && layers.get(0).isEmpty());
-    }
-}
-
-class Layer {
-    /** List of shapes in this layer, first shape is painted on top */
-    @XmlElements({
-        @XmlElement(name = "ellipse", type = Ellipse.class),
-        @XmlElement(name = "path", type = Path.class),
-        @XmlElement(name = "rectangle", type = Rectangle.class)
-    })
-    @XmlElementWrapper(name="shapes")
-    private List<Shape> shapes = new ArrayList<Shape>();
-    public List<Shape> getShapes() { return shapes; }
-
-    public boolean isEmpty() {
-        return shapes.isEmpty();
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/generatenimbus/Typeface.java	Mon Nov 05 10:33:18 2012 -0500
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package build.tools.generatenimbus;
+
+import java.awt.Font;
+
+import javax.xml.bind.annotation.XmlAttribute;
+
+class Typeface {
+    public enum DeriveStyle {
+        Default, Off, On;
+
+        @Override public String toString() {
+            switch (this) {
+                default:  return "null";
+                case On:  return "true";
+                case Off: return "false";
+            }
+        }
+    }
+
+    @XmlAttribute private String uiDefaultParentName;
+    @XmlAttribute(name="family") private String name;
+    @XmlAttribute private int size;
+    @XmlAttribute private DeriveStyle bold = DeriveStyle.Default;
+    @XmlAttribute private DeriveStyle italic = DeriveStyle.Default;
+    @XmlAttribute private float sizeOffset = 1f;
+
+    public boolean isAbsolute() {
+        return uiDefaultParentName == null;
+    }
+
+    public String write() {
+        if (isAbsolute()) {
+            int style = Font.PLAIN;
+            if (bold == DeriveStyle.On) {
+                style = style | Font.BOLD;
+            }
+            if (italic == DeriveStyle.On) {
+                style = style | Font.ITALIC;
+            }
+
+            return String.format(
+                    "new javax.swing.plaf.FontUIResource(\"%s\", %d, %d)",
+                    name, style, size);
+        } else {
+            return String.format(
+                    "new DerivedFont(\"%s\", %sf, %s, %s)",
+                    uiDefaultParentName, String.valueOf(sizeOffset), bold, italic);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/generatenimbus/UIColor.java	Mon Nov 05 10:33:18 2012 -0500
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package build.tools.generatenimbus;
+
+import javax.xml.bind.annotation.XmlElement;
+
+class UIColor extends UIDefault<Matte> {
+
+    @XmlElement
+    public void setMatte(Matte m) {
+        setValue(m);
+    }
+
+    public String write() {
+        return String.format("        addColor(d, \"%s\", %s);\n",
+                             getName(), getValue().write());
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/generatenimbus/UIComponent.java	Mon Nov 05 10:33:18 2012 -0500
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package build.tools.generatenimbus;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
+
+class UIComponent extends UIRegion {
+    @XmlAttribute private String componentName;
+
+    @XmlElement(name="stateType")
+    @XmlElementWrapper(name="stateTypes")
+    private List<UIStateType> stateTypes = new ArrayList<UIStateType>();
+    public List<UIStateType> getStateTypes() { return stateTypes; }
+
+    @Override public String getKey() {
+        if (key == null || "".equals(key)) {
+            if (componentName == null || "".equals(componentName)) {
+                return name;
+            } else {
+                return "\"" + componentName + "\"";
+            }
+        } else {
+            return key;
+        }
+    }
+}
--- a/jdk/make/tools/src/build/tools/generatenimbus/UIDefault.java	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/tools/src/build/tools/generatenimbus/UIDefault.java	Mon Nov 05 10:33:18 2012 -0500
@@ -26,7 +26,6 @@
 package build.tools.generatenimbus;
 
 import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
 
 public class UIDefault<T> {
     @XmlAttribute private String name;
@@ -44,83 +43,3 @@
         this.value = value;
     }
 }
-
-class UIColor extends UIDefault<Matte> {
-
-    @XmlElement
-    public void setMatte(Matte m) {
-        setValue(m);
-    }
-
-    public String write() {
-        return String.format("        addColor(d, \"%s\", %s);\n",
-                             getName(), getValue().write());
-    }
-}
-
-class UIFont extends UIDefault<Typeface> {
-    @XmlElement
-    public void setTypeface(Typeface t) {
-        setValue(t);
-    }
-
-    public String write() {
-        return String.format("        d.put(\"%s\", %s);\n",
-                             getName(), getValue().write());
-    }
-}
-
-class UIProperty extends UIDefault<String> {
-    public static enum PropertyType {
-        BOOLEAN, INT, FLOAT, DOUBLE, STRING, FONT, COLOR, INSETS, DIMENSION, BORDER
-    }
-    @XmlAttribute private PropertyType type;
-
-    @XmlElement private Border border;
-    @XmlElement private Dimension dimension;
-    @XmlElement private Insets insets;
-    @XmlElement private Matte matte;
-    @XmlElement private Typeface typeface;
-
-    @XmlAttribute
-    @Override public void setValue(String value) {
-        super.setValue(value);
-    }
-
-    public String write(String prefix) {
-        switch (type) {
-            case BOOLEAN:
-                return String.format("        d.put(\"%s%s\", Boolean.%s);\n",
-                                     prefix, getName(), getValue().toUpperCase());  ///autobox
-            case STRING:
-                return String.format("        d.put(\"%s%s\", \"%s\");\n",
-                                     prefix, getName(), getValue());
-            case INT:
-                return String.format("        d.put(\"%s%s\", new Integer(%s));\n",
-                                     prefix, getName(), getValue());
-            case FLOAT:
-                return String.format("        d.put(\"%s%s\", new Float(%sf));\n",
-                                     prefix, getName(), getValue());
-            case DOUBLE:
-                return String.format("        d.put(\"%s%s\", new Double(%s));\n",
-                                     prefix, getName(), getValue());
-            case COLOR:
-                return String.format("        addColor(d, \"%s%s\", %s);\n",
-                                     prefix, getName(), matte.write());
-            case FONT:
-                return String.format("        d.put(\"%s%s\", %s);\n",
-                                     prefix, getName(), typeface.write());
-            case INSETS:
-                return String.format("        d.put(\"%s%s\", %s);\n",
-                                     prefix, getName(), insets.write(true));
-            case DIMENSION:
-                return String.format("        d.put(\"%s%s\", new DimensionUIResource(%d, %d));\n",
-                                     prefix, getName(), dimension.width, dimension.height);
-            case BORDER:
-                return String.format("        d.put(\"%s%s\", new BorderUIResource(%s));\n",
-                                     prefix, getName(), border.write());
-            default:
-                return "###  Look, something's wrong with UIProperty.write()  $$$";
-        }
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/generatenimbus/UIFont.java	Mon Nov 05 10:33:18 2012 -0500
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package build.tools.generatenimbus;
+
+import javax.xml.bind.annotation.XmlElement;
+
+class UIFont extends UIDefault<Typeface> {
+    @XmlElement
+    public void setTypeface(Typeface t) {
+        setValue(t);
+    }
+
+    public String write() {
+        return String.format("        d.put(\"%s\", %s);\n",
+                             getName(), getValue().write());
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/generatenimbus/UIIconRegion.java	Mon Nov 05 10:33:18 2012 -0500
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package build.tools.generatenimbus;
+
+import javax.xml.bind.annotation.XmlAttribute;
+
+class UIIconRegion extends UIRegion {
+    @XmlAttribute private String basicKey;
+
+    @Override public void write(StringBuilder sb, StringBuilder styleBuffer, UIComponent comp, String prefix, String pkg) {
+        Dimension size = null;
+        String fileNamePrefix = Utils.normalize(prefix) + "Painter";
+        // write states ui defaults
+        for (UIState state : backgroundStates) {
+            Canvas canvas = state.getCanvas();
+            if (!canvas.isBlank()) {
+                state.write(sb, prefix, pkg, fileNamePrefix, getKey());
+                size = canvas.getSize();
+            }
+        }
+
+        if (size != null) {
+            // Put SynthIconImpl wrapper in UiDefaults
+            String k = (basicKey == null ? prefix + "." + getKey() : basicKey);
+            sb.append(String.format(
+                    "        d.put(\"%s\", new NimbusIcon(\"%s\", \"%sPainter\", %d, %d));\n",
+                    k, prefix, getKey(), size.width, size.height));
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/generatenimbus/UIProperty.java	Mon Nov 05 10:33:18 2012 -0500
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package build.tools.generatenimbus;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+
+class UIProperty extends UIDefault<String> {
+    public static enum PropertyType {
+        BOOLEAN, INT, FLOAT, DOUBLE, STRING, FONT, COLOR, INSETS, DIMENSION, BORDER
+    }
+    @XmlAttribute private PropertyType type;
+
+    @XmlElement private Border border;
+    @XmlElement private Dimension dimension;
+    @XmlElement private Insets insets;
+    @XmlElement private Matte matte;
+    @XmlElement private Typeface typeface;
+
+    @XmlAttribute
+    @Override public void setValue(String value) {
+        super.setValue(value);
+    }
+
+    public String write(String prefix) {
+        switch (type) {
+            case BOOLEAN:
+                return String.format("        d.put(\"%s%s\", Boolean.%s);\n",
+                                     prefix, getName(), getValue().toUpperCase());  ///autobox
+            case STRING:
+                return String.format("        d.put(\"%s%s\", \"%s\");\n",
+                                     prefix, getName(), getValue());
+            case INT:
+                return String.format("        d.put(\"%s%s\", new Integer(%s));\n",
+                                     prefix, getName(), getValue());
+            case FLOAT:
+                return String.format("        d.put(\"%s%s\", new Float(%sf));\n",
+                                     prefix, getName(), getValue());
+            case DOUBLE:
+                return String.format("        d.put(\"%s%s\", new Double(%s));\n",
+                                     prefix, getName(), getValue());
+            case COLOR:
+                return String.format("        addColor(d, \"%s%s\", %s);\n",
+                                     prefix, getName(), matte.write());
+            case FONT:
+                return String.format("        d.put(\"%s%s\", %s);\n",
+                                     prefix, getName(), typeface.write());
+            case INSETS:
+                return String.format("        d.put(\"%s%s\", %s);\n",
+                                     prefix, getName(), insets.write(true));
+            case DIMENSION:
+                return String.format("        d.put(\"%s%s\", new DimensionUIResource(%d, %d));\n",
+                                     prefix, getName(), dimension.width, dimension.height);
+            case BORDER:
+                return String.format("        d.put(\"%s%s\", new BorderUIResource(%s));\n",
+                                     prefix, getName(), border.write());
+            default:
+                return "###  Look, something's wrong with UIProperty.write()  $$$";
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/generatenimbus/UIRegion.java	Mon Nov 05 10:33:18 2012 -0500
@@ -0,0 +1,200 @@
+/*
+ * Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package build.tools.generatenimbus;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
+import javax.xml.bind.annotation.XmlElements;
+
+class UIRegion {
+    @XmlAttribute protected String name;
+    @XmlAttribute protected String key;
+    @XmlAttribute private boolean opaque = false;
+
+    @XmlElement private Insets contentMargins = new Insets(0, 0, 0, 0);
+
+    @XmlElement(name="state")
+    @XmlElementWrapper(name="backgroundStates")
+    protected List<UIState> backgroundStates = new ArrayList<UIState>();
+    public List<UIState> getBackgroundStates() { return backgroundStates; }
+
+    @XmlElement(name="state")
+    @XmlElementWrapper(name="foregroundStates")
+    protected List<UIState> foregroundStates = new ArrayList<UIState>();
+    public List<UIState> getForegroundStates() { return foregroundStates; }
+
+    @XmlElement(name="state")
+    @XmlElementWrapper(name="borderStates")
+    protected List<UIState> borderStates = new ArrayList<UIState>();
+    public List<UIState> getBorderStates() { return borderStates; }
+
+    @XmlElement private UIStyle style = new UIStyle();
+
+    @XmlElements({
+        @XmlElement(name = "region", type = UIRegion.class),
+        @XmlElement(name = "uiComponent", type = UIComponent.class),
+        @XmlElement(name = "uiIconRegion", type = UIIconRegion.class)
+    })
+    @XmlElementWrapper(name="regions")
+    private List<UIRegion> subRegions = new ArrayList<UIRegion>();
+    public List<UIRegion> getSubRegions() { return subRegions; }
+
+    protected void initStyles(UIStyle parentStyle) {
+        style.setParentStyle(parentStyle);
+        for (UIState state: backgroundStates) {
+            state.getStyle().setParentStyle(this.style);
+        }
+        for (UIState state: foregroundStates) {
+            state.getStyle().setParentStyle(this.style);
+        }
+        for (UIState state: borderStates) {
+            state.getStyle().setParentStyle(this.style);
+        }
+        for (UIRegion region: subRegions) {
+            region.initStyles(this.style);
+        }
+    }
+
+    public String getKey() {
+        return key == null || "".equals(key) ? name : key;
+    }
+
+    private boolean hasCanvas() {
+        for (UIState s : backgroundStates) {
+            if (s.hasCanvas()) return true;
+        }
+        for (UIState s : borderStates) {
+            if (s.hasCanvas()) return true;
+        }
+        for (UIState s : foregroundStates) {
+            if (s.hasCanvas()) return true;
+        }
+        for (UIRegion r: subRegions) {
+            if (r.hasCanvas()) return true;
+        }
+        return false;
+    }
+
+    public void write(StringBuilder sb, StringBuilder styleBuffer,
+                      UIComponent comp, String prefix, String pkg) {
+        // write content margins
+        sb.append(String.format("        d.put(\"%s.contentMargins\", %s);\n",
+                                prefix, contentMargins.write(true)));
+        // write opaque if true
+        if (opaque) {
+            sb.append(String.format("        d.put(\"%s.opaque\", Boolean.TRUE);\n", prefix));
+        }
+
+        // register component with LAF
+        String regionCode = "Region." + Utils.regionNameToCaps(name);
+        styleBuffer.append(String.format("        register(%s, \"%s\");\n",
+                                         regionCode, prefix));
+
+        //write the State, if necessary
+        StringBuffer regString = new StringBuffer();
+        List<UIStateType> types = comp.getStateTypes();
+        if (types != null && types.size() > 0) {
+            for (UIStateType type : types) {
+                regString.append(type.getKey());
+                regString.append(",");
+            }
+            //remove the last ","
+            regString.deleteCharAt(regString.length() - 1);
+        }
+
+        if (! regString.equals("Enabled,MouseOver,Pressed,Disabled,Focused,Selected,Default") && types.size() > 0) {
+            //there were either custom states, or the normal states were in a custom order
+            //so go ahead and write out prefix.State
+            sb.append(String.format("        d.put(\"%s.States\", \"%s\");\n",
+                                    prefix, regString));
+        }
+
+        // write out any custom states, if necessary
+        for (UIStateType type : types) {
+            String synthState = type.getKey();
+            if (! "Enabled".equals(synthState) &&
+                ! "MouseOver".equals(synthState) &&
+                ! "Pressed".equals(synthState) &&
+                ! "Disabled".equals(synthState) &&
+                ! "Focused".equals(synthState) &&
+                ! "Selected".equals(synthState) &&
+                ! "Default".equals(synthState)) {
+
+                //what we have here, gentlemen, is a bona-fide custom state.
+                //if the type is not one of the standard types, then construct a name for
+                //the new type, and write out a new subclass of State.
+                String className = Utils.normalize(prefix) + synthState + "State";
+                sb.append(String.format("        d.put(\"%s.%s\", new %s());\n",
+                                        prefix, synthState, className));
+
+                String body = type.getCodeSnippet();
+                Map<String, String> variables = Generator.getVariables();
+                variables.put("STATE_NAME", className);
+                variables.put("STATE_KEY", synthState);
+                variables.put("BODY", body);
+
+                Generator.writeSrcFile("StateImpl", variables, className);
+            }
+        }
+
+        // write style
+        sb.append(style.write(prefix + '.'));
+
+        String fileName = Utils.normalize(prefix) + "Painter";
+        boolean hasCanvas = hasCanvas();
+        if (hasCanvas) {
+            PainterGenerator.writePainter(this, fileName);
+        }
+        // write states ui defaults
+        for (UIState state : backgroundStates) {
+            state.write(sb, prefix, pkg, fileName, "background");
+        }
+        for (UIState state : foregroundStates) {
+            state.write(sb, prefix, pkg, fileName, "foreground");
+        }
+        for (UIState state : borderStates) {
+            state.write(sb, prefix, pkg, fileName, "border");
+        }
+
+        // handle sub regions
+        for (UIRegion subreg : subRegions) {
+            String p = prefix;
+            if (! (subreg instanceof UIIconRegion)) {
+                p = prefix + ":" + Utils.escape(subreg.getKey());
+            }
+            UIComponent c = comp;
+            if (subreg instanceof UIComponent) {
+                c = (UIComponent) subreg;
+            }
+            subreg.write(sb, styleBuffer, c, p, pkg);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/generatenimbus/UIState.java	Mon Nov 05 10:33:18 2012 -0500
@@ -0,0 +1,97 @@
+/*
+ * Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package build.tools.generatenimbus;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+
+class UIState {
+    @XmlAttribute private String stateKeys;
+    public String getStateKeys() { return stateKeys; }
+
+    /** Indicates whether to invert the meaning of the 9-square stretching insets */
+    @XmlAttribute private boolean inverted;
+
+    /** A cached string representing the list of stateKeys deliminated with "+" */
+    private String cachedName = null;
+
+    @XmlElement private Canvas canvas;
+    public Canvas getCanvas() { return canvas; }
+
+    @XmlElement private UIStyle style;
+    public UIStyle getStyle() { return style; }
+
+    public boolean hasCanvas() {
+        return ! canvas.isBlank();
+    }
+
+    public static List<String> stringToKeys(String keysString) {
+        return Arrays.asList(keysString.split("\\+"));
+    }
+
+    public String getName() {
+        if (cachedName == null) {
+            StringBuilder buf = new StringBuilder();
+            List<String> keys = stringToKeys(stateKeys);
+            Collections.sort(keys);
+            for (Iterator<String> iter = keys.iterator(); iter.hasNext();) {
+                buf.append(iter.next());
+                if (iter.hasNext()) {
+                    buf.append('+');
+                }
+            }
+            cachedName = buf.toString();
+        }
+        return cachedName;
+    }
+
+    public void write(StringBuilder sb, String prefix, String pkg, String fileNamePrefix, String painterPrefix) {
+        String statePrefix = prefix + "[" + getName() + "]";
+        // write state style
+        sb.append(style.write(statePrefix + '.'));
+        // write painter
+        if (hasCanvas()) {
+            writeLazyPainter(sb, statePrefix, pkg, fileNamePrefix, painterPrefix);
+        }
+    }
+
+    private void writeLazyPainter(StringBuilder sb, String statePrefix, String packageNamePrefix, String fileNamePrefix, String painterPrefix) {
+        String cacheModeString = "AbstractRegionPainter.PaintContext.CacheMode." + style.getCacheMode();
+        String stateConstant = Utils.statesToConstantName(painterPrefix + "_" + stateKeys);
+        sb.append(String.format(
+                "        d.put(\"%s.%sPainter\", new LazyPainter(\"%s.%s\", %s.%s, %s, %s, %b, %s, %s, %s));\n",
+                statePrefix, painterPrefix, packageNamePrefix, fileNamePrefix,
+                fileNamePrefix, stateConstant, canvas.getStretchingInsets().write(false),
+                canvas.getSize().write(false), inverted, cacheModeString,
+                Utils.formatDouble(style.getMaxHozCachedImgScaling()),
+                Utils.formatDouble(style.getMaxVertCachedImgScaling())));
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/generatenimbus/UIStateType.java	Mon Nov 05 10:33:18 2012 -0500
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2002, 2007, Oracle and/or its affiliates. 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.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package build.tools.generatenimbus;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+
+class UIStateType {
+    @XmlAttribute private String key;
+    public String getKey() { return key; }
+
+    @XmlElement private String codeSnippet;
+    public String getCodeSnippet() { return codeSnippet; }
+}
--- a/jdk/make/tools/src/build/tools/generatenimbus/UIStyle.java	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/make/tools/src/build/tools/generatenimbus/UIStyle.java	Mon Nov 05 10:33:18 2012 -0500
@@ -26,15 +26,9 @@
 package build.tools.generatenimbus;
 
 import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Iterator;
 import java.util.List;
-import java.util.Map;
-import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlElementWrapper;
-import javax.xml.bind.annotation.XmlElements;
 
 
 class UIStyle {
@@ -115,285 +109,3 @@
         return sb.toString();
     }
 }
-
-class UIRegion {
-    @XmlAttribute protected String name;
-    @XmlAttribute protected String key;
-    @XmlAttribute private boolean opaque = false;
-
-    @XmlElement private Insets contentMargins = new Insets(0, 0, 0, 0);
-
-    @XmlElement(name="state")
-    @XmlElementWrapper(name="backgroundStates")
-    protected List<UIState> backgroundStates = new ArrayList<UIState>();
-    public List<UIState> getBackgroundStates() { return backgroundStates; }
-
-    @XmlElement(name="state")
-    @XmlElementWrapper(name="foregroundStates")
-    protected List<UIState> foregroundStates = new ArrayList<UIState>();
-    public List<UIState> getForegroundStates() { return foregroundStates; }
-
-    @XmlElement(name="state")
-    @XmlElementWrapper(name="borderStates")
-    protected List<UIState> borderStates = new ArrayList<UIState>();
-    public List<UIState> getBorderStates() { return borderStates; }
-
-    @XmlElement private UIStyle style = new UIStyle();
-
-    @XmlElements({
-        @XmlElement(name = "region", type = UIRegion.class),
-        @XmlElement(name = "uiComponent", type = UIComponent.class),
-        @XmlElement(name = "uiIconRegion", type = UIIconRegion.class)
-    })
-    @XmlElementWrapper(name="regions")
-    private List<UIRegion> subRegions = new ArrayList<UIRegion>();
-    public List<UIRegion> getSubRegions() { return subRegions; }
-
-    protected void initStyles(UIStyle parentStyle) {
-        style.setParentStyle(parentStyle);
-        for (UIState state: backgroundStates) {
-            state.getStyle().setParentStyle(this.style);
-        }
-        for (UIState state: foregroundStates) {
-            state.getStyle().setParentStyle(this.style);
-        }
-        for (UIState state: borderStates) {
-            state.getStyle().setParentStyle(this.style);
-        }
-        for (UIRegion region: subRegions) {
-            region.initStyles(this.style);
-        }
-    }
-
-    public String getKey() {
-        return key == null || "".equals(key) ? name : key;
-    }
-
-    private boolean hasCanvas() {
-        for (UIState s : backgroundStates) {
-            if (s.hasCanvas()) return true;
-        }
-        for (UIState s : borderStates) {
-            if (s.hasCanvas()) return true;
-        }
-        for (UIState s : foregroundStates) {
-            if (s.hasCanvas()) return true;
-        }
-        for (UIRegion r: subRegions) {
-            if (r.hasCanvas()) return true;
-        }
-        return false;
-    }
-
-    public void write(StringBuilder sb, StringBuilder styleBuffer,
-                      UIComponent comp, String prefix, String pkg) {
-        // write content margins
-        sb.append(String.format("        d.put(\"%s.contentMargins\", %s);\n",
-                                prefix, contentMargins.write(true)));
-        // write opaque if true
-        if (opaque) {
-            sb.append(String.format("        d.put(\"%s.opaque\", Boolean.TRUE);\n", prefix));
-        }
-
-        // register component with LAF
-        String regionCode = "Region." + Utils.regionNameToCaps(name);
-        styleBuffer.append(String.format("        register(%s, \"%s\");\n",
-                                         regionCode, prefix));
-
-        //write the State, if necessary
-        StringBuffer regString = new StringBuffer();
-        List<UIStateType> types = comp.getStateTypes();
-        if (types != null && types.size() > 0) {
-            for (UIStateType type : types) {
-                regString.append(type.getKey());
-                regString.append(",");
-            }
-            //remove the last ","
-            regString.deleteCharAt(regString.length() - 1);
-        }
-
-        if (! regString.equals("Enabled,MouseOver,Pressed,Disabled,Focused,Selected,Default") && types.size() > 0) {
-            //there were either custom states, or the normal states were in a custom order
-            //so go ahead and write out prefix.State
-            sb.append(String.format("        d.put(\"%s.States\", \"%s\");\n",
-                                    prefix, regString));
-        }
-
-        // write out any custom states, if necessary
-        for (UIStateType type : types) {
-            String synthState = type.getKey();
-            if (! "Enabled".equals(synthState) &&
-                ! "MouseOver".equals(synthState) &&
-                ! "Pressed".equals(synthState) &&
-                ! "Disabled".equals(synthState) &&
-                ! "Focused".equals(synthState) &&
-                ! "Selected".equals(synthState) &&
-                ! "Default".equals(synthState)) {
-
-                //what we have here, gentlemen, is a bona-fide custom state.
-                //if the type is not one of the standard types, then construct a name for
-                //the new type, and write out a new subclass of State.
-                String className = Utils.normalize(prefix) + synthState + "State";
-                sb.append(String.format("        d.put(\"%s.%s\", new %s());\n",
-                                        prefix, synthState, className));
-
-                String body = type.getCodeSnippet();
-                Map<String, String> variables = Generator.getVariables();
-                variables.put("STATE_NAME", className);
-                variables.put("STATE_KEY", synthState);
-                variables.put("BODY", body);
-
-                Generator.writeSrcFile("StateImpl", variables, className);
-            }
-        }
-
-        // write style
-        sb.append(style.write(prefix + '.'));
-
-        String fileName = Utils.normalize(prefix) + "Painter";
-        boolean hasCanvas = hasCanvas();
-        if (hasCanvas) {
-            PainterGenerator.writePainter(this, fileName);
-        }
-        // write states ui defaults
-        for (UIState state : backgroundStates) {
-            state.write(sb, prefix, pkg, fileName, "background");
-        }
-        for (UIState state : foregroundStates) {
-            state.write(sb, prefix, pkg, fileName, "foreground");
-        }
-        for (UIState state : borderStates) {
-            state.write(sb, prefix, pkg, fileName, "border");
-        }
-
-        // handle sub regions
-        for (UIRegion subreg : subRegions) {
-            String p = prefix;
-            if (! (subreg instanceof UIIconRegion)) {
-                p = prefix + ":" + Utils.escape(subreg.getKey());
-            }
-            UIComponent c = comp;
-            if (subreg instanceof UIComponent) {
-                c = (UIComponent) subreg;
-            }
-            subreg.write(sb, styleBuffer, c, p, pkg);
-        }
-    }
-}
-
-class UIIconRegion extends UIRegion {
-    @XmlAttribute private String basicKey;
-
-    @Override public void write(StringBuilder sb, StringBuilder styleBuffer, UIComponent comp, String prefix, String pkg) {
-        Dimension size = null;
-        String fileNamePrefix = Utils.normalize(prefix) + "Painter";
-        // write states ui defaults
-        for (UIState state : backgroundStates) {
-            Canvas canvas = state.getCanvas();
-            if (!canvas.isBlank()) {
-                state.write(sb, prefix, pkg, fileNamePrefix, getKey());
-                size = canvas.getSize();
-            }
-        }
-
-        if (size != null) {
-            // Put SynthIconImpl wrapper in UiDefaults
-            String k = (basicKey == null ? prefix + "." + getKey() : basicKey);
-            sb.append(String.format(
-                    "        d.put(\"%s\", new NimbusIcon(\"%s\", \"%sPainter\", %d, %d));\n",
-                    k, prefix, getKey(), size.width, size.height));
-        }
-    }
-}
-
-class UIComponent extends UIRegion {
-    @XmlAttribute private String componentName;
-
-    @XmlElement(name="stateType")
-    @XmlElementWrapper(name="stateTypes")
-    private List<UIStateType> stateTypes = new ArrayList<UIStateType>();
-    public List<UIStateType> getStateTypes() { return stateTypes; }
-
-    @Override public String getKey() {
-        if (key == null || "".equals(key)) {
-            if (componentName == null || "".equals(componentName)) {
-                return name;
-            } else {
-                return "\"" + componentName + "\"";
-            }
-        } else {
-            return key;
-        }
-    }
-}
-
-class UIState {
-    @XmlAttribute private String stateKeys;
-    public String getStateKeys() { return stateKeys; }
-
-    /** Indicates whether to invert the meaning of the 9-square stretching insets */
-    @XmlAttribute private boolean inverted;
-
-    /** A cached string representing the list of stateKeys deliminated with "+" */
-    private String cachedName = null;
-
-    @XmlElement private Canvas canvas;
-    public Canvas getCanvas() { return canvas; }
-
-    @XmlElement private UIStyle style;
-    public UIStyle getStyle() { return style; }
-
-    public boolean hasCanvas() {
-        return ! canvas.isBlank();
-    }
-
-    public static List<String> stringToKeys(String keysString) {
-        return Arrays.asList(keysString.split("\\+"));
-    }
-
-    public String getName() {
-        if (cachedName == null) {
-            StringBuilder buf = new StringBuilder();
-            List<String> keys = stringToKeys(stateKeys);
-            Collections.sort(keys);
-            for (Iterator<String> iter = keys.iterator(); iter.hasNext();) {
-                buf.append(iter.next());
-                if (iter.hasNext()) {
-                    buf.append('+');
-                }
-            }
-            cachedName = buf.toString();
-        }
-        return cachedName;
-    }
-
-    public void write(StringBuilder sb, String prefix, String pkg, String fileNamePrefix, String painterPrefix) {
-        String statePrefix = prefix + "[" + getName() + "]";
-        // write state style
-        sb.append(style.write(statePrefix + '.'));
-        // write painter
-        if (hasCanvas()) {
-            writeLazyPainter(sb, statePrefix, pkg, fileNamePrefix, painterPrefix);
-        }
-    }
-
-    private void writeLazyPainter(StringBuilder sb, String statePrefix, String packageNamePrefix, String fileNamePrefix, String painterPrefix) {
-        String cacheModeString = "AbstractRegionPainter.PaintContext.CacheMode." + style.getCacheMode();
-        String stateConstant = Utils.statesToConstantName(painterPrefix + "_" + stateKeys);
-        sb.append(String.format(
-                "        d.put(\"%s.%sPainter\", new LazyPainter(\"%s.%s\", %s.%s, %s, %s, %b, %s, %s, %s));\n",
-                statePrefix, painterPrefix, packageNamePrefix, fileNamePrefix,
-                fileNamePrefix, stateConstant, canvas.getStretchingInsets().write(false),
-                canvas.getSize().write(false), inverted, cacheModeString,
-                Utils.formatDouble(style.getMaxHozCachedImgScaling()),
-                Utils.formatDouble(style.getMaxVertCachedImgScaling())));
-    }
-}
-
-class UIStateType {
-    @XmlAttribute private String key;
-    public String getKey() { return key; }
-
-    @XmlElement private String codeSnippet;
-    public String getCodeSnippet() { return codeSnippet; }
-}
--- a/jdk/makefiles/CompileJavaClasses.gmk	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/makefiles/CompileJavaClasses.gmk	Mon Nov 05 10:33:18 2012 -0500
@@ -312,7 +312,8 @@
 JDK_BASE_HEADER_CLASSES:=java.lang.Integer \
 			 java.lang.Long \
 			 java.net.SocketOptions \
-			 sun.nio.ch.IOStatus
+			 sun.nio.ch.IOStatus \
+			 java.io.FileSystem
 
 JDK_BASE_HEADER_JAVA_FILES:=$(patsubst %,$(JDK_TOPDIR)/src/share/classes/%.java,\
 				$(subst .,/,$(JDK_BASE_HEADER_CLASSES)))
--- a/jdk/makefiles/CompileNativeLibraries.gmk	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/makefiles/CompileNativeLibraries.gmk	Mon Nov 05 10:33:18 2012 -0500
@@ -1540,96 +1540,6 @@
 
 ##########################################################################################
 
-ifndef OPENJDK
-ifneq ($(OPENJDK_TARGET_OS), macosx)
-
-LIBJDBCODBC_DIR   :=$(JDK_OUTPUTDIR)/objs/libjdbcodbc
-LIBJDBCODBC_NAME  :=$(LIBRARY_PREFIX)JdbcOdbc$(SHARED_LIBRARY_SUFFIX)
-LIBJDBCODBC_CFLAGS:=
-LIBJDBCODBC_LIBS   :=
-LIBJDBCODBC_LDFLAGS:=
-
-ifeq ($(OPENJDK_TARGET_OS), windows)
-	LIBJDBCODBC_LDFLAGS:=$(LDFLAGS_JDKLIB)
-	LIBJDBCODBC_LIBS += odbc32.lib odbccp32.lib $(WIN_JAVA_LIB) advapi32.lib
-else
-	LIBJDBCODBC_CFLAGS:=-DUNIX
-
-#
-# This mimics "current" build system exactly. Link against fake -lodbcinst -lodbc
-#   but...those are linked with the -soname, causing the dependency to be dropped on linux (gnu ld)
-#   but kept with other linker (solaris)
-#
-# IMO very weird behaviour...very weird
-#
-	LIBJDBCODBC_LDFLAGS:=$(patsubst defs,nodefs,$(LDFLAGS_JDKLIB)) \
-				      -Xlinker -z -Xlinker nodefs
-	LIBJDBCODBC_LIBS += -L$(LIBJDBCODBC_DIR) -lodbcinst -lodbc
-	LIBJDBCODBC_SONAME:=$(call SET_SHARED_LIBRARY_NAME,$(LIBJDBCODBC_NAME))
-endif
-
-$(eval $(call SetupNativeCompilation,BUILD_LIBJDBCODBC,\
-		LIBRARY:=JdbcOdbc,\
-                OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
-		SRC:=$(JDK_TOPDIR)/src/closed/share/classes/sun/jdbc/odbc,\
-		EXCLUDE_FILES:=dummyodbc.c,\
-		LANG:=C,\
-		OPTIMIZATION:=LOW, \
-		CFLAGS:=$(LIBJDBCODBC_CFLAGS) $(CFLAGS_JDKLIB) \
-			$(SHARED_LIBRARY_FLAGS),\
-		LDFLAGS:=$(LIBJDBCODBC_LDFLAGS) \
-			 $(call SET_SHARED_LIBRARY_ORIGIN) $(LIBJDBCODBC_LIBS),\
-		LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX) $(LIBJDBCODBC_SONAME),\
-		VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
-		RC_FLAGS:=$(RC_FLAGS)\
-			  /D "JDK_FNAME=JdbcOdbc.dll" \
-			  /D "JDK_INTERNAL_NAME=JdbcOdbc" \
-			  /D "JDK_FTYPE=0x2L",\
-		OBJECT_DIR:=$(LIBJDBCODBC_DIR),\
-		DEBUG_SYMBOLS:=$(WINDOWS_ONLY)))
-
-$(BUILD_LIBJDBCODBC) : $(BUILD_LIBJAVA)
-
-BUILD_LIBRARIES += $(BUILD_LIBJDBCODBC)
-
-ifneq ($(OPENJDK_TARGET_OS), windows)
-
-$(eval $(call SetupNativeCompilation,BUILD_FAKEODBCINST,\
-		LIBRARY:=odbcinst,\
-                OUTPUT_DIR:=$(LIBJDBCODBC_DIR),\
-		SRC:=$(JDK_OUTPUTDIR)/gensrc_c/libjdbcodbc,\
-		INCLUDE_FILES:=dummyodbc1.c,\
-		LANG:=C,\
-		OPTIMIZATION:=LOW, \
-		CFLAGS:=$(CFLAGS_JDKLIB),\
-		LDFLAGS:=$(LDFLAGS_JDKLIB) $(call SET_SHARED_LIBRARY_ORIGIN) $(LIBJDBCODBC_LDFLAGS),\
-		LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX) $(LIBJDBCODBC_SONAME),\
-		OBJECT_DIR:=$(LIBJDBCODBC_DIR)))
-
-$(eval $(call SetupNativeCompilation,BUILD_FAKEODBC,\
-		LIBRARY:=odbc,\
-                OUTPUT_DIR:=$(LIBJDBCODBC_DIR),\
-		SRC:=$(JDK_OUTPUTDIR)/gensrc_c/libjdbcodbc,\
-		INCLUDE_FILES:=dummyodbc2.c,\
-		LANG:=C,\
-		OPTIMIZATION:=LOW, \
-		CFLAGS:=$(LIBJDBCODBC_CFLAGS) $(CFLAGS_JDKLIB),\
-		LDFLAGS:=$(LDFLAGS_JDKLIB) $(call SET_SHARED_LIBRARY_ORIGIN) $(LIBJDBCODBC_LDFLAGS),\
-		LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX) $(LIBJDBCODBC_SONAME),\
-		OBJECT_DIR:=$(LIBJDBCODBC_DIR)))
-
-$(BUILD_FAKEODBCINST) $(BUILD_FAKEODBC) : \
-  $(BUILD_LIBJAVA)
-
-$(BUILD_LIBJDBCODBC) : $(BUILD_FAKEODBCINST) $(BUILD_FAKEODBC)
-
-endif
-
-endif
-endif
-
-##########################################################################################
-
 LIBINSTRUMENT_SRC   :=$(JDK_TOPDIR)/src/share/instrument \
                       $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/io \
                       $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/instrument
--- a/jdk/makefiles/CopyIntoClasses.gmk	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/makefiles/CopyIntoClasses.gmk	Mon Nov 05 10:33:18 2012 -0500
@@ -189,12 +189,6 @@
 endif
 
 ifndef OPENJDK
-ifneq ($(OPENJDK_TARGET_OS), macosx)
-    ALL_META-INF_DIRS += $(JDK_TOPDIR)/src/closed/share/classes/sun/jdbc/odbc/META-INF
-endif
-endif
-
-ifndef OPENJDK
     ALL_META-INF_DIRS += $(JDK_TOPDIR)/src/closed/share/classes/sun/java2d/cmm/kcms/META-INF
 endif
 
--- a/jdk/makefiles/CreateJars.gmk	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/makefiles/CreateJars.gmk	Mon Nov 05 10:33:18 2012 -0500
@@ -74,10 +74,46 @@
 
 ##########################################################################################
 
-LOCALEDATA_INCLUDE_LOCALES := ar hi iw ja ko th vi zh
+LOCALEDATA_INCLUDE_LOCALES := ar be bg ca cs da de el es et fi fr ga hi hr hu in is it \
+                              iw ja ko lt lv mk ms mt nl no pl pt ro ru sk sl sq sr sv \
+                              th tr uk vi zh
+
 LOCALEDATA_INCLUDES := $(addprefix sun/text/resources/,$(LOCALEDATA_INCLUDE_LOCALES)) \
 		       $(addprefix sun/util/resources/,$(LOCALEDATA_INCLUDE_LOCALES))
 
+# For non-US English locale data
+
+LOCALEDATA_INCLUDES += \
+                sun/text/resources/en/FormatData_en_AU.class \
+                sun/text/resources/en/FormatData_en_CA.class \
+                sun/text/resources/en/FormatData_en_GB.class \
+                sun/text/resources/en/FormatData_en_IE.class \
+                sun/text/resources/en/FormatData_en_IN.class \
+                sun/text/resources/en/FormatData_en_MT.class \
+                sun/text/resources/en/FormatData_en_NZ.class \
+                sun/text/resources/en/FormatData_en_PH.class \
+                sun/text/resources/en/FormatData_en_SG.class \
+                sun/text/resources/en/FormatData_en_ZA.class \
+                sun/util/resources/en/CalendarData_en_GB.class \
+                sun/util/resources/en/CalendarData_en_IE.class \
+                sun/util/resources/en/CalendarData_en_MT.class \
+                sun/util/resources/en/CurrencyNames_en_AU.class \
+                sun/util/resources/en/CurrencyNames_en_CA.class \
+                sun/util/resources/en/CurrencyNames_en_GB.class \
+                sun/util/resources/en/CurrencyNames_en_IE.class \
+                sun/util/resources/en/CurrencyNames_en_IN.class \
+                sun/util/resources/en/CurrencyNames_en_MT.class \
+                sun/util/resources/en/CurrencyNames_en_NZ.class \
+                sun/util/resources/en/CurrencyNames_en_PH.class \
+                sun/util/resources/en/CurrencyNames_en_SG.class \
+                sun/util/resources/en/CurrencyNames_en_ZA.class \
+                sun/util/resources/en/LocaleNames_en_MT.class \
+                sun/util/resources/en/LocaleNames_en_PH.class \
+                sun/util/resources/en/LocaleNames_en_SG.class \
+                sun/util/resources/en/TimeZoneNames_en_CA.class \
+                sun/util/resources/en/TimeZoneNames_en_GB.class \
+                sun/util/resources/en/TimeZoneNames_en_IE.class
+
 $(eval $(call SetupArchive,BUILD_LOCALEDATA_JAR,,\
 		SRCS:=$(JDK_OUTPUTDIR)/classes,\
 		SUFFIXES:=.class _dict _th,\
@@ -249,7 +285,6 @@
 ifeq ($(OPENJDK_TARGET_OS), macosx)
         RT_JAR_EXCLUDES += com/sun/nio/sctp \
                            sun/nio/ch/sctp \
-                           sun/jdbc \
                            sun/nio/ch/DevPollArrayWrapper\$$$$Updator.class \
                            sun/nio/ch/DevPollArrayWrapper.class \
                            sun/nio/ch/DevPollSelectorImpl.class \
--- a/jdk/makefiles/GensrcLocaleDataMetaInfo.gmk	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/makefiles/GensrcLocaleDataMetaInfo.gmk	Mon Nov 05 10:33:18 2012 -0500
@@ -50,26 +50,26 @@
     $(shell $(RM) $(JDK_OUTPUTDIR)/gensrc_localedatametainfo/sun/util/locale/provider/LocaleDataMetaInfo.java)
 endif
 
-# The non-euro zone locales have to be separated from the euro-zone locales.
-NON_EURO_LOCALES:=ar% hi% iw% ja% ko% th% vi% zh%
+# The US locales
+US_LOCALES:=en en-US
 
 # ja-JP-JP and th-TH-TH need to be manually added, as they don't have any resource files.
-ALL_NON_EURO_LOCALES:=ja-JP-JP th-TH-TH
+ALL_NON_US_LOCALES:=ja-JP-JP th-TH-TH
 
 SED_ARGS:=-e 's|$(HASH)warn This file is preprocessed before being compiled|// -- This file was mechanically generated: Do not edit! -- //|g'
 
 # This macro creates a sed expression that substitues for example:
-# #FormatData_EuroLocales# with: be be_BY bg bg_BG ca ca_ES... and some more.
+# #FormatData_USLocales# with: en and/or en_US.
 define CaptureLocale
     $1_LOCALES := $$(subst _,-,$$(filter-out $1,$$(subst $1_,,$$(filter $1_%,$(LOCALE_RESOURCES)))))
-    $1_EURO_LOCALES := $$(filter-out $(NON_EURO_LOCALES),$$($1_LOCALES))
-    $1_NON_EURO_LOCALES := $$(filter $(NON_EURO_LOCALES),$$($1_LOCALES))
+    $1_US_LOCALES := $$(filter $(US_LOCALES),$$($1_LOCALES))
+    $1_NON_US_LOCALES := $$(filter-out $(US_LOCALES),$$($1_LOCALES))
 
-    ALL_EURO_LOCALES += $$($1_EURO_LOCALES)
-    ALL_NON_EURO_LOCALES += $$($1_NON_EURO_LOCALES)
+    ALL_US_LOCALES += $$($1_US_LOCALES)
+    ALL_NON_US_LOCALES += $$($1_NON_US_LOCALES)
 
-    SED_ARGS+= -e 's/$$(HASH)$1_EuroLocales$$(HASH)/ $$($1_EURO_LOCALES)/g'
-    SED_ARGS+= -e 's/$$(HASH)$1_NonEuroLocales$$(HASH)/ $$($1_NON_EURO_LOCALES)/g'
+    SED_ARGS+= -e 's/$$(HASH)$1_USLocales$$(HASH)/ $$($1_US_LOCALES)/g'
+    SED_ARGS+= -e 's/$$(HASH)$1_NonUSLocales$$(HASH)/ $$($1_NON_US_LOCALES)/g'
 endef
 
 #sun.text.resources.FormatData
@@ -90,8 +90,8 @@
 #sun.util.resources.CalendarData
 $(eval $(call CaptureLocale,CalendarData))
 
-SED_ARGS+= -e 's/$(HASH)AvailableLocales_EuroLocales$(HASH)/$(sort $(ALL_EURO_LOCALES))/g'
-SED_ARGS+= -e 's/$(HASH)AvailableLocales_NonEuroLocales$(HASH)/$(sort $(ALL_NON_EURO_LOCALES))/g'
+SED_ARGS+= -e 's/$(HASH)AvailableLocales_USLocales$(HASH)/$(sort $(ALL_US_LOCALES))/g'
+SED_ARGS+= -e 's/$(HASH)AvailableLocales_NonUSLocales$(HASH)/$(sort $(ALL_NON_US_LOCALES))/g'
 
 $(JDK_OUTPUTDIR)/gensrc_localedatametainfo/sun/util/locale/provider/LocaleDataMetaInfo.java: \
 		$(JDK_TOPDIR)/src/share/classes/sun/util/locale/provider/LocaleDataMetaInfo-XLocales.java.template
--- a/jdk/makefiles/GensrcMisc.gmk	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/makefiles/GensrcMisc.gmk	Mon Nov 05 10:33:18 2012 -0500
@@ -77,32 +77,6 @@
 
 ##########################################################################################
 
-ifndef OPENJDK
-ifneq ($(OPENJDK_TARGET_OS), windows)
-ifneq ($(OPENJDK_TARGET_OS), macosx)
-    # These file(s) are needed for building fake .so libs on !windows for jdbcodbc
-
-    $(JDK_OUTPUTDIR)/gensrc_c/libjdbcodbc/dummyodbc1.c : 
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(ECHO) Creating $@
-	$(PRINTF) "void dummyOdbc(void){}\n" > $@
-	$(ECHO) Created $@
-
-    $(JDK_OUTPUTDIR)/gensrc_c/libjdbcodbc/dummyodbc2.c : 
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(ECHO) Creating $@
-	$(PRINTF) "void dummyOdbc(void){}\n" > $@
-	$(ECHO) Created $@
-
-    GENSRC_MISC += $(JDK_OUTPUTDIR)/gensrc_c/libjdbcodbc/dummyodbc1.c $(JDK_OUTPUTDIR)/gensrc_c/libjdbcodbc/dummyodbc2.c
-endif
-endif
-endif
-
-##########################################################################################
-
 GENSRC_MISC += $(JDK_OUTPUTDIR)/gensrc_misc/sun/nio/ch/SocketOptionRegistry.java
 
 GENSRC_SOR_SRC := $(JDK_TOPDIR)/src/share/native/sun/nio/ch
--- a/jdk/makefiles/mapfiles/libjava/mapfile-vers	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/makefiles/mapfiles/libjava/mapfile-vers	Mon Nov 05 10:33:18 2012 -0500
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1997, 2012, Oracle and/or its affiliates. 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
@@ -87,7 +87,6 @@
 		Java_java_io_FileOutputStream_open;
 		Java_java_io_FileOutputStream_write;
 		Java_java_io_FileOutputStream_writeBytes;
-		Java_java_io_FileSystem_getFileSystem;
 		Java_java_io_ObjectInputStream_bytesToDoubles;
 		Java_java_io_ObjectInputStream_bytesToFloats;
 		Java_java_io_ObjectOutputStream_doublesToBytes;
--- a/jdk/src/macosx/classes/com/apple/laf/AquaFileChooserUI.java	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/src/macosx/classes/com/apple/laf/AquaFileChooserUI.java	Mon Nov 05 10:33:18 2012 -0500
@@ -379,6 +379,19 @@
                         }
                     }
                     updateButtonState(getFileChooser());
+                } else if (prop.equals(JFileChooser.SELECTED_FILES_CHANGED_PROPERTY)) {
+                    JFileChooser fileChooser = getFileChooser();
+                    if (!fileChooser.isDirectorySelectionEnabled()) {
+                        final File[] files = (File[]) e.getNewValue();
+                        if (files != null) {
+                            for (int selectedRow : fFileList.getSelectedRows()) {
+                                File file = (File) fFileList.getValueAt(selectedRow, 0);
+                                if (fileChooser.isTraversable(file)) {
+                                    fFileList.removeSelectedIndex(selectedRow);
+                                }
+                            }
+                        }
+                    }
                 } else if (prop.equals(JFileChooser.DIRECTORY_CHANGED_PROPERTY)) {
                     fFileList.clearSelection();
                     final File currentDirectory = getFileChooser().getCurrentDirectory();
--- a/jdk/src/macosx/classes/sun/awt/CGraphicsDevice.java	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/src/macosx/classes/sun/awt/CGraphicsDevice.java	Mon Nov 05 10:33:18 2012 -0500
@@ -33,9 +33,7 @@
 
 import sun.java2d.opengl.CGLGraphicsConfig;
 
-import sun.awt.FullScreenCapable;
-
-public class CGraphicsDevice extends GraphicsDevice {
+public final class CGraphicsDevice extends GraphicsDevice {
 
     // CoreGraphics display ID
     private final int displayID;
@@ -108,11 +106,6 @@
         return nativeGetYResolution(displayID);
     }
 
-    public int getScreenResolution() {
-        // TODO: report non-72 value when HiDPI is turned on
-        return 72;
-    }
-
     private static native double nativeGetXResolution(int displayID);
     private static native double nativeGetYResolution(int displayID);
 
@@ -194,6 +187,9 @@
 
     @Override
     public void setDisplayMode(DisplayMode dm) {
+        if (dm == null) {
+            throw new IllegalArgumentException("Invalid display mode");
+        }
         nativeSetDisplayMode(displayID, dm.getWidth(), dm.getHeight(), dm.getBitDepth(), dm.getRefreshRate());
         if (isFullScreenSupported() && getFullScreenWindow() != null) {
             getFullScreenWindow().setSize(dm.getWidth(), dm.getHeight());
--- a/jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java	Mon Nov 05 10:33:18 2012 -0500
@@ -65,7 +65,7 @@
     private static native void nativeDispose(long nsWindowPtr);
     private static native CPlatformWindow nativeGetTopmostPlatformWindowUnderMouse();
 
-    private static native int nativeGetNSWindowDisplayID_AppKitThread(long nsWindowPtr);
+    private static native int nativeGetNSWindowDisplayID(long nsWindowPtr);
 
     // Loger to report issues happened during execution but that do not affect functionality
     private static final PlatformLogger logger = PlatformLogger.getLogger("sun.lwawt.macosx.CPlatformWindow");
@@ -444,7 +444,7 @@
     public GraphicsDevice getGraphicsDevice() {
         GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
         CGraphicsEnvironment cge = (CGraphicsEnvironment)ge;
-        int displayID = nativeGetNSWindowDisplayID_AppKitThread(getNSWindowPtr());
+        int displayID = nativeGetNSWindowDisplayID(getNSWindowPtr());
         GraphicsDevice gd = cge.getScreenDevice(displayID);
         if (gd == null) {
             // this could possibly happen during device removal
--- a/jdk/src/macosx/classes/sun/lwawt/macosx/CTrayIcon.java	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/src/macosx/classes/sun/lwawt/macosx/CTrayIcon.java	Mon Nov 05 10:33:18 2012 -0500
@@ -26,6 +26,7 @@
 package sun.lwawt.macosx;
 
 import sun.awt.SunToolkit;
+import sun.lwawt.macosx.event.NSEvent;
 
 import javax.swing.*;
 import java.awt.*;
@@ -42,6 +43,16 @@
     private JDialog messageDialog;
     private DialogEventHandler handler;
 
+    // In order to construct MouseEvent object, we need to specify a
+    // Component target. Because TrayIcon isn't Component's subclass,
+    // we use this dummy frame instead
+    private final Frame dummyFrame;
+
+    // A bitmask that indicates what mouse buttons produce MOUSE_CLICKED events
+    // on MOUSE_RELEASE. Click events are only generated if there were no drag
+    // events between MOUSE_PRESSED and MOUSE_RELEASED for particular button
+    private static int mouseClickButtons = 0;
+
     CTrayIcon(TrayIcon target) {
         super(0, true);
 
@@ -49,6 +60,7 @@
         this.handler = null;
         this.target = target;
         this.popup = target.getPopupMenu();
+        this.dummyFrame = new Frame();
         setPtr(createModel());
 
         //if no one else is creating the peer.
@@ -119,6 +131,8 @@
             disposeMessageDialog();
         }
 
+        dummyFrame.dispose();
+
         LWCToolkit.targetDisposedPeer(target, this);
         target = null;
 
@@ -161,17 +175,78 @@
 
     private native void setNativeImage(final long model, final long nsimage, final boolean autosize);
 
-    //invocation from the AWTTrayIcon.m
-    public void performAction() {
+    private void postEvent(final AWTEvent event) {
         SunToolkit.executeOnEventHandlerThread(target, new Runnable() {
             public void run() {
-                final String cmd = target.getActionCommand();
-                final ActionEvent event = new ActionEvent(target, ActionEvent.ACTION_PERFORMED, cmd);
                 SunToolkit.postEvent(SunToolkit.targetToAppContext(target), event);
             }
         });
     }
 
+    //invocation from the AWTTrayIcon.m
+    private void handleMouseEvent(NSEvent nsEvent) {
+        int buttonNumber = nsEvent.getButtonNumber();
+        final SunToolkit tk = (SunToolkit)Toolkit.getDefaultToolkit();
+        if ((buttonNumber > 2 && !tk.areExtraMouseButtonsEnabled())
+                || buttonNumber > tk.getNumberOfButtons() - 1) {
+            return;
+        }
+
+        int jeventType = NSEvent.nsToJavaEventType(nsEvent.getType());
+
+        int jbuttonNumber = MouseEvent.NOBUTTON;
+        int jclickCount = 0;
+        if (jeventType != MouseEvent.MOUSE_MOVED) {
+            jbuttonNumber = NSEvent.nsToJavaButton(buttonNumber);
+            jclickCount = nsEvent.getClickCount();
+        }
+
+        int jmodifiers = NSEvent.nsToJavaMouseModifiers(buttonNumber,
+                nsEvent.getModifierFlags());
+        boolean isPopupTrigger = NSEvent.isPopupTrigger(jmodifiers);
+
+        int eventButtonMask = (jbuttonNumber > 0)?
+                MouseEvent.getMaskForButton(jbuttonNumber) : 0;
+        long when = System.currentTimeMillis();
+
+        if (jeventType == MouseEvent.MOUSE_PRESSED) {
+            mouseClickButtons |= eventButtonMask;
+        } else if (jeventType == MouseEvent.MOUSE_DRAGGED) {
+            mouseClickButtons = 0;
+        }
+
+        // The MouseEvent's coordinates are relative to screen
+        int absX = nsEvent.getAbsX();
+        int absY = nsEvent.getAbsY();
+
+        MouseEvent mouseEvent = new MouseEvent(dummyFrame, jeventType, when,
+                jmodifiers, absX, absY, absX, absY, jclickCount, isPopupTrigger,
+                jbuttonNumber);
+        mouseEvent.setSource(target);
+        postEvent(mouseEvent);
+
+        // fire ACTION event
+        if (jeventType == MouseEvent.MOUSE_PRESSED && isPopupTrigger) {
+            final String cmd = target.getActionCommand();
+            final ActionEvent event = new ActionEvent(target,
+                    ActionEvent.ACTION_PERFORMED, cmd);
+            postEvent(event);
+        }
+
+        // synthesize CLICKED event
+        if (jeventType == MouseEvent.MOUSE_RELEASED) {
+            if ((mouseClickButtons & eventButtonMask) != 0) {
+                MouseEvent clickEvent = new MouseEvent(dummyFrame,
+                        MouseEvent.MOUSE_CLICKED, when, jmodifiers, absX, absY,
+                        absX, absY, jclickCount, isPopupTrigger, jbuttonNumber);
+                clickEvent.setSource(target);
+                postEvent(clickEvent);
+            }
+
+            mouseClickButtons &= ~eventButtonMask;
+        }
+    }
+
     private native Point2D nativeGetIconLocation(long trayIconModel);
 
     public void displayMessageOnEDT(String caption, String text,
@@ -256,6 +331,9 @@
 
         dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
         dialog.setModal(false);
+        dialog.setModalExclusionType(Dialog.ModalExclusionType.TOOLKIT_EXCLUDE);
+        dialog.setAlwaysOnTop(true);
+        dialog.setAutoRequestFocus(false);
         dialog.setResizable(false);
         dialog.setContentPane(op);
 
--- a/jdk/src/macosx/classes/sun/lwawt/macosx/LWCToolkit.java	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/src/macosx/classes/sun/lwawt/macosx/LWCToolkit.java	Mon Nov 05 10:33:18 2012 -0500
@@ -53,7 +53,7 @@
 /**
  * Mac OS X Cocoa-based AWT Toolkit.
  */
-public class LWCToolkit extends LWToolkit {
+public final class LWCToolkit extends LWToolkit {
     // While it is possible to enumerate all mouse devices
     // and query them for the number of buttons, the code
     // that does it is rather complex. Instead, we opt for
@@ -278,7 +278,6 @@
         return new CMouseInfoPeer();
     }
 
-
     @Override
     protected int getScreenHeight() {
         return GraphicsEnvironment.getLocalGraphicsEnvironment()
@@ -333,8 +332,9 @@
 
     @Override
     public int getScreenResolution() throws HeadlessException {
-        return ((CGraphicsDevice) GraphicsEnvironment
-                .getLocalGraphicsEnvironment().getDefaultScreenDevice()).getScreenResolution();
+        return (int) ((CGraphicsDevice) GraphicsEnvironment
+                .getLocalGraphicsEnvironment().getDefaultScreenDevice())
+                .getXResolution();
     }
 
     @Override
--- a/jdk/src/macosx/native/sun/awt/AWTWindow.m	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/src/macosx/native/sun/awt/AWTWindow.m	Mon Nov 05 10:33:18 2012 -0500
@@ -324,6 +324,13 @@
     }
 }
 
++ (NSNumber *) getNSWindowDisplayID_AppKitThread:(NSWindow *)window {
+    AWT_ASSERT_APPKIT_THREAD;
+    NSScreen *screen = [window screen];
+    NSDictionary *deviceDescription = [screen deviceDescription];
+    return [deviceDescription objectForKey:@"NSScreenNumber"];
+}
+
 - (void) dealloc {
 AWT_ASSERT_APPKIT_THREAD;
 
@@ -1113,19 +1120,22 @@
  * Signature: (J)I
  */
 JNIEXPORT jint JNICALL
-Java_sun_lwawt_macosx_CPlatformWindow_nativeGetNSWindowDisplayID_1AppKitThread
+Java_sun_lwawt_macosx_CPlatformWindow_nativeGetNSWindowDisplayID
 (JNIEnv *env, jclass clazz, jlong windowPtr)
 {
-    jint ret; // CGDirectDisplayID
+    __block jint ret; // CGDirectDisplayID
 
 JNF_COCOA_ENTER(env);
-AWT_ASSERT_APPKIT_THREAD;
 
     NSWindow *window = OBJC(windowPtr);
-    NSScreen *screen = [window screen];
-    NSDictionary *deviceDescription = [screen deviceDescription];
-    NSNumber *displayID = [deviceDescription objectForKey:@"NSScreenNumber"];
-    ret = (jint)[displayID intValue];
+
+    if ([NSThread isMainThread]) {
+        ret = (jint)[[AWTWindow getNSWindowDisplayID_AppKitThread: window] intValue];
+    } else {
+        [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){
+            ret = (jint)[[AWTWindow getNSWindowDisplayID_AppKitThread: window] intValue];
+        }];
+    }
 
 JNF_COCOA_EXIT(env);
 
--- a/jdk/src/macosx/native/sun/awt/CTrayIcon.h	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/src/macosx/native/sun/awt/CTrayIcon.h	Mon Nov 05 10:33:18 2012 -0500
@@ -53,6 +53,7 @@
 - (jobject) peer;
 - (void) setImage:(NSImage *) imagePtr sizing:(BOOL)autosize;
 - (NSPoint) getLocationOnScreen;
+- (void) deliverJavaMouseEvent:(NSEvent*) event;
 
 @end //AWTTrayIcon
 
@@ -68,6 +69,7 @@
 -(id)initWithTrayIcon:(AWTTrayIcon *)theTrayIcon;
 -(void)setHighlighted:(BOOL)aFlag;
 -(void)setImage:(NSImage*)anImage;
+-(void)setTrayIcon:(AWTTrayIcon*)theTrayIcon;
 
 @end //AWTTrayIconView
 
--- a/jdk/src/macosx/native/sun/awt/CTrayIcon.m	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/src/macosx/native/sun/awt/CTrayIcon.m	Mon Nov 05 10:33:18 2012 -0500
@@ -29,6 +29,7 @@
 #import "CTrayIcon.h"
 #import "ThreadUtilities.h"
 #include "GeomUtilities.h"
+#import "LWCToolkit.h"
 
 #define kImageInset 4.0
 
@@ -76,8 +77,9 @@
     // Its a bad idea to force the item to release our view by setting
     // the item's view to nil: it can lead to a crash in some scenarios.
     // The item will release the view later on, so just set the view's image
-    // to nil since we are done with it.
+    // and tray icon to nil since we are done with it.
     [view setImage: nil];
+    [view setTrayIcon: nil];
     [view release];
 
     [theItem release];
@@ -115,6 +117,45 @@
     return [[view window] convertBaseToScreen: NSZeroPoint];
 }
 
+-(void) deliverJavaMouseEvent: (NSEvent *) event {
+    [AWTToolkit eventCountPlusPlus];
+
+    JNIEnv *env = [ThreadUtilities getJNIEnv];
+
+    NSPoint eventLocation = [event locationInWindow];
+    NSPoint localPoint = [view convertPoint: eventLocation fromView: nil];
+    localPoint.y = [view bounds].size.height - localPoint.y;
+
+    NSPoint absP = [NSEvent mouseLocation];
+    NSEventType type = [event type];
+
+    NSRect screenRect = [[NSScreen mainScreen] frame];
+    absP.y = screenRect.size.height - absP.y;
+    jint clickCount;
+
+    clickCount = [event clickCount];
+
+    static JNF_CLASS_CACHE(jc_NSEvent, "sun/lwawt/macosx/event/NSEvent");
+    static JNF_CTOR_CACHE(jctor_NSEvent, jc_NSEvent, "(IIIIIIIIDD)V");
+    jobject jEvent = JNFNewObject(env, jctor_NSEvent,
+                                  [event type],
+                                  [event modifierFlags],
+                                  clickCount,
+                                  [event buttonNumber],
+                                  (jint)localPoint.x, (jint)localPoint.y,
+                                  (jint)absP.x, (jint)absP.y,
+                                  [event deltaY],
+                                  [event deltaX]);
+    if (jEvent == nil) {
+        // Unable to create event by some reason.
+        return;
+    }
+
+    static JNF_CLASS_CACHE(jc_TrayIcon, "sun/lwawt/macosx/CTrayIcon");
+    static JNF_MEMBER_CACHE(jm_handleMouseEvent, jc_TrayIcon, "handleMouseEvent", "(Lsun/lwawt/macosx/event/NSEvent;)V");
+    JNFCallVoidMethod(env, peer, jm_handleMouseEvent, jEvent);
+}
+
 @end //AWTTrayIcon
 //================================================
 
@@ -123,7 +164,7 @@
 -(id)initWithTrayIcon:(AWTTrayIcon *)theTrayIcon {
     self = [super initWithFrame:NSMakeRect(0, 0, 1, 1)];
 
-    trayIcon = theTrayIcon;
+    [self setTrayIcon: theTrayIcon];
     isHighlighted = NO;
     image = nil;
 
@@ -153,6 +194,10 @@
     }
 }
 
+-(void)setTrayIcon:(AWTTrayIcon*)theTrayIcon {
+    trayIcon = theTrayIcon;
+}
+
 - (void)menuWillOpen:(NSMenu *)menu
 {
     [self setHighlighted:YES];
@@ -191,30 +236,57 @@
      ];
 }
 
-- (void) mouseDown:(NSEvent *)e {
-    //find CTrayIcon.getPopupMenuModel method and call it to get popup menu ptr.
-    JNIEnv *env = [ThreadUtilities getJNIEnv];
-    static JNF_CLASS_CACHE(jc_CTrayIcon, "sun/lwawt/macosx/CTrayIcon");
-    static JNF_MEMBER_CACHE(jm_getPopupMenuModel, jc_CTrayIcon, "getPopupMenuModel", "()J");
-    static JNF_MEMBER_CACHE(jm_performAction, jc_CTrayIcon, "performAction", "()V");
-    jlong res = JNFCallLongMethod(env, trayIcon.peer, jm_getPopupMenuModel);
-    if (res != 0) {
-        CPopupMenu *cmenu = jlong_to_ptr(res);
-        NSMenu* menu = [cmenu menu];
-        [menu setDelegate:self];
-        [trayIcon.theItem popUpStatusItemMenu:menu];
-        [self setNeedsDisplay:YES];
-    } else {
-        JNFCallVoidMethod(env, trayIcon.peer, jm_performAction);
+- (void)mouseDown:(NSEvent *)event {
+    [trayIcon deliverJavaMouseEvent: event];
+
+    // don't show the menu on ctrl+click: it triggers ACTION event, like right click
+    if (([event modifierFlags] & NSControlKeyMask) == 0) {
+        //find CTrayIcon.getPopupMenuModel method and call it to get popup menu ptr.
+        JNIEnv *env = [ThreadUtilities getJNIEnv];
+        static JNF_CLASS_CACHE(jc_CTrayIcon, "sun/lwawt/macosx/CTrayIcon");
+        static JNF_MEMBER_CACHE(jm_getPopupMenuModel, jc_CTrayIcon, "getPopupMenuModel", "()J");
+        jlong res = JNFCallLongMethod(env, trayIcon.peer, jm_getPopupMenuModel);
+
+        if (res != 0) {
+            CPopupMenu *cmenu = jlong_to_ptr(res);
+            NSMenu* menu = [cmenu menu];
+            [menu setDelegate:self];
+            [trayIcon.theItem popUpStatusItemMenu:menu];
+            [self setNeedsDisplay:YES];
+        }
     }
 }
 
-- (void) rightMouseDown:(NSEvent *)e {
-    // Call CTrayIcon.performAction() method on right mouse press
-    JNIEnv *env = [ThreadUtilities getJNIEnv];
-    static JNF_CLASS_CACHE(jc_CTrayIcon, "sun/lwawt/macosx/CTrayIcon");
-    static JNF_MEMBER_CACHE(jm_performAction, jc_CTrayIcon, "performAction", "()V");
-    JNFCallVoidMethod(env, trayIcon.peer, jm_performAction);
+- (void) mouseUp:(NSEvent *)event {
+    [trayIcon deliverJavaMouseEvent: event];
+}
+
+- (void) mouseDragged:(NSEvent *)event {
+    [trayIcon deliverJavaMouseEvent: event];
+}
+
+- (void) rightMouseDown:(NSEvent *)event {
+    [trayIcon deliverJavaMouseEvent: event];
+}
+
+- (void) rightMouseUp:(NSEvent *)event {
+    [trayIcon deliverJavaMouseEvent: event];
+}
+
+- (void) rightMouseDragged:(NSEvent *)event {
+    [trayIcon deliverJavaMouseEvent: event];
+}
+
+- (void) otherMouseDown:(NSEvent *)event {
+    [trayIcon deliverJavaMouseEvent: event];
+}
+
+- (void) otherMouseUp:(NSEvent *)event {
+    [trayIcon deliverJavaMouseEvent: event];
+}
+
+- (void) otherMouseDragged:(NSEvent *)event {
+    [trayIcon deliverJavaMouseEvent: event];
 }
 
 
--- a/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java	Mon Nov 05 10:33:18 2012 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2012, Oracle and/or its affiliates. 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
@@ -37,6 +37,9 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.security.AccessControlContext;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 
 import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.parsers.SAXParserFactory;
@@ -46,6 +49,8 @@
 import org.xml.sax.SAXException;
 import org.xml.sax.helpers.DefaultHandler;
 
+import sun.misc.SharedSecrets;
+
 /**
  * The main class to parse JavaBeans XML archive.
  *
@@ -56,11 +61,10 @@
  * @see ElementHandler
  */
 public final class DocumentHandler extends DefaultHandler {
-    private final Map<String, Class<? extends ElementHandler>> handlers = new HashMap<String, Class<? extends ElementHandler>>();
-
-    private final Map<String, Object> environment = new HashMap<String, Object>();
-
-    private final List<Object> objects = new ArrayList<Object>();
+    private final AccessControlContext acc = AccessController.getContext();
+    private final Map<String, Class<? extends ElementHandler>> handlers = new HashMap<>();
+    private final Map<String, Object> environment = new HashMap<>();
+    private final List<Object> objects = new ArrayList<>();
 
     private Reference<ClassLoader> loader;
     private ExceptionListener listener;
@@ -351,23 +355,32 @@
      *
      * @param input  the input source to parse
      */
-    public void parse(InputSource input) {
-        try {
-            SAXParserFactory.newInstance().newSAXParser().parse(input, this);
+    public void parse(final InputSource input) {
+        if ((this.acc == null) && (null != System.getSecurityManager())) {
+            throw new SecurityException("AccessControlContext is not set");
         }
-        catch (ParserConfigurationException exception) {
-            handleException(exception);
-        }
-        catch (SAXException wrapper) {
-            Exception exception = wrapper.getException();
-            if (exception == null) {
-                exception = wrapper;
+        AccessControlContext stack = AccessController.getContext();
+        SharedSecrets.getJavaSecurityAccess().doIntersectionPrivilege(new PrivilegedAction<Void>() {
+            public Void run() {
+                try {
+                    SAXParserFactory.newInstance().newSAXParser().parse(input, DocumentHandler.this);
+                }
+                catch (ParserConfigurationException exception) {
+                    handleException(exception);
+                }
+                catch (SAXException wrapper) {
+                    Exception exception = wrapper.getException();
+                    if (exception == null) {
+                        exception = wrapper;
+                    }
+                    handleException(exception);
+                }
+                catch (IOException exception) {
+                    handleException(exception);
+                }
+                return null;
             }
-            handleException(exception);
-        }
-        catch (IOException exception) {
-            handleException(exception);
-        }
+        }, stack, this.acc);
     }
 
     /**
--- a/jdk/src/share/classes/com/sun/beans/decoder/PropertyElementHandler.java	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/src/share/classes/com/sun/beans/decoder/PropertyElementHandler.java	Mon Nov 05 10:33:18 2012 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2012, Oracle and/or its affiliates. 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
@@ -35,6 +35,8 @@
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 
+import sun.reflect.misc.MethodUtil;
+
 /**
  * This class is intended to handle &lt;property&gt; element.
  * This element simplifies access to the properties.
@@ -168,11 +170,11 @@
     private static Object getPropertyValue(Object bean, String name, Integer index) throws IllegalAccessException, IntrospectionException, InvocationTargetException, NoSuchMethodException {
         Class<?> type = bean.getClass();
         if (index == null) {
-            return findGetter(type, name).invoke(bean);
+            return MethodUtil.invoke(findGetter(type, name), bean, new Object[] {});
         } else if (type.isArray() && (name == null)) {
             return Array.get(bean, index);
         } else {
-            return findGetter(type, name, int.class).invoke(bean, index);
+            return MethodUtil.invoke(findGetter(type, name, int.class), bean, new Object[] {index});
         }
     }
 
@@ -197,11 +199,11 @@
                 : null;
 
         if (index == null) {
-            findSetter(type, name, param).invoke(bean, value);
+            MethodUtil.invoke(findSetter(type, name, param), bean, new Object[] {value});
         } else if (type.isArray() && (name == null)) {
             Array.set(bean, index, value);
         } else {
-            findSetter(type, name, int.class, param).invoke(bean, index, value);
+            MethodUtil.invoke(findSetter(type, name, int.class, param), bean, new Object[] {index, value});
         }
     }
 
--- a/jdk/src/share/classes/com/sun/crypto/provider/KeyProtector.java	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/src/share/classes/com/sun/crypto/provider/KeyProtector.java	Mon Nov 05 10:33:18 2012 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2012, Oracle and/or its affiliates. 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
@@ -363,34 +363,3 @@
         super(cipherSpi, provider, transformation);
     }
 }
-
-final class SealedObjectForKeyProtector extends javax.crypto.SealedObject {
-
-    static final long serialVersionUID = -3650226485480866989L;
-
-    SealedObjectForKeyProtector(Serializable object, Cipher c)
-        throws IOException, IllegalBlockSizeException {
-        super(object, c);
-    }
-
-    SealedObjectForKeyProtector(SealedObject so) {
-        super(so);
-    }
-
-    AlgorithmParameters getParameters() {
-        AlgorithmParameters params = null;
-        if (super.encodedParams != null) {
-            try {
-                params = AlgorithmParameters.getInstance("PBE", "SunJCE");
-                params.init(super.encodedParams);
-            } catch (NoSuchProviderException nspe) {
-                // eat.
-            } catch (NoSuchAlgorithmException nsae) {
-                //eat.
-            } catch (IOException ioe) {
-                //eat.
-            }
-        }
-        return params;
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/com/sun/crypto/provider/SealedObjectForKeyProtector.java	Mon Nov 05 10:33:18 2012 -0500
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 1998, 2012, Oracle and/or its affiliates. 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.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package com.sun.crypto.provider;
+
+import java.io.*;
+import java.security.*;
+import javax.crypto.*;
+
+final class SealedObjectForKeyProtector extends SealedObject {
+
+    static final long serialVersionUID = -3650226485480866989L;
+
+    SealedObjectForKeyProtector(Serializable object, Cipher c)
+            throws IOException, IllegalBlockSizeException {
+        super(object, c);
+    }
+
+    SealedObjectForKeyProtector(SealedObject so) {
+        super(so);
+    }
+
+    AlgorithmParameters getParameters() {
+        AlgorithmParameters params = null;
+        if (super.encodedParams != null) {
+            try {
+                params = AlgorithmParameters.getInstance("PBE", "SunJCE");
+                params.init(super.encodedParams);
+            } catch (NoSuchProviderException nspe) {
+                // eat.
+            } catch (NoSuchAlgorithmException nsae) {
+                //eat.
+            } catch (IOException ioe) {
+                //eat.
+            }
+        }
+        return params;
+    }
+}
--- a/jdk/src/share/classes/com/sun/jmx/remote/internal/ServerNotifForwarder.java	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/src/share/classes/com/sun/jmx/remote/internal/ServerNotifForwarder.java	Mon Nov 05 10:33:18 2012 -0500
@@ -68,9 +68,9 @@
         this.notifBuffer = notifBuffer;
         this.connectionId = connectionId;
         connectionTimeout = EnvHelp.getServerConnectionTimeout(env);
-        checkNotificationEmission = EnvHelp.computeBooleanFromString(
-            env,
-            "jmx.remote.x.check.notification.emission",false);
+
+        String stringBoolean = (String) env.get("jmx.remote.x.check.notification.emission");
+        checkNotificationEmission = EnvHelp.computeBooleanFromString( stringBoolean );
         notificationAccessController =
                 EnvHelp.getNotificationAccessController(env);
     }
--- a/jdk/src/share/classes/com/sun/jmx/remote/util/EnvHelp.java	Mon Nov 05 10:30:49 2012 -0500
+++ b/jdk/src/share/classes/com/sun/jmx/remote/util/EnvHelp.java	Mon Nov 05 10:33:18 2012 -0500
@@ -665,97 +665,57 @@
      * Computes a boolean value from a string value retrieved from a
      * property in the given map.
      *
-     * @param env the environment map.
-     * @param prop the name of the property in the environment map whose
-     * returned string value must be converted into a boolean value.
-     * @param systemProperty if true, consult a system property of the
-     * same name if there is no entry in the environment map.
+     * @param stringBoolean the string value that must be converted
+     * into a boolean value.
      *
      * @return
      *   <ul>
-     *   <li>{@code false} if {@code env.get(prop)} is {@code null}</li>
+     *   <li>{@code false} if {@code stringBoolean} is {@code null}</li>
      *   <li>{@code false} if
-     *       {@code ((String)env.get(prop)).equalsIgnoreCase("false")}
+     *       {@code stringBoolean.equalsIgnoreCase("false")}
      *       is {@code true}</li>
      *   <li>{@code true} if
-     *       {@code ((String)env.get(prop)).equalsIgnoreCase("true")}
+     *       {@code stringBoolean.equalsIgnoreCase("true")}
      *       is {@code true}</li>
      *   </ul>
      *
-     * @throws IllegalArgumentException if {@code env} is {@code null} or
-     * {@code env.get(prop)} is not {@code null} and
+     * @throws IllegalArgumentException if
      * {@code ((String)env.get(prop)).equalsIgnoreCase("false")} and
      * {@code ((String)env.get(prop)).equalsIgnoreCase("true")} are
      * {@code false}.
-     * @throws ClassCastException if {@code env.get(prop)} cannot be cast
-     * to {@code String}.
      */
-    public static boolean computeBooleanFromString(
-            Map<String, ?> env, String prop, boolean systemProperty) {
-
-        if (env == null)
-            throw new IllegalArgumentException("env map cannot be null");
-
+    public static boolean computeBooleanFromString(String stringBoolean) {
         // returns a default value of 'false' if no property is found...
-        return computeBooleanFromString(env,prop,systemProperty,false);
+        return computeBooleanFromString(stringBoolean,false);
     }
 
     /**
      * Computes a boolean value from a string value retrieved from a
      * property in the given map.
      *
-     * @param env the environment map.
-     * @param prop the name of the property in the environment map whose
-     * returned string value must be converted into a boolean value.
-     * @param systemProperty if true, consult a system property of the
-     * same name if there is no entry in the environment map.
+     * @param stringBoolean the string value that must be converted
+     * into a boolean value.
      * @param defaultValue a default value to return in case no property
      *        was defined.
      *
      * @return
      *   <ul>
-     *   <li>{@code defaultValue} if {@code env.get(prop)} is {@code null}
-     *       and {@code systemProperty} is {@code false}</li>
-     *   <li>{@code defaultValue} if {@code env.get(prop)} is {@code null}
-     *       and {@code systemProperty} is {@code true} and
-     *       {@code System.getProperty(prop)} is {@code null}</li>
-     *   <li>{@code false} if {@code env.get(prop)} is {@code null}
-     *       and {@code systemProperty} is {@code true} and
-     *       {@code System.getProperty(prop).equalsIgnoreCase("false")}
-     *       is {@code true}</li>
-     *   <li>{@code true} if {@code env.get(prop)} is {@