changeset 7385:e616c28c5120

Merge
author erikj
date Mon, 28 Jan 2013 14:23:09 +0100
parents 7cda96a78260 ef592aceb40e
children a1a55db02f34
files make/tools/swing-beans/beaninfo/BeanInfoUtils.java make/tools/swing-beans/beaninfo/SwingBeanInfoBase.java makefiles/CompileJavaClasses.gmk makefiles/CompileLaunchers.gmk makefiles/CompileNativeLibraries.gmk makefiles/CopyFiles.gmk makefiles/CreateJars.gmk src/share/demo/jfc/CodePointIM/CodePointInputMethod.java src/share/demo/jfc/CodePointIM/CodePointInputMethodDescriptor.java
diffstat 38 files changed, 3789 insertions(+), 1547 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Thu Jan 24 18:06:24 2013 +0400
+++ b/.hgtags	Mon Jan 28 14:23:09 2013 +0100
@@ -194,3 +194,5 @@
 a996b57e554198f4592a5f3c30f2f9f4075e545d jdk8-b70
 2a5af0f766d0acd68a81fb08fe11fd66795f86af jdk8-b71
 32a57e645e012a1f0665c075969ca598e0dbb948 jdk8-b72
+733885f57e14cc27f5a5ff0dffe641d2fa3c704a jdk8-b73
+57d5d954462831ac353a1f40d3bb05ddb4620952 jdk8-b74
--- a/make/common/shared/Defs-windows.gmk	Thu Jan 24 18:06:24 2013 +0400
+++ b/make/common/shared/Defs-windows.gmk	Mon Jan 28 14:23:09 2013 +0100
@@ -549,7 +549,10 @@
   _WSCRIPT2 :=$(DEVTOOLS_PATH)wscript.exe
   WSCRIPT  :=$(call FileExists,$(_WSCRIPT1),$(_WSCRIPT2))
 endif
+# If CONFIGURE_BUILD is defined, checks were already done by configure.
+ifndef CONFIGURE_BUILD
 WSCRIPT:=$(call AltCheckSpaces,WSCRIPT)
+endif #! CONFIGURE_BUILD
 # batch mode no modal dialogs on errors, please.
 WSCRIPT += -B
 
@@ -562,7 +565,10 @@
   _CSCRIPT2 :=$(DEVTOOLS_PATH)cscript.exe
   CSCRIPT  :=$(call FileExists,$(_CSCRIPT1),$(_CSCRIPT2))
 endif
+# If CONFIGURE_BUILD is defined, checks were already done by configure.
+ifndef CONFIGURE_BUILD
 CSCRIPT:=$(call AltCheckSpaces,CSCRIPT)
+endif #! CONFIGURE_BUILD
 
 # CABARC: path to cabarc.exe (used in creating install bundles)
 ifdef ALT_CABARC
@@ -584,7 +590,10 @@
   _MSICERT2 :=$(DEVTOOLS_PATH)msicert.exe
   MSICERT   :=$(call FileExists,$(_MSICERT1),$(_MSICERT2))
 endif
+# If CONFIGURE_BUILD is defined, checks were already done by configure.
+ifndef CONFIGURE_BUILD
 MSICERT:=$(call AltCheckSpaces,MSICERT)
+endif #! CONFIGURE_BUILD
 
 # Import JDK images allow for partial builds, components not built are
 #    imported (or copied from) these import areas when needed.
--- a/make/javax/swing/beaninfo/SwingBeans.gmk	Thu Jan 24 18:06:24 2013 +0400
+++ b/make/javax/swing/beaninfo/SwingBeans.gmk	Mon Jan 28 14:23:09 2013 +0100
@@ -124,10 +124,10 @@
 $(BEANSRCDIR)/%BeanInfo.java: $(FAKESRC)/$(SWINGPKG)/%.java
 	@$(ECHO) $< >> $(TEMPDIR)/.beans.list
 
-$(BEANSRCDIR)/SwingBeanInfoBase.java: $(DOCLETSRC)/beaninfo/SwingBeanInfoBase.java
+$(BEANSRCDIR)/SwingBeanInfoBase.java: $(DOCLETSRC)/javax/swing/SwingBeanInfoBase.java
 	$(CP) $< $@
 
-$(BEANSRCDIR)/BeanInfoUtils.java: $(DOCLETSRC)/beaninfo/BeanInfoUtils.java
+$(BEANSRCDIR)/BeanInfoUtils.java: $(DOCLETSRC)/sun/swing/BeanInfoUtils.java
 	$(CP) $< $@
 
 #
--- a/make/tools/swing-beans/beaninfo/BeanInfoUtils.java	Thu Jan 24 18:06:24 2013 +0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,293 +0,0 @@
-/*
- * Copyright (c) 1998, 2004, 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 sun.swing;
-
-import java.beans.*;
-import java.lang.reflect.Method;
-
-public class BeanInfoUtils
-{
-    /* The values of these createPropertyDescriptor() and
-     * createBeanDescriptor() keywords are the names of the
-     * properties they're used to set.
-     */
-    public static final String BOUND = "bound";
-    public static final String CONSTRAINED = "constrained";
-    public static final String PROPERTYEDITORCLASS = "propertyEditorClass";
-    public static final String READMETHOD = "readMethod";
-    public static final String WRITEMETHOD = "writeMethod";
-    public static final String DISPLAYNAME = "displayName";
-    public static final String EXPERT = "expert";
-    public static final String HIDDEN = "hidden";
-    public static final String PREFERRED = "preferred";
-    public static final String SHORTDESCRIPTION = "shortDescription";
-    public static final String CUSTOMIZERCLASS = "customizerClass";
-
-    static private void initFeatureDescriptor(FeatureDescriptor fd, String key, Object value)
-    {
-        if (DISPLAYNAME.equals(key)) {
-            fd.setDisplayName((String)value);
-        }
-
-        if (EXPERT.equals(key)) {
-            fd.setExpert(((Boolean)value).booleanValue());
-        }
-
-        if (HIDDEN.equals(key)) {
-            fd.setHidden(((Boolean)value).booleanValue());
-        }
-
-        if (PREFERRED.equals(key)) {
-            fd.setPreferred(((Boolean)value).booleanValue());
-        }
-
-        else if (SHORTDESCRIPTION.equals(key)) {
-            fd.setShortDescription((String)value);
-        }
-
-        /* Otherwise assume that we have an arbitrary FeatureDescriptor
-         * "attribute".
-         */
-        else {
-            fd.setValue(key, value);
-        }
-    }
-
-    /**
-     * Create a beans PropertyDescriptor given an of keyword/value
-     * arguments.  The following sample call shows all of the supported
-     * keywords:
-     *<pre>
-     *      createPropertyDescriptor("contentPane", new Object[] {
-     *                     BOUND, Boolean.TRUE,
-     *               CONSTRAINED, Boolean.TRUE,
-     *       PROPERTYEDITORCLASS, package.MyEditor.class,
-     *                READMETHOD, "getContentPane",
-     *               WRITEMETHOD, "setContentPane",
-     *               DISPLAYNAME, "contentPane",
-     *                    EXPERT, Boolean.FALSE,
-     *                    HIDDEN, Boolean.FALSE,
-     *                 PREFERRED, Boolean.TRUE,
-     *          SHORTDESCRIPTION, "A top level window with a window manager border",
-     *         "random attribute","random object value"
-     *        }
-     *     );
-     * </pre>
-     * The keywords correspond to <code>java.beans.PropertyDescriptor</code> and
-     * <code>java.beans.FeatureDescriptor</code> properties, e.g. providing a value
-     * for displayName is comparable to <code>FeatureDescriptor.setDisplayName()</code>.
-     * Using createPropertyDescriptor instead of the PropertyDescriptor
-     * constructor and set methods is preferrable in that it regularizes
-     * the code in a <code>java.beans.BeanInfo.getPropertyDescriptors()</code>
-     * method implementation.  One can use <code>createPropertyDescriptor</code>
-     * to set <code>FeatureDescriptor</code> attributes, as in "random attribute"
-     * "random object value".
-     * <p>
-     * All properties should provide a reasonable value for the
-     * <code>SHORTDESCRIPTION</code> keyword and should set <code>BOUND</code>
-     * to <code>Boolean.TRUE</code> if neccessary.  The remaining keywords
-     * are optional.  There's no need to provide values for keywords like
-     * READMETHOD if the correct value can be computed, i.e. if the properties
-     * get/is method follows the standard beans pattern.
-     * <p>
-     * The PREFERRED keyword is not supported by the JDK1.1 java.beans package.
-     * It's still worth setting it to true for properties that are most
-     * likely to be interested to the average developer, e.g. AbstractButton.title
-     * is a preferred property, AbstractButton.focusPainted is not.
-     *
-     * @see java.beans#BeanInfo
-     * @see java.beans#PropertyDescriptor
-     * @see java.beans#FeatureDescriptor
-     */
-    public static PropertyDescriptor createPropertyDescriptor(Class cls, String name, Object[] args)
-    {
-        PropertyDescriptor pd = null;
-        try {
-            pd = new PropertyDescriptor(name, cls);
-        } catch (IntrospectionException e) {
-            // Try creating a read-only property, in case setter isn't defined.
-            try {
-                pd = createReadOnlyPropertyDescriptor(name, cls);
-            } catch (IntrospectionException ie) {
-                throwError(ie, "Can't create PropertyDescriptor for " + name + " ");
-            }
-        }
-
-        for(int i = 0; i < args.length; i += 2) {
-            String key = (String)args[i];
-            Object value = args[i + 1];
-
-            if (BOUND.equals(key)) {
-                pd.setBound(((Boolean)value).booleanValue());
-            }
-
-            else if (CONSTRAINED.equals(key)) {
-                pd.setConstrained(((Boolean)value).booleanValue());
-            }
-
-            else if (PROPERTYEDITORCLASS.equals(key)) {
-                pd.setPropertyEditorClass((Class)value);
-            }
-
-            else if (READMETHOD.equals(key)) {
-                String methodName = (String)value;
-                Method method;
-                try {
-                    method = cls.getMethod(methodName, new Class[0]);
-                    pd.setReadMethod(method);
-                }
-                catch(Exception e) {
-                    throwError(e, cls + " no such method as \"" + methodName + "\"");
-                }
-            }
-
-            else if (WRITEMETHOD.equals(key)) {
-                String methodName = (String)value;
-                Method method;
-                try {
-                    Class type = pd.getPropertyType();
-                    method = cls.getMethod(methodName, new Class[]{type});
-                    pd.setWriteMethod(method);
-                }
-                catch(Exception e) {
-                    throwError(e, cls + " no such method as \"" + methodName + "\"");
-                }
-            }
-
-            else {
-                initFeatureDescriptor(pd, key, value);
-            }
-        }
-
-        return pd;
-    }
-
-
-    /**
-     * Create a BeanDescriptor object given an of keyword/value
-     * arguments.  The following sample call shows all of the supported
-     * keywords:
-     *<pre>
-     *      createBeanDescriptor(JWindow..class, new Object[] {
-     *           CUSTOMIZERCLASS, package.MyCustomizer.class,
-     *               DISPLAYNAME, "JFrame",
-     *                    EXPERT, Boolean.FALSE,
-     *                    HIDDEN, Boolean.FALSE,
-     *                 PREFERRED, Boolean.TRUE,
-     *          SHORTDESCRIPTION, "A top level window with a window manager border",
-     *         "random attribute","random object value"
-     *        }
-     *     );
-     * </pre>
-     * The keywords correspond to <code>java.beans.BeanDescriptor</code> and
-     * <code>java.beans.FeatureDescriptor</code> properties, e.g. providing a value
-     * for displayName is comparable to <code>FeatureDescriptor.setDisplayName()</code>.
-     * Using createBeanDescriptor instead of the BeanDescriptor
-     * constructor and set methods is preferrable in that it regularizes
-     * the code in a <code>java.beans.BeanInfo.getBeanDescriptor()</code>
-     * method implementation.  One can use <code>createBeanDescriptor</code>
-     * to set <code>FeatureDescriptor</code> attributes, as in "random attribute"
-     * "random object value".
-     *
-     * @see java.beans#BeanInfo
-     * @see java.beans#PropertyDescriptor
-     */
-    public static BeanDescriptor createBeanDescriptor(Class cls, Object[] args)
-    {
-        Class customizerClass = null;
-
-        /* For reasons I don't understand, customizerClass is a
-         * readOnly property.  So we have to find it and pass it
-         * to the constructor here.
-         */
-        for(int i = 0; i < args.length; i += 2) {
-            if (CUSTOMIZERCLASS.equals((String)args[i])) {
-                customizerClass = (Class)args[i + 1];
-                break;
-            }
-        }
-
-        BeanDescriptor bd = new BeanDescriptor(cls, customizerClass);
-
-        for(int i = 0; i < args.length; i += 2) {
-            String key = (String)args[i];
-            Object value = args[i + 1];
-            initFeatureDescriptor(bd, key, value);
-        }
-
-        return bd;
-    }
-
-    static private PropertyDescriptor createReadOnlyPropertyDescriptor(
-        String name, Class cls) throws IntrospectionException {
-
-        Method readMethod = null;
-        String base = capitalize(name);
-        Class[] parameters = new Class[0];
-
-        // Is it a boolean?
-        try {
-            readMethod = cls.getMethod("is" + base, parameters);
-        } catch (Exception ex) {}
-        if (readMethod == null) {
-            try {
-                // Try normal accessor pattern.
-                readMethod = cls.getMethod("get" + base, parameters);
-            } catch (Exception ex2) {}
-        }
-        if (readMethod != null) {
-            return new PropertyDescriptor(name, readMethod, null);
-        }
-
-        try {
-            // Try indexed accessor pattern.
-            parameters = new Class[1];
-            parameters[0] = int.class;
-            readMethod = cls.getMethod("get" + base, parameters);
-        } catch (NoSuchMethodException nsme) {
-            throw new IntrospectionException(
-                "cannot find accessor method for " + name + " property.");
-        }
-        return new IndexedPropertyDescriptor(name, null, null, readMethod, null);
-    }
-
-    // Modified methods from java.beans.Introspector
-    private static String capitalize(String s) {
-        if (s.length() == 0) {
-            return s;
-        }
-        char chars[] = s.toCharArray();
-        chars[0] = Character.toUpperCase(chars[0]);
-        return new String(chars);
-    }
-
-    /**
-     * Fatal errors are handled by calling this method.
-     */
-    public static void throwError(Exception e, String s) {
-        throw new Error(e.toString() + " " + s);
-    }
-}
--- a/make/tools/swing-beans/beaninfo/SwingBeanInfoBase.java	Thu Jan 24 18:06:24 2013 +0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-/*
- * Copyright (c) 1997, 2004, 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 javax.swing;
-
-import java.beans.*;
-import java.lang.reflect.*;
-import java.awt.Image;
-
-/**
- * The superclass for all Swing BeanInfo classes.  It provides
- * default implementations of <code>getIcon</code> and
- * <code>getDefaultPropertyIndex</code> as well as utility
- * methods, like createPropertyDescriptor, for writing BeanInfo
- * implementations.  This classes is intended to be used along
- * with <code>GenSwingBeanInfo</code> a BeanInfo class code generator.
- *
- * @see GenSwingBeanInfo
- * @author Hans Muller
- */
-public class SwingBeanInfoBase extends SimpleBeanInfo
-{
-    /**
-     * The default index is always 0.  In other words the first property
-     * listed in the getPropertyDescriptors() method is the one
-     * to show a (JFC builder) user in a situation where just a single
-     * property will be shown.
-     */
-    public int getDefaultPropertyIndex() {
-        return 0;
-    }
-
-    /**
-     * Returns a generic Swing icon, all icon "kinds" are supported.
-     * Subclasses should defer to this method when they don't have
-     * a particular beans icon kind.
-     */
-    public Image getIcon(int kind) {
-        // PENDING(hmuller) need generic swing icon images.
-        return null;
-    }
-
-    /**
-     * Returns the BeanInfo for the superclass of our bean, so that
-     * its PropertyDescriptors will be included.
-     */
-    public BeanInfo[] getAdditionalBeanInfo() {
-        Class superClass = getBeanDescriptor().getBeanClass().getSuperclass();
-        BeanInfo superBeanInfo = null;
-        try {
-            superBeanInfo = Introspector.getBeanInfo(superClass);
-        } catch (IntrospectionException ie) {}
-        if (superBeanInfo != null) {
-            BeanInfo[] ret = new BeanInfo[1];
-            ret[0] = superBeanInfo;
-            return ret;
-        }
-        return null;
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/tools/swing-beans/javax/swing/SwingBeanInfoBase.java	Mon Jan 28 14:23:09 2013 +0100
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 1997, 2004, 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 javax.swing;
+
+import java.beans.*;
+import java.lang.reflect.*;
+import java.awt.Image;
+
+/**
+ * The superclass for all Swing BeanInfo classes.  It provides
+ * default implementations of <code>getIcon</code> and
+ * <code>getDefaultPropertyIndex</code> as well as utility
+ * methods, like createPropertyDescriptor, for writing BeanInfo
+ * implementations.  This classes is intended to be used along
+ * with <code>GenSwingBeanInfo</code> a BeanInfo class code generator.
+ *
+ * @see GenSwingBeanInfo
+ * @author Hans Muller
+ */
+public class SwingBeanInfoBase extends SimpleBeanInfo
+{
+    /**
+     * The default index is always 0.  In other words the first property
+     * listed in the getPropertyDescriptors() method is the one
+     * to show a (JFC builder) user in a situation where just a single
+     * property will be shown.
+     */
+    public int getDefaultPropertyIndex() {
+        return 0;
+    }
+
+    /**
+     * Returns a generic Swing icon, all icon "kinds" are supported.
+     * Subclasses should defer to this method when they don't have
+     * a particular beans icon kind.
+     */
+    public Image getIcon(int kind) {
+        // PENDING(hmuller) need generic swing icon images.
+        return null;
+    }
+
+    /**
+     * Returns the BeanInfo for the superclass of our bean, so that
+     * its PropertyDescriptors will be included.
+     */
+    public BeanInfo[] getAdditionalBeanInfo() {
+        Class superClass = getBeanDescriptor().getBeanClass().getSuperclass();
+        BeanInfo superBeanInfo = null;
+        try {
+            superBeanInfo = Introspector.getBeanInfo(superClass);
+        } catch (IntrospectionException ie) {}
+        if (superBeanInfo != null) {
+            BeanInfo[] ret = new BeanInfo[1];
+            ret[0] = superBeanInfo;
+            return ret;
+        }
+        return null;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/tools/swing-beans/sun/swing/BeanInfoUtils.java	Mon Jan 28 14:23:09 2013 +0100
@@ -0,0 +1,293 @@
+/*
+ * Copyright (c) 1998, 2004, 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 sun.swing;
+
+import java.beans.*;
+import java.lang.reflect.Method;
+
+public class BeanInfoUtils
+{
+    /* The values of these createPropertyDescriptor() and
+     * createBeanDescriptor() keywords are the names of the
+     * properties they're used to set.
+     */
+    public static final String BOUND = "bound";
+    public static final String CONSTRAINED = "constrained";
+    public static final String PROPERTYEDITORCLASS = "propertyEditorClass";
+    public static final String READMETHOD = "readMethod";
+    public static final String WRITEMETHOD = "writeMethod";
+    public static final String DISPLAYNAME = "displayName";
+    public static final String EXPERT = "expert";
+    public static final String HIDDEN = "hidden";
+    public static final String PREFERRED = "preferred";
+    public static final String SHORTDESCRIPTION = "shortDescription";
+    public static final String CUSTOMIZERCLASS = "customizerClass";
+
+    static private void initFeatureDescriptor(FeatureDescriptor fd, String key, Object value)
+    {
+        if (DISPLAYNAME.equals(key)) {
+            fd.setDisplayName((String)value);
+        }
+
+        if (EXPERT.equals(key)) {
+            fd.setExpert(((Boolean)value).booleanValue());
+        }
+
+        if (HIDDEN.equals(key)) {
+            fd.setHidden(((Boolean)value).booleanValue());
+        }
+
+        if (PREFERRED.equals(key)) {
+            fd.setPreferred(((Boolean)value).booleanValue());
+        }
+
+        else if (SHORTDESCRIPTION.equals(key)) {
+            fd.setShortDescription((String)value);
+        }
+
+        /* Otherwise assume that we have an arbitrary FeatureDescriptor
+         * "attribute".
+         */
+        else {
+            fd.setValue(key, value);
+        }
+    }
+
+    /**
+     * Create a beans PropertyDescriptor given an of keyword/value
+     * arguments.  The following sample call shows all of the supported
+     * keywords:
+     *<pre>
+     *      createPropertyDescriptor("contentPane", new Object[] {
+     *                     BOUND, Boolean.TRUE,
+     *               CONSTRAINED, Boolean.TRUE,
+     *       PROPERTYEDITORCLASS, package.MyEditor.class,
+     *                READMETHOD, "getContentPane",
+     *               WRITEMETHOD, "setContentPane",
+     *               DISPLAYNAME, "contentPane",
+     *                    EXPERT, Boolean.FALSE,
+     *                    HIDDEN, Boolean.FALSE,
+     *                 PREFERRED, Boolean.TRUE,
+     *          SHORTDESCRIPTION, "A top level window with a window manager border",
+     *         "random attribute","random object value"
+     *        }
+     *     );
+     * </pre>
+     * The keywords correspond to <code>java.beans.PropertyDescriptor</code> and
+     * <code>java.beans.FeatureDescriptor</code> properties, e.g. providing a value
+     * for displayName is comparable to <code>FeatureDescriptor.setDisplayName()</code>.
+     * Using createPropertyDescriptor instead of the PropertyDescriptor
+     * constructor and set methods is preferrable in that it regularizes
+     * the code in a <code>java.beans.BeanInfo.getPropertyDescriptors()</code>
+     * method implementation.  One can use <code>createPropertyDescriptor</code>
+     * to set <code>FeatureDescriptor</code> attributes, as in "random attribute"
+     * "random object value".
+     * <p>
+     * All properties should provide a reasonable value for the
+     * <code>SHORTDESCRIPTION</code> keyword and should set <code>BOUND</code>
+     * to <code>Boolean.TRUE</code> if neccessary.  The remaining keywords
+     * are optional.  There's no need to provide values for keywords like
+     * READMETHOD if the correct value can be computed, i.e. if the properties
+     * get/is method follows the standard beans pattern.
+     * <p>
+     * The PREFERRED keyword is not supported by the JDK1.1 java.beans package.
+     * It's still worth setting it to true for properties that are most
+     * likely to be interested to the average developer, e.g. AbstractButton.title
+     * is a preferred property, AbstractButton.focusPainted is not.
+     *
+     * @see java.beans#BeanInfo
+     * @see java.beans#PropertyDescriptor
+     * @see java.beans#FeatureDescriptor
+     */
+    public static PropertyDescriptor createPropertyDescriptor(Class cls, String name, Object[] args)
+    {
+        PropertyDescriptor pd = null;
+        try {
+            pd = new PropertyDescriptor(name, cls);
+        } catch (IntrospectionException e) {
+            // Try creating a read-only property, in case setter isn't defined.
+            try {
+                pd = createReadOnlyPropertyDescriptor(name, cls);
+            } catch (IntrospectionException ie) {
+                throwError(ie, "Can't create PropertyDescriptor for " + name + " ");
+            }
+        }
+
+        for(int i = 0; i < args.length; i += 2) {
+            String key = (String)args[i];
+            Object value = args[i + 1];
+
+            if (BOUND.equals(key)) {
+                pd.setBound(((Boolean)value).booleanValue());
+            }
+
+            else if (CONSTRAINED.equals(key)) {
+                pd.setConstrained(((Boolean)value).booleanValue());
+            }
+
+            else if (PROPERTYEDITORCLASS.equals(key)) {
+                pd.setPropertyEditorClass((Class)value);
+            }
+
+            else if (READMETHOD.equals(key)) {
+                String methodName = (String)value;
+                Method method;
+                try {
+                    method = cls.getMethod(methodName, new Class[0]);
+                    pd.setReadMethod(method);
+                }
+                catch(Exception e) {
+                    throwError(e, cls + " no such method as \"" + methodName + "\"");
+                }
+            }
+
+            else if (WRITEMETHOD.equals(key)) {
+                String methodName = (String)value;
+                Method method;
+                try {
+                    Class type = pd.getPropertyType();
+                    method = cls.getMethod(methodName, new Class[]{type});
+                    pd.setWriteMethod(method);
+                }
+                catch(Exception e) {
+                    throwError(e, cls + " no such method as \"" + methodName + "\"");
+                }
+            }
+
+            else {
+                initFeatureDescriptor(pd, key, value);
+            }
+        }
+
+        return pd;
+    }
+
+
+    /**
+     * Create a BeanDescriptor object given an of keyword/value
+     * arguments.  The following sample call shows all of the supported
+     * keywords:
+     *<pre>
+     *      createBeanDescriptor(JWindow..class, new Object[] {
+     *           CUSTOMIZERCLASS, package.MyCustomizer.class,
+     *               DISPLAYNAME, "JFrame",
+     *                    EXPERT, Boolean.FALSE,
+     *                    HIDDEN, Boolean.FALSE,
+     *                 PREFERRED, Boolean.TRUE,
+     *          SHORTDESCRIPTION, "A top level window with a window manager border",
+     *         "random attribute","random object value"
+     *        }
+     *     );
+     * </pre>
+     * The keywords correspond to <code>java.beans.BeanDescriptor</code> and
+     * <code>java.beans.FeatureDescriptor</code> properties, e.g. providing a value
+     * for displayName is comparable to <code>FeatureDescriptor.setDisplayName()</code>.
+     * Using createBeanDescriptor instead of the BeanDescriptor
+     * constructor and set methods is preferrable in that it regularizes
+     * the code in a <code>java.beans.BeanInfo.getBeanDescriptor()</code>
+     * method implementation.  One can use <code>createBeanDescriptor</code>
+     * to set <code>FeatureDescriptor</code> attributes, as in "random attribute"
+     * "random object value".
+     *
+     * @see java.beans#BeanInfo
+     * @see java.beans#PropertyDescriptor
+     */
+    public static BeanDescriptor createBeanDescriptor(Class cls, Object[] args)
+    {
+        Class customizerClass = null;
+
+        /* For reasons I don't understand, customizerClass is a
+         * readOnly property.  So we have to find it and pass it
+         * to the constructor here.
+         */
+        for(int i = 0; i < args.length; i += 2) {
+            if (CUSTOMIZERCLASS.equals((String)args[i])) {
+                customizerClass = (Class)args[i + 1];
+                break;
+            }
+        }
+
+        BeanDescriptor bd = new BeanDescriptor(cls, customizerClass);
+
+        for(int i = 0; i < args.length; i += 2) {
+            String key = (String)args[i];
+            Object value = args[i + 1];
+            initFeatureDescriptor(bd, key, value);
+        }
+
+        return bd;
+    }
+
+    static private PropertyDescriptor createReadOnlyPropertyDescriptor(
+        String name, Class cls) throws IntrospectionException {
+
+        Method readMethod = null;
+        String base = capitalize(name);
+        Class[] parameters = new Class[0];
+
+        // Is it a boolean?
+        try {
+            readMethod = cls.getMethod("is" + base, parameters);
+        } catch (Exception ex) {}
+        if (readMethod == null) {
+            try {
+                // Try normal accessor pattern.
+                readMethod = cls.getMethod("get" + base, parameters);
+            } catch (Exception ex2) {}
+        }
+        if (readMethod != null) {
+            return new PropertyDescriptor(name, readMethod, null);
+        }
+
+        try {
+            // Try indexed accessor pattern.
+            parameters = new Class[1];
+            parameters[0] = int.class;
+            readMethod = cls.getMethod("get" + base, parameters);
+        } catch (NoSuchMethodException nsme) {
+            throw new IntrospectionException(
+                "cannot find accessor method for " + name + " property.");
+        }
+        return new IndexedPropertyDescriptor(name, null, null, readMethod, null);
+    }
+
+    // Modified methods from java.beans.Introspector
+    private static String capitalize(String s) {
+        if (s.length() == 0) {
+            return s;
+        }
+        char chars[] = s.toCharArray();
+        chars[0] = Character.toUpperCase(chars[0]);
+        return new String(chars);
+    }
+
+    /**
+     * Fatal errors are handled by calling this method.
+     */
+    public static void throwError(Exception e, String s) {
+        throw new Error(e.toString() + " " + s);
+    }
+}
--- a/makefiles/BuildJdk.gmk	Thu Jan 24 18:06:24 2013 +0400
+++ b/makefiles/BuildJdk.gmk	Mon Jan 28 14:23:09 2013 +0100
@@ -39,10 +39,7 @@
 # Setup the java compilers for the JDK build.
 include Setup.gmk
 
-# Setup the build tools.
-include Tools.gmk
-
-import: $(BUILD_TOOLS) import-only
+import: import-only
 import-only:
 #       Import (corba jaxp jaxws langtools hotspot)
 	+$(MAKE) -f Import.gmk
@@ -91,17 +88,19 @@
 # into packages, or installed.
 images:
 	+$(MAKE) -f CreateJars.gmk
-	+$(MAKE) -f Images.gmk 
+	+$(MAKE) -f Images.gmk
+ifeq ($(OPENJDK_TARGET_OS), macosx)
+	+$(MAKE) -f Bundles.gmk
+endif
 
 overlay-images:
 	+$(MAKE) -f CompileLaunchers.gmk OVERLAY_IMAGES=true
 	+$(MAKE) -f Images.gmk overlay-images
 
-# Create platform specific image layouts
-bundles:
-	+$(MAKE) -f Bundles.gmk
+sign-jars:
+	+$(MAKE) -f SignJars.gmk
 
-BINARIES:=$(notdir $(wildcard $(IMAGES_OUTPUTDIR)/j2sdk-image/bin/*))
+BINARIES:=$(notdir $(wildcard $(JDK_IMAGE_DIR)/bin/*))
 INSTALLDIR:=openjdk-$(RELEASE)
 
 # Install the jdk image, in a very crude way. Not taking into
@@ -111,7 +110,7 @@
 	echo and creating $(words $(BINARIES)) links from $(INSTALL_PREFIX)/bin into the jdk.
 	$(MKDIR) -p $(INSTALL_PREFIX)/jvm/$(INSTALLDIR)
 	$(RM) -r $(INSTALL_PREFIX)/jvm/$(INSTALLDIR)/*
-	$(CP) -rp $(IMAGES_OUTPUTDIR)/j2sdk-image/* $(INSTALL_PREFIX)/jvm/$(INSTALLDIR)
+	$(CP) -rp $(JDK_IMAGE_DIR)/* $(INSTALL_PREFIX)/jvm/$(INSTALLDIR)
 	$(MKDIR) -p $(INSTALL_PREFIX)/bin
 	$(RM) $(addprefix $(INSTALL_PREFIX)/bin/,$(BINARIES))
 	$(foreach b,$(BINARIES),$(LN) -s $(INSTALL_PREFIX)/jvm/$(INSTALLDIR)/bin/$b $(INSTALL_PREFIX)/bin/$b &&) true
--- a/makefiles/Bundles.gmk	Thu Jan 24 18:06:24 2013 +0400
+++ b/makefiles/Bundles.gmk	Mon Jan 28 14:23:09 2013 +0100
@@ -33,9 +33,7 @@
 
 bundles: jre-bundle jdk-bundle
 
-
-JDK_BUNDLE_DIR := $(IMAGES_OUTPUTDIR)/j2sdk-bundle/jdk$(JDK_VERSION).jdk/Contents
-JRE_BUNDLE_DIR := $(IMAGES_OUTPUTDIR)/j2re-bundle/jre$(JDK_VERSION).jre/Contents
+# JDK_BUNDLE_DIR and JRE_BUNDLE_DIR are defined in SPEC.
 
 MACOSX_SRC := $(JDK_TOPDIR)/src/macosx
 
@@ -70,30 +68,31 @@
 endif
 
 
-JDK_FILE_LIST := $(shell $(FIND) $(IMAGES_OUTPUTDIR)/j2sdk-image ! -type d)
-JRE_FILE_LIST := $(shell $(FIND) $(IMAGES_OUTPUTDIR)/j2re-image ! -type d)
+JDK_FILE_LIST := $(shell $(FIND) $(JDK_IMAGE_DIR))
+JRE_FILE_LIST := $(shell $(FIND) $(JRE_IMAGE_DIR))
 
-JDK_TARGET_LIST := $(subst $(IMAGES_OUTPUTDIR)/j2sdk-image,$(JDK_BUNDLE_DIR)/Home,$(JDK_FILE_LIST))
-JRE_TARGET_LIST := $(subst $(IMAGES_OUTPUTDIR)/j2re-image,$(JRE_BUNDLE_DIR)/Home,$(JRE_FILE_LIST))
+JDK_TARGET_LIST := $(subst $(JDK_IMAGE_DIR)/,$(JDK_BUNDLE_DIR)/Home/,$(JDK_FILE_LIST))
+JRE_TARGET_LIST := $(subst $(JRE_IMAGE_DIR)/,$(JRE_BUNDLE_DIR)/Home/,$(JRE_FILE_LIST))
 
 # The old builds implementation of this did not preserve symlinks so
 # make sure they are followed and the contents copied instead.
-# To fix this, just replace copy with install-file macro.
-$(JDK_BUNDLE_DIR)/Home/%: $(IMAGES_OUTPUTDIR)/j2sdk-image/%
+# To fix this, remove -L
+# Copy empty directories (jre/lib/applet).
+$(JDK_BUNDLE_DIR)/Home/%: $(JDK_IMAGE_DIR)/%
 	$(ECHO) Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@)
 	$(MKDIR) -p $(@D)
-	$(CP) -f -R -L '$<' '$@'
+	if [ -d "$<" ]; then $(MKDIR) -p $@; else $(CP) -f -R -L '$<' '$@'; fi
 
-$(JRE_BUNDLE_DIR)/Home/%: $(IMAGES_OUTPUTDIR)/j2re-image/%
+$(JRE_BUNDLE_DIR)/Home/%: $(JRE_IMAGE_DIR)/%
 	$(ECHO) Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@)
 	$(MKDIR) -p $(@D)
-	$(CP) -f -R -L '$<' '$@'
+	if [ -d "$<" ]; then $(MKDIR) -p $@; else $(CP) -f -R -L '$<' '$@'; fi
 
 $(JDK_BUNDLE_DIR)/MacOS/libjli.dylib:
 	$(ECHO) Creating link $(patsubst $(OUTPUT_ROOT)/%,%,$@)
 	$(MKDIR) -p $(@D)
 	$(RM) $@
-	$(LN) -s ../Home/lib/jli/libjli.dylib $@
+	$(LN) -s ../Home/jre/lib/jli/libjli.dylib $@
 
 $(JRE_BUNDLE_DIR)/MacOS/libjli.dylib:
 	$(ECHO) Creating link $(patsubst $(OUTPUT_ROOT)/%,%,$@)
--- a/makefiles/CompileDemos.gmk	Thu Jan 24 18:06:24 2013 +0400
+++ b/makefiles/CompileDemos.gmk	Mon Jan 28 14:23:09 2013 +0100
@@ -33,6 +33,9 @@
 # Setup the java compilers for the JDK build.
 include Setup.gmk
 
+# Prepare the find cache. Only used if running on windows.
+$(eval $(call FillCacheFind,$(JDK_TOPDIR)/src))
+
 # Append demo goals to this variable.
 BUILD_DEMOS=
 
@@ -185,7 +188,7 @@
 
     BUILD_DEMOS += $(patsubst $(JDK_TOPDIR)/src/closed/share/demo/nbproject/%,\
 			$(JDK_OUTPUTDIR)/demo/nbproject/%,\
-			$(shell $(FIND) $(JDK_TOPDIR)/src/closed/share/demo/nbproject/ -type f))
+			$(call CacheFind,$(JDK_TOPDIR)/src/closed/share/demo/nbproject))
     $(JDK_OUTPUTDIR)/demo/nbproject/% : $(JDK_TOPDIR)/src/closed/share/demo/nbproject/%
 		$(MKDIR) -p $(@D)
 		$(CP) $< $@
@@ -317,7 +320,7 @@
 
 # The jpda demo (com/sun/tools/example) is oddly enough stored in src/share/classes.
 # At least, we do not need to compile the jpda demo, just jar/zip up the sources.
-JPDA_SOURCES:=$(shell $(FIND) $(JDK_TOPDIR)/src/share/classes/com/sun/tools/example -type f)
+JPDA_SOURCES:=$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/tools/example)
 # The number of files are few enough so that we can use echo safely below to list them.
 JPDA_FILES:=$(subst $(JDK_TOPDIR)/src/share/classes/,,$(JPDA_SOURCES))
 
@@ -363,7 +366,7 @@
 # The netbeans project files are copied into the demo directory.
 BUILD_DEMOS += $(patsubst $(JDK_TOPDIR)/src/share/demo/nbproject/%,\
 		$(JDK_OUTPUTDIR)/demo/nbproject/%,\
-		$(shell $(FIND) $(JDK_TOPDIR)/src/share/demo/nbproject/ -type f))
+		$(call CacheFind,$(JDK_TOPDIR)/src/share/demo/nbproject))
 
 $(JDK_OUTPUTDIR)/demo/nbproject/% : $(JDK_TOPDIR)/src/share/demo/nbproject/%
 	$(MKDIR) -p $(@D)
@@ -439,7 +442,7 @@
 ##################################################################################################
 
 ifndef OPENJDK
-    DB_DEMO_ZIPFILE := $(shell $(FIND) $(JDK_TOPDIR)/src/closed/share/db -name "*demo*.zip")
+    DB_DEMO_ZIPFILE := $(wildcard $(JDK_TOPDIR)/src/closed/share/db/*demo*.zip)
 
     $(JDK_OUTPUTDIR)/demo/_the.db.unzipped: $(DB_DEMO_ZIPFILE)
 	$(MKDIR) -p $(@D)
--- a/makefiles/CompileJavaClasses.gmk	Thu Jan 24 18:06:24 2013 +0400
+++ b/makefiles/CompileJavaClasses.gmk	Mon Jan 28 14:23:09 2013 +0100
@@ -42,8 +42,7 @@
 		com/sun/tools/example/trace\
 		com/sun/tools/example/debug/bdi\
 		com/sun/tools/example/debug/event\
-		com/sun/tools/example/debug/gui \
-		com/oracle/security
+		com/sun/tools/example/debug/gui
 
 ifdef OPENJDK
     EXCLUDES+=	sun/dc \
@@ -92,6 +91,8 @@
         sun/nio/ch/SolarisEventPort.java \
 	sun/tools/attach/SolarisAttachProvider.java \
 	sun/tools/attach/SolarisVirtualMachine.java
+
+   EXCLUDES += com/oracle/security
 endif
 
 # In the old build, this isn't excluded on macosx, even though it probably
@@ -127,6 +128,7 @@
 	     sun/nio/fs/LinuxFileStore.java \
 	     sun/nio/fs/LinuxFileSystem.java \
 	     sun/nio/fs/LinuxFileSystemProvider.java \
+	     sun/nio/fs/MagicFileTypeDetector.java \
 	     sun/nio/fs/LinuxNativeDispatcher.java \
 	     sun/nio/fs/LinuxUserDefinedFileAttributeView.java \
 	     sun/nio/fs/LinuxWatchService.java
@@ -226,34 +228,26 @@
 EXFILES+=-linux-arm.java \
 	 -linux-ppc.java
 
-# TODO: Is this necessary?
 ifeq ($(OPENJDK_TARGET_OS), windows)
     EXFILES+=sun/nio/ch/AbstractPollSelectorImpl.java \
-	sun/nio/ch/DevPollArrayWrapper.java \
-	sun/nio/ch/DevPollSelectorImpl.java \
-        sun/nio/ch/DevPollSelectorProvider.java \
-	sun/nio/ch/InheritedChannel.java \
         sun/nio/ch/PollSelectorProvider.java \
-        sun/nio/ch/PollSelectorImpl.java \
-	sun/nio/ch/Port.java \
-	sun/nio/ch/SimpleAsynchronousFileChannelImpl.java \
-	sun/nio/ch/SolarisAsynchronousChannelProvider.java \
-	sun/nio/ch/SolarisEventPort.java \
-	sun/nio/ch/UnixAsynchronousServerSocketChannelImpl.java \
-	sun/nio/ch/UnixAsynchronousSocketChannelImpl.java
-    EXFILES+=sun/net/sdp/SdpProvider.java
-else
-    EXFILES+=sun/net/www/protocol/http/ntlm/NTLMAuthSequence.java
+	sun/nio/ch/SimpleAsynchronousFileChannelImpl.java
 endif
 
-# Exclude nimbus files from rt.jar
+# These files do not appear in the build result of the old build. This
+# is because they are generated sources, but the AUTO_JAVA_FILES won't
+# pick them up since they aren't generated when the source dirs are 
+# searched and they aren't referenced by any other classes so they won't
+# be picked up by implicit compilation. On a rebuild, they are picked up
+# and compiled. Exclude them here to produce the same rt.jar as the old 
+# build does when building just once.
 EXFILES+=javax/swing/plaf/nimbus/InternalFrameTitlePanePainter.java \
-				 javax/swing/plaf/nimbus/OptionPaneMessageAreaPainter.java \
-				 javax/swing/plaf/nimbus/ScrollBarPainter.java \
-				 javax/swing/plaf/nimbus/SliderPainter.java \
-				 javax/swing/plaf/nimbus/SpinnerPainter.java \
-				 javax/swing/plaf/nimbus/SplitPanePainter.java \
-				 javax/swing/plaf/nimbus/TabbedPanePainter.java
+	 javax/swing/plaf/nimbus/OptionPaneMessageAreaPainter.java \
+	 javax/swing/plaf/nimbus/ScrollBarPainter.java \
+	 javax/swing/plaf/nimbus/SliderPainter.java \
+	 javax/swing/plaf/nimbus/SpinnerPainter.java \
+	 javax/swing/plaf/nimbus/SplitPanePainter.java \
+	 javax/swing/plaf/nimbus/TabbedPanePainter.java
 
 # Acquire a list of files that should be copied straight over to the classes.
 include CopyIntoClasses.gmk
@@ -302,6 +296,7 @@
 		     $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/classes \
 		     $(MACOSX_SRC_DIRS) \
 		     $(JDK_OUTPUTDIR)/gensrc \
+		     $(JDK_OUTPUTDIR)/gensrc_no_srczip \
 		     $(CLOSED_SRC_DIRS),\
 		INCLUDES:=$(JDK_USER_DEFINED_FILTER),\
 		EXCLUDES:=$(EXCLUDES),\
@@ -312,59 +307,15 @@
 		HEADERS:=$(JDK_OUTPUTDIR)/gensrc_headers))
 
 ##########################################################################################
-# Special handling of header file generation for classes in the jigsaw base module which
-# currently can't add the annotaion GenerateNativeHeaders. For these specific classes the
-# java file and the class have the same names which enables shortcutting the dependencies.
-
-JDK_BASE_HEADER_CLASSES:=java.lang.Integer \
-			 java.lang.Long \
-			 java.net.SocketOptions \
-			 sun.nio.ch.IOStatus \
-			 java.io.FileSystem
-
-JDK_BASE_HEADER_JAVA_FILES:=$(patsubst %,$(JDK_TOPDIR)/src/share/classes/%.java,\
-				$(subst .,/,$(JDK_BASE_HEADER_CLASSES)))
-
-ifeq ($(OPENJDK_TARGET_OS),windows)
-    JDK_BASE_HEADER_CLASSES_WINDOWS:=sun.nio.ch.PollArrayWrapper
-    JDK_BASE_HEADER_CLASSES+=$(JDK_BASE_HEADER_CLASSES_WINDOWS)
-    JDK_BASE_HEADER_JAVA_FILES+=$(patsubst %,$(JDK_TOPDIR)/src/windows/classes/%.java,\
-				$(subst .,/,$(JDK_BASE_HEADER_CLASSES_WINDOWS)))
-endif
-
-# Set prereqs to the java files since make doesn't know about the class files. Add BUILD_JDK
-# as an order only dependency to avoid race with the java compilation.
-$(JDK_OUTPUTDIR)/gensrc_headers/_the.jdk.base.headers: $(JDK_BASE_HEADER_JAVA_FILES) | $(BUILD_JDK)
-	$(ECHO) Generating headers for jdk base classes
-	$(JAVAH) -bootclasspath $(JDK_OUTPUTDIR)/classes -d $(JDK_OUTPUTDIR)/gensrc_headers \
-		$(JDK_BASE_HEADER_CLASSES)
-	$(TOUCH) $@
-
-##########################################################################################
-
-#
-# This is an empty jar (only contains manifest) and fits poorly into framework...
-#   create simple rule instead
-#
-MANAGEMENT_AGENT_JAR_DEPS := $(JDK_TOPDIR)/src/share/classes/sun/management/manifest
-
-$(JDK_OUTPUTDIR)/lib/management-agent.jar : $(JDK_TOPDIR)/src/share/classes/sun/management/manifest
-	$(JAR) cfm $@ $(JDK_TOPDIR)/src/share/classes/sun/management/manifest
-
-JARS += $(JDK_OUTPUTDIR)/lib/management-agent.jar
-
-##########################################################################################
 
 ifndef OPENJDK
 
-$(eval $(call SetupJavaCompilation,BUILD_ALTCLASSES_JAR,\
+    $(eval $(call SetupJavaCompilation,BUILD_ALTCLASSES,\
 		SETUP:=GENERATE_JDKBYTECODE,\
 		SRC:=$(JDK_TOPDIR)/src/closed/share/altclasses, \
-		BIN:=$(JDK_OUTPUTDIR)/altclasses_classes,\
-		JAR:=$(JDK_OUTPUTDIR)/lib/alt-rt.jar))
+		BIN:=$(JDK_OUTPUTDIR)/altclasses_classes))
 
-$(BUILD_ALTCLASSES_JAR): $(BUILD_JDK)
-JARS += $(JDK_OUTPUTDIR)/lib/alt-rt.jar
+    $(BUILD_ALTCLASSES): $(BUILD_JDK)
 
 endif
 
@@ -387,7 +338,7 @@
      SERVER_DIR:=$(SJAVAC_SERVER_DIR),\
      SERVER_JVM:=$(SJAVAC_SERVER_JAVA)))
 
-$(eval $(call SetupJavaCompilation,BUILD_JOBJC_JAR,\
+$(eval $(call SetupJavaCompilation,BUILD_JOBJC,\
 		SETUP:=GENERATE_15BYTECODE,\
 		DISABLE_SJAVAC:=true,\
 		SRC:=$(JDK_TOPDIR)/src/macosx/native/jobjc/src/core/java \
@@ -399,11 +350,9 @@
 		JAR:=$(JDK_OUTPUTDIR)/lib/JObjC.jar, \
 		JARINDEX := true))
 
-$(BUILD_JOBJC_JAR) : $(BUILD_JDK)
+$(BUILD_JOBJC) : $(BUILD_JDK)
 
-JARS += $(JDK_OUTPUTDIR)/lib/JObjC.jar
-
-$(eval $(call SetupJavaCompilation,BUILD_JOBJC_HEADERS_JAR,\
+$(eval $(call SetupJavaCompilation,BUILD_JOBJC_HEADERS,\
 		SETUP:=GENERATE_JDKBYTECODE,\
 		SRC:=$(JDK_TOPDIR)/src/macosx/native/jobjc/src/core/java \
 		     $(JDK_TOPDIR)/src/macosx/native/jobjc/src/runtime-additions/java \
@@ -413,9 +362,7 @@
 		BIN:=$(JDK_OUTPUTDIR)/jobjc_classes_headers,\
 		HEADERS:=$(JDK_OUTPUTDIR)/gensrc_headers_jobjc))
 
-$(BUILD_JOBJC_HEADERS_JAR) : $(BUILD_JDK)
-
-JARS += $(BUILD_JOBJC_HEADERS_JAR)
+$(BUILD_JOBJC_HEADERS) : $(BUILD_JDK)
 
 endif
 
@@ -456,9 +403,8 @@
 
 ##########################################################################################
 
-# copy with -a to preserve timestamps so dependencies down the line aren't messed up
-all: $(BUILD_JDK) $(JARS) $(COPY_EXTRA) $(JDK_OUTPUTDIR)/classes/META-INF/services/com.sun.tools.xjc.Plugin \
-	$(JDK_OUTPUTDIR)/gensrc_headers/_the.jdk.base.headers \
+all: $(BUILD_JDK) $(BUILD_ALTCLASSES) $(BUILD_JOBJC) $(BUILD_JOBJC_HEADERS) $(COPY_EXTRA) \
+	$(JDK_OUTPUTDIR)/classes/META-INF/services/com.sun.tools.xjc.Plugin \
 	$(BUILD_ACCESSBRIDGE_32) $(BUILD_ACCESSBRIDGE_64) \
 	$(BUILD_ACCESSBRIDGE_LEGACY)
 
--- a/makefiles/CompileLaunchers.gmk	Thu Jan 24 18:06:24 2013 +0400
+++ b/makefiles/CompileLaunchers.gmk	Mon Jan 28 14:23:09 2013 +0100
@@ -32,6 +32,9 @@
 # Setup the java compilers for the JDK build.
 include Setup.gmk
 
+# Prepare the find cache. Only used on windows.
+$(eval $(call FillCacheFind,$(JDK_TOPDIR)/src/share/bin))
+
 # Build tools
 include Tools.gmk
 
--- a/makefiles/CompileNativeLibraries.gmk	Thu Jan 24 18:06:24 2013 +0400
+++ b/makefiles/CompileNativeLibraries.gmk	Mon Jan 28 14:23:09 2013 +0100
@@ -35,6 +35,9 @@
 # Copy files (can now depend on $(COPY_FILES))
 include CopyFiles.gmk
 
+# Prepare the find cache. Only used if running on windows.
+$(eval $(call FillCacheFind,$(JDK_TOPDIR)/src))
+
 # Build tools
 include Tools.gmk
 
@@ -2607,7 +2610,6 @@
 		LIBRARY:=sunmscapi,\
                 OUTPUT_DIR:=$(INSTALL_LIBRARIES_HERE),\
 		SRC:=$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/mscapi,\
-		INCLUDE_FILES:=security.cpp, \
 		LANG:=C++,\
 		OPTIMIZATION:=LOW, \
 		CFLAGS:=$(CFLAGS_JDKLIB) \
--- a/makefiles/CopyFiles.gmk	Thu Jan 24 18:06:24 2013 +0400
+++ b/makefiles/CopyFiles.gmk	Mon Jan 28 14:23:09 2013 +0100
@@ -338,7 +338,7 @@
 		$(MKDIR) -p $(@D)
 		$(RM) $(JVMCFG)
 		$(PRINTF) "-client KNOWN\n">$(JVMCFG)
-		$(PRINTF) "-server IGNORE\n">>$(JVMCFG)
+		$(PRINTF) "-server ALIASED_TO -client\n">>$(JVMCFG)
 		$(PRINTF) "-hotspot ALIASED_TO -client\n">>$(JVMCFG)
 		$(PRINTF) "-classic WARN\n">>$(JVMCFG)
 		$(PRINTF) "-native ERROR\n">>$(JVMCFG)
--- a/makefiles/CopyIntoClasses.gmk	Thu Jan 24 18:06:24 2013 +0400
+++ b/makefiles/CopyIntoClasses.gmk	Mon Jan 28 14:23:09 2013 +0100
@@ -169,7 +169,7 @@
 # are uncommented and the configuration file is stored in the output META-INF directory.
 
 # Make sure the output directory is created.
-$(shell $(MKDIR) -p $(JDK_OUTPUTDIR)/classes/META-INF/services)
+$(eval $(call MakeDir,$(JDK_OUTPUTDIR)/classes/META-INF/services))
 # Find all META-INF/services/* files
 ALL_META-INF_DIRS_share:=$(shell $(FIND) $(JDK_TOPDIR)/src/share/classes -type d -a -name META-INF)
 ALL_META-INF_DIRS_targetapi:=$(shell $(FIND) $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/classes -type d -a -name META-INF)
--- a/makefiles/CreateJars.gmk	Thu Jan 24 18:06:24 2013 +0400
+++ b/makefiles/CreateJars.gmk	Mon Jan 28 14:23:09 2013 +0100
@@ -30,6 +30,9 @@
 
 default: all
 
+# Prepare the find cache. Only used if running on windows.
+$(eval $(call FillCacheFind,$(JDK_OUTPUTDIR)/classes))
+
 include Tools.gmk
 
 #
@@ -126,82 +129,23 @@
 
 # Exclude list for rt.jar and resources.jar
 RT_JAR_EXCLUDES := \
+	com/oracle/security \
+	com/sun/codemodel \
+	com/sun/crypto/provider \
+	com/sun/istack/internal/tools \
+	com/sun/jarsigner \
 	com/sun/java/accessibility \
 	com/sun/javadoc \
 	com/sun/jdi \
-	com/sun/jarsigner \
+	com/sun/net/ssl/internal/ssl \
 	com/sun/source \
-	com/sun/istack/internal/tools \
-	META-INF/services/com.sun.jdi.connect.Connector \
-	META-INF/services/com.sun.jdi.connect.spi.TransportService \
-	META-INF/services/com.sun.tools.xjc.Plugin \
 	com/sun/tools \
-	sun/jvmstat \
-	sun/nio/cs/ext \
-	sun/awt/HKSCS.class \
-	sun/awt/motif/X11GB2312\$$$$Decoder.class \
-	sun/awt/motif/X11GB2312\$$$$Encoder.class \
-	sun/awt/motif/X11GB2312.class \
-	sun/awt/motif/X11GBK\$$$$Encoder.class \
-	sun/awt/motif/X11GBK.class \
-	sun/awt/motif/X11KSC5601\$$$$Decoder.class \
-	sun/awt/motif/X11KSC5601\$$$$Encoder.class \
-	sun/awt/motif/X11KSC5601.class \
-	META-INF/services/java.nio.charset.spi.CharsetProvider \
-	sun/rmi/rmic \
-	sun/tools/asm \
-	sun/tools/java \
-	sun/tools/javac \
-	com/sun/tools/classfile \
-	com/sun/tools/javap \
-	sun/tools/jcmd \
-	sun/tools/jconsole \
-	sun/tools/jps \
-	sun/tools/jstat \
-	sun/tools/jstatd \
-	sun/tools/native2ascii \
-	sun/tools/serialver \
-	sun/tools/tree \
-	sun/tools/util \
-	sun/security/tools/jarsigner \
-	sun/security/provider/Sun.class \
-	sun/security/rsa/SunRsaSign.class \
-	sun/security/ssl \
-	sun/security/ec/ECDHKeyAgreement.class \
-	sun/security/ec/ECDSASignature\$$$$Raw.class \
-	sun/security/ec/ECDSASignature\$$$$SHA1.class \
-	sun/security/ec/ECDSASignature\$$$$SHA224.class \
-	sun/security/ec/ECDSASignature\$$$$SHA256.class \
-	sun/security/ec/ECDSASignature\$$$$SHA384.class \
-	sun/security/ec/ECDSASignature\$$$$SHA512.class \
-	sun/security/ec/ECDSASignature.class \
-	sun/security/ec/ECKeyFactory.class \
-	sun/security/ec/ECKeyPairGenerator.class \
-	sun/security/ec/SunEC\$$$$1.class \
-	sun/security/ec/SunEC.class \
-	sun/security/ec/SunECEntries.class \
-	sun/security/mscapi \
-	sun/security/pkcs11 \
-	com/sun/net/ssl/internal/ssl \
-	javax/crypto \
-	sun/security/internal \
-	com/sun/crypto/provider \
-	META-INF/services/com.sun.tools.attach.spi.AttachProvider \
-	com/sun/tools/attach \
-	org/relaxng/datatype \
-	com/sun/codemodel \
 	com/sun/xml/internal/dtdparser \
 	com/sun/xml/internal/rngom \
 	com/sun/xml/internal/xsom \
-	com/sun/tools/script/shell \
-	sun/tools/attach \
-	sun/tools/jstack \
-	sun/tools/jinfo \
-	sun/tools/jmap \
-	sun/net/spi/nameservice/dns \
-	META-INF/services/sun.net.spi.nameservice.NameServiceDescriptor \
+	javax/crypto \
+	javax/swing/AbstractButtonBeanInfo.class \
 	javax/swing/beaninfo \
-	javax/swing/AbstractButtonBeanInfo.class \
 	javax/swing/BoxBeanInfo.class \
 	javax/swing/JAppletBeanInfo.class \
 	javax/swing/JButtonBeanInfo.class \
@@ -247,11 +191,67 @@
 	javax/swing/JWindowBeanInfo.class \
 	javax/swing/SwingBeanInfoBase.class \
 	javax/swing/text/JTextComponentBeanInfo.class \
+	META-INF/services/com.sun.jdi.connect.Connector \
+	META-INF/services/com.sun.jdi.connect.spi.TransportService \
+	META-INF/services/com.sun.tools.attach.spi.AttachProvider \
+	META-INF/services/com.sun.tools.xjc.Plugin \
+	META-INF/services/java.nio.charset.spi.CharsetProvider \
+	META-INF/services/sun.net.spi.nameservice.NameServiceDescriptor \
+	org/relaxng/datatype \
+	sun/awt/HKSCS.class \
+	sun/awt/motif/X11GB2312.class \
+	sun/awt/motif/X11GB2312\$$$$Decoder.class \
+	sun/awt/motif/X11GB2312\$$$$Encoder.class \
+	sun/awt/motif/X11GBK.class \
+	sun/awt/motif/X11GBK\$$$$Encoder.class \
+	sun/awt/motif/X11KSC5601.class \
+	sun/awt/motif/X11KSC5601\$$$$Decoder.class \
+	sun/awt/motif/X11KSC5601\$$$$Encoder.class \
+	sun/jvmstat \
+	sun/net/spi/nameservice/dns \
+	sun/nio/cs/ext \
+	sun/rmi/rmic \
+	sun/security/ec/ECDHKeyAgreement.class \
+	sun/security/ec/ECDSASignature.class \
+	sun/security/ec/ECDSASignature\$$$$Raw.class \
+	sun/security/ec/ECDSASignature\$$$$SHA1.class \
+	sun/security/ec/ECDSASignature\$$$$SHA224.class \
+	sun/security/ec/ECDSASignature\$$$$SHA256.class \
+	sun/security/ec/ECDSASignature\$$$$SHA384.class \
+	sun/security/ec/ECDSASignature\$$$$SHA512.class \
+	sun/security/ec/ECKeyFactory.class \
+	sun/security/ec/ECKeyPairGenerator.class \
+	sun/security/ec/SunEC\$$$$1.class \
+	sun/security/ec/SunEC.class \
+	sun/security/ec/SunECEntries.class \
+	sun/security/internal \
+	sun/security/mscapi \
+	sun/security/pkcs11 \
+	sun/security/provider/Sun.class \
+	sun/security/rsa/SunRsaSign.class \
+	sun/security/ssl \
+	sun/security/tools/jarsigner \
 	sun/swing/BeanInfoUtils.class \
-	$(LOCALEDATA_INCLUDES) \
 	sun/text/resources/cldr \
+	sun/tools/asm \
+	sun/tools/attach \
+	sun/tools/java \
+	sun/tools/javac \
+	sun/tools/jcmd \
+	sun/tools/jconsole \
+	sun/tools/jinfo \
+	sun/tools/jmap \
+	sun/tools/jps \
+	sun/tools/jstack \
+	sun/tools/jstat \
+	sun/tools/jstatd \
+	sun/tools/native2ascii \
+	sun/tools/serialver \
+	sun/tools/tree \
+	sun/tools/util \
+	sun/util/cldr/CLDRLocaleDataMetaInfo.class \
 	sun/util/resources/cldr \
-	sun/util/cldr/CLDRLocaleDataMetaInfo.class
+	$(LOCALEDATA_INCLUDES)
 
 # These files should never be put into rt.jar
 # but due to a misstake...some are put there if embedded
@@ -276,8 +276,8 @@
 endif
 
 # Find all files in the classes dir to use as dependencies. This could be more fine granular.
-ALL_FILES_IN_CLASSES := $(shell $(FIND) $(JDK_OUTPUTDIR)/classes -type f \
-			| $(GREP) -v -e '/_the\.*' -e '^_the\.*' -e 'javac_state')
+ALL_FILES_IN_CLASSES := $(call not-containing,_the.,$(filter-out %javac_state,\
+                        $(call CacheFind,$(JDK_OUTPUTDIR)/classes)))
 
 RT_JAR_MANIFEST_FILE := $(IMAGES_OUTPUTDIR)/lib/_the.rt.jar_manifest
 RESOURCE_JAR_MANIFEST_FILE := $(IMAGES_OUTPUTDIR)/lib/_the.resources.jar_manifest
@@ -438,60 +438,61 @@
 	$(MV) $@.tmp $@
 
 ##########################################################################################
+# For all security jars, always build the jar, but for closed, install the prebuilt signed
+# version instead of the newly built jar. For open, signing is not needed. See SignJars.gmk
+# for more information.
 
 SUNPKCS11_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/sunpkcs11.jar
+SUNPKCS11_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/sunpkcs11.jar
+
+$(eval $(call SetupArchive,BUILD_SUNPKCS11_JAR,,\
+	SRCS:=$(JDK_OUTPUTDIR)/classes, \
+	SUFFIXES:=.class,\
+	INCLUDES:=sun/security/pkcs11,\
+	JAR:=$(SUNPKCS11_JAR_UNSIGNED), \
+        MANIFEST:=$(JCE_MANIFEST), \
+	SKIP_METAINF := true))
+
+$(SUNPKCS11_JAR_UNSIGNED): $(JCE_MANIFEST)
 
 ifndef OPENJDK
-
     SUNPKCS11_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/pkcs11/sunpkcs11.jar
-
     $(SUNPKCS11_JAR_DST) : $(SUNPKCS11_JAR_SRC)
 	@$(ECHO) $(LOG_INFO) "\n>>>Installing prebuilt SunPKCS11 provider..."
 	$(install-file)
-
 else
-
-    $(eval $(call SetupArchive,BUILD_SUNPKCS11_JAR,,\
-	SRCS:=$(JDK_OUTPUTDIR)/classes, \
-	SUFFIXES:=.class,\
-	INCLUDES:=sun/security/pkcs11,\
-	JAR:=$(SUNPKCS11_JAR_DST), \
-        MANIFEST:=$(JCE_MANIFEST), \
-	SKIP_METAINF := true))
-
-    $(SUNPKCS11_JAR_DST): $(JCE_MANIFEST)
-
+    $(SUNPKCS11_JAR_DST) : $(SUNPKCS11_JAR_UNSIGNED)
+	$(install-file)
 endif
 
-JARS += $(SUNPKCS11_JAR_DST)
+JARS += $(SUNPKCS11_JAR_DST) $(SUNPKCS11_JAR_UNSIGNED)
 
 ##########################################################################################
 
 SUNEC_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/sunec.jar
+SUNEC_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/sunec.jar
+
+$(eval $(call SetupArchive,BUILD_SUNEC_JAR,,\
+		SRCS:=$(JDK_OUTPUTDIR)/classes, \
+		SUFFIXES:=.class,\
+		INCLUDES:=sun/security/ec,\
+		JAR:=$(SUNEC_JAR_UNSIGNED), \
+                MANIFEST:=$(JCE_MANIFEST), \
+		SKIP_METAINF := true))
+
+$(SUNEC_JAR_UNSIGNED): $(JCE_MANIFEST)
 
 ifndef OPENJDK
-
     SUNEC_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/ec/sunec.jar
-
     $(SUNEC_JAR_DST) : $(SUNEC_JAR_SRC)
 	@$(ECHO) $(LOG_INFO) "\n>>>Installing prebuilt SunEC provider..."
 	$(install-file)
-
 else
-
-    $(eval $(call SetupArchive,BUILD_SUNEC_JAR,,\
-		SRCS:=$(JDK_OUTPUTDIR)/classes, \
-		SUFFIXES:=.class,\
-		INCLUDES:=sun/security/ec,\
-		JAR:=$(SUNEC_JAR_DST), \
-                MANIFEST:=$(JCE_MANIFEST), \
-		SKIP_METAINF := true))
-
-    $(SUNEC_JAR_DST): $(JCE_MANIFEST)
-
+    $(SUNEC_JAR_DST) : $(SUNEC_JAR_UNSIGNED)
+	$(install-file)
 endif
 
-JARS += $(SUNEC_JAR_DST)
+JARS += $(SUNEC_JAR_DST) $(SUNEC_JAR_UNSIGNED)
 
 ##########################################################################################
 
@@ -509,162 +510,166 @@
 ##########################################################################################
 
 SUNJCE_PROVIDER_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/sunjce_provider.jar
+SUNJCE_PROVIDER_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/sunjce_provider.jar
+
+$(eval $(call SetupArchive,BUILD_SUNJCE_PROVIDER_JAR,,\
+		SRCS:=$(JDK_OUTPUTDIR)/classes, \
+		SUFFIXES:=.class,\
+		INCLUDES:= com/sun/crypto/provider,\
+		JAR:=$(SUNJCE_PROVIDER_JAR_UNSIGNED), \
+                MANIFEST:=$(JCE_MANIFEST), \
+		SKIP_METAINF := true))
+
+$(SUNJCE_PROVIDER_JAR_UNSIGNED): $(JCE_MANIFEST)
 
 ifndef OPENJDK
     SUNJCE_PROVIDER_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/jce/sunjce_provider.jar
-
     $(SUNJCE_PROVIDER_JAR_DST) : $(SUNJCE_PROVIDER_JAR_SRC)
 	@$(ECHO) $(LOG_INFO) "\n>>>Installing prebuilt SunJCE provider..."
 	$(install-file)
+else
+    $(SUNJCE_PROVIDER_JAR_DST) : $(SUNJCE_PROVIDER_JAR_UNSIGNED)
+	$(install-file)
+endif
 
-else
+JARS += $(SUNJCE_PROVIDER_JAR_DST) $(SUNJCE_PROVIDER_JAR_UNSIGNED)
 
-    $(eval $(call SetupArchive,BUILD_SUNJCE_PROVIDER_JAR,,\
+##########################################################################################
+
+JCE_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/jce.jar
+JCE_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/jce.jar
+
+$(eval $(call SetupArchive,BUILD_JCE_JAR,,\
 		SRCS:=$(JDK_OUTPUTDIR)/classes, \
 		SUFFIXES:=.class,\
-		INCLUDES:= com/sun/crypto/provider,\
-		JAR:=$(SUNJCE_PROVIDER_JAR_DST), \
+		INCLUDES:= javax/crypto sun/security/internal,\
+		JAR:=$(JCE_JAR_UNSIGNED), \
                 MANIFEST:=$(JCE_MANIFEST), \
 		SKIP_METAINF := true))
 
-    $(SUNJCE_PROVIDER_JAR_DST): $(JCE_MANIFEST)
-
-endif
-
-JARS += $(SUNJCE_PROVIDER_JAR_DST)
-
-JCE_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/jce.jar
+$(JCE_JAR_UNSIGNED): $(JCE_MANIFEST)
 
 ifndef OPENJDK
-
     JCE_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/jce/jce.jar
-
     $(JCE_JAR_DST) : $(JCE_JAR_SRC)
 	@$(ECHO) $(LOG_INFO) "\n>>>Installing prebuilt jce.jar..."
 	$(install-file)
-
 else
-
-    $(eval $(call SetupArchive,BUILD_JCE_JAR,,\
-		SRCS:=$(JDK_OUTPUTDIR)/classes, \
-		SUFFIXES:=.class,\
-		INCLUDES:= javax/crypto sun/security/internal,\
-		JAR:=$(JCE_JAR_DST), \
-                MANIFEST:=$(JCE_MANIFEST), \
-		SKIP_METAINF := true))
-
-    $(JCE_JAR_DST): $(JCE_MANIFEST)
-
+    $(JCE_JAR_DST) : $(JCE_JAR_UNSIGNED)
+	$(install-file)
 endif
 
-JARS += $(JCE_JAR_DST)
+JARS += $(JCE_JAR_DST) $(JCE_JAR_UNSIGNED)
 
 ##########################################################################################
 
 US_EXPORT_POLICY_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/security/US_export_policy.jar
+US_EXPORT_POLICY_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/US_export_policy.jar
+
+#
+# TODO fix so that SetupArchive does not write files into SRCS
+#   then we don't need this extra copying
+#
+# NOTE:  We currently do not place restrictions on our limited export
+# policy.  This was not a typo.
+#
+US_EXPORT_POLICY_JAR_SRC_DIR := $(JDK_TOPDIR)/make/javax/crypto/policy/unlimited
+US_EXPORT_POLICY_JAR_TMP := $(IMAGES_OUTPUTDIR)/US_export_policy_jar.tmp
+
+$(US_EXPORT_POLICY_JAR_TMP)/% : $(US_EXPORT_POLICY_JAR_SRC_DIR)/%
+	$(install-file)
+
+US_EXPORT_POLICY_JAR_DEPS := $(US_EXPORT_POLICY_JAR_TMP)/default_US_export.policy
+
+$(eval $(call SetupArchive,BUILD_US_EXPORT_POLICY_JAR,$(US_EXPORT_POLICY_JAR_DEPS),\
+		SRCS:=$(US_EXPORT_POLICY_JAR_TMP), \
+		SUFFIXES:= .policy,\
+		JAR:=$(US_EXPORT_POLICY_JAR_UNSIGNED), \
+		EXTRA_MANIFEST_ATTR := Crypto-Strength: unlimited, \
+		SKIP_METAINF := true))
 
 ifndef OPENJDK
-
-
     $(US_EXPORT_POLICY_JAR_DST): $(JDK_TOPDIR)/make/closed/tools/crypto/jce/US_export_policy.jar
 	$(ECHO) $(LOG_INFO) Copying $(@F)
 	$(install-file)
-
 else
-
-    #
-    # TODO fix so that SetupArchive does not write files into SRCS
-    #   then we don't need this extra copying
-    #
-    # NOTE:  We currently do not place restrictions on our limited export
-    # policy.  This was not a typo.
-    #
-    US_EXPORT_POLICY_JAR_SRC_DIR := $(JDK_TOPDIR)/make/javax/crypto/policy/unlimited
-    US_EXPORT_POLICY_JAR_TMP := $(IMAGES_OUTPUTDIR)/US_export_policy_jar.tmp
-
-    $(US_EXPORT_POLICY_JAR_TMP)/% : $(US_EXPORT_POLICY_JAR_SRC_DIR)/%
+    $(US_EXPORT_POLICY_JAR_DST): $(US_EXPORT_POLICY_JAR_UNSIGNED)
 	$(install-file)
-
-    US_EXPORT_POLICY_JAR_DEPS := $(US_EXPORT_POLICY_JAR_TMP)/default_US_export.policy
-
-    $(eval $(call SetupArchive,BUILD_US_EXPORT_POLICY_JAR,$(US_EXPORT_POLICY_JAR_DEPS),\
-		SRCS:=$(US_EXPORT_POLICY_JAR_TMP), \
-		SUFFIXES:= .policy,\
-		JAR:=$(US_EXPORT_POLICY_JAR_DST), \
-		EXTRA_MANIFEST_ATTR := Crypto-Strength: unlimited, \
-		SKIP_METAINF := true))
-
 endif
 
-JARS += $(US_EXPORT_POLICY_JAR_DST)
+JARS += $(US_EXPORT_POLICY_JAR_DST) $(US_EXPORT_POLICY_JAR_UNSIGNED)
 
 ##########################################################################################
 
 LOCAL_POLICY_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/security/local_policy.jar
+LOCAL_POLICY_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/local_policy.jar
+
+#
+# TODO fix so that SetupArchive does not write files into SRCS
+#   then we don't need this extra copying
+#
+LOCAL_POLICY_JAR_TMP := $(IMAGES_OUTPUTDIR)/local_policy_jar.tmp
+
+ifeq ($(UNLIMITED_CRYPTO), true)
+    LOCAL_POLICY_JAR_SRC_DIR := $(JDK_TOPDIR)/make/javax/crypto/policy/unlimited
+    LOCAL_POLICY_JAR_DEPS := $(LOCAL_POLICY_JAR_TMP)/default_local.policy
+    LOCAL_POLICY_JAR_ATTR := Crypto-Strength: unlimited
+else
+    LOCAL_POLICY_JAR_SRC_DIR := $(JDK_TOPDIR)/make/javax/crypto/policy/limited
+    LOCAL_POLICY_JAR_DEPS := $(LOCAL_POLICY_JAR_TMP)/exempt_local.policy \
+                             $(LOCAL_POLICY_JAR_TMP)/default_local.policy
+    LOCAL_POLICY_JAR_ATTR := Crypto-Strength: limited
+endif
+
+$(LOCAL_POLICY_JAR_TMP)/% : $(LOCAL_POLICY_JAR_SRC_DIR)/%
+	$(install-file)
+
+$(eval $(call SetupArchive,BUILD_LOCAL_POLICY_JAR,$(LOCAL_POLICY_JAR_DEPS),\
+		SRCS:=$(LOCAL_POLICY_JAR_TMP),\
+		SUFFIXES:= .policy,\
+		JAR:=$(LOCAL_POLICY_JAR_UNSIGNED), \
+		EXTRA_MANIFEST_ATTR := $(LOCAL_POLICY_JAR_ATTR), \
+		SKIP_METAINF := true))
 
 ifndef OPENJDK
-
     $(LOCAL_POLICY_JAR_DST): $(JDK_TOPDIR)/make/closed/tools/crypto/jce/local_policy.jar
 	$(ECHO) $(LOG_INFO) Copying $(@F)
 	$(install-file)
-
 else
-
-    #
-    # TODO fix so that SetupArchive does not write files into SRCS
-    #   then we don't need this extra copying
-    #
-    LOCAL_POLICY_JAR_TMP := $(IMAGES_OUTPUTDIR)/local_policy_jar.tmp
-
-    ifeq ($(UNLIMITED_CRYPTO), true)
-        LOCAL_POLICY_JAR_SRC_DIR := $(JDK_TOPDIR)/make/javax/crypto/policy/unlimited
-        LOCAL_POLICY_JAR_DEPS := $(LOCAL_POLICY_JAR_TMP)/default_local.policy
-        LOCAL_POLICY_JAR_ATTR := Crypto-Strength: unlimited
-    else
-        LOCAL_POLICY_JAR_SRC_DIR := $(JDK_TOPDIR)/make/javax/crypto/policy/limited
-        LOCAL_POLICY_JAR_DEPS := $(LOCAL_POLICY_JAR_TMP)/exempt_local.policy \
-                                 $(LOCAL_POLICY_JAR_TMP)/default_local.policy
-        LOCAL_POLICY_JAR_ATTR := Crypto-Strength: limited
-    endif
-
-    $(LOCAL_POLICY_JAR_TMP)/% : $(LOCAL_POLICY_JAR_SRC_DIR)/%
+    $(LOCAL_POLICY_JAR_DST): $(LOCAL_POLICY_JAR_UNSIGNED)
 	$(install-file)
-
-    $(eval $(call SetupArchive,BUILD_LOCAL_POLICY_JAR,$(LOCAL_POLICY_JAR_DEPS),\
-		SRCS:=$(LOCAL_POLICY_JAR_TMP),\
-		SUFFIXES:= .policy,\
-		JAR:=$(LOCAL_POLICY_JAR_DST), \
-		EXTRA_MANIFEST_ATTR := $(LOCAL_POLICY_JAR_ATTR), \
-		SKIP_METAINF := true))
-
 endif
 
-JARS += $(LOCAL_POLICY_JAR_DST)
+JARS += $(LOCAL_POLICY_JAR_DST) $(LOCAL_POLICY_JAR_UNSIGNED)
 
 ##########################################################################################
 
 ifeq ($(OPENJDK_TARGET_OS),windows)
 
 SUNMSCAPI_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/sunmscapi.jar
-
-ifndef OPENJDK
-SUNMSCAPI_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/mscapi/sunmscapi.jar
-
-$(SUNMSCAPI_JAR_DST) : $(SUNMSCAPI_JAR_SRC)
-	@$(ECHO) $(LOG_INFO) "\n>>>Installing prebuilt SunMSCAPI provider..."
-	$(install-file)
-
-else
+SUNMSCAPI_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/sunmscapi.jar
 
 $(eval $(call SetupArchive,BUILD_SUNMSCAPI_JAR,,\
 		SRCS:=$(JDK_OUTPUTDIR)/classes, \
 		SUFFIXES:=.class,\
 		INCLUDES:= sun/security/mscapi,\
-		JAR:=$(SUNMSCAPI_JAR_DST), \
+		JAR:=$(SUNMSCAPI_JAR_UNSIGNED), \
+		MANIFEST:=$(JCE_MANIFEST), \
 		SKIP_METAINF:=true))
+
+$(SUNMSCAPI_JAR_UNSIGNED): $(JCE_MANIFEST)
+
+ifndef OPENJDK
+    SUNMSCAPI_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/mscapi/sunmscapi.jar
+    $(SUNMSCAPI_JAR_DST) : $(SUNMSCAPI_JAR_SRC)
+	@$(ECHO) $(LOG_INFO) "\n>>>Installing prebuilt SunMSCAPI provider..."
+	$(install-file)
+else
+    $(SUNMSCAPI_JAR_DST) : $(SUNMSCAPI_JAR_UNSIGNED)
+	$(install-file)
 endif
 
-JARS += $(SUNMSCAPI_JAR_DST)
+JARS += $(SUNMSCAPI_JAR_DST) $(SUNMSCAPI_JAR_UNSIGNED)
 
 endif
 
@@ -674,13 +679,24 @@
 ifndef OPENJDK
 
 UCRYPTO_JAR_DST := $(IMAGES_OUTPUTDIR)/lib/ext/ucrypto.jar
+UCRYPTO_JAR_UNSIGNED := $(IMAGES_OUTPUTDIR)/unsigned/ucrypto.jar
 UCRYPTO_JAR_SRC := $(JDK_TOPDIR)/make/closed/tools/crypto/ucrypto/ucrypto.jar
 
+$(eval $(call SetupArchive,BUILD_UCRYPTO_JAR,,\
+		SRCS:=$(JDK_OUTPUTDIR)/classes, \
+		SUFFIXES:=.class,\
+		INCLUDES:=com/oracle/security/ucrypto,\
+		JAR:=$(UCRYPTO_JAR_UNSIGNED), \
+		MANIFEST:=$(JCE_MANIFEST), \
+		SKIP_METAINF:=true))
+
+$(UCRYPTO_JAR_UNSIGNED): $(JCE_MANIFEST)
+
 $(UCRYPTO_JAR_DST) : $(UCRYPTO_JAR_SRC)
 	@$(ECHO) $(LOG_INFO) "\n>>>Installing prebuilt OracleUcrypto provider..."
 	$(install-file)
 
-JARS += $(UCRYPTO_JAR_DST)
+JARS += $(UCRYPTO_JAR_DST) $(UCRYPTO_JAR_UNSIGNED)
 
 endif
 endif
@@ -708,57 +724,57 @@
 ##########################################################################################
 
 TOOLS_JAR_INCLUDES := \
-	sun/tools/asm		\
-	sun/tools/jar		\
-	sun/tools/java		\
-	sun/tools/javac		\
-	sun/tools/jcmd		\
-	sun/tools/jps		\
-	sun/tools/jstat		\
-	sun/tools/jstatd	\
-	sun/tools/native2ascii	\
-	sun/tools/serialver	\
-	sun/tools/tree		\
-	sun/tools/util		\
-	sun/security/tools/jarsigner \
-	sun/rmi/rmic		\
-	sun/applet		\
-	sun/jvmstat		\
+        com/sun/codemodel       \
+	com/sun/istack/internal/tools       \
+	com/sun/jarsigner	\
 	com/sun/javadoc		\
 	com/sun/jdi		\
-	com/sun/jarsigner	\
 	com/sun/source          \
+	com/sun/tools/attach	\
 	com/sun/tools/classfile \
+	com/sun/tools/corba     \
 	com/sun/tools/doclets   \
 	com/sun/tools/doclint   \
 	com/sun/tools/example/debug/expr \
 	com/sun/tools/example/debug/tty  \
 	com/sun/tools/extcheck  \
 	com/sun/tools/hat       \
+        com/sun/tools/internal/jxc             \
+	com/sun/tools/internal/jxc/ap   \
+	com/sun/tools/internal/ws       \
+	com/sun/tools/internal/ws/wscompile/plugin/at_generated \
+	com/sun/tools/internal/xjc       \
 	com/sun/tools/javac     \
 	com/sun/tools/javadoc   \
 	com/sun/tools/javah     \
 	com/sun/tools/javap     \
 	com/sun/tools/jdeps	\
-	com/sun/tools/corba     \
-	com/sun/tools/internal/xjc       \
-	com/sun/tools/internal/ws       \
-	com/sun/istack/internal/tools       \
-	com/sun/tools/internal/jxc/ap   \
-	com/sun/tools/internal/ws/wscompile/plugin/at_generated \
-        com/sun/codemodel       \
-        com/sun/tools/internal/jxc             \
+	com/sun/tools/jdi	\
+	com/sun/tools/script/shell	\
+	com/sun/xml/internal/dtdparser \
         com/sun/xml/internal/rngom       \
         com/sun/xml/internal/xsom       \
         org/relaxng/datatype   \
-	com/sun/xml/internal/dtdparser \
-	com/sun/tools/jdi	\
-	com/sun/tools/script/shell	\
-	com/sun/tools/attach	\
+	sun/applet		\
+	sun/jvmstat		\
+	sun/rmi/rmic		\
+	sun/security/tools/jarsigner \
+	sun/tools/asm		\
 	sun/tools/attach	\
+	sun/tools/jar		\
+	sun/tools/java		\
+	sun/tools/javac		\
+	sun/tools/jcmd		\
+	sun/tools/jinfo         \
+	sun/tools/jmap		\
+	sun/tools/jps		\
 	sun/tools/jstack        \
-	sun/tools/jinfo         \
-	sun/tools/jmap
+	sun/tools/jstat		\
+	sun/tools/jstatd	\
+	sun/tools/native2ascii	\
+	sun/tools/serialver	\
+	sun/tools/tree		\
+	sun/tools/util
 
 # The sjavac tools is not ready for public consumption.
 TOOLS_JAR_EXCLUDES=com/sun/tools/sjavac
@@ -822,7 +838,7 @@
 	    $(CORE_PKGS) $(NON_CORE_PKGS) $(EXCLUDE_PROPWARN_PKGS) $(EXPORTED_PRIVATE_PKGS)
 	$(TOUCH) $@
 
-$(shell $(MKDIR) -p $(IMAGES_OUTPUTDIR)/symbols)
+$(eval $(call MakeDir,$(IMAGES_OUTPUTDIR)/symbols))
 $(eval $(call SetupArchive,BUILD_CT_SYM,$(IMAGES_OUTPUTDIR)/symbols/_the.symbols,\
 		SRCS:=$(IMAGES_OUTPUTDIR)/symbols,\
 		INCLUDES:=META-INF/sym,\
@@ -834,6 +850,19 @@
 ##########################################################################################
 
 SRC_ZIP_INCLUDES = \
+	com/sun/corba			\
+	com/sun/image/codec/jpeg	\
+	com/sun/imageio                 \
+	com/sun/java_cup		\
+	com/sun/javadoc			\
+	com/sun/java/swing		\
+	com/sun/jlex	        	\
+	com/sun/jmx			\
+	com/sun/naming			\
+	com/sun/org/apache		\
+	com/sun/security/auth		\
+	com/sun/security/jgss		\
+	com/sun/source			\
 	java/applet			\
 	java/awt			\
 	java/beans			\
@@ -847,34 +876,21 @@
 	java/sql			\
 	java/text			\
 	java/util			\
-	com/sun/corba			\
-	com/sun/image/codec/jpeg	\
-	com/sun/imageio                 \
-	com/sun/java/swing		\
-	com/sun/javadoc			\
-	com/sun/jmx			\
-	com/sun/source			\
-	com/sun/naming			\
-	com/sun/security/auth		\
-	com/sun/security/jgss		\
 	javax/accessibility		\
 	javax/annotation		\
-	javax/script			\
 	javax/imageio			\
 	javax/lang			\
 	javax/management		\
 	javax/naming			\
 	javax/print			\
 	javax/rmi			\
+	javax/script			\
 	javax/security			\
 	javax/sound			\
 	javax/sql			\
 	javax/swing			\
 	javax/tools			\
 	javax/xml			\
-	com/sun/org/apache		\
-	com/sun/java_cup		\
-	com/sun/jlex	        	\
 	org/ietf			\
 	org/omg				\
 	org/w3c/dom			\
@@ -1008,6 +1024,62 @@
 JARS += $(IMAGES_OUTPUTDIR)/lib/sa-jdi.jar
 
 ##########################################################################################
+#
+# sec-bin.zip is used by builds where the corresponding sources are not available
+#
+$(eval $(call SetupZipArchive,BUILD_SEC_BIN_ZIP,\
+		SRC:=$(JDK_OUTPUTDIR),\
+		INCLUDES:=classes/javax/net \
+			  classes/javax/security/cert \
+			  classes/com/sun/net/ssl \
+			  classes/com/sun/security/cert \
+			  classes/sun/net/www/protocol/https \
+			  classes/sun/security/pkcs12 \
+			  classes/sun/security/ssl \
+			  classes/sun/security/krb5 \
+			  classes/sun/security/krb5/internal \
+			  classes/sun/security/krb5/internal/ccache \
+			  classes/sun/security/krb5/internal/crypto \
+			  classes/sun/security/krb5/internal/ktab \
+			  classes/sun/security/krb5/internal/rcache \
+			  classes/sun/security/krb5/internal/util,\
+		INCLUDE_FILES:=classes/sun/security/jgss/spi/GSSContextSpi.class,\
+		EXCLUDES:=classes/sun/security/krb5/internal/tools,\
+		ZIP:=$(IMAGES_OUTPUTDIR)/sec-bin.zip))
+
+JARS += $(IMAGES_OUTPUTDIR)/sec-bin.zip
+
+##########################################################################################
+#
+# Windows specific binary security packages.
+#
+ifeq ($(OPENJDK_TARGET_OS),windows)
+    # sec-windows-bin.zip is used by builds where the corresponding sources are not available
+    $(eval $(call SetupZipArchive,BUILD_SEC_WINDOWS_BIN_ZIP,\
+		SRC:=$(JDK_OUTPUTDIR),\
+		INCLUDES:=classes/sun/security/krb5/internal/tools,\
+		ZIP:=$(IMAGES_OUTPUTDIR)/sec-windows-bin.zip))
+
+    JARS += $(IMAGES_OUTPUTDIR)/sec-windows-bin.zip
+
+    # JGSS files contain the native Kerberos library
+    ifeq ($(OPENJDK_TARGET_CPU),x86_64)
+        JGSS_ZIP_NAME=jgss-windows-x64-bin.zip
+    else
+        JGSS_ZIP_NAME=jgss-windows-i586-bin.zip
+    endif
+
+    $(eval $(call SetupZipArchive,BUILD_JGSS_BIN_ZIP,\
+		SRC:=$(JDK_OUTPUTDIR),\
+		INCLUDE_FILES:=bin/w2k_lsa_auth.dll \
+			       bin/w2k_lsa_auth.map \
+			       bin/w2k_lsa_auth.pdb,\
+		ZIP:=$(IMAGES_OUTPUTDIR)/$(JGSS_ZIP_NAME)))
+
+    JARS += $(IMAGES_OUTPUTDIR)/$(JGSS_ZIP_NAME)
+endif
+
+##########################################################################################
 
 -include $(CUSTOM_MAKE_DIR)/CreateJars.gmk
 
--- a/makefiles/GensrcProperties.gmk	Thu Jan 24 18:06:24 2013 +0400
+++ b/makefiles/GensrcProperties.gmk	Mon Jan 28 14:23:09 2013 +0100
@@ -23,6 +23,9 @@
 # questions.
 #
 
+# Prepare the find cache. This is only used on windows.
+$(eval $(call FillCacheFind,$(JDK_TOPDIR)/src/share/classes $(JDK_TOPDIR)/src/windows/classes))
+
 # All .properties files to be compiled are appended to this variable.
 ALL_COMPILED_PROPSOURCES:=
 # All generated .java files from compilation are appended to this variable.
@@ -117,44 +120,54 @@
 #com/apple/laf/resources
 ifeq ($(OPENJDK_TARGET_OS),macosx)
     $(eval $(call add_properties_to_compile,COM_APPLE_LAF,\
-	$(shell find $(JDK_TOPDIR)/src/macosx/classes/com/apple/laf/resources -name "*.properties"),\
-		ListResourceBundle))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/macosx/classes/com/apple/laf/resources)),\
+	ListResourceBundle))
 endif
 
 #com/sun/accessibility/internal/resources
 $(eval $(call add_properties_to_compile,COM_SUN_ACCESSIBILITY,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/accessibility/internal/resources -name "*.properties"),\
-		ListResourceBundle))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/accessibility/internal/resources)),\
+	ListResourceBundle))
 $(eval $(call add_properties_to_compile,COM_SUN_ACCESSIBILITY_HK,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/accessibility/internal/resources -name "*.properties"),\
-		ListResourceBundle,%zh_TW,%zh_HK))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/accessibility/internal/resources)),\
+	ListResourceBundle,%zh_TW,%zh_HK))
 #com/sun/imageio/plugins/common
 $(eval $(call add_properties_to_clean,COM_SUN_IMAGEIO,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/imageio -name "*.properties")))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/imageio))))
 #com/sun/java/swing/plaf/gtk/resources
 ifneq ($(OPENJDK_TARGET_OS), windows)
 # Only compile GTK resource bundles on Solaris/Linux
 $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_GTK,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/java/swing/plaf/gtk/resources -name "*.properties"),\
-		ListResourceBundle))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/java/swing/plaf/gtk/resources)),\
+	ListResourceBundle))
 $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_GTK_HK,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/java/swing/plaf/gtk/resources -name "*.properties"),\
-		ListResourceBundle,%zh_TW,%zh_HK))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/java/swing/plaf/gtk/resources)),\
+	ListResourceBundle,%zh_TW,%zh_HK))
 endif
 #com/sun/java/swing/plaf/motif/resources
 $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_MOTIF,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/java/swing/plaf/motif/resources -name "*.properties"),\
-		ListResourceBundle))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/java/swing/plaf/motif/resources)),\
+	ListResourceBundle))
 $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_MOTIF_HK,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/java/swing/plaf/motif/resources -name "*.properties"),\
-		ListResourceBundle,%zh_TW,%zh_HK))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/java/swing/plaf/motif/resources)),\
+	ListResourceBundle,%zh_TW,%zh_HK))
 #com/sun/java/swing/plaf/windows/resources
 $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_WINDOWS,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/java/swing/plaf/windows/resources -name "*.properties"),\
-		ListResourceBundle))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/java/swing/plaf/windows/resources)),\
+	ListResourceBundle))
 $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_WINDOWS_HK,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/java/swing/plaf/windows/resources -name "*.properties"),\
-		ListResourceBundle,%zh_TW,%zh_HK))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/java/swing/plaf/windows/resources)),\
+	ListResourceBundle,%zh_TW,%zh_HK))
 #com/sun/java/util/jar/pack
 $(eval $(call add_properties_to_clean,JNDI_COSNAMING,\
 	$(JDK_TOPDIR)/src/share/classes/com/sun/java/util/jar/pack/intrinsic.properties))
@@ -169,138 +182,171 @@
 #FIXME: The "xmlsecurity*.properties" pattern is not ideal; we might want to find
 #a better way to select the properties files that are needed.
 $(eval $(call add_properties_to_clean,XML_SECURITY,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/org/apache/xml/internal/security/resource -name "xmlsecurity*.properties")))
+	$(filter $(JDK_TOPDIR)/src/share/classes/com/sun/org/apache/xml/internal/security/resource/xmlsecurity%.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/org/apache/xml/internal/security/resource))))
 
 #com/sun/rowset
 $(eval $(call add_properties_to_clean,COM_SUN_ROWSET,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/rowset -name "*.properties")))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/rowset))))
 $(eval $(call add_properties_to_clean,COM_SUN_ROWSET_HK,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/rowset -name "*zh_TW.properties"),\
+	$(filter %zh_TW.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/rowset)),\
 	%zh_TW,%zh_HK))
 
 #com/sun/servicetag/resources
 #com/sun/swing/internal/plaf/basic/resources
 $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_BASIC,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/swing/internal/plaf/basic/resources -name "*.properties"),\
-		ListResourceBundle))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/swing/internal/plaf/basic/resources)),\
+	ListResourceBundle))
 $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_BASIC_HK,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/swing/internal/plaf/basic/resources -name "*.properties"),\
-		ListResourceBundle,%zh_TW,%zh_HK))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/swing/internal/plaf/basic/resources)),\
+	ListResourceBundle,%zh_TW,%zh_HK))
 #com/sun/swing/internal/plaf/metal/resources
 $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_METAL,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/swing/internal/plaf/metal/resources -name "*.properties"),\
-		ListResourceBundle))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/swing/internal/plaf/metal/resources)),\
+	ListResourceBundle))
 $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_METAL_HK,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/swing/internal/plaf/metal/resources -name "*.properties"),\
-		ListResourceBundle,%zh_TW,%zh_HK))
+	$(filter %.properties,$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/swing/internal/plaf/metal/resources)),\
+	ListResourceBundle,%zh_TW,%zh_HK))
 #com/sun/swing/internal/plaf/synth/resources
 $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_SYNTH,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/swing/internal/plaf/synth/resources -name "*.properties"),\
-		ListResourceBundle))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/swing/internal/plaf/synth/resources)),\
+	ListResourceBundle))
 $(eval $(call add_properties_to_compile,COM_SUN_SWING_PLAF_SYNTH_HK,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/swing/internal/plaf/synth/resources -name "*.properties"),\
-		ListResourceBundle,%zh_TW,%zh_HK))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/swing/internal/plaf/synth/resources)),\
+	ListResourceBundle,%zh_TW,%zh_HK))
 
 #com/sun/tools/jdi/resources
 $(eval $(call add_properties_to_compile,COM_SUN_TOOLS_JDI,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/tools/jdi/resources -name "*.properties"),\
-		ListResourceBundle))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/com/sun/tools/jdi/resources)),\
+	ListResourceBundle))
 
 #com/sun/tools/script/shell
 #java/util
 #javax/sql/rowset
 $(eval $(call add_properties_to_clean,JAVAX_SQL_ROWSET,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/javax/sql/rowset -name "*.properties")))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/javax/sql/rowset))))
 #sun/awt/resources
 $(eval $(call add_properties_to_compile,SUN_AWT,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/awt/resources -name "*.properties"),\
-		ListResourceBundle))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/awt/resources)),\
+	ListResourceBundle))
 $(eval $(call add_properties_to_compile,SUN_AWT_HK,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/awt/resources -name "*.properties"),\
-		ListResourceBundle,%zh_TW,%zh_HK))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/awt/resources)),\
+	ListResourceBundle,%zh_TW,%zh_HK))
 #sun/awt/windows/
 ifeq ($(OPENJDK_TARGET_OS),windows)
     $(eval $(call add_properties_to_compile,SUN_AWT,\
-	$(shell find $(JDK_TOPDIR)/src/windows/classes/sun/awt/windows -name "awtLocalization*.properties"),\
-		ListResourceBundle))
+	$(filter $(JDK_TOPDIR)/src/windows/classes/sun/awt/windows/awtLocalization%.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/windows/classes/sun/awt/windows)),\
+	ListResourceBundle))
     $(eval $(call add_properties_to_compile,SUN_AWT_HK,\
-	$(shell find $(JDK_TOPDIR)/src/windows/classes/sun/awt/windows -name "awtLocalization*.properties"),\
-		ListResourceBundle,%zh_TW,%zh_HK))
+	$(filter $(JDK_TOPDIR)/src/windows/classes/sun/awt/windows/awtLocalization%.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/windows/classes/sun/awt/windows)),\
+	ListResourceBundle,%zh_TW,%zh_HK))
 endif
 
 #sun/launcher/resources
 $(eval $(call add_properties_to_compile,SUN_LAUNCHER,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/launcher/resources -name "*.properties"),\
-		ListResourceBundle))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/launcher/resources)),\
+	ListResourceBundle))
 $(eval $(call add_properties_to_compile,SUN_LAUNCHER_HK,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/launcher/resources -name "*.properties"),\
-		ListResourceBundle,%zh_TW,%zh_HK))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/launcher/resources)),\
+	ListResourceBundle,%zh_TW,%zh_HK))
 #sun/management/resources
 $(eval $(call add_properties_to_compile,SUN_MANAGEMENT,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/management/resources -name "*.properties"),\
-		ListResourceBundle))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/management/resources)),\
+	ListResourceBundle))
 $(eval $(call add_properties_to_compile,SUN_MANAGEMENT_KH,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/management/resources -name "*.properties"),\
-		ListResourceBundle,%zh_TW,%zh_HK))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/management/resources)),\
+	ListResourceBundle,%zh_TW,%zh_HK))
 #sun/print
 #sun/print/resources
 $(eval $(call add_properties_to_compile,SUN_PRINT,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/print/resources -name "*.properties"),\
-		ListResourceBundle))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/print/resources)),\
+	ListResourceBundle))
 $(eval $(call add_properties_to_compile,SUN_PRINT_HK,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/print/resources -name "*.properties"),\
-		ListResourceBundle,%zh_TW,%zh_HK))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/print/resources)),\
+	ListResourceBundle,%zh_TW,%zh_HK))
 #sun/rmi/registry/resources
 $(eval $(call add_properties_to_clean,SUN_RMI_REGISTRY,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/rmi/registry/resources -name "*.properties")))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/rmi/registry/resources))))
 $(eval $(call add_properties_to_clean,SUN_RMI_REGISTRY_HK,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/rmi/registry/resources -name "*zh_TW.properties"),\
+	$(filter %zh_TW.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/rmi/registry/resources)),\
 	%zh_TW,%zh_HK))
 
 #sun/rmi/rmic/resources
 $(eval $(call add_properties_to_clean,SUN_RMI_RMIC,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/rmi/rmic/resources -name "*.properties")))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/rmi/rmic/resources))))
 
 #sun/rmi/server/resources
 $(eval $(call add_properties_to_clean,SUN_RMI_SERVER,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/rmi/server/resources -name "*.properties")))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/rmi/server/resources))))
 $(eval $(call add_properties_to_clean,SUN_RMI_SERVER_HK,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/rmi/server/resources -name "*zh_TW.properties"),\
+	$(filter %zh_TW.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/rmi/server/resources)),\
 	%zh_TW,%zh_HK))
 
 # sun/tools/jar/resources
 $(eval $(call add_properties_to_compile,SUN_TOOLS_JAR,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/tools/jar/resources -name "*.properties"),\
-		ListResourceBundle))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/tools/jar/resources)),\
+	ListResourceBundle))
 $(eval $(call add_properties_to_compile,SUN_TOOLS_JAR_HK,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/tools/jar/resources -name "*.properties"),\
-		ListResourceBundle,%zh_TW,%zh_HK))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/tools/jar/resources)),\
+	ListResourceBundle,%zh_TW,%zh_HK))
 
 #sun/tools/javac/resources
 # It's unclear if the other localized property files here are supposed to be copied or not
 # but the old build system didn't copy them.
 $(eval $(call add_properties_to_clean,SUN_TOOLS_SERIALVER,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/tools/javac/resources -name "javac.properties")))
+	$(filter %javac.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/tools/javac/resources))))
 
 #sun/tools/jconsole/resources
 $(eval $(call add_properties_to_clean,SUN_TOOLS_JCONSOLE,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/tools/jconsole/resources -name "*.properties")))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/tools/jconsole/resources))))
 
 #sun/tools/serialver
 $(eval $(call add_properties_to_clean,SUN_TOOLS_SERIALVER,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/tools/serialver -name "*.properties"),,,resources))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/tools/serialver)),,,resources))
 
 #sun/util/logging/resources
 $(eval $(call add_properties_to_compile,SUN_UTIL_LOGGING,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/util/logging/resources -name "*.properties"),\
-		ListResourceBundle))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/util/logging/resources)),\
+	ListResourceBundle))
 $(eval $(call add_properties_to_compile,SUN_UTIL_LOGGING_HK,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/util/logging/resources -name "*.properties"),\
-		ListResourceBundle,%zh_TW,%zh_HK))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/util/logging/resources)),\
+	ListResourceBundle,%zh_TW,%zh_HK))
 # sun/util/resources
 $(eval $(call add_properties_to_compile,SUN_UTIL,\
-	$(shell find $(JDK_TOPDIR)/src/share/classes/sun/util/resources -name "*.properties"),\
-		sun.util.resources.LocaleNamesBundle))
+	$(filter %.properties,\
+	$(call CacheFind,$(JDK_TOPDIR)/src/share/classes/sun/util/resources)),\
+	sun.util.resources.LocaleNamesBundle))
 
 # Now setup the rule for the generation of the resource bundles.
 $(JDK_OUTPUTDIR)/gensrc/_the.compiled_properties : $(ALL_COMPILED_PROPSOURCES) $(BUILD_TOOLS)
--- a/makefiles/GensrcSwing.gmk	Thu Jan 24 18:06:24 2013 +0400
+++ b/makefiles/GensrcSwing.gmk	Mon Jan 28 14:23:09 2013 +0100
@@ -45,7 +45,6 @@
 # Generate beaninfo java files
 #
 
-BEAN_GENSRC_DIR = $(JDK_OUTPUTDIR)/gensrc/javax/swing/beaninfo
 DOCLETSRC_DIR = $(JDK_TOPDIR)/make/tools/swing-beans
 
 # javax.swing package
@@ -69,25 +68,31 @@
 # Dummy variable so far, in the old build system it was false by default
 SWINGBEAN_DEBUG_FLAG = false
 # GenDocletBeanInfo is compiled in Tools.gmk and picks up from $(JDK_OUTPUTDIR)/btclasses
-$(JDK_OUTPUTDIR)/gensrc/_the.generated_beaninfo: $(BEANS_SRC) $(BEAN_GENSRC_DIR)/SwingBeanInfoBase.java $(BEAN_GENSRC_DIR)/BeanInfoUtils.java $(BUILD_TOOLS)
+$(JDK_OUTPUTDIR)/gensrc_no_srczip/_the.generated_beaninfo: $(BEANS_SRC) $(JDK_OUTPUTDIR)/gensrc_no_srczip/javax/swing/SwingBeanInfoBase.java $(JDK_OUTPUTDIR)/gensrc/sun/swing/BeanInfoUtils.java $(BUILD_TOOLS)
 	$(ECHO) Generating beaninfo
-	$(JAVA) -Djava.awt.headless=true -jar $(JAVADOC_JARS) -doclet GenDocletBeanInfo -x $(SWINGBEAN_DEBUG_FLAG) -d $(BEAN_GENSRC_DIR) -t $(DOCLETSRC_DIR)/SwingBeanInfo.template -docletpath $(JDK_OUTPUTDIR)/btclasses \
+	$(MKDIR) -p $(JDK_OUTPUTDIR)/gensrc_no_srczip/javax/swing
+	$(JAVA) -Djava.awt.headless=true -jar $(JAVADOC_JARS) -doclet GenDocletBeanInfo \
+	-x $(SWINGBEAN_DEBUG_FLAG) -d $(JDK_OUTPUTDIR)/gensrc_no_srczip/javax/swing \
+	-t $(DOCLETSRC_DIR)/SwingBeanInfo.template -docletpath $(JDK_OUTPUTDIR)/btclasses \
 	-XDignore.symbol.file=true \
 	-classpath $(JDK_OUTPUTDIR)/btclasses $(BEANS_SRC) $(LOG_INFO)
+#       Move the JTextComponent into its proper package directory.
+	$(MKDIR) -p $(JDK_OUTPUTDIR)/gensrc_no_srczip/javax/swing/text
+	$(MV) $(JDK_OUTPUTDIR)/gensrc_no_srczip/javax/swing/JTextComponentBeanInfo.java $(JDK_OUTPUTDIR)/gensrc_no_srczip/javax/swing/text/JTextComponentBeanInfo.java 
 	$(TOUCH) $@
 
 # This file is the part of dt.jar
-# For some reason it is under $(JDK_TOPDIR)/make/tools/swing-beans/beaninfo
+# For some reason it is under $(JDK_TOPDIR)/make/tools/swing-beans/javax/swing
 # Should it be moved under $(JDK_TOPDIR)/src/share/classes/javax/swing instead?
-$(BEAN_GENSRC_DIR)/SwingBeanInfoBase.java: $(DOCLETSRC_DIR)/beaninfo/SwingBeanInfoBase.java
+$(JDK_OUTPUTDIR)/gensrc_no_srczip/javax/swing/SwingBeanInfoBase.java: $(DOCLETSRC_DIR)/javax/swing/SwingBeanInfoBase.java
 	$(MKDIR) -p $(@D)
 	$(CP) $< $@
 
 # This file is the part of dt.jar 
-# For some reason it is under $(JDK_TOPDIR)/make/tools/swing-beans/beaninfo
+# For some reason it is under $(JDK_TOPDIR)/make/tools/swing-beans/sun/swing
 # Should it be moved under $(JDK_TOPDIR)/src/share/classes/sun/swing instead?
-$(BEAN_GENSRC_DIR)/BeanInfoUtils.java: $(DOCLETSRC_DIR)/beaninfo/BeanInfoUtils.java
+$(JDK_OUTPUTDIR)/gensrc/sun/swing/BeanInfoUtils.java: $(DOCLETSRC_DIR)/sun/swing/BeanInfoUtils.java
 	$(MKDIR) -p $(@D)
 	$(CP) $< $@
 
-GENSRC_SWING_BEANINFO = $(JDK_OUTPUTDIR)/gensrc/_the.generated_beaninfo
+GENSRC_SWING_BEANINFO = $(JDK_OUTPUTDIR)/gensrc_no_srczip/_the.generated_beaninfo
--- a/makefiles/GensrcX11Wrappers.gmk	Thu Jan 24 18:06:24 2013 +0400
+++ b/makefiles/GensrcX11Wrappers.gmk	Mon Jan 28 14:23:09 2013 +0100
@@ -23,84 +23,95 @@
 # questions.
 #
 
+# This file is responsible for extracting the x11 native struct offsets to
+# the xawt Java library. The tool needs to be run on the os/arch that
+# will host the final jvm, thus the tool cannot be used when cross compiling.
 
-# This file is responsible for extracting the x11 native struct offsets to
-# the xawt Java library. This is done by compiling and running a native
-# binary, which dumps output to a text file. The offsets differ on 32 and 64
-# bit systems, so care must be taken here.
+# To enable cross compiling, the two versions of the generated offset file,
+# sizes.32 and sizes.64 are committed into the source code repository.
+# These are the ones used.
 
-# Note: Some of the more complex logic here is most likely not needed anymore.
+# However when not cross compiling, the offset generator tool is built and
+# run, to verify that it still generates the same sizes.32 and sizes.64.
 
 GENSRC_X11WRAPPERS :=
+# Put temporary c-code and executable to calculate offsets here.
+# Also put verification offset file here as well.
 GENSRC_X11WRAPPERS_TMP := $(JDK_OUTPUTDIR)/gensrc_x11wrappers
-GENSRC_X11WRAPPERS_DST := $(JDK_OUTPUTDIR)/gensrc
+# Put the generated Java classes used to interface X11 from awt here.
+GENSRC_X11WRAPPERS_DST := $(JDK_OUTPUTDIR)/gensrc/sun/awt/X11
 
-GENSRC_SIZER_SRC := $(JDK_TOPDIR)/src/solaris/classes/sun/awt/X11/generator
+# The pre-calculated offset file are stored here:
+GENSRC_SIZER_DIR := $(JDK_TOPDIR)/src/solaris/classes/sun/awt/X11/generator
 
-# Normal case is to generate version according to target bits
-GENSRC_SIZES := sizes.$(OPENJDK_TARGET_CPU_BITS)
-
+# Normal case is to generate only according to target bits
+GENSRC_X11_VERSION := $(OPENJDK_TARGET_CPU_BITS)
 ifeq ($(OPENJDK_TARGET_CPU_BITS), 64)
-ifneq ($(OPENJDK_TARGET_OS), linux)
-# On all 64-bit systems except Linux, generate both 32 and 64 bit versions
-GENSRC_SIZES := sizes.32 sizes.64
-endif
+  ifneq ($(OPENJDK_TARGET_OS), linux)
+  # On all 64-bit systems except Linux, generate both 32 and 64 bit versions
+  GENSRC_X11_VERSION := 32 64
+  endif
 else
-ifeq ($(OPENJDK_TARGET_OS), solaris)
-# As a special case, solaris 32-bit also generates the 64-bit version
-GENSRC_SIZES := sizes.32 sizes.64
-endif
+  ifeq ($(OPENJDK_TARGET_OS), solaris)
+  # As a special case, solaris 32-bit also generates the 64-bit version
+  GENSRC_X11_VERSION := 32 64
+  endif
 endif
 
-##########################################################################################
+GENSRC_X11_SIZES_USED := $(addprefix $(GENSRC_X11WRAPPERS_TMP)/sizes.,$(GENSRC_X11_VERSION))
 
-$(GENSRC_X11WRAPPERS_TMP)/sizer/sizer.%.c : $(GENSRC_SIZER_SRC)/xlibtypes.txt
+# Copy only the sizes.* files that are actually needed. WrapperGenerator picks up any it finds from the 
+# file prefix it is given so those not needed need to be hidden.
+$(GENSRC_X11WRAPPERS_TMP)/sizes.%: $(GENSRC_SIZER_DIR)/sizes.%
+	$(MKDIR) -p $(@D)
+	$(RM) '$@'
+	$(SORT) $< > $@
+
+# Run the tool on the offset files copied from the source repository to generate several Java classes 
+# used in awt.
+$(JDK_OUTPUTDIR)/gensrc/_the.generated.x11 : $(GENSRC_X11_SIZES_USED) $(BUILD_TOOLS)
+	$(MKDIR) -p $(GENSRC_X11WRAPPERS_DST)
+	$(TOOL_WRAPPERGENERATOR) $(GENSRC_X11WRAPPERS_DST) $(GENSRC_SIZER_DIR)/xlibtypes.txt "gen" $(GENSRC_X11WRAPPERS_TMP)/sizes
+	$(TOUCH) $@
+
+GENSRC_X11WRAPPERS += $(JDK_OUTPUTDIR)/gensrc/_the.generated.x11
+
+ifneq ($(COMPILE_TYPE),cross)
+    # This is not a cross compile, regenerate the offset file, so that we
+    # can compare it with the version in the source code repository.
+
+    # Generate the C code for the program that will output the offset file.
+    $(GENSRC_X11WRAPPERS_TMP)/sizer.%.c : $(GENSRC_SIZER_DIR)/xlibtypes.txt $(BUILD_TOOLS)
 	$(ECHO) "Generating X11 wrapper ($*-bit version)"
 	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(TOOL_WRAPPERGENERATOR) $(@D) $< "sizer" $*
+	$(TOOL_WRAPPERGENERATOR) $(@D) $(GENSRC_SIZER_DIR)/xlibtypes.txt "sizer" $*
 
-$(GENSRC_X11WRAPPERS_TMP)/sizer/sizer.%.exe : $(GENSRC_X11WRAPPERS_TMP)/sizer/sizer.%.c
+    # Compile the C code into an executable.
+    $(GENSRC_X11WRAPPERS_TMP)/sizer.%.exe : $(GENSRC_X11WRAPPERS_TMP)/sizer.%.c
 	$(MKDIR) -p $(@D)
-	$(RM) $@ $@.tmp
-	(cd $(@D) && $(BUILD_CC) -m$* -o $@.tmp $< \
+	(cd $(@D) && $(CC) -m$* -o $@ $< \
               $(X_CFLAGS) \
               $(X_LIBS) \
               -I$(JDK_OUTPUTDIR)/include \
               -I$(JDK_TOPDIR)/src/share/javavm/export \
               -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/javavm/export \
-              -I$(JDK_TOPDIR)//src/share/native/common \
+              -I$(JDK_TOPDIR)/src/share/native/common \
               -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/common \
               -I$(JDK_TOPDIR)/src/solaris/native/sun/awt \
 	      -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \
 	      -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils -lc)
-	$(MV) $@.tmp $@
 
-# Run the generated sizer binary to create the sizes text file
-$(GENSRC_X11WRAPPERS_TMP)/sizer/sizes.% : $(GENSRC_X11WRAPPERS_TMP)/sizer/sizer.%.exe
+    .PRECIOUS: $(GENSRC_X11WRAPPERS_TMP)/sizer.%.exe $(GENSRC_X11WRAPPERS_TMP)/sizer.%.c
+
+    # Run the executable create the offset file and check that it is identical
+    # to the offset file in the source code repository.
+    $(GENSRC_X11WRAPPERS_TMP)/sizes.%.verification : $(GENSRC_X11WRAPPERS_TMP)/sizer.%.exe
 	$(MKDIR) -p $(@D)
-	$(RM) $@ $@.tmp
-	$< > $@.tmp
-	$(MV) $@.tmp $@
+	$(GENSRC_X11WRAPPERS_TMP)/sizer.$*.exe | $(SORT) > $@.tmp
+	$(ECHO) Verifying $(GENSRC_X11WRAPPERS_TMP)/sizes.$*.verification.tmp to $(GENSRC_X11WRAPPERS_TMP)/sizes.$*
+	$(DIFF) $(GENSRC_X11WRAPPERS_TMP)/sizes.$*.verification.tmp $(GENSRC_X11WRAPPERS_TMP)/sizes.$*
+	mv $@.tmp $@
 
-ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU), solaris-x86)
-  # On solaris-x86 we also need to create the 64-bit version, but we can't run a 64-bit binary
-  # As a workaround, copy this from a pre-generated file.
-$(GENSRC_X11WRAPPERS_TMP)/sizer/sizes.64 : $(JDK_TOPDIR)/src/solaris/classes/sun/awt/X11/generator/sizes.64-solaris-i386
-	$(MKDIR) -p $(@D)
-	$(RM) $@
-	$(CP) $< $@
+    GENSRC_X11WRAPPERS += $(GENSRC_X11WRAPPERS_TMP)/sizes.$(OPENJDK_TARGET_CPU_BITS).verification
 endif
 
-$(GENSRC_X11WRAPPERS_DST)/_the.generated.x11 : $(foreach S,$(GENSRC_SIZES),$(GENSRC_X11WRAPPERS_TMP)/sizer/$(S))
-	$(RM) $@
-	$(MKDIR) -p $(@D)/sun/awt/X11
-	$(TOOL_WRAPPERGENERATOR) $(@D)/sun/awt/X11 $(GENSRC_SIZER_SRC)/xlibtypes.txt "gen" $(GENSRC_X11WRAPPERS_TMP)/sizer/sizes
-ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU), solaris-x86_64)
-  # On solaris-x86_64, as a safety measure, compare the generated file with the checked-in version 
-	$(ECHO) COMPARING $(GENSRC_X11WRAPPERS_TMP)/sizer/sizes.64 and $(GENSRC_SIZER_SRC)/sizes.64-solaris-i386
-	$(DIFF) $(GENSRC_X11WRAPPERS_TMP)/sizer/sizes.64 $(GENSRC_SIZER_SRC)/sizes.64-solaris-i386
-endif
-	$(TOUCH) $@
-
-GENSRC_X11WRAPPERS += $(GENSRC_X11WRAPPERS_DST)/_the.generated.x11
--- a/makefiles/Images.gmk	Thu Jan 24 18:06:24 2013 +0400
+++ b/makefiles/Images.gmk	Mon Jan 28 14:23:09 2013 +0100
@@ -30,6 +30,15 @@
 
 default: images
 
+# Prepare the find cache. Only used if running on windows.
+$(eval $(call FillCacheFind,\
+    $(wildcard $(JDK_OUTPUTDIR)/bin \
+               $(JDK_OUTPUTDIR)/lib \
+               $(IMAGES_OUTPUTDIR)/lib \
+               $(JDK_OUTPUTDIR)/include \
+               $(JDK_OUTPUTDIR)/sample \
+               $(JDK_OUTPUTDIR)/demo)))
+
 include Tools.gmk
 
 # Note: This double-colon rule is intentional, to support
@@ -68,12 +77,6 @@
   $4 += $2/$$($2_$3_FILE)
 endef
 
-JDK_IMAGE_DIR:=$(IMAGES_OUTPUTDIR)/j2sdk-image
-JRE_IMAGE_DIR:=$(IMAGES_OUTPUTDIR)/j2re-image
-
-JDK_OVERLAY_IMAGE_DIR:=$(IMAGES_OUTPUTDIR)/j2sdk-overlay-image
-JRE_OVERLAY_IMAGE_DIR:=$(IMAGES_OUTPUTDIR)/j2re-overlay-image
-
 ################################################################################
 #
 # JRE and JDK build rules
@@ -133,7 +136,7 @@
 	$(SALIB_NAME)
 
 # Find all files in bin dir
-ALL_BIN_LIST := $(shell $(FIND) $(JDK_OUTPUTDIR)/bin -type f)
+ALL_BIN_LIST := $(call CacheFind,$(JDK_OUTPUTDIR)/bin)
 
 # Prevent sjavac from entering the images.
 ALL_BIN_LIST := $(filter-out %/sjavac,$(ALL_BIN_LIST))
@@ -145,7 +148,7 @@
 else
 # On windows, the libraries are in the bin dir, only filter out debuginfo files
 # for executables. "java" is both a library and executable.
-    ALL_BIN_EXEC_FILES := $(filter-out java.exe,$(notdir $(shell $(FIND) $(JDK_OUTPUTDIR)/bin -type f -name "*.exe")))
+    ALL_BIN_EXEC_FILES := $(filter-out java.exe,$(notdir $(filter %.exe,$(ALL_BIN_LIST))))
     ALL_BIN_DEBUG_FILTER := $(addprefix %,$(patsubst %.exe,%.debuginfo,$(ALL_BIN_EXEC_FILES)) \
 					   $(patsubst %.exe,%.diz,$(ALL_BIN_EXEC_FILES))) %.pdb
     ALL_BIN_LIST := $(filter-out $(ALL_BIN_DEBUG_FILTER),$(ALL_BIN_LIST))
@@ -213,13 +216,13 @@
 
 # Find all files to copy from $(JDK_OUTPUTDIR)/lib
 # Jar files are not expected to be here
-ALL_JDKOUT_LIB_LIST := $(shell $(FIND) $(JDK_OUTPUTDIR)/lib \( -type f -o -type l \) -a ! \
-                       \( -name "_the*" -o -name "javac_state " -o -name "*.jar" \) )
+ALL_JDKOUT_LIB_LIST := $(call not-containing,_the.,$(filter-out %.jar,\
+                            $(call CacheFind,$(JDK_OUTPUTDIR)/lib)))
 # Find all files to copy from $(IMAGES_OUTPUTDIR)/lib
 # This is were the jar files are and might not exist if building overlay-images
 ifneq ($(wildcard $(IMAGES_OUTPUTDIR)/lib),)
-    ALL_IMAGES_LIB_LIST := $(shell $(FIND) $(IMAGES_OUTPUTDIR)/lib \( -type f -o -type l \) -a ! \
-                       \( -name "_the*" -o -name "javac_state " \) )
+    ALL_IMAGES_LIB_LIST := $(call not-containing,_the.,\
+                            $(call CacheFind,$(IMAGES_OUTPUTDIR)/lib))
 endif
 
 # Filter files to copy for each destination
@@ -494,13 +497,13 @@
 
     JDK_OVERLAY_DEMO_TARGETS += $$($1_TARGET)
 endef
-JDK_OVERLAY_DEMO_SOURCES := $(shell $(FIND) $(JDK_OUTPUTDIR)/demo -name "*$(SHARED_LIBRARY_SUFFIX)")
+JDK_OVERLAY_DEMO_SOURCES := $(filter %$(SHARED_LIBRARY_SUFFIX),$(call CacheFind,$(JDK_OUTPUTDIR)/demo))
 $(foreach lib,$(JDK_OVERLAY_DEMO_SOURCES),$(eval $(call CreateOverlayDemoRule,$(lib))))
 
 ################################################################################
 # /sample dir
 
-$(foreach f,$(shell $(FIND) $(JDK_OUTPUTDIR)/sample -type f),\
+$(foreach f,$(call CacheFind,$(JDK_OUTPUTDIR)/sample),\
     $(eval $(call AddFileToCopy,$(JDK_OUTPUTDIR),$(JDK_IMAGE_DIR),$f,JDK_SAMPLE_TARGETS)))
 
 ################################################################################
@@ -519,7 +522,7 @@
 	$(install-file)
 
     JDK_DB_TARGETS := $(patsubst $(JDK_TOPDIR)/src/closed/share/db/%,$(IMAGES_OUTPUTDIR)/_unzip/%.unzipped,\
-			$(shell $(FIND) $(JDK_TOPDIR)/src/closed/share/db -name "*.zip" ! -name "*demo*")) \
+			$(call not-containing,demo,$(wildcard $(JDK_TOPDIR)/src/closed/share/db/*.zip))) \
 		      $(JDK_IMAGE_DIR)/db/README-JDK.html
 
 endif
@@ -527,7 +530,7 @@
 ################################################################################
 # /include dir
 
-$(foreach f,$(shell $(FIND) $(JDK_OUTPUTDIR)/include -type f),\
+$(foreach f,$(call CacheFind,$(JDK_OUTPUTDIR)/include),\
     $(eval $(call AddFileToCopy,$(JDK_OUTPUTDIR),$(JDK_IMAGE_DIR),$f,JDK_INCLUDE_TARGETS)))
 
 ################################################################################
@@ -626,8 +629,7 @@
 
 ifneq ($(POST_STRIP_CMD),)
     ifeq ($(OPENJDK_TARGET_OS), windows)
-        EXEC_LIST_BIN:=$(shell $(FIND) $(JDK_OUTPUTDIR)/bin -type f -name \*.exe \
-		-o -name \*.dll | $(EGREP) -v -i "$(MSVCR_DLL)")
+        EXEC_LIST_BIN:=$(filter-out %$(notdir $(MSVCR_DLL)),$(filter %.exe %.dll,$(ALL_BIN_LIST)))
     else
         # Find all executables in JDK_OUTPUTDIR since they exist when this makefile is parsed
         EXEC_LIST_BIN:=$(shell $(FILE) `$(FIND) $(JDK_OUTPUTDIR)/bin -type f -name \*$(EXE_SUFFIX)` \
--- a/makefiles/Import.gmk	Thu Jan 24 18:06:24 2013 +0400
+++ b/makefiles/Import.gmk	Mon Jan 28 14:23:09 2013 +0100
@@ -170,18 +170,11 @@
 $(INSTALL_LIBRARIES_HERE)/server/%.diz : $(INSTALL_LIBRARIES_HERE)/%.diz
 	$(MKDIR) -p $(@D)
 	$(RM) $@
-ifeq (REALLY_WEIRD,1)
-	$(LN) -s ../$(@F) $@
-else
-#
-# TODO: Check if this is what they really want...a zip containing a symlink
-#
 	$(RM) $@.tmp $(basename $@).debuginfo
 	$(LN) -s ../$(basename $(@F)).debuginfo $(basename $@).debuginfo
-	$(ZIP) -q -y $@.tmp $(basename $@).debuginfo
+	$(CD) $(@D) && $(ZIP) -q -y $@.tmp $(basename $(@F)).debuginfo
 	$(RM) $(basename $@).debuginfo
 	$(MV) $@.tmp $@
-endif
 
 $(INSTALL_LIBRARIES_HERE)/client/%$(SHARED_LIBRARY_SUFFIX) : $(INSTALL_LIBRARIES_HERE)/%$(SHARED_LIBRARY_SUFFIX)
 	$(MKDIR) -p $(@D)
@@ -196,18 +189,11 @@
 $(INSTALL_LIBRARIES_HERE)/client/%.diz : $(INSTALL_LIBRARIES_HERE)/%.diz
 	$(MKDIR) -p $(@D)
 	$(RM) $@
-ifeq (REALLY_WEIRD,1)
-	$(LN) -s ../$(@F) $@
-else
-#
-# TODO: Check if this is what they really want...a zip containing a symlink
-#
 	$(RM) $@.tmp $(basename $@).debuginfo
 	$(LN) -s ../$(basename $(@F)).debuginfo $(basename $@).debuginfo
-	$(ZIP) -q -y $@.tmp $(basename $@).debuginfo
+	$(CD) $(@D) && $(ZIP) -q -y $@.tmp $(basename $(@F)).debuginfo
 	$(RM) $(basename $@).debuginfo
 	$(MV) $@.tmp $@
-endif
 
 #######
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/makefiles/SignJars.gmk	Mon Jan 28 14:23:09 2013 +0100
@@ -0,0 +1,104 @@
+#
+# 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.
+#
+
+include $(SPEC)
+include MakeBase.gmk
+
+# (The terms "OpenJDK" and "JDK" below refer to OpenJDK and Oracle JDK 
+# builds respectively.)
+#
+# JCE builds are very different between OpenJDK and JDK.  The OpenJDK JCE
+# jar files do not require signing, but those for JDK do.  If an unsigned
+# jar file is installed into JDK, things will break when the crypto
+# routines are called.
+#
+# All jars are created in CreateJars.gmk. This Makefile does the signing
+# of the jars for JDK.
+#
+# For JDK, the binaries use pre-built/pre-signed binary files stored in
+# the closed workspace that are not shipped in the OpenJDK workspaces.
+# We still build the JDK files to verify the files compile, and in
+# preparation for possible signing.  Developers working on JCE in JDK
+# must sign the JCE files before testing.  The JCE signing key is kept
+# separate from the JDK workspace to prevent its disclosure.
+#
+# SPECIAL NOTE TO JCE/JDK developers:  The source files must eventually
+# be built, signed, and then the resulting jar files MUST BE CHECKED
+# INTO THE CLOSED PART OF THE WORKSPACE*.  This separate step *MUST NOT
+# BE FORGOTTEN*, otherwise a bug fixed in the source code will not be
+# reflected in the shipped binaries.  The "sign-jars" target in the top
+# level Makefile should be used to generate the required files.
+#
+
+# Default target
+all:
+
+ifndef OPENJDK
+
+README-MAKEFILE_WARNING := \
+    "\nPlease read makefiles/SignJars.gmk for further build instructions.\n"
+
+#
+# Location for JCE codesigning key.
+#
+SIGNING_KEY_DIR    := /security/ws/JCE-signing/src
+SIGNING_KEYSTORE   := $(SIGNING_KEY_DIR)/KeyStore.jks
+SIGNING_PASSPHRASE := $(SIGNING_KEY_DIR)/passphrase.txt
+SIGNING_ALIAS      := oracle_jce_rsa
+
+#
+# Defines for signing the various jar files.
+#
+check-keystore:
+	@if [ ! -f $(SIGNING_KEYSTORE) -o ! -f $(SIGNING_PASSPHRASE) ]; then \
+	    $(PRINTF) "\n$(SIGNING_KEYSTORE): Signing mechanism *NOT* available..."; \
+	    $(PRINTF) $(README-MAKEFILE_WARNING); \
+	    exit 2; \
+	fi
+
+$(JCE_OUTPUTDIR)/%: $(IMAGES_OUTPUTDIR)/unsigned/%
+	$(MKDIR) -p $(@D)
+	$(CP) $< $@
+	$(JARSIGNER) -keystore $(SIGNING_KEYSTORE) \
+	    $@ $(SIGNING_ALIAS) < $(SIGNING_PASSPHRASE)
+	@$(PRINTF) "\nJar codesigning finished.\n"
+
+JAR_LIST := jce.jar \
+            local_policy.jar \
+            sunec.jar \
+            sunjce_provider.jar \
+            sunpkcs11.jar \
+            US_export_policy.jar
+
+SIGNED_JARS := $(addprefix $(JCE_OUTPUTDIR)/,$(JAR_LIST))
+
+$(SIGNED_JARS): check-keystore
+
+all: $(SIGNED_JARS)
+	@$(PRINTF) "\n***The jar files built by the 'jar-sign' target must***"
+	@$(PRINTF) "\n***still be checked into the closed workspace!     ***"
+	@$(PRINTF)  $(README-MAKEFILE_WARNING)
+
+endif  # !OPENJDK
--- a/makefiles/Tools.gmk	Thu Jan 24 18:06:24 2013 +0400
+++ b/makefiles/Tools.gmk	Mon Jan 28 14:23:09 2013 +0100
@@ -23,15 +23,25 @@
 # questions.
 #
 
+# Cache all finds needed for this file. Only used on windows.
+$(eval $(call FillCacheFind,$(JDK_TOPDIR)/make/tools \
+    $(JDK_TOPDIR)/src/solaris/classes \
+    $(JDK_TOPDIR)/makefiles/sun))
+
+TOOLS_SRC:=$(JDK_TOPDIR)/make/tools/src \
+           $(JDK_TOPDIR)/makefiles/sun/awt/X11 \
+           $(JDK_TOPDIR)/makefiles/sun/osxapp \
+           $(JDK_TOPDIR)/make/tools/swing-beans
+
+ifneq ($(OPENJDK_TARGET_OS),windows)
+  TOOLS_SRC+=$(JDK_TOPDIR)/src/solaris/classes/sun/awt/X11/generator
+endif
+
 # The exception handling of swing beaninfo which have the own tool directory
 ifeq (,$(BUILD_TOOLS))
 $(eval $(call SetupJavaCompilation,BUILD_TOOLS,\
                 SETUP:=GENERATE_OLDBYTECODE,\
-		SRC:=$(JDK_TOPDIR)/make/tools/src \
-                     $(JDK_TOPDIR)/src/solaris/classes/sun/awt/X11/generator \
-                     $(JDK_TOPDIR)/makefiles/sun/awt/X11 \
-                     $(JDK_TOPDIR)/makefiles/sun/osxapp \
-                     $(JDK_TOPDIR)/make/tools/swing-beans,\
+		SRC:=$(TOOLS_SRC),\
 		BIN:=$(JDK_OUTPUTDIR)/btclasses))
 
 endif
--- a/src/share/classes/java/io/FileSystem.java	Thu Jan 24 18:06:24 2013 +0400
+++ b/src/share/classes/java/io/FileSystem.java	Mon Jan 28 14:23:09 2013 +0100
@@ -25,6 +25,7 @@
 
 package java.io;
 
+import java.lang.annotation.Native;
 
 /**
  * Package-private abstract class for the local filesystem abstraction.
@@ -98,10 +99,10 @@
     /* -- Attribute accessors -- */
 
     /* Constants for simple boolean attributes */
-    public static final int BA_EXISTS    = 0x01;
-    public static final int BA_REGULAR   = 0x02;
-    public static final int BA_DIRECTORY = 0x04;
-    public static final int BA_HIDDEN    = 0x08;
+    @Native public static final int BA_EXISTS    = 0x01;
+    @Native public static final int BA_REGULAR   = 0x02;
+    @Native public static final int BA_DIRECTORY = 0x04;
+    @Native public static final int BA_HIDDEN    = 0x08;
 
     /**
      * Return the simple boolean attributes for the file or directory denoted
@@ -110,9 +111,9 @@
      */
     public abstract int getBooleanAttributes(File f);
 
-    public static final int ACCESS_READ    = 0x04;
-    public static final int ACCESS_WRITE   = 0x02;
-    public static final int ACCESS_EXECUTE = 0x01;
+    @Native public static final int ACCESS_READ    = 0x04;
+    @Native public static final int ACCESS_WRITE   = 0x02;
+    @Native public static final int ACCESS_EXECUTE = 0x01;
 
     /**
      * Check whether the file or directory denoted by the given abstract
@@ -203,9 +204,9 @@
     public abstract File[] listRoots();
 
     /* -- Disk usage -- */
-    public static final int SPACE_TOTAL  = 0;
-    public static final int SPACE_FREE   = 1;
-    public static final int SPACE_USABLE = 2;
+    @Native public static final int SPACE_TOTAL  = 0;
+    @Native public static final int SPACE_FREE   = 1;
+    @Native public static final int SPACE_USABLE = 2;
 
     public abstract long getSpace(File f, int t);
 
--- a/src/share/classes/java/lang/Integer.java	Thu Jan 24 18:06:24 2013 +0400
+++ b/src/share/classes/java/lang/Integer.java	Mon Jan 28 14:23:09 2013 +0100
@@ -25,6 +25,7 @@
 
 package java.lang;
 
+import java.lang.annotation.Native;
 import java.util.Properties;
 
 /**
@@ -54,13 +55,13 @@
      * A constant holding the minimum value an {@code int} can
      * have, -2<sup>31</sup>.
      */
-    public static final int   MIN_VALUE = 0x80000000;
+    @Native public static final int   MIN_VALUE = 0x80000000;
 
     /**
      * A constant holding the maximum value an {@code int} can
      * have, 2<sup>31</sup>-1.
      */
-    public static final int   MAX_VALUE = 0x7fffffff;
+    @Native public static final int   MAX_VALUE = 0x7fffffff;
 
     /**
      * The {@code Class} instance representing the primitive type
@@ -1295,7 +1296,7 @@
      *
      * @since 1.5
      */
-    public static final int SIZE = 32;
+    @Native public static final int SIZE = 32;
 
     /**
      * The number of bytes used to represent a {@code int} value in two's
@@ -1513,5 +1514,5 @@
     }
 
     /** use serialVersionUID from JDK 1.0.2 for interoperability */
-    private static final long serialVersionUID = 1360826667806852920L;
+    @Native private static final long serialVersionUID = 1360826667806852920L;
 }
--- a/src/share/classes/java/lang/Long.java	Thu Jan 24 18:06:24 2013 +0400
+++ b/src/share/classes/java/lang/Long.java	Mon Jan 28 14:23:09 2013 +0100
@@ -25,6 +25,7 @@
 
 package java.lang;
 
+import java.lang.annotation.Native;
 import java.math.*;
 
 /**
@@ -54,13 +55,13 @@
      * A constant holding the minimum value a {@code long} can
      * have, -2<sup>63</sup>.
      */
-    public static final long MIN_VALUE = 0x8000000000000000L;
+    @Native public static final long MIN_VALUE = 0x8000000000000000L;
 
     /**
      * A constant holding the maximum value a {@code long} can
      * have, 2<sup>63</sup>-1.
      */
-    public static final long MAX_VALUE = 0x7fffffffffffffffL;
+    @Native public static final long MAX_VALUE = 0x7fffffffffffffffL;
 
     /**
      * The {@code Class} instance representing the primitive type
@@ -1317,7 +1318,7 @@
      *
      * @since 1.5
      */
-    public static final int SIZE = 64;
+    @Native public static final int SIZE = 64;
 
     /**
      * The number of bytes used to represent a {@code long} value in two's
@@ -1540,5 +1541,5 @@
     }
 
     /** use serialVersionUID from JDK 1.0.2 for interoperability */
-    private static final long serialVersionUID = 4290774380558885855L;
+    @Native private static final long serialVersionUID = 4290774380558885855L;
 }
--- a/src/share/classes/java/net/SocketOptions.java	Thu Jan 24 18:06:24 2013 +0400
+++ b/src/share/classes/java/net/SocketOptions.java	Mon Jan 28 14:23:09 2013 +0100
@@ -25,6 +25,8 @@
 
 package java.net;
 
+import java.lang.annotation.Native;
+
 /**
  * Interface of methods to get/set socket options.  This interface is
  * implemented by: <B>SocketImpl</B> and  <B>DatagramSocketImpl</B>.
@@ -137,7 +139,7 @@
      * @see Socket#getTcpNoDelay
      */
 
-    public final static int TCP_NODELAY = 0x0001;
+    @Native public final static int TCP_NODELAY = 0x0001;
 
     /**
      * Fetch the local address binding of a socket (this option cannot
@@ -158,7 +160,7 @@
      * @see DatagramSocket#getLocalAddress
      */
 
-    public final static int SO_BINDADDR = 0x000F;
+    @Native public final static int SO_BINDADDR = 0x000F;
 
     /** Sets SO_REUSEADDR for a socket.  This is used only for MulticastSockets
      * in java, and it is set by default for MulticastSockets.
@@ -166,7 +168,7 @@
      * Valid for: DatagramSocketImpl
      */
 
-    public final static int SO_REUSEADDR = 0x04;
+    @Native public final static int SO_REUSEADDR = 0x04;
 
     /**
      * Sets SO_BROADCAST for a socket. This option enables and disables
@@ -177,7 +179,7 @@
      * @since 1.4
      */
 
-    public final static int SO_BROADCAST = 0x0020;
+    @Native public final static int SO_BROADCAST = 0x0020;
 
     /** Set which outgoing interface on which to send multicast packets.
      * Useful on hosts with multiple network interfaces, where applications
@@ -189,7 +191,7 @@
      * @see MulticastSocket#getInterface()
      */
 
-    public final static int IP_MULTICAST_IF = 0x10;
+    @Native public final static int IP_MULTICAST_IF = 0x10;
 
     /** Same as above. This option is introduced so that the behaviour
      *  with IP_MULTICAST_IF will be kept the same as before, while
@@ -201,7 +203,7 @@
      * @see MulticastSocket#getNetworkInterface()
      * @since 1.4
      */
-    public final static int IP_MULTICAST_IF2 = 0x1f;
+    @Native public final static int IP_MULTICAST_IF2 = 0x1f;
 
     /**
      * This option enables or disables local loopback of multicast datagrams.
@@ -209,7 +211,7 @@
      * @since 1.4
      */
 
-    public final static int IP_MULTICAST_LOOP = 0x12;
+    @Native public final static int IP_MULTICAST_LOOP = 0x12;
 
     /**
      * This option sets the type-of-service or traffic class field
@@ -217,7 +219,7 @@
      * @since 1.4
      */
 
-    public final static int IP_TOS = 0x3;
+    @Native public final static int IP_TOS = 0x3;
 
     /**
      * Specify a linger-on-close timeout.  This option disables/enables
@@ -235,7 +237,7 @@
      * @see Socket#setSoLinger
      * @see Socket#getSoLinger
      */
-    public final static int SO_LINGER = 0x0080;
+    @Native public final static int SO_LINGER = 0x0080;
 
     /** Set a timeout on blocking Socket operations:
      * <PRE>
@@ -256,7 +258,7 @@
      * @see ServerSocket#setSoTimeout
      * @see DatagramSocket#setSoTimeout
      */
-    public final static int SO_TIMEOUT = 0x1006;
+    @Native public final static int SO_TIMEOUT = 0x1006;
 
     /**
      * Set a hint the size of the underlying buffers used by the
@@ -273,7 +275,7 @@
      * @see DatagramSocket#setSendBufferSize
      * @see DatagramSocket#getSendBufferSize
      */
-    public final static int SO_SNDBUF = 0x1001;
+    @Native public final static int SO_SNDBUF = 0x1001;
 
     /**
      * Set a hint the size of the underlying buffers used by the
@@ -291,7 +293,7 @@
      * @see DatagramSocket#setReceiveBufferSize
      * @see DatagramSocket#getReceiveBufferSize
      */
-    public final static int SO_RCVBUF = 0x1002;
+    @Native public final static int SO_RCVBUF = 0x1002;
 
     /**
      * When the keepalive option is set for a TCP socket and no data
@@ -314,7 +316,7 @@
      * @see Socket#setKeepAlive
      * @see Socket#getKeepAlive
      */
-    public final static int SO_KEEPALIVE = 0x0008;
+    @Native public final static int SO_KEEPALIVE = 0x0008;
 
     /**
      * When the OOBINLINE option is set, any TCP urgent data received on
@@ -325,5 +327,5 @@
      * @see Socket#setOOBInline
      * @see Socket#getOOBInline
      */
-    public final static int SO_OOBINLINE = 0x1003;
+    @Native public final static int SO_OOBINLINE = 0x1003;
 }
--- a/src/share/classes/sun/nio/ch/IOStatus.java	Thu Jan 24 18:06:24 2013 +0400
+++ b/src/share/classes/sun/nio/ch/IOStatus.java	Mon Jan 28 14:23:09 2013 +0100
@@ -25,6 +25,7 @@
 
 package sun.nio.ch;
 
+import java.lang.annotation.Native;
 
 // Constants for reporting I/O status
 
@@ -32,12 +33,12 @@
 
     private IOStatus() { }
 
-    public static final int EOF = -1;              // End of file
-    public static final int UNAVAILABLE = -2;      // Nothing available (non-blocking)
-    public static final int INTERRUPTED = -3;      // System call interrupted
-    public static final int UNSUPPORTED = -4;      // Operation not supported
-    public static final int THROWN = -5;           // Exception thrown in JNI code
-    public static final int UNSUPPORTED_CASE = -6; // This case not supported
+    @Native public static final int EOF = -1;              // End of file
+    @Native public static final int UNAVAILABLE = -2;      // Nothing available (non-blocking)
+    @Native public static final int INTERRUPTED = -3;      // System call interrupted
+    @Native public static final int UNSUPPORTED = -4;      // Operation not supported
+    @Native public static final int THROWN = -5;           // Exception thrown in JNI code
+    @Native public static final int UNSUPPORTED_CASE = -6; // This case not supported
 
     // The following two methods are for use in try/finally blocks where a
     // status value needs to be normalized before being returned to the invoker
--- a/src/share/classes/sun/util/resources/sq/LocaleNames_sq.properties	Thu Jan 24 18:06:24 2013 +0400
+++ b/src/share/classes/sun/util/resources/sq/LocaleNames_sq.properties	Mon Jan 28 14:23:09 2013 +0100
@@ -1,4 +1,4 @@
-# Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2013, 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
@@ -38,7 +38,7 @@
 # language names
 # key is ISO 639 language code
 
-sq=shqipe
+sq=shqip
 
 # country names
 # key is ISO 3166 country code
--- a/src/share/demo/jfc/CodePointIM/CodePointInputMethod.java	Thu Jan 24 18:06:24 2013 +0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,499 +0,0 @@
-/*
- * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   - Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   - Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- *   - Neither the name of Oracle nor the names of its
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * This source code is provided to illustrate the usage of a given feature
- * or technique and has been deliberately simplified. Additional steps
- * required for a production-quality application, such as security checks,
- * input validation and proper error handling, might not be present in
- * this sample code.
- */
-
-package com.sun.inputmethods.internal.codepointim;
-
-
-import java.awt.AWTEvent;
-import java.awt.Toolkit;
-import java.awt.Rectangle;
-import java.awt.event.InputMethodEvent;
-import java.awt.event.KeyEvent;
-import java.awt.font.TextAttribute;
-import java.awt.font.TextHitInfo;
-import java.awt.im.InputMethodHighlight;
-import java.awt.im.spi.InputMethod;
-import java.awt.im.spi.InputMethodContext;
-import java.io.IOException;
-import java.text.AttributedString;
-import java.util.Locale;
-
-
-/**
- * The Code Point Input Method is a simple input method that allows Unicode
- * characters to be entered using their code point or code unit values. See the
- * accompanying file README.txt for more information.
- *
- * @author Brian Beck
- */
-public class CodePointInputMethod implements InputMethod {
-
-    private static final int UNSET = 0;
-    private static final int ESCAPE = 1; // \u0000       - \uFFFF
-    private static final int SPECIAL_ESCAPE = 2; // \U000000     - \U10FFFF
-    private static final int SURROGATE_PAIR = 3; // \uD800\uDC00 - \uDBFF\uDFFF
-    private InputMethodContext context;
-    private Locale locale;
-    private StringBuffer buffer;
-    private int insertionPoint;
-    private int format = UNSET;
-
-    public CodePointInputMethod() throws IOException {
-    }
-
-    /**
-     * This is the input method's main routine.  The composed text is stored
-     * in buffer.
-     */
-    public void dispatchEvent(AWTEvent event) {
-        // This input method handles KeyEvent only.
-        if (!(event instanceof KeyEvent)) {
-            return;
-        }
-
-        KeyEvent e = (KeyEvent) event;
-        int eventID = event.getID();
-        boolean notInCompositionMode = buffer.length() == 0;
-
-        if (eventID == KeyEvent.KEY_PRESSED) {
-            // If we are not in composition mode, pass through
-            if (notInCompositionMode) {
-                return;
-            }
-
-            switch (e.getKeyCode()) {
-                case KeyEvent.VK_LEFT:
-                    moveCaretLeft();
-                    break;
-                case KeyEvent.VK_RIGHT:
-                    moveCaretRight();
-                    break;
-            }
-        } else if (eventID == KeyEvent.KEY_TYPED) {
-            char c = e.getKeyChar();
-
-            // If we are not in composition mode, wait a back slash
-            if (notInCompositionMode) {
-                // If the type character is not a back slash, pass through
-                if (c != '\\') {
-                    return;
-                }
-
-                startComposition();     // Enter to composition mode
-            } else {
-                switch (c) {
-                    case ' ':       // Exit from composition mode
-                        finishComposition();
-                        break;
-                    case '\u007f':  // Delete
-                        deleteCharacter();
-                        break;
-                    case '\b':      // BackSpace
-                        deletePreviousCharacter();
-                        break;
-                    case '\u001b':  // Escape
-                        cancelComposition();
-                        break;
-                    case '\n':      // Return
-                    case '\t':      // Tab
-                        sendCommittedText();
-                        break;
-                    default:
-                        composeUnicodeEscape(c);
-                        break;
-                }
-            }
-        } else {  // KeyEvent.KEY_RELEASED
-            // If we are not in composition mode, pass through
-            if (notInCompositionMode) {
-                return;
-            }
-        }
-
-        e.consume();
-    }
-
-    private void composeUnicodeEscape(char c) {
-        switch (buffer.length()) {
-            case 1:  // \\
-                waitEscapeCharacter(c);
-                break;
-            case 2:  // \\u or \\U
-            case 3:  // \\ux or \\Ux
-            case 4:  // \\uxx or \\Uxx
-                waitDigit(c);
-                break;
-            case 5:  // \\uxxx or \\Uxxx
-                if (format == SPECIAL_ESCAPE) {
-                    waitDigit(c);
-                } else {
-                    waitDigit2(c);
-                }
-                break;
-            case 6:  // \\uxxxx or \\Uxxxx
-                if (format == SPECIAL_ESCAPE) {
-                    waitDigit(c);
-                } else if (format == SURROGATE_PAIR) {
-                    waitBackSlashOrLowSurrogate(c);
-                } else {
-                    beep();
-                }
-                break;
-            case 7:  // \\Uxxxxx
-                // Only SPECIAL_ESCAPE format uses this state.
-                // Since the second "\\u" of SURROGATE_PAIR format is inserted
-                // automatically, users don't have to type these keys.
-                waitDigit(c);
-                break;
-            case 8:  // \\uxxxx\\u
-            case 9:  // \\uxxxx\\ux
-            case 10: // \\uxxxx\\uxx
-            case 11: // \\uxxxx\\uxxx
-                if (format == SURROGATE_PAIR) {
-                    waitDigit(c);
-                } else {
-                    beep();
-                }
-                break;
-            default:
-                beep();
-                break;
-        }
-    }
-
-    private void waitEscapeCharacter(char c) {
-        if (c == 'u' || c == 'U') {
-            buffer.append(c);
-            insertionPoint++;
-            sendComposedText();
-            format = (c == 'u') ? ESCAPE : SPECIAL_ESCAPE;
-        } else {
-            if (c != '\\') {
-                buffer.append(c);
-                insertionPoint++;
-            }
-            sendCommittedText();
-        }
-    }
-
-    private void waitDigit(char c) {
-        if (Character.digit(c, 16) != -1) {
-            buffer.insert(insertionPoint++, c);
-            sendComposedText();
-        } else {
-            beep();
-        }
-    }
-
-    private void waitDigit2(char c) {
-        if (Character.digit(c, 16) != -1) {
-            buffer.insert(insertionPoint++, c);
-            char codePoint = (char) getCodePoint(buffer, 2, 5);
-            if (Character.isHighSurrogate(codePoint)) {
-                format = SURROGATE_PAIR;
-                buffer.append("\\u");
-                insertionPoint = 8;
-            } else {
-                format = ESCAPE;
-            }
-            sendComposedText();
-        } else {
-            beep();
-        }
-    }
-
-    private void waitBackSlashOrLowSurrogate(char c) {
-        if (insertionPoint == 6) {
-            if (c == '\\') {
-                buffer.append(c);
-                buffer.append('u');
-                insertionPoint = 8;
-                sendComposedText();
-            } else if (Character.digit(c, 16) != -1) {
-                buffer.append("\\u");
-                buffer.append(c);
-                insertionPoint = 9;
-                sendComposedText();
-            } else {
-                beep();
-            }
-        } else {
-            beep();
-        }
-    }
-
-    /**
-     * Send the composed text to the client.
-     */
-    private void sendComposedText() {
-        AttributedString as = new AttributedString(buffer.toString());
-        as.addAttribute(TextAttribute.INPUT_METHOD_HIGHLIGHT,
-                InputMethodHighlight.SELECTED_RAW_TEXT_HIGHLIGHT);
-        context.dispatchInputMethodEvent(
-                InputMethodEvent.INPUT_METHOD_TEXT_CHANGED,
-                as.getIterator(), 0,
-                TextHitInfo.leading(insertionPoint), null);
-    }
-
-    /**
-     * Send the committed text to the client.
-     */
-    private void sendCommittedText() {
-        AttributedString as = new AttributedString(buffer.toString());
-        context.dispatchInputMethodEvent(
-                InputMethodEvent.INPUT_METHOD_TEXT_CHANGED,
-                as.getIterator(), buffer.length(),
-                TextHitInfo.leading(insertionPoint), null);
-
-        buffer.setLength(0);
-        insertionPoint = 0;
-        format = UNSET;
-    }
-
-    /**
-     * Move the insertion point one position to the left in the composed text.
-     * Do not let the caret move to the left of the "\\u" or "\\U".
-     */
-    private void moveCaretLeft() {
-        int len = buffer.length();
-        if (--insertionPoint < 2) {
-            insertionPoint++;
-            beep();
-        } else if (format == SURROGATE_PAIR && insertionPoint == 7) {
-            insertionPoint = 8;
-            beep();
-        }
-
-        context.dispatchInputMethodEvent(
-                InputMethodEvent.CARET_POSITION_CHANGED,
-                null, 0,
-                TextHitInfo.leading(insertionPoint), null);
-    }
-
-    /**
-     * Move the insertion point one position to the right in the composed text.
-     */
-    private void moveCaretRight() {
-        int len = buffer.length();
-        if (++insertionPoint > len) {
-            insertionPoint = len;
-            beep();
-        }
-
-        context.dispatchInputMethodEvent(
-                InputMethodEvent.CARET_POSITION_CHANGED,
-                null, 0,
-                TextHitInfo.leading(insertionPoint), null);
-    }
-
-    /**
-     * Delete the character preceding the insertion point in the composed text.
-     * If the insertion point is not at the end of the composed text and the
-     * preceding text is "\\u" or "\\U", ring the bell.
-     */
-    private void deletePreviousCharacter() {
-        if (insertionPoint == 2) {
-            if (buffer.length() == 2) {
-                cancelComposition();
-            } else {
-                // Do not allow deletion of the leading "\\u" or "\\U" if there
-                // are other digits in the composed text.
-                beep();
-            }
-        } else if (insertionPoint == 8) {
-            if (buffer.length() == 8) {
-                if (format == SURROGATE_PAIR) {
-                    buffer.deleteCharAt(--insertionPoint);
-                }
-                buffer.deleteCharAt(--insertionPoint);
-                sendComposedText();
-            } else {
-                // Do not allow deletion of the second "\\u" if there are other
-                // digits in the composed text.
-                beep();
-            }
-        } else {
-            buffer.deleteCharAt(--insertionPoint);
-            if (buffer.length() == 0) {
-                sendCommittedText();
-            } else {
-                sendComposedText();
-            }
-        }
-    }
-
-    /**
-     * Delete the character following the insertion point in the composed text.
-     * If the insertion point is at the end of the composed text, ring the bell.
-     */
-    private void deleteCharacter() {
-        if (insertionPoint < buffer.length()) {
-            buffer.deleteCharAt(insertionPoint);
-            sendComposedText();
-        } else {
-            beep();
-        }
-    }
-
-    private void startComposition() {
-        buffer.append('\\');
-        insertionPoint = 1;
-        sendComposedText();
-    }
-
-    private void cancelComposition() {
-        buffer.setLength(0);
-        insertionPoint = 0;
-        sendCommittedText();
-    }
-
-    private void finishComposition() {
-        int len = buffer.length();
-        if (len == 6 && format != SPECIAL_ESCAPE) {
-            char codePoint = (char) getCodePoint(buffer, 2, 5);
-            if (Character.isValidCodePoint(codePoint) && codePoint != 0xFFFF) {
-                buffer.setLength(0);
-                buffer.append(codePoint);
-                sendCommittedText();
-                return;
-            }
-        } else if (len == 8 && format == SPECIAL_ESCAPE) {
-            int codePoint = getCodePoint(buffer, 2, 7);
-            if (Character.isValidCodePoint(codePoint) && codePoint != 0xFFFF) {
-                buffer.setLength(0);
-                buffer.appendCodePoint(codePoint);
-                sendCommittedText();
-                return;
-            }
-        } else if (len == 12 && format == SURROGATE_PAIR) {
-            char[] codePoint = {
-                (char) getCodePoint(buffer, 2, 5),
-                (char) getCodePoint(buffer, 8, 11)
-            };
-            if (Character.isHighSurrogate(codePoint[0]) && Character.
-                    isLowSurrogate(codePoint[1])) {
-                buffer.setLength(0);
-                buffer.append(codePoint);
-                sendCommittedText();
-                return;
-            }
-        }
-
-        beep();
-    }
-
-    private int getCodePoint(StringBuffer sb, int from, int to) {
-        int value = 0;
-        for (int i = from; i <= to; i++) {
-            value = (value << 4) + Character.digit(sb.charAt(i), 16);
-        }
-        return value;
-    }
-
-    private static void beep() {
-        Toolkit.getDefaultToolkit().beep();
-    }
-
-    public void activate() {
-        if (buffer == null) {
-            buffer = new StringBuffer(12);
-            insertionPoint = 0;
-        }
-    }
-
-    public void deactivate(boolean isTemporary) {
-        if (!isTemporary) {
-            buffer = null;
-        }
-    }
-
-    public void dispose() {
-    }
-
-    public Object getControlObject() {
-        return null;
-    }
-
-    public void endComposition() {
-        sendCommittedText();
-    }
-
-    public Locale getLocale() {
-        return locale;
-    }
-
-    public void hideWindows() {
-    }
-
-    public boolean isCompositionEnabled() {
-        // always enabled
-        return true;
-    }
-
-    public void notifyClientWindowChange(Rectangle location) {
-    }
-
-    public void reconvert() {
-        // not supported yet
-        throw new UnsupportedOperationException();
-    }
-
-    public void removeNotify() {
-    }
-
-    public void setCharacterSubsets(Character.Subset[] subsets) {
-    }
-
-    public void setCompositionEnabled(boolean enable) {
-        // not supported yet
-        throw new UnsupportedOperationException();
-    }
-
-    public void setInputMethodContext(InputMethodContext context) {
-        this.context = context;
-    }
-
-    /*
-     * The Code Point Input Method supports all locales.
-     */
-    public boolean setLocale(Locale locale) {
-        this.locale = locale;
-        return true;
-    }
-}
--- a/src/share/demo/jfc/CodePointIM/CodePointInputMethodDescriptor.java	Thu Jan 24 18:06:24 2013 +0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-/*
- * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *   - Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *
- *   - Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- *   - Neither the name of Oracle nor the names of its
- *     contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * This source code is provided to illustrate the usage of a given feature
- * or technique and has been deliberately simplified. Additional steps
- * required for a production-quality application, such as security checks,
- * input validation and proper error handling, might not be present in
- * this sample code.
- */
-
-package com.sun.inputmethods.internal.codepointim;
-
-
-import java.awt.Image;
-import java.awt.im.spi.InputMethodDescriptor;
-import java.awt.im.spi.InputMethod;
-import java.util.Locale;
-
-
-/**
- * The CodePointInputMethod is a simple input method that allows Unicode
- * characters to be entered via their hexadecimal code point values.
- *
- * The class, CodePointInputMethodDescriptor, provides information about the
- * CodePointInputMethod which allows it to be selected and loaded by the
- * Input Method Framework.
- */
-public class CodePointInputMethodDescriptor implements InputMethodDescriptor {
-
-    public CodePointInputMethodDescriptor() {
-    }
-
-    /**
-     * Creates a new instance of the Code Point input method.
-     *
-     * @return a new instance of the Code Point input method
-     * @exception Exception any exception that may occur while creating the
-     * input method instance
-     */
-    public InputMethod createInputMethod() throws Exception {
-        return new CodePointInputMethod();
-    }
-
-    /**
-     * This input method can be used by any locale.
-     */
-    public Locale[] getAvailableLocales() {
-        Locale[] locales = {
-            new Locale("", "", ""), };
-        return locales;
-    }
-
-    public synchronized String getInputMethodDisplayName(Locale inputLocale,
-            Locale displayLanguage) {
-        return "CodePoint Input Method";
-    }
-
-    public Image getInputMethodIcon(Locale inputLocale) {
-        return null;
-    }
-
-    public boolean hasDynamicLocaleList() {
-        return false;
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/share/demo/jfc/CodePointIM/com/sun/inputmethods/internal/codepointim/CodePointInputMethod.java	Mon Jan 28 14:23:09 2013 +0100
@@ -0,0 +1,499 @@
+/*
+ * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ *   - Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ *
+ *   - Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *
+ *   - Neither the name of Oracle nor the names of its
+ *     contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+package com.sun.inputmethods.internal.codepointim;
+
+
+import java.awt.AWTEvent;
+import java.awt.Toolkit;
+import java.awt.Rectangle;
+import java.awt.event.InputMethodEvent;
+import java.awt.event.KeyEvent;
+import java.awt.font.TextAttribute;
+import java.awt.font.TextHitInfo;
+import java.awt.im.InputMethodHighlight;
+import java.awt.im.spi.InputMethod;
+import java.awt.im.spi.InputMethodContext;
+import java.io.IOException;
+import java.text.AttributedString;
+import java.util.Locale;
+
+
+/**
+ * The Code Point Input Method is a simple input method that allows Unicode
+ * characters to be entered using their code point or code unit values. See the
+ * accompanying file README.txt for more information.
+ *
+ * @author Brian Beck
+ */
+public class CodePointInputMethod implements InputMethod {
+
+    private static final int UNSET = 0;
+    private static final int ESCAPE = 1; // \u0000       - \uFFFF
+    private static final int SPECIAL_ESCAPE = 2; // \U000000     - \U10FFFF
+    private static final int SURROGATE_PAIR = 3; // \uD800\uDC00 - \uDBFF\uDFFF
+    private InputMethodContext context;
+    private Locale locale;
+    private StringBuffer buffer;
+    private int insertionPoint;
+    private int format = UNSET;
+
+    public CodePointInputMethod() throws IOException {
+    }
+
+    /**
+     * This is the input method's main routine.  The composed text is stored
+     * in buffer.
+     */
+    public void dispatchEvent(AWTEvent event) {
+        // This input method handles KeyEvent only.
+        if (!(event instanceof KeyEvent)) {
+            return;
+        }
+
+        KeyEvent e = (KeyEvent) event;
+        int eventID = event.getID();
+        boolean notInCompositionMode = buffer.length() == 0;
+
+        if (eventID == KeyEvent.KEY_PRESSED) {
+            // If we are not in composition mode, pass through
+            if (notInCompositionMode) {
+                return;
+            }
+
+            switch (e.getKeyCode()) {
+                case KeyEvent.VK_LEFT:
+                    moveCaretLeft();
+                    break;
+                case KeyEvent.VK_RIGHT:
+                    moveCaretRight();
+                    break;
+            }
+        } else if (eventID == KeyEvent.KEY_TYPED) {
+            char c = e.getKeyChar();
+
+            // If we are not in composition mode, wait a back slash
+            if (notInCompositionMode) {
+                // If the type character is not a back slash, pass through
+                if (c != '\\') {
+                    return;
+                }
+
+                startComposition();     // Enter to composition mode
+            } else {
+                switch (c) {
+                    case ' ':       // Exit from composition mode
+                        finishComposition();
+                        break;
+                    case '\u007f':  // Delete
+                        deleteCharacter();
+                        break;
+                    case '\b':      // BackSpace
+                        deletePreviousCharacter();
+                        break;
+                    case '\u001b':  // Escape
+                        cancelComposition();
+                        break;
+                    case '\n':      // Return
+                    case '\t':      // Tab
+                        sendCommittedText();
+                        break;
+                    default:
+                        composeUnicodeEscape(c);
+                        break;
+                }
+            }
+        } else {  // KeyEvent.KEY_RELEASED
+            // If we are not in composition mode, pass through
+            if (notInCompositionMode) {
+                return;
+            }
+        }
+
+        e.consume();
+    }
+
+    private void composeUnicodeEscape(char c) {
+        switch (buffer.length()) {
+            case 1:  // \\
+                waitEscapeCharacter(c);
+                break;
+            case 2:  // \\u or \\U
+            case 3:  // \\ux or \\Ux
+            case 4:  // \\uxx or \\Uxx
+                waitDigit(c);
+                break;
+            case 5:  // \\uxxx or \\Uxxx
+                if (format == SPECIAL_ESCAPE) {
+                    waitDigit(c);
+                } else {
+                    waitDigit2(c);
+                }
+                break;
+            case 6:  // \\uxxxx or \\Uxxxx
+                if (format == SPECIAL_ESCAPE) {
+                    waitDigit(c);
+                } else if (format == SURROGATE_PAIR) {
+                    waitBackSlashOrLowSurrogate(c);
+                } else {
+                    beep();
+                }
+                break;
+            case 7:  // \\Uxxxxx
+                // Only SPECIAL_ESCAPE format uses this state.
+                // Since the second "\\u" of SURROGATE_PAIR format is inserted
+                // automatically, users don't have to type these keys.
+                waitDigit(c);
+                break;
+            case 8:  // \\uxxxx\\u
+            case 9:  // \\uxxxx\\ux
+            case 10: // \\uxxxx\\uxx
+            case 11: // \\uxxxx\\uxxx
+                if (format == SURROGATE_PAIR) {
+                    waitDigit(c);
+                } else {
+                    beep();
+                }
+                break;
+            default:
+                beep();
+                break;
+        }
+    }
+
+    private void waitEscapeCharacter(char c) {
+        if (c == 'u' || c == 'U') {
+            buffer.append(c);
+            insertionPoint++;
+            sendComposedText();
+            format = (c == 'u') ? ESCAPE : SPECIAL_ESCAPE;
+        } else {
+            if (c != '\\') {
+                buffer.append(c);
+                insertionPoint++;
+            }
+            sendCommittedText();
+        }
+    }
+
+    private void waitDigit(char c) {
+        if (Character.digit(c, 16) != -1) {
+            buffer.insert(insertionPoint++, c);
+            sendComposedText();
+        } else {
+            beep();
+        }
+    }
+
+    private void waitDigit2(char c) {
+        if (Character.digit(c, 16) != -1) {
+            buffer.insert(insertionPoint++, c);
+            char codePoint = (char) getCodePoint(buffer, 2, 5);
+            if (Character.isHighSurrogate(codePoint)) {
+                format = SURROGATE_PAIR;
+                buffer.append("\\u");
+                insertionPoint = 8;
+            } else {
+                format = ESCAPE;
+            }
+            sendComposedText();
+        } else {
+            beep();
+        }
+    }
+
+    private void waitBackSlashOrLowSurrogate(char c) {
+        if (insertionPoint == 6) {
+            if (c == '\\') {
+                buffer.append(c);
+                buffer.append('u');
+                insertionPoint = 8;
+                sendComposedText();
+            } else if (Character.digit(c, 16) != -1) {
+                buffer.append("\\u");
+                buffer.append(c);
+                insertionPoint = 9;
+                sendComposedText();
+            } else {
+                beep();
+            }
+        } else {
+            beep();
+        }
+    }
+
+    /**
+     * Send the composed text to the client.
+     */
+    private void sendComposedText() {
+        AttributedString as = new AttributedString(buffer.toString());
+        as.addAttribute(TextAttribute.INPUT_METHOD_HIGHLIGHT,
+                InputMethodHighlight.SELECTED_RAW_TEXT_HIGHLIGHT);
+        context.dispatchInputMethodEvent(
+                InputMethodEvent.INPUT_METHOD_TEXT_CHANGED,
+                as.getIterator(), 0,
+                TextHitInfo.leading(insertionPoint), null);
+    }
+
+    /**
+     * Send the committed text to the client.
+     */
+    private void sendCommittedText() {
+        AttributedString as = new AttributedString(buffer.toString());
+        context.dispatchInputMethodEvent(
+                InputMethodEvent.INPUT_METHOD_TEXT_CHANGED,
+                as.getIterator(), buffer.length(),
+                TextHitInfo.leading(insertionPoint), null);
+
+        buffer.setLength(0);
+        insertionPoint = 0;
+        format = UNSET;
+    }
+
+    /**
+     * Move the insertion point one position to the left in the composed text.
+     * Do not let the caret move to the left of the "\\u" or "\\U".
+     */
+    private void moveCaretLeft() {
+        int len = buffer.length();
+        if (--insertionPoint < 2) {
+            insertionPoint++;
+            beep();
+        } else if (format == SURROGATE_PAIR && insertionPoint == 7) {
+            insertionPoint = 8;
+            beep();
+        }
+
+        context.dispatchInputMethodEvent(
+                InputMethodEvent.CARET_POSITION_CHANGED,
+                null, 0,
+                TextHitInfo.leading(insertionPoint), null);
+    }
+
+    /**
+     * Move the insertion point one position to the right in the composed text.
+     */
+    private void moveCaretRight() {
+        int len = buffer.length();
+        if (++insertionPoint > len) {
+            insertionPoint = len;
+            beep();
+        }
+
+        context.dispatchInputMethodEvent(
+                InputMethodEvent.CARET_POSITION_CHANGED,
+                null, 0,
+                TextHitInfo.leading(insertionPoint), null);
+    }
+
+    /**
+     * Delete the character preceding the insertion point in the composed text.
+     * If the insertion point is not at the end of the composed text and the
+     * preceding text is "\\u" or "\\U", ring the bell.
+     */
+    private void deletePreviousCharacter() {
+        if (insertionPoint == 2) {
+            if (buffer.length() == 2) {
+                cancelComposition();
+            } else {
+                // Do not allow deletion of the leading "\\u" or "\\U" if there
+                // are other digits in the composed text.
+                beep();
+            }
+        } else if (insertionPoint == 8) {
+            if (buffer.length() == 8) {
+                if (format == SURROGATE_PAIR) {
+                    buffer.deleteCharAt(--insertionPoint);
+                }
+                buffer.deleteCharAt(--insertionPoint);
+                sendComposedText();
+            } else {
+                // Do not allow deletion of the second "\\u" if there are other
+                // digits in the composed text.
+                beep();
+            }
+        } else {
+            buffer.deleteCharAt(--insertionPoint);
+            if (buffer.length() == 0) {
+                sendCommittedText();
+            } else {
+                sendComposedText();
+            }
+        }
+    }
+
+    /**
+     * Delete the character following the insertion point in the composed text.
+     * If the insertion point is at the end of the composed text, ring the bell.
+     */
+    private void deleteCharacter() {
+        if (insertionPoint < buffer.length()) {
+            buffer.deleteCharAt(insertionPoint);
+            sendComposedText();
+        } else {
+            beep();
+        }
+    }
+
+    private void startComposition() {
+        buffer.append('\\');
+        insertionPoint = 1;
+        sendComposedText();
+    }
+
+    private void cancelComposition() {
+        buffer.setLength(0);
+        insertionPoint = 0;
+        sendCommittedText();
+    }
+
+    private void finishComposition() {
+        int len = buffer.length();
+        if (len == 6 && format != SPECIAL_ESCAPE) {
+            char codePoint = (char) getCodePoint(buffer, 2, 5);
+            if (Character.isValidCodePoint(codePoint) && codePoint != 0xFFFF) {
+                buffer.setLength(0);
+                buffer.append(codePoint);
+                sendCommittedText();
+                return;
+            }
+        } else if (len == 8 && format == SPECIAL_ESCAPE) {
+            int codePoint = getCodePoint(buffer, 2, 7);
+            if (Character.isValidCodePoint(codePoint) && codePoint != 0xFFFF) {
+                buffer.setLength(0);
+                buffer.appendCodePoint(codePoint);
+                sendCommittedText();
+                return;
+            }
+        } else if (len == 12 && format == SURROGATE_PAIR) {
+            char[] codePoint = {
+                (char) getCodePoint(buffer, 2, 5),
+                (char) getCodePoint(buffer, 8, 11)
+            };
+            if (Character.isHighSurrogate(codePoint[0]) && Character.
+                    isLowSurrogate(codePoint[1])) {
+                buffer.setLength(0);
+                buffer.append(codePoint);
+                sendCommittedText();
+                return;
+            }
+        }
+
+        beep();
+    }
+
+    private int getCodePoint(StringBuffer sb, int from, int to) {
+        int value = 0;
+        for (int i = from; i <= to; i++) {
+            value = (value << 4) + Character.digit(sb.charAt(i), 16);
+        }
+        return value;
+    }
+
+    private static void beep() {
+        Toolkit.getDefaultToolkit().beep();
+    }
+
+    public void activate() {
+        if (buffer == null) {
+            buffer = new StringBuffer(12);
+            insertionPoint = 0;
+        }
+    }
+
+    public void deactivate(boolean isTemporary) {
+        if (!isTemporary) {
+            buffer = null;
+        }
+    }
+
+    public void dispose() {
+    }
+
+    public Object getControlObject() {
+        return null;
+    }
+
+    public void endComposition() {
+        sendCommittedText();
+    }
+
+    public Locale getLocale() {
+        return locale;
+    }
+
+    public void hideWindows() {
+    }
+
+    public boolean isCompositionEnabled() {
+        // always enabled
+        return true;
+    }
+
+    public void notifyClientWindowChange(Rectangle location) {
+    }
+
+    public void reconvert() {
+        // not supported yet
+        throw new UnsupportedOperationException();
+    }
+
+    public void removeNotify() {
+    }
+
+    public void setCharacterSubsets(Character.Subset[] subsets) {
+    }
+
+    public void setCompositionEnabled(boolean enable) {
+        // not supported yet
+        throw new UnsupportedOperationException();
+    }
+
+    public void setInputMethodContext(InputMethodContext context) {
+        this.context = context;
+    }
+
+    /*
+     * The Code Point Input Method supports all locales.
+     */
+    public boolean setLocale(Locale locale) {
+        this.locale = locale;
+        return true;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/share/demo/jfc/CodePointIM/com/sun/inputmethods/internal/codepointim/CodePointInputMethodDescriptor.java	Mon Jan 28 14:23:09 2013 +0100
@@ -0,0 +1,94 @@
+/*
+ * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ *   - Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ *
+ *   - Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *
+ *   - Neither the name of Oracle nor the names of its
+ *     contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+package com.sun.inputmethods.internal.codepointim;
+
+
+import java.awt.Image;
+import java.awt.im.spi.InputMethodDescriptor;
+import java.awt.im.spi.InputMethod;
+import java.util.Locale;
+
+
+/**
+ * The CodePointInputMethod is a simple input method that allows Unicode
+ * characters to be entered via their hexadecimal code point values.
+ *
+ * The class, CodePointInputMethodDescriptor, provides information about the
+ * CodePointInputMethod which allows it to be selected and loaded by the
+ * Input Method Framework.
+ */
+public class CodePointInputMethodDescriptor implements InputMethodDescriptor {
+
+    public CodePointInputMethodDescriptor() {
+    }
+
+    /**
+     * Creates a new instance of the Code Point input method.
+     *
+     * @return a new instance of the Code Point input method
+     * @exception Exception any exception that may occur while creating the
+     * input method instance
+     */
+    public InputMethod createInputMethod() throws Exception {
+        return new CodePointInputMethod();
+    }
+
+    /**
+     * This input method can be used by any locale.
+     */
+    public Locale[] getAvailableLocales() {
+        Locale[] locales = {
+            new Locale("", "", ""), };
+        return locales;
+    }
+
+    public synchronized String getInputMethodDisplayName(Locale inputLocale,
+            Locale displayLanguage) {
+        return "CodePoint Input Method";
+    }
+
+    public Image getInputMethodIcon(Locale inputLocale) {
+        return null;
+    }
+
+    public boolean hasDynamicLocaleList() {
+        return false;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/solaris/classes/sun/awt/X11/generator/sizes.32	Mon Jan 28 14:23:09 2013 +0100
@@ -0,0 +1,1016 @@
+long	4
+int	4
+short	2
+ptr	4
+Bool	4
+Atom	4
+Window	4
+XExtData.number	0
+XExtData.next	4
+XExtData.free_private	8
+XExtData.private_data	12
+XExtData	16
+XIMStringConversionCallbackStruct.position	0
+XIMStringConversionCallbackStruct.direction	4
+XIMStringConversionCallbackStruct.operation	8
+XIMStringConversionCallbackStruct.factor	10
+XIMStringConversionCallbackStruct.text	12
+XIMStringConversionCallbackStruct	16
+XkbNewKeyboardNotifyEvent.type	0
+XkbNewKeyboardNotifyEvent.serial	4
+XkbNewKeyboardNotifyEvent.send_event	8
+XkbNewKeyboardNotifyEvent.display	12
+XkbNewKeyboardNotifyEvent.time	16
+XkbNewKeyboardNotifyEvent.xkb_type	20
+XkbNewKeyboardNotifyEvent.device	24
+XkbNewKeyboardNotifyEvent.old_device	28
+XkbNewKeyboardNotifyEvent.min_key_code	32
+XkbNewKeyboardNotifyEvent.max_key_code	36
+XkbNewKeyboardNotifyEvent.old_min_key_code	40
+XkbNewKeyboardNotifyEvent.old_max_key_code	44
+XkbNewKeyboardNotifyEvent.changed	48
+XkbNewKeyboardNotifyEvent.req_major	52
+XkbNewKeyboardNotifyEvent.req_minor	53
+XkbNewKeyboardNotifyEvent	56
+XTimeCoord.time	0
+XTimeCoord.x	4
+XTimeCoord.y	6
+XTimeCoord	8
+XkbCompatMapNotifyEvent.type	0
+XkbCompatMapNotifyEvent.serial	4
+XkbCompatMapNotifyEvent.send_event	8
+XkbCompatMapNotifyEvent.display	12
+XkbCompatMapNotifyEvent.time	16
+XkbCompatMapNotifyEvent.xkb_type	20
+XkbCompatMapNotifyEvent.device	24
+XkbCompatMapNotifyEvent.changed_groups	28
+XkbCompatMapNotifyEvent.first_si	32
+XkbCompatMapNotifyEvent.num_si	36
+XkbCompatMapNotifyEvent.num_total_si	40
+XkbCompatMapNotifyEvent	44
+XIMStatusDrawCallbackStruct.type	0
+XIMStatusDrawCallbackStruct.data	4
+XIMStatusDrawCallbackStruct	8
+XKeyboardControl.key_click_percent	0
+XKeyboardControl.bell_percent	4
+XKeyboardControl.bell_pitch	8
+XKeyboardControl.bell_duration	12
+XKeyboardControl.led	16
+XKeyboardControl.led_mode	20
+XKeyboardControl.key	24
+XKeyboardControl.auto_repeat_mode	28
+XKeyboardControl	32
+XSelectionClearEvent.type	0
+XSelectionClearEvent.serial	4
+XSelectionClearEvent.send_event	8
+XSelectionClearEvent.display	12
+XSelectionClearEvent.window	16
+XSelectionClearEvent.selection	20
+XSelectionClearEvent.time	24
+XSelectionClearEvent	28
+XWindowChanges.x	0
+XWindowChanges.y	4
+XWindowChanges.width	8
+XWindowChanges.height	12
+XWindowChanges.border_width	16
+XWindowChanges.sibling	20
+XWindowChanges.stack_mode	24
+XWindowChanges	28
+XIMPreeditCaretCallbackStruct.position	0
+XIMPreeditCaretCallbackStruct.direction	4
+XIMPreeditCaretCallbackStruct.style	8
+XIMPreeditCaretCallbackStruct	12
+XOMCharSetList.charset_count	0
+XOMCharSetList.charset_list	4
+XOMCharSetList	8
+XOMFontInfo.num_font	0
+XOMFontInfo.font_struct_list	4
+XOMFontInfo.font_name_list	8
+XOMFontInfo	12
+AwtScreenData.numConfigs	0
+AwtScreenData.root	4
+AwtScreenData.whitepixel	8
+AwtScreenData.blackpixel	12
+AwtScreenData.defaultConfig	16
+AwtScreenData.configs	20
+AwtScreenData	24
+XIMHotKeyTrigger.keysym	0
+XIMHotKeyTrigger.modifier	4
+XIMHotKeyTrigger.modifier_mask	8
+XIMHotKeyTrigger	12
+XCirculateEvent.type	0
+XCirculateEvent.serial	4
+XCirculateEvent.send_event	8
+XCirculateEvent.display	12
+XCirculateEvent.event	16
+XCirculateEvent.window	20
+XCirculateEvent.place	24
+XCirculateEvent	28
+Screen.ext_data	0
+Screen.display	4
+Screen.root	8
+Screen.width	12
+Screen.height	16
+Screen.mwidth	20
+Screen.mheight	24
+Screen.ndepths	28
+Screen.depths	32
+Screen.root_depth	36
+Screen.root_visual	40
+Screen.default_gc	44
+Screen.cmap	48
+Screen.white_pixel	52
+Screen.black_pixel	56
+Screen.max_maps	60
+Screen.min_maps	64
+Screen.backing_store	68
+Screen.save_unders	72
+Screen.root_input_mask	76
+Screen	80
+XMapRequestEvent.type	0
+XMapRequestEvent.serial	4
+XMapRequestEvent.send_event	8
+XMapRequestEvent.display	12
+XMapRequestEvent.parent	16
+XMapRequestEvent.window	20
+XMapRequestEvent	24
+XIMText.length	0
+XIMText.feedback	4
+XIMText.encoding_is_wchar	8
+XIMText.string	12
+XIMText	16
+XGraphicsExposeEvent.type	0
+XGraphicsExposeEvent.serial	4
+XGraphicsExposeEvent.send_event	8
+XGraphicsExposeEvent.display	12
+XGraphicsExposeEvent.drawable	16
+XGraphicsExposeEvent.x	20
+XGraphicsExposeEvent.y	24
+XGraphicsExposeEvent.width	28
+XGraphicsExposeEvent.height	32
+XGraphicsExposeEvent.count	36
+XGraphicsExposeEvent.major_code	40
+XGraphicsExposeEvent.minor_code	44
+XGraphicsExposeEvent	48
+XEvent.type	0
+XEvent.xany	0
+XEvent.xkey	0
+XEvent.xbutton	0
+XEvent.xmotion	0
+XEvent.xcrossing	0
+XEvent.xfocus	0
+XEvent.xexpose	0
+XEvent.xgraphicsexpose	0
+XEvent.xnoexpose	0
+XEvent.xvisibility	0
+XEvent.xcreatewindow	0
+XEvent.xdestroywindow	0
+XEvent.xunmap	0
+XEvent.xmap	0
+XEvent.xmaprequest	0
+XEvent.xreparent	0
+XEvent.xconfigure	0
+XEvent.xgravity	0
+XEvent.xresizerequest	0
+XEvent.xconfigurerequest	0
+XEvent.xcirculate	0
+XEvent.xcirculaterequest	0
+XEvent.xproperty	0
+XEvent.xselectionclear	0
+XEvent.xselectionrequest	0
+XEvent.xselection	0
+XEvent.xcolormap	0
+XEvent.xclient	0
+XEvent.xmapping	0
+XEvent.xerror	0
+XEvent.xkeymap	0
+XEvent.pad	0
+XEvent	96
+XRenderDirectFormat.red	0
+XRenderDirectFormat.redMask	2
+XRenderDirectFormat.green	4
+XRenderDirectFormat.greenMask	6
+XRenderDirectFormat.blue	8
+XRenderDirectFormat.blueMask	10
+XRenderDirectFormat.alpha	12
+XRenderDirectFormat.alphaMask	14
+XRenderDirectFormat	16
+ColorData.awt_Colors	0
+ColorData.awt_numICMcolors	4
+ColorData.awt_icmLUT	8
+ColorData.awt_icmLUT2Colors	12
+ColorData.img_grays	16
+ColorData.img_clr_tbl	20
+ColorData.img_oda_red	24
+ColorData.img_oda_green	28
+ColorData.img_oda_blue	32
+ColorData.pGrayInverseLutData	36
+ColorData.screendata	40
+ColorData	44
+XFontStruct.ext_data	0
+XFontStruct.fid	4
+XFontStruct.direction	8
+XFontStruct.min_char_or_byte2	12
+XFontStruct.max_char_or_byte2	16
+XFontStruct.min_byte1	20
+XFontStruct.max_byte1	24
+XFontStruct.all_chars_exist	28
+XFontStruct.n_properties	36
+XFontStruct.properties	40
+XFontStruct.min_bounds	44
+XFontStruct.max_bounds	56
+XFontStruct.per_char	68
+XFontStruct.ascent	72
+XFontStruct.descent	76
+XFontStruct	80
+XExtCodes.extension	0
+XExtCodes.major_opcode	4
+XExtCodes.first_event	8
+XExtCodes.first_error	12
+XExtCodes	16
+XFontSetExtents.max_ink_extent	0
+XFontSetExtents.max_logical_extent	8
+XFontSetExtents	16
+XSelectionEvent.type	0
+XSelectionEvent.serial	4
+XSelectionEvent.send_event	8
+XSelectionEvent.display	12
+XSelectionEvent.requestor	16
+XSelectionEvent.selection	20
+XSelectionEvent.target	24
+XSelectionEvent.property	28
+XSelectionEvent.time	32
+XSelectionEvent	36
+XArc.x	0
+XArc.y	2
+XArc.width	4
+XArc.height	6
+XArc.angle1	8
+XArc.angle2	10
+XArc	12
+XErrorEvent.type	0
+XErrorEvent.display	4
+XErrorEvent.resourceid	8
+XErrorEvent.serial	12
+XErrorEvent.error_code	16
+XErrorEvent.request_code	17
+XErrorEvent.minor_code	18
+XErrorEvent	20
+XConfigureRequestEvent.type	0
+XConfigureRequestEvent.serial	4
+XConfigureRequestEvent.send_event	8
+XConfigureRequestEvent.display	12
+XConfigureRequestEvent.parent	16
+XConfigureRequestEvent.window	20
+XConfigureRequestEvent.x	24
+XConfigureRequestEvent.y	28
+XConfigureRequestEvent.width	32
+XConfigureRequestEvent.height	36
+XConfigureRequestEvent.border_width	40
+XConfigureRequestEvent.above	44
+XConfigureRequestEvent.detail	48
+XConfigureRequestEvent.value_mask	52
+XConfigureRequestEvent	56
+ScreenFormat.ext_data	0
+ScreenFormat.depth	4
+ScreenFormat.bits_per_pixel	8
+ScreenFormat.scanline_pad	12
+ScreenFormat	16
+XButtonEvent.type	0
+XButtonEvent.serial	4
+XButtonEvent.send_event	8
+XButtonEvent.display	12
+XButtonEvent.window	16
+XButtonEvent.root	20
+XButtonEvent.subwindow	24
+XButtonEvent.time	28
+XButtonEvent.x	32
+XButtonEvent.y	36
+XButtonEvent.x_root	40
+XButtonEvent.y_root	44
+XButtonEvent.state	48
+XButtonEvent.button	52
+XButtonEvent.same_screen	56
+XButtonEvent	60
+XFontProp.name	0
+XFontProp.card32	4
+XFontProp	8
+XIMValuesList.count_values	0
+XIMValuesList.supported_values	4
+XIMValuesList	8
+XKeymapEvent.type	0
+XKeymapEvent.serial	4
+XKeymapEvent.send_event	8
+XKeymapEvent.display	12
+XKeymapEvent.window	16
+XKeymapEvent.key_vector	20
+XKeymapEvent	52
+XTextItem16.chars	0
+XTextItem16.nchars	4
+XTextItem16.delta	8
+XTextItem16.font	12
+XTextItem16	16
+XIMPreeditDrawCallbackStruct.caret	0
+XIMPreeditDrawCallbackStruct.chg_first	4
+XIMPreeditDrawCallbackStruct.chg_length	8
+XIMPreeditDrawCallbackStruct.text	12
+XIMPreeditDrawCallbackStruct	16
+XVisualInfo.visual	0
+XVisualInfo.visualid	4
+XVisualInfo.screen	8
+XVisualInfo.depth	12
+XVisualInfo.class	16
+XVisualInfo.red_mask	20
+XVisualInfo.green_mask	24
+XVisualInfo.blue_mask	28
+XVisualInfo.colormap_size	32
+XVisualInfo.bits_per_rgb	36
+XVisualInfo	40
+XkbControlsNotifyEvent.type	0
+XkbControlsNotifyEvent.serial	4
+XkbControlsNotifyEvent.send_event	8
+XkbControlsNotifyEvent.display	12
+XkbControlsNotifyEvent.time	16
+XkbControlsNotifyEvent.xkb_type	20
+XkbControlsNotifyEvent.device	24
+XkbControlsNotifyEvent.changed_ctrls	28
+XkbControlsNotifyEvent.enabled_ctrls	32
+XkbControlsNotifyEvent.enabled_ctrl_changes	36
+XkbControlsNotifyEvent.num_groups	40
+XkbControlsNotifyEvent.keycode	44
+XkbControlsNotifyEvent.event_type	45
+XkbControlsNotifyEvent.req_major	46
+XkbControlsNotifyEvent.req_minor	47
+XkbControlsNotifyEvent	48
+PropMwmHints.flags	0
+PropMwmHints.functions	4
+PropMwmHints.decorations	8
+PropMwmHints.inputMode	12
+PropMwmHints.status	16
+PropMwmHints	20
+XClientMessageEvent.type	0
+XClientMessageEvent.serial	4
+XClientMessageEvent.send_event	8
+XClientMessageEvent.display	12
+XClientMessageEvent.window	16
+XClientMessageEvent.message_type	20
+XClientMessageEvent.format	24
+XClientMessageEvent.data	28
+XClientMessageEvent	48
+XAnyEvent.type	0
+XAnyEvent.serial	4
+XAnyEvent.send_event	8
+XAnyEvent.display	12
+XAnyEvent.window	16
+XAnyEvent	20
+XkbIndicatorNotifyEvent.type	0
+XkbIndicatorNotifyEvent.serial	4
+XkbIndicatorNotifyEvent.send_event	8
+XkbIndicatorNotifyEvent.display	12
+XkbIndicatorNotifyEvent.time	16
+XkbIndicatorNotifyEvent.xkb_type	20
+XkbIndicatorNotifyEvent.device	24
+XkbIndicatorNotifyEvent.changed	28
+XkbIndicatorNotifyEvent.state	32
+XkbIndicatorNotifyEvent	36
+XIMPreeditStateNotifyCallbackStruct.state	0
+XIMPreeditStateNotifyCallbackStruct	4
+XkbAnyEvent.type	0
+XkbAnyEvent.serial	4
+XkbAnyEvent.send_event	8
+XkbAnyEvent.display	12
+XkbAnyEvent.time	16
+XkbAnyEvent.xkb_type	20
+XkbAnyEvent.device	24
+XkbAnyEvent	28
+XMotionEvent.type	0
+XMotionEvent.serial	4
+XMotionEvent.send_event	8
+XMotionEvent.display	12
+XMotionEvent.window	16
+XMotionEvent.root	20
+XMotionEvent.subwindow	24
+XMotionEvent.time	28
+XMotionEvent.x	32
+XMotionEvent.y	36
+XMotionEvent.x_root	40
+XMotionEvent.y_root	44
+XMotionEvent.state	48
+XMotionEvent.is_hint	52
+XMotionEvent.same_screen	56
+XMotionEvent	60
+XIMHotKeyTriggers.num_hot_key	0
+XIMHotKeyTriggers.key	4
+XIMHotKeyTriggers	8
+XIMStyles.count_styles	0
+XIMStyles.supported_styles	4
+XIMStyles	8
+XkbExtensionDeviceNotifyEvent.type	0
+XkbExtensionDeviceNotifyEvent.serial	4
+XkbExtensionDeviceNotifyEvent.send_event	8
+XkbExtensionDeviceNotifyEvent.display	12
+XkbExtensionDeviceNotifyEvent.time	16
+XkbExtensionDeviceNotifyEvent.xkb_type	20
+XkbExtensionDeviceNotifyEvent.device	24
+XkbExtensionDeviceNotifyEvent.reason	28
+XkbExtensionDeviceNotifyEvent.supported	32
+XkbExtensionDeviceNotifyEvent.unsupported	36
+XkbExtensionDeviceNotifyEvent.first_btn	40
+XkbExtensionDeviceNotifyEvent.num_btns	44
+XkbExtensionDeviceNotifyEvent.leds_defined	48
+XkbExtensionDeviceNotifyEvent.led_state	52
+XkbExtensionDeviceNotifyEvent.led_class	56
+XkbExtensionDeviceNotifyEvent.led_id	60
+XkbExtensionDeviceNotifyEvent	64
+XwcTextItem.chars	0
+XwcTextItem.nchars	4
+XwcTextItem.delta	8
+XwcTextItem.font_set	12
+XwcTextItem	16
+XClassHint.res_name	0
+XClassHint.res_class	4
+XClassHint	8
+XChar2b.byte1	0
+XChar2b.byte2	1
+XChar2b	2
+XSetWindowAttributes.background_pixmap	0
+XSetWindowAttributes.background_pixel	4
+XSetWindowAttributes.border_pixmap	8
+XSetWindowAttributes.border_pixel	12
+XSetWindowAttributes.bit_gravity	16
+XSetWindowAttributes.win_gravity	20
+XSetWindowAttributes.backing_store	24
+XSetWindowAttributes.backing_planes	28
+XSetWindowAttributes.backing_pixel	32
+XSetWindowAttributes.save_under	36
+XSetWindowAttributes.event_mask	40
+XSetWindowAttributes.do_not_propagate_mask	44
+XSetWindowAttributes.override_redirect	48
+XSetWindowAttributes.colormap	52
+XSetWindowAttributes.cursor	56
+XSetWindowAttributes	60
+XRenderPictFormat.id	0
+XRenderPictFormat.type	4
+XRenderPictFormat.depth	8
+XRenderPictFormat.direct	12
+XRenderPictFormat.colormap	28
+XRenderPictFormat	32
+XReparentEvent.type	0
+XReparentEvent.serial	4
+XReparentEvent.send_event	8
+XReparentEvent.display	12
+XReparentEvent.event	16
+XReparentEvent.window	20
+XReparentEvent.parent	24
+XReparentEvent.x	28
+XReparentEvent.y	32
+XReparentEvent.override_redirect	36
+XReparentEvent	40
+XCirculateRequestEvent.type	0
+XCirculateRequestEvent.serial	4
+XCirculateRequestEvent.send_event	8
+XCirculateRequestEvent.display	12
+XCirculateRequestEvent.parent	16
+XCirculateRequestEvent.window	20
+XCirculateRequestEvent.place	24
+XCirculateRequestEvent	28
+XImage.width	0
+XImage.height	4
+XImage.xoffset	8
+XImage.format	12
+XImage.data	16
+XImage.byte_order	20
+XImage.bitmap_unit	24
+XImage.bitmap_bit_order	28
+XImage.bitmap_pad	32
+XImage.depth	36
+XImage.bytes_per_line	40
+XImage.bits_per_pixel	44
+XImage.red_mask	48
+XImage.green_mask	52
+XImage.blue_mask	56
+XImage.obdata	60
+XImage.f.create_image	64
+XImage.f.destroy_image	68
+XImage.f.get_pixel	72
+XImage.f.put_pixel	76
+XImage.f.sub_image	80
+XImage.f.add_pixel	84
+XImage	88
+XKeyEvent.type	0
+XKeyEvent.serial	4
+XKeyEvent.send_event	8
+XKeyEvent.display	12
+XKeyEvent.window	16
+XKeyEvent.root	20
+XKeyEvent.subwindow	24
+XKeyEvent.time	28
+XKeyEvent.x	32
+XKeyEvent.y	36
+XKeyEvent.x_root	40
+XKeyEvent.y_root	44
+XKeyEvent.state	48
+XKeyEvent.keycode	52
+XKeyEvent.same_screen	56
+XKeyEvent	60
+XkbActionMessageEvent.type	0
+XkbActionMessageEvent.serial	4
+XkbActionMessageEvent.send_event	8
+XkbActionMessageEvent.display	12
+XkbActionMessageEvent.time	16
+XkbActionMessageEvent.xkb_type	20
+XkbActionMessageEvent.device	24
+XkbActionMessageEvent.keycode	28
+XkbActionMessageEvent.press	32
+XkbActionMessageEvent.key_event_follows	36
+XkbActionMessageEvent.group	40
+XkbActionMessageEvent.mods	44
+XkbActionMessageEvent.message	48
+XkbActionMessageEvent	56
+XdbeSwapInfo.swap_window	0
+XdbeSwapInfo.swap_action	4
+XdbeSwapInfo	8
+XTextItem.chars	0
+XTextItem.nchars	4
+XTextItem.delta	8
+XTextItem.font	12
+XTextItem	16
+XModifierKeymap.max_keypermod	0
+XModifierKeymap.modifiermap	4
+XModifierKeymap	8
+XCharStruct.lbearing	0
+XCharStruct.rbearing	2
+XCharStruct.width	4
+XCharStruct.ascent	6
+XCharStruct.descent	8
+XCharStruct.attributes	10
+XCharStruct	12
+XGravityEvent.type	0
+XGravityEvent.serial	4
+XGravityEvent.send_event	8
+XGravityEvent.display	12
+XGravityEvent.event	16
+XGravityEvent.window	20
+XGravityEvent.x	24
+XGravityEvent.y	28
+XGravityEvent	32
+Visual.ext_data	0
+Visual.visualid	4
+Visual.class	8
+Visual.red_mask	12
+Visual.green_mask	16
+Visual.blue_mask	20
+Visual.bits_per_rgb	24
+Visual.map_entries	28
+Visual	32
+XOMOrientation.num_orientation	0
+XOMOrientation.orientation	4
+XOMOrientation	8
+XkbAccessXNotifyEvent.type	0
+XkbAccessXNotifyEvent.serial	4
+XkbAccessXNotifyEvent.send_event	8
+XkbAccessXNotifyEvent.display	12
+XkbAccessXNotifyEvent.time	16
+XkbAccessXNotifyEvent.xkb_type	20
+XkbAccessXNotifyEvent.device	24
+XkbAccessXNotifyEvent.detail	28
+XkbAccessXNotifyEvent.keycode	32
+XkbAccessXNotifyEvent.sk_delay	36
+XkbAccessXNotifyEvent.debounce_delay	40
+XkbAccessXNotifyEvent	44
+XWindowAttributes.x	0
+XWindowAttributes.y	4
+XWindowAttributes.width	8
+XWindowAttributes.height	12
+XWindowAttributes.border_width	16
+XWindowAttributes.depth	20
+XWindowAttributes.visual	24
+XWindowAttributes.root	28
+XWindowAttributes.class	32
+XWindowAttributes.bit_gravity	36
+XWindowAttributes.win_gravity	40
+XWindowAttributes.backing_store	44
+XWindowAttributes.backing_planes	48
+XWindowAttributes.backing_pixel	52
+XWindowAttributes.save_under	56
+XWindowAttributes.colormap	60
+XWindowAttributes.map_installed	64
+XWindowAttributes.map_state	68
+XWindowAttributes.all_event_masks	72
+XWindowAttributes.your_event_mask	76
+XWindowAttributes.do_not_propagate_mask	80
+XWindowAttributes.override_redirect	84
+XWindowAttributes.screen	88
+XWindowAttributes	92
+XmbTextItem.chars	0
+XmbTextItem.nchars	4
+XmbTextItem.delta	8
+XmbTextItem.font_set	12
+XmbTextItem	16
+XMappingEvent.type	0
+XMappingEvent.serial	4
+XMappingEvent.send_event	8
+XMappingEvent.display	12
+XMappingEvent.window	16
+XMappingEvent.request	20
+XMappingEvent.first_keycode	24
+XMappingEvent.count	28
+XMappingEvent	32
+XSizeHints.flags	0
+XSizeHints.x	4
+XSizeHints.y	8
+XSizeHints.width	12
+XSizeHints.height	16
+XSizeHints.min_width	20
+XSizeHints.min_height	24
+XSizeHints.max_width	28
+XSizeHints.max_height	32
+XSizeHints.width_inc	36
+XSizeHints.height_inc	40
+XSizeHints.min_aspect.x	44
+XSizeHints.min_aspect.y	48
+XSizeHints.max_aspect.x	52
+XSizeHints.max_aspect.y	56
+XSizeHints.base_width	60
+XSizeHints.base_height	64
+XSizeHints.win_gravity	68
+XSizeHints	72
+XUnmapEvent.type	0
+XUnmapEvent.serial	4
+XUnmapEvent.send_event	8
+XUnmapEvent.display	12
+XUnmapEvent.event	16
+XUnmapEvent.window	20
+XUnmapEvent.from_configure	24
+XUnmapEvent	28
+awtImageData.Depth	0
+awtImageData.wsImageFormat	4
+awtImageData.clrdata	16
+awtImageData.convert	48
+awtImageData	304
+XkbStateNotifyEvent.type	0
+XkbStateNotifyEvent.serial	4
+XkbStateNotifyEvent.send_event	8
+XkbStateNotifyEvent.display	12
+XkbStateNotifyEvent.time	16
+XkbStateNotifyEvent.xkb_type	20
+XkbStateNotifyEvent.device	24
+XkbStateNotifyEvent.changed	28
+XkbStateNotifyEvent.group	32
+XkbStateNotifyEvent.base_group	36
+XkbStateNotifyEvent.latched_group	40
+XkbStateNotifyEvent.locked_group	44
+XkbStateNotifyEvent.mods	48
+XkbStateNotifyEvent.base_mods	52
+XkbStateNotifyEvent.latched_mods	56
+XkbStateNotifyEvent.locked_mods	60
+XkbStateNotifyEvent.compat_state	64
+XkbStateNotifyEvent.grab_mods	68
+XkbStateNotifyEvent.compat_grab_mods	69
+XkbStateNotifyEvent.lookup_mods	70
+XkbStateNotifyEvent.compat_lookup_mods	71
+XkbStateNotifyEvent.ptr_buttons	72
+XkbStateNotifyEvent.keycode	76
+XkbStateNotifyEvent.event_type	77
+XkbStateNotifyEvent.req_major	78
+XkbStateNotifyEvent.req_minor	79
+XkbStateNotifyEvent	80
+XExposeEvent.type	0
+XExposeEvent.serial	4
+XExposeEvent.send_event	8
+XExposeEvent.display	12
+XExposeEvent.window	16
+XExposeEvent.x	20
+XExposeEvent.y	24
+XExposeEvent.width	28
+XExposeEvent.height	32
+XExposeEvent.count	36
+XExposeEvent	40
+XkbMapNotifyEvent.type	0
+XkbMapNotifyEvent.serial	4
+XkbMapNotifyEvent.send_event	8
+XkbMapNotifyEvent.display	12
+XkbMapNotifyEvent.time	16
+XkbMapNotifyEvent.xkb_type	20
+XkbMapNotifyEvent.device	24
+XkbMapNotifyEvent.changed	28
+XkbMapNotifyEvent.flags	32
+XkbMapNotifyEvent.first_type	36
+XkbMapNotifyEvent.num_types	40
+XkbMapNotifyEvent.min_key_code	44
+XkbMapNotifyEvent.max_key_code	45
+XkbMapNotifyEvent.first_key_sym	46
+XkbMapNotifyEvent.first_key_act	47
+XkbMapNotifyEvent.first_key_behavior	48
+XkbMapNotifyEvent.first_key_explicit	49
+XkbMapNotifyEvent.first_modmap_key	50
+XkbMapNotifyEvent.first_vmodmap_key	51
+XkbMapNotifyEvent.num_key_syms	52
+XkbMapNotifyEvent.num_key_acts	56
+XkbMapNotifyEvent.num_key_behaviors	60
+XkbMapNotifyEvent.num_key_explicit	64
+XkbMapNotifyEvent.num_modmap_keys	68
+XkbMapNotifyEvent.num_vmodmap_keys	72
+XkbMapNotifyEvent.vmods	76
+XkbMapNotifyEvent	80
+XGCValues.function	0
+XGCValues.plane_mask	4
+XGCValues.foreground	8
+XGCValues.background	12
+XGCValues.line_width	16
+XGCValues.line_style	20
+XGCValues.cap_style	24
+XGCValues.join_style	28
+XGCValues.fill_style	32
+XGCValues.fill_rule	36
+XGCValues.arc_mode	40
+XGCValues.tile	44
+XGCValues.stipple	48
+XGCValues.ts_x_origin	52
+XGCValues.ts_y_origin	56
+XGCValues.font	60
+XGCValues.subwindow_mode	64
+XGCValues.graphics_exposures	68
+XGCValues.clip_x_origin	72
+XGCValues.clip_y_origin	76
+XGCValues.clip_mask	80
+XGCValues.dash_offset	84
+XGCValues.dashes	88
+XGCValues	92
+XFocusChangeEvent.type	0
+XFocusChangeEvent.serial	4
+XFocusChangeEvent.send_event	8
+XFocusChangeEvent.display	12
+XFocusChangeEvent.window	16
+XFocusChangeEvent.mode	20
+XFocusChangeEvent.detail	24
+XFocusChangeEvent	28
+XPixmapFormatValues.depth	0
+XPixmapFormatValues.bits_per_pixel	4
+XPixmapFormatValues.scanline_pad	8
+XPixmapFormatValues	12
+XMapEvent.type	0
+XMapEvent.serial	4
+XMapEvent.send_event	8
+XMapEvent.display	12
+XMapEvent.event	16
+XMapEvent.window	20
+XMapEvent.override_redirect	24
+XMapEvent	28
+XkbBellNotifyEvent.type	0
+XkbBellNotifyEvent.serial	4
+XkbBellNotifyEvent.send_event	8
+XkbBellNotifyEvent.display	12
+XkbBellNotifyEvent.time	16
+XkbBellNotifyEvent.xkb_type	20
+XkbBellNotifyEvent.device	24
+XkbBellNotifyEvent.percent	28
+XkbBellNotifyEvent.pitch	32
+XkbBellNotifyEvent.duration	36
+XkbBellNotifyEvent.bell_class	40
+XkbBellNotifyEvent.bell_id	44
+XkbBellNotifyEvent.name	48
+XkbBellNotifyEvent.window	52
+XkbBellNotifyEvent.event_only	56
+XkbBellNotifyEvent	60
+XIMStringConversionText.length	0
+XIMStringConversionText.feedback	4
+XIMStringConversionText.encoding_is_wchar	8
+XIMStringConversionText.string	12
+XIMStringConversionText	16
+XKeyboardState.key_click_percent	0
+XKeyboardState.bell_percent	4
+XKeyboardState.bell_pitch	8
+XKeyboardState.bell_duration	12
+XKeyboardState.led_mask	16
+XKeyboardState.global_auto_repeat	20
+XKeyboardState.auto_repeats	24
+XKeyboardState	56
+XkbEvent.type	0
+XkbEvent.any	0
+XkbEvent.new_kbd	0
+XkbEvent.map	0
+XkbEvent.state	0
+XkbEvent.ctrls	0
+XkbEvent.indicators	0
+XkbEvent.names	0
+XkbEvent.compat	0
+XkbEvent.bell	0
+XkbEvent.message	0
+XkbEvent.accessx	0
+XkbEvent.device	0
+XkbEvent.core	0
+XkbEvent	96
+XPoint.x	0
+XPoint.y	2
+XPoint	4
+XSegment.x1	0
+XSegment.y1	2
+XSegment.x2	4
+XSegment.y2	6
+XSegment	8
+XIconSize.min_width	0
+XIconSize.min_height	4
+XIconSize.max_width	8
+XIconSize.max_height	12
+XIconSize.width_inc	16
+XIconSize.height_inc	20
+XIconSize	24
+XIMCallback.client_data	0
+XIMCallback.callback	4
+XIMCallback	8
+XConfigureEvent.type	0
+XConfigureEvent.serial	4
+XConfigureEvent.send_event	8
+XConfigureEvent.display	12
+XConfigureEvent.event	16
+XConfigureEvent.window	20
+XConfigureEvent.x	24
+XConfigureEvent.y	28
+XConfigureEvent.width	32
+XConfigureEvent.height	36
+XConfigureEvent.border_width	40
+XConfigureEvent.above	44
+XConfigureEvent.override_redirect	48
+XConfigureEvent	52
+XRectangle.x	0
+XRectangle.y	2
+XRectangle.width	4
+XRectangle.height	6
+XRectangle	8
+XkbNamesNotifyEvent.type	0
+XkbNamesNotifyEvent.serial	4
+XkbNamesNotifyEvent.send_event	8
+XkbNamesNotifyEvent.display	12
+XkbNamesNotifyEvent.time	16
+XkbNamesNotifyEvent.xkb_type	20
+XkbNamesNotifyEvent.device	24
+XkbNamesNotifyEvent.changed	28
+XkbNamesNotifyEvent.first_type	32
+XkbNamesNotifyEvent.num_types	36
+XkbNamesNotifyEvent.first_lvl	40
+XkbNamesNotifyEvent.num_lvls	44
+XkbNamesNotifyEvent.num_aliases	48
+XkbNamesNotifyEvent.num_radio_groups	52
+XkbNamesNotifyEvent.changed_vmods	56
+XkbNamesNotifyEvent.changed_groups	60
+XkbNamesNotifyEvent.changed_indicators	64
+XkbNamesNotifyEvent.first_key	68
+XkbNamesNotifyEvent.num_keys	72
+XkbNamesNotifyEvent	76
+XCreateWindowEvent.type	0
+XCreateWindowEvent.serial	4
+XCreateWindowEvent.send_event	8
+XCreateWindowEvent.display	12
+XCreateWindowEvent.parent	16
+XCreateWindowEvent.window	20
+XCreateWindowEvent.x	24
+XCreateWindowEvent.y	28
+XCreateWindowEvent.width	32
+XCreateWindowEvent.height	36
+XCreateWindowEvent.border_width	40
+XCreateWindowEvent.override_redirect	44
+XCreateWindowEvent	48
+XVisibilityEvent.type	0
+XVisibilityEvent.serial	4
+XVisibilityEvent.send_event	8
+XVisibilityEvent.display	12
+XVisibilityEvent.window	16
+XVisibilityEvent.state	20
+XVisibilityEvent	24
+XWMHints.flags	0
+XWMHints.initial_state	8
+XWMHints.icon_pixmap	12
+XWMHints.icon_window	16
+XWMHints.icon_x	20
+XWMHints.icon_y	24
+XWMHints.icon_mask	28
+XWMHints.input	4
+XWMHints.window_group	32
+XWMHints	36
+XCrossingEvent.type	0
+XCrossingEvent.serial	4
+XCrossingEvent.send_event	8
+XCrossingEvent.display	12
+XCrossingEvent.window	16
+XCrossingEvent.root	20
+XCrossingEvent.subwindow	24
+XCrossingEvent.time	28
+XCrossingEvent.x	32
+XCrossingEvent.y	36
+XCrossingEvent.x_root	40
+XCrossingEvent.y_root	44
+XCrossingEvent.mode	48
+XCrossingEvent.detail	52
+XCrossingEvent.same_screen	56
+XCrossingEvent.focus	60
+XCrossingEvent.state	64
+XCrossingEvent	68
+XSelectionRequestEvent.type	0
+XSelectionRequestEvent.serial	4
+XSelectionRequestEvent.send_event	8
+XSelectionRequestEvent.display	12
+XSelectionRequestEvent.owner	16
+XSelectionRequestEvent.requestor	20
+XSelectionRequestEvent.selection	24
+XSelectionRequestEvent.target	28
+XSelectionRequestEvent.property	32
+XSelectionRequestEvent.time	36
+XSelectionRequestEvent	40
+XNoExposeEvent.type	0
+XNoExposeEvent.serial	4
+XNoExposeEvent.send_event	8
+XNoExposeEvent.display	12
+XNoExposeEvent.drawable	16
+XNoExposeEvent.major_code	20
+XNoExposeEvent.minor_code	24
+XNoExposeEvent	28
+XHostAddress.family	0
+XHostAddress.length	4
+XHostAddress.address	8
+XHostAddress	12
+XColormapEvent.type	0
+XColormapEvent.serial	4
+XColormapEvent.send_event	8
+XColormapEvent.display	12
+XColormapEvent.window	16
+XColormapEvent.colormap	20
+XColormapEvent.new	24
+XColormapEvent.state	28
+XColormapEvent	32
+ColorEntry.r	0
+ColorEntry.g	1
+ColorEntry.b	2
+ColorEntry.flags	3
+ColorEntry	4
+XResizeRequestEvent.type	0
+XResizeRequestEvent.serial	4
+XResizeRequestEvent.send_event	8
+XResizeRequestEvent.display	12
+XResizeRequestEvent.window	16
+XResizeRequestEvent.width	20
+XResizeRequestEvent.height	24
+XResizeRequestEvent	28
+Depth.depth	0
+Depth.nvisuals	4
+Depth.visuals	8
+Depth	12
+XPropertyEvent.type	0
+XPropertyEvent.serial	4
+XPropertyEvent.send_event	8
+XPropertyEvent.display	12
+XPropertyEvent.window	16
+XPropertyEvent.atom	20
+XPropertyEvent.time	24
+XPropertyEvent.state	28
+XPropertyEvent	32
+XDestroyWindowEvent.type	0
+XDestroyWindowEvent.serial	4
+XDestroyWindowEvent.send_event	8
+XDestroyWindowEvent.display	12
+XDestroyWindowEvent.event	16
+XDestroyWindowEvent.window	20
+XDestroyWindowEvent	24
+XStandardColormap.colormap	0
+XStandardColormap.red_max	4
+XStandardColormap.red_mult	8
+XStandardColormap.green_max	12
+XStandardColormap.green_mult	16
+XStandardColormap.blue_max	20
+XStandardColormap.blue_mult	24
+XStandardColormap.base_pixel	28
+XStandardColormap.visualid	32
+XStandardColormap.killid	36
+XStandardColormap	40
+XComposeStatus.compose_ptr	0
+XComposeStatus.chars_matched	4
+XComposeStatus	8
+AwtGraphicsConfigData.awt_depth	0
+AwtGraphicsConfigData.awt_cmap	4
+AwtGraphicsConfigData.awt_visInfo	8
+AwtGraphicsConfigData.awt_num_colors	48
+AwtGraphicsConfigData.awtImage	52
+AwtGraphicsConfigData.AwtColorMatch	56
+AwtGraphicsConfigData.monoImage	60
+AwtGraphicsConfigData.monoPixmap	64
+AwtGraphicsConfigData.monoPixmapWidth	68
+AwtGraphicsConfigData.monoPixmapHeight	72
+AwtGraphicsConfigData.monoPixmapGC	76
+AwtGraphicsConfigData.pixelStride	80
+AwtGraphicsConfigData.color_data	84
+AwtGraphicsConfigData.glxInfo	88
+AwtGraphicsConfigData.isTranslucencySupported	92
+AwtGraphicsConfigData.renderPictFormat	96
+AwtGraphicsConfigData	128
+XColor.pixel	0
+XColor.red	4
+XColor.green	6
+XColor.blue	8
+XColor.flags	10
+XColor.pad	11
+XColor	12
+XTextProperty.value	0
+XTextProperty.encoding	4
+XTextProperty.format	8
+XTextProperty.nitems	12
+XTextProperty	16
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/solaris/classes/sun/awt/X11/generator/sizes.64	Mon Jan 28 14:23:09 2013 +0100
@@ -0,0 +1,1016 @@
+long	8
+int	4
+short	2
+ptr	8
+Bool	4
+Atom	8
+Window	8
+XExtData.number	0
+XExtData.next	8
+XExtData.free_private	16
+XExtData.private_data	24
+XExtData	32
+XIMStringConversionCallbackStruct.position	0
+XIMStringConversionCallbackStruct.direction	4
+XIMStringConversionCallbackStruct.operation	8
+XIMStringConversionCallbackStruct.factor	10
+XIMStringConversionCallbackStruct.text	16
+XIMStringConversionCallbackStruct	24
+XkbNewKeyboardNotifyEvent.type	0
+XkbNewKeyboardNotifyEvent.serial	8
+XkbNewKeyboardNotifyEvent.send_event	16
+XkbNewKeyboardNotifyEvent.display	24
+XkbNewKeyboardNotifyEvent.time	32
+XkbNewKeyboardNotifyEvent.xkb_type	40
+XkbNewKeyboardNotifyEvent.device	44
+XkbNewKeyboardNotifyEvent.old_device	48
+XkbNewKeyboardNotifyEvent.min_key_code	52
+XkbNewKeyboardNotifyEvent.max_key_code	56
+XkbNewKeyboardNotifyEvent.old_min_key_code	60
+XkbNewKeyboardNotifyEvent.old_max_key_code	64
+XkbNewKeyboardNotifyEvent.changed	68
+XkbNewKeyboardNotifyEvent.req_major	72
+XkbNewKeyboardNotifyEvent.req_minor	73
+XkbNewKeyboardNotifyEvent	80
+XTimeCoord.time	0
+XTimeCoord.x	8
+XTimeCoord.y	10
+XTimeCoord	16
+XkbCompatMapNotifyEvent.type	0
+XkbCompatMapNotifyEvent.serial	8
+XkbCompatMapNotifyEvent.send_event	16
+XkbCompatMapNotifyEvent.display	24
+XkbCompatMapNotifyEvent.time	32
+XkbCompatMapNotifyEvent.xkb_type	40
+XkbCompatMapNotifyEvent.device	44
+XkbCompatMapNotifyEvent.changed_groups	48
+XkbCompatMapNotifyEvent.first_si	52
+XkbCompatMapNotifyEvent.num_si	56
+XkbCompatMapNotifyEvent.num_total_si	60
+XkbCompatMapNotifyEvent	64
+XIMStatusDrawCallbackStruct.type	0
+XIMStatusDrawCallbackStruct.data	8
+XIMStatusDrawCallbackStruct	16
+XKeyboardControl.key_click_percent	0
+XKeyboardControl.bell_percent	4
+XKeyboardControl.bell_pitch	8
+XKeyboardControl.bell_duration	12
+XKeyboardControl.led	16
+XKeyboardControl.led_mode	20
+XKeyboardControl.key	24
+XKeyboardControl.auto_repeat_mode	28
+XKeyboardControl	32
+XSelectionClearEvent.type	0
+XSelectionClearEvent.serial	8
+XSelectionClearEvent.send_event	16
+XSelectionClearEvent.display	24
+XSelectionClearEvent.window	32
+XSelectionClearEvent.selection	40
+XSelectionClearEvent.time	48
+XSelectionClearEvent	56
+XWindowChanges.x	0
+XWindowChanges.y	4
+XWindowChanges.width	8
+XWindowChanges.height	12
+XWindowChanges.border_width	16
+XWindowChanges.sibling	24
+XWindowChanges.stack_mode	32
+XWindowChanges	40
+XIMPreeditCaretCallbackStruct.position	0
+XIMPreeditCaretCallbackStruct.direction	4
+XIMPreeditCaretCallbackStruct.style	8
+XIMPreeditCaretCallbackStruct	12
+XOMCharSetList.charset_count	0
+XOMCharSetList.charset_list	8
+XOMCharSetList	16
+XOMFontInfo.num_font	0
+XOMFontInfo.font_struct_list	8
+XOMFontInfo.font_name_list	16
+XOMFontInfo	24
+AwtScreenData.numConfigs	0
+AwtScreenData.root	8
+AwtScreenData.whitepixel	16
+AwtScreenData.blackpixel	24
+AwtScreenData.defaultConfig	32
+AwtScreenData.configs	40
+AwtScreenData	48
+XIMHotKeyTrigger.keysym	0
+XIMHotKeyTrigger.modifier	8
+XIMHotKeyTrigger.modifier_mask	12
+XIMHotKeyTrigger	16
+XCirculateEvent.type	0
+XCirculateEvent.serial	8
+XCirculateEvent.send_event	16
+XCirculateEvent.display	24
+XCirculateEvent.event	32
+XCirculateEvent.window	40
+XCirculateEvent.place	48
+XCirculateEvent	56
+Screen.ext_data	0
+Screen.display	8
+Screen.root	16
+Screen.width	24
+Screen.height	28
+Screen.mwidth	32
+Screen.mheight	36
+Screen.ndepths	40
+Screen.depths	48
+Screen.root_depth	56
+Screen.root_visual	64
+Screen.default_gc	72
+Screen.cmap	80
+Screen.white_pixel	88
+Screen.black_pixel	96
+Screen.max_maps	104
+Screen.min_maps	108
+Screen.backing_store	112
+Screen.save_unders	116
+Screen.root_input_mask	120
+Screen	128
+XMapRequestEvent.type	0
+XMapRequestEvent.serial	8
+XMapRequestEvent.send_event	16
+XMapRequestEvent.display	24
+XMapRequestEvent.parent	32
+XMapRequestEvent.window	40
+XMapRequestEvent	48
+XIMText.length	0
+XIMText.feedback	8
+XIMText.encoding_is_wchar	16
+XIMText.string	24
+XIMText	32
+XGraphicsExposeEvent.type	0
+XGraphicsExposeEvent.serial	8
+XGraphicsExposeEvent.send_event	16
+XGraphicsExposeEvent.display	24
+XGraphicsExposeEvent.drawable	32
+XGraphicsExposeEvent.x	40
+XGraphicsExposeEvent.y	44
+XGraphicsExposeEvent.width	48
+XGraphicsExposeEvent.height	52
+XGraphicsExposeEvent.count	56
+XGraphicsExposeEvent.major_code	60
+XGraphicsExposeEvent.minor_code	64
+XGraphicsExposeEvent	72
+XEvent.type	0
+XEvent.xany	0
+XEvent.xkey	0
+XEvent.xbutton	0
+XEvent.xmotion	0
+XEvent.xcrossing	0
+XEvent.xfocus	0
+XEvent.xexpose	0
+XEvent.xgraphicsexpose	0
+XEvent.xnoexpose	0
+XEvent.xvisibility	0
+XEvent.xcreatewindow	0
+XEvent.xdestroywindow	0
+XEvent.xunmap	0
+XEvent.xmap	0
+XEvent.xmaprequest	0
+XEvent.xreparent	0
+XEvent.xconfigure	0
+XEvent.xgravity	0
+XEvent.xresizerequest	0
+XEvent.xconfigurerequest	0
+XEvent.xcirculate	0
+XEvent.xcirculaterequest	0
+XEvent.xproperty	0
+XEvent.xselectionclear	0
+XEvent.xselectionrequest	0
+XEvent.xselection	0
+XEvent.xcolormap	0
+XEvent.xclient	0
+XEvent.xmapping	0
+XEvent.xerror	0
+XEvent.xkeymap	0
+XEvent.pad	0
+XEvent	192
+XRenderDirectFormat.red	0
+XRenderDirectFormat.redMask	2
+XRenderDirectFormat.green	4
+XRenderDirectFormat.greenMask	6
+XRenderDirectFormat.blue	8
+XRenderDirectFormat.blueMask	10
+XRenderDirectFormat.alpha	12
+XRenderDirectFormat.alphaMask	14
+XRenderDirectFormat	16
+ColorData.awt_Colors	0
+ColorData.awt_numICMcolors	8
+ColorData.awt_icmLUT	16
+ColorData.awt_icmLUT2Colors	24
+ColorData.img_grays	32
+ColorData.img_clr_tbl	40
+ColorData.img_oda_red	48
+ColorData.img_oda_green	56
+ColorData.img_oda_blue	64
+ColorData.pGrayInverseLutData	72
+ColorData.screendata	80
+ColorData	88
+XFontStruct.ext_data	0
+XFontStruct.fid	8
+XFontStruct.direction	16
+XFontStruct.min_char_or_byte2	20
+XFontStruct.max_char_or_byte2	24
+XFontStruct.min_byte1	28
+XFontStruct.max_byte1	32
+XFontStruct.all_chars_exist	36
+XFontStruct.n_properties	44
+XFontStruct.properties	48
+XFontStruct.min_bounds	56
+XFontStruct.max_bounds	68
+XFontStruct.per_char	80
+XFontStruct.ascent	88
+XFontStruct.descent	92
+XFontStruct	96
+XExtCodes.extension	0
+XExtCodes.major_opcode	4
+XExtCodes.first_event	8
+XExtCodes.first_error	12
+XExtCodes	16
+XFontSetExtents.max_ink_extent	0
+XFontSetExtents.max_logical_extent	8
+XFontSetExtents	16
+XSelectionEvent.type	0
+XSelectionEvent.serial	8
+XSelectionEvent.send_event	16
+XSelectionEvent.display	24
+XSelectionEvent.requestor	32
+XSelectionEvent.selection	40
+XSelectionEvent.target	48
+XSelectionEvent.property	56
+XSelectionEvent.time	64
+XSelectionEvent	72
+XArc.x	0
+XArc.y	2
+XArc.width	4
+XArc.height	6
+XArc.angle1	8
+XArc.angle2	10
+XArc	12
+XErrorEvent.type	0
+XErrorEvent.display	8
+XErrorEvent.resourceid	16
+XErrorEvent.serial	24
+XErrorEvent.error_code	32
+XErrorEvent.request_code	33
+XErrorEvent.minor_code	34
+XErrorEvent	40
+XConfigureRequestEvent.type	0
+XConfigureRequestEvent.serial	8
+XConfigureRequestEvent.send_event	16
+XConfigureRequestEvent.display	24
+XConfigureRequestEvent.parent	32
+XConfigureRequestEvent.window	40
+XConfigureRequestEvent.x	48
+XConfigureRequestEvent.y	52
+XConfigureRequestEvent.width	56
+XConfigureRequestEvent.height	60
+XConfigureRequestEvent.border_width	64
+XConfigureRequestEvent.above	72
+XConfigureRequestEvent.detail	80
+XConfigureRequestEvent.value_mask	88
+XConfigureRequestEvent	96
+ScreenFormat.ext_data	0
+ScreenFormat.depth	8
+ScreenFormat.bits_per_pixel	12
+ScreenFormat.scanline_pad	16
+ScreenFormat	24
+XButtonEvent.type	0
+XButtonEvent.serial	8
+XButtonEvent.send_event	16
+XButtonEvent.display	24
+XButtonEvent.window	32
+XButtonEvent.root	40
+XButtonEvent.subwindow	48
+XButtonEvent.time	56
+XButtonEvent.x	64
+XButtonEvent.y	68
+XButtonEvent.x_root	72
+XButtonEvent.y_root	76
+XButtonEvent.state	80
+XButtonEvent.button	84
+XButtonEvent.same_screen	88
+XButtonEvent	96
+XFontProp.name	0
+XFontProp.card32	8
+XFontProp	16
+XIMValuesList.count_values	0
+XIMValuesList.supported_values	8
+XIMValuesList	16
+XKeymapEvent.type	0
+XKeymapEvent.serial	8
+XKeymapEvent.send_event	16
+XKeymapEvent.display	24
+XKeymapEvent.window	32
+XKeymapEvent.key_vector	40
+XKeymapEvent	72
+XTextItem16.chars	0
+XTextItem16.nchars	8
+XTextItem16.delta	12
+XTextItem16.font	16
+XTextItem16	24
+XIMPreeditDrawCallbackStruct.caret	0
+XIMPreeditDrawCallbackStruct.chg_first	4
+XIMPreeditDrawCallbackStruct.chg_length	8
+XIMPreeditDrawCallbackStruct.text	16
+XIMPreeditDrawCallbackStruct	24
+XVisualInfo.visual	0
+XVisualInfo.visualid	8
+XVisualInfo.screen	16
+XVisualInfo.depth	20
+XVisualInfo.class	24
+XVisualInfo.red_mask	32
+XVisualInfo.green_mask	40
+XVisualInfo.blue_mask	48
+XVisualInfo.colormap_size	56
+XVisualInfo.bits_per_rgb	60
+XVisualInfo	64
+XkbControlsNotifyEvent.type	0
+XkbControlsNotifyEvent.serial	8
+XkbControlsNotifyEvent.send_event	16
+XkbControlsNotifyEvent.display	24
+XkbControlsNotifyEvent.time	32
+XkbControlsNotifyEvent.xkb_type	40
+XkbControlsNotifyEvent.device	44
+XkbControlsNotifyEvent.changed_ctrls	48
+XkbControlsNotifyEvent.enabled_ctrls	52
+XkbControlsNotifyEvent.enabled_ctrl_changes	56
+XkbControlsNotifyEvent.num_groups	60
+XkbControlsNotifyEvent.keycode	64
+XkbControlsNotifyEvent.event_type	65
+XkbControlsNotifyEvent.req_major	66
+XkbControlsNotifyEvent.req_minor	67
+XkbControlsNotifyEvent	72
+PropMwmHints.flags	0
+PropMwmHints.functions	8
+PropMwmHints.decorations	16
+PropMwmHints.inputMode	24
+PropMwmHints.status	32
+PropMwmHints	40
+XClientMessageEvent.type	0
+XClientMessageEvent.serial	8
+XClientMessageEvent.send_event	16
+XClientMessageEvent.display	24
+XClientMessageEvent.window	32
+XClientMessageEvent.message_type	40
+XClientMessageEvent.format	48
+XClientMessageEvent.data	56
+XClientMessageEvent	96
+XAnyEvent.type	0
+XAnyEvent.serial	8
+XAnyEvent.send_event	16
+XAnyEvent.display	24
+XAnyEvent.window	32
+XAnyEvent	40
+XkbIndicatorNotifyEvent.type	0
+XkbIndicatorNotifyEvent.serial	8
+XkbIndicatorNotifyEvent.send_event	16
+XkbIndicatorNotifyEvent.display	24
+XkbIndicatorNotifyEvent.time	32
+XkbIndicatorNotifyEvent.xkb_type	40
+XkbIndicatorNotifyEvent.device	44
+XkbIndicatorNotifyEvent.changed	48
+XkbIndicatorNotifyEvent.state	52
+XkbIndicatorNotifyEvent	56
+XIMPreeditStateNotifyCallbackStruct.state	0
+XIMPreeditStateNotifyCallbackStruct	8
+XkbAnyEvent.type	0
+XkbAnyEvent.serial	8
+XkbAnyEvent.send_event	16
+XkbAnyEvent.display	24
+XkbAnyEvent.time	32
+XkbAnyEvent.xkb_type	40
+XkbAnyEvent.device	44
+XkbAnyEvent	48
+XMotionEvent.type	0
+XMotionEvent.serial	8
+XMotionEvent.send_event	16
+XMotionEvent.display	24
+XMotionEvent.window	32
+XMotionEvent.root	40
+XMotionEvent.subwindow	48
+XMotionEvent.time	56
+XMotionEvent.x	64
+XMotionEvent.y	68
+XMotionEvent.x_root	72
+XMotionEvent.y_root	76
+XMotionEvent.state	80
+XMotionEvent.is_hint	84
+XMotionEvent.same_screen	88
+XMotionEvent	96
+XIMHotKeyTriggers.num_hot_key	0
+XIMHotKeyTriggers.key	8
+XIMHotKeyTriggers	16
+XIMStyles.count_styles	0
+XIMStyles.supported_styles	8
+XIMStyles	16
+XkbExtensionDeviceNotifyEvent.type	0
+XkbExtensionDeviceNotifyEvent.serial	8
+XkbExtensionDeviceNotifyEvent.send_event	16
+XkbExtensionDeviceNotifyEvent.display	24
+XkbExtensionDeviceNotifyEvent.time	32
+XkbExtensionDeviceNotifyEvent.xkb_type	40
+XkbExtensionDeviceNotifyEvent.device	44
+XkbExtensionDeviceNotifyEvent.reason	48
+XkbExtensionDeviceNotifyEvent.supported	52
+XkbExtensionDeviceNotifyEvent.unsupported	56
+XkbExtensionDeviceNotifyEvent.first_btn	60
+XkbExtensionDeviceNotifyEvent.num_btns	64
+XkbExtensionDeviceNotifyEvent.leds_defined	68
+XkbExtensionDeviceNotifyEvent.led_state	72
+XkbExtensionDeviceNotifyEvent.led_class	76
+XkbExtensionDeviceNotifyEvent.led_id	80
+XkbExtensionDeviceNotifyEvent	88
+XwcTextItem.chars	0
+XwcTextItem.nchars	8
+XwcTextItem.delta	12
+XwcTextItem.font_set	16
+XwcTextItem	24
+XClassHint.res_name	0
+XClassHint.res_class	8
+XClassHint	16
+XChar2b.byte1	0
+XChar2b.byte2	1
+XChar2b	2
+XSetWindowAttributes.background_pixmap	0
+XSetWindowAttributes.background_pixel	8
+XSetWindowAttributes.border_pixmap	16
+XSetWindowAttributes.border_pixel	24
+XSetWindowAttributes.bit_gravity	32
+XSetWindowAttributes.win_gravity	36
+XSetWindowAttributes.backing_store	40
+XSetWindowAttributes.backing_planes	48
+XSetWindowAttributes.backing_pixel	56
+XSetWindowAttributes.save_under	64
+XSetWindowAttributes.event_mask	72
+XSetWindowAttributes.do_not_propagate_mask	80
+XSetWindowAttributes.override_redirect	88
+XSetWindowAttributes.colormap	96
+XSetWindowAttributes.cursor	104
+XSetWindowAttributes	112
+XRenderPictFormat.id	0
+XRenderPictFormat.type	8
+XRenderPictFormat.depth	12
+XRenderPictFormat.direct	16
+XRenderPictFormat.colormap	32
+XRenderPictFormat	40
+XReparentEvent.type	0
+XReparentEvent.serial	8
+XReparentEvent.send_event	16
+XReparentEvent.display	24
+XReparentEvent.event	32
+XReparentEvent.window	40
+XReparentEvent.parent	48
+XReparentEvent.x	56
+XReparentEvent.y	60
+XReparentEvent.override_redirect	64
+XReparentEvent	72
+XCirculateRequestEvent.type	0
+XCirculateRequestEvent.serial	8
+XCirculateRequestEvent.send_event	16
+XCirculateRequestEvent.display	24
+XCirculateRequestEvent.parent	32
+XCirculateRequestEvent.window	40
+XCirculateRequestEvent.place	48
+XCirculateRequestEvent	56
+XImage.width	0
+XImage.height	4
+XImage.xoffset	8
+XImage.format	12
+XImage.data	16
+XImage.byte_order	24
+XImage.bitmap_unit	28
+XImage.bitmap_bit_order	32
+XImage.bitmap_pad	36
+XImage.depth	40
+XImage.bytes_per_line	44
+XImage.bits_per_pixel	48
+XImage.red_mask	56
+XImage.green_mask	64
+XImage.blue_mask	72
+XImage.obdata	80
+XImage.f.create_image	88
+XImage.f.destroy_image	96
+XImage.f.get_pixel	104
+XImage.f.put_pixel	112
+XImage.f.sub_image	120
+XImage.f.add_pixel	128
+XImage	136
+XKeyEvent.type	0
+XKeyEvent.serial	8
+XKeyEvent.send_event	16
+XKeyEvent.display	24
+XKeyEvent.window	32
+XKeyEvent.root	40
+XKeyEvent.subwindow	48
+XKeyEvent.time	56
+XKeyEvent.x	64
+XKeyEvent.y	68
+XKeyEvent.x_root	72
+XKeyEvent.y_root	76
+XKeyEvent.state	80
+XKeyEvent.keycode	84
+XKeyEvent.same_screen	88
+XKeyEvent	96
+XkbActionMessageEvent.type	0
+XkbActionMessageEvent.serial	8
+XkbActionMessageEvent.send_event	16
+XkbActionMessageEvent.display	24
+XkbActionMessageEvent.time	32
+XkbActionMessageEvent.xkb_type	40
+XkbActionMessageEvent.device	44
+XkbActionMessageEvent.keycode	48
+XkbActionMessageEvent.press	52
+XkbActionMessageEvent.key_event_follows	56
+XkbActionMessageEvent.group	60
+XkbActionMessageEvent.mods	64
+XkbActionMessageEvent.message	68
+XkbActionMessageEvent	80
+XdbeSwapInfo.swap_window	0
+XdbeSwapInfo.swap_action	8
+XdbeSwapInfo	16
+XTextItem.chars	0
+XTextItem.nchars	8
+XTextItem.delta	12
+XTextItem.font	16
+XTextItem	24
+XModifierKeymap.max_keypermod	0
+XModifierKeymap.modifiermap	8
+XModifierKeymap	16
+XCharStruct.lbearing	0
+XCharStruct.rbearing	2
+XCharStruct.width	4
+XCharStruct.ascent	6
+XCharStruct.descent	8
+XCharStruct.attributes	10
+XCharStruct	12
+XGravityEvent.type	0
+XGravityEvent.serial	8
+XGravityEvent.send_event	16
+XGravityEvent.display	24
+XGravityEvent.event	32
+XGravityEvent.window	40
+XGravityEvent.x	48
+XGravityEvent.y	52
+XGravityEvent	56
+Visual.ext_data	0
+Visual.visualid	8
+Visual.class	16
+Visual.red_mask	24
+Visual.green_mask	32
+Visual.blue_mask	40
+Visual.bits_per_rgb	48
+Visual.map_entries	52
+Visual	56
+XOMOrientation.num_orientation	0
+XOMOrientation.orientation	8
+XOMOrientation	16
+XkbAccessXNotifyEvent.type	0
+XkbAccessXNotifyEvent.serial	8
+XkbAccessXNotifyEvent.send_event	16
+XkbAccessXNotifyEvent.display	24
+XkbAccessXNotifyEvent.time	32
+XkbAccessXNotifyEvent.xkb_type	40
+XkbAccessXNotifyEvent.device	44
+XkbAccessXNotifyEvent.detail	48
+XkbAccessXNotifyEvent.keycode	52
+XkbAccessXNotifyEvent.sk_delay	56
+XkbAccessXNotifyEvent.debounce_delay	60
+XkbAccessXNotifyEvent	64
+XWindowAttributes.x	0
+XWindowAttributes.y	4
+XWindowAttributes.width	8
+XWindowAttributes.height	12
+XWindowAttributes.border_width	16
+XWindowAttributes.depth	20
+XWindowAttributes.visual	24
+XWindowAttributes.root	32
+XWindowAttributes.class	40
+XWindowAttributes.bit_gravity	44
+XWindowAttributes.win_gravity	48
+XWindowAttributes.backing_store	52
+XWindowAttributes.backing_planes	56
+XWindowAttributes.backing_pixel	64
+XWindowAttributes.save_under	72
+XWindowAttributes.colormap	80
+XWindowAttributes.map_installed	88
+XWindowAttributes.map_state	92
+XWindowAttributes.all_event_masks	96
+XWindowAttributes.your_event_mask	104
+XWindowAttributes.do_not_propagate_mask	112
+XWindowAttributes.override_redirect	120
+XWindowAttributes.screen	128
+XWindowAttributes	136
+XmbTextItem.chars	0
+XmbTextItem.nchars	8
+XmbTextItem.delta	12
+XmbTextItem.font_set	16
+XmbTextItem	24
+XMappingEvent.type	0
+XMappingEvent.serial	8
+XMappingEvent.send_event	16
+XMappingEvent.display	24
+XMappingEvent.window	32
+XMappingEvent.request	40
+XMappingEvent.first_keycode	44
+XMappingEvent.count	48
+XMappingEvent	56
+XSizeHints.flags	0
+XSizeHints.x	8
+XSizeHints.y	12
+XSizeHints.width	16
+XSizeHints.height	20
+XSizeHints.min_width	24
+XSizeHints.min_height	28
+XSizeHints.max_width	32
+XSizeHints.max_height	36
+XSizeHints.width_inc	40
+XSizeHints.height_inc	44
+XSizeHints.min_aspect.x	48
+XSizeHints.min_aspect.y	52
+XSizeHints.max_aspect.x	56
+XSizeHints.max_aspect.y	60
+XSizeHints.base_width	64
+XSizeHints.base_height	68
+XSizeHints.win_gravity	72
+XSizeHints	80
+XUnmapEvent.type	0
+XUnmapEvent.serial	8
+XUnmapEvent.send_event	16
+XUnmapEvent.display	24
+XUnmapEvent.event	32
+XUnmapEvent.window	40
+XUnmapEvent.from_configure	48
+XUnmapEvent	56
+awtImageData.Depth	0
+awtImageData.wsImageFormat	4
+awtImageData.clrdata	16
+awtImageData.convert	48
+awtImageData	560
+XkbStateNotifyEvent.type	0
+XkbStateNotifyEvent.serial	8
+XkbStateNotifyEvent.send_event	16
+XkbStateNotifyEvent.display	24
+XkbStateNotifyEvent.time	32
+XkbStateNotifyEvent.xkb_type	40
+XkbStateNotifyEvent.device	44
+XkbStateNotifyEvent.changed	48
+XkbStateNotifyEvent.group	52
+XkbStateNotifyEvent.base_group	56
+XkbStateNotifyEvent.latched_group	60
+XkbStateNotifyEvent.locked_group	64
+XkbStateNotifyEvent.mods	68
+XkbStateNotifyEvent.base_mods	72
+XkbStateNotifyEvent.latched_mods	76
+XkbStateNotifyEvent.locked_mods	80
+XkbStateNotifyEvent.compat_state	84
+XkbStateNotifyEvent.grab_mods	88
+XkbStateNotifyEvent.compat_grab_mods	89
+XkbStateNotifyEvent.lookup_mods	90
+XkbStateNotifyEvent.compat_lookup_mods	91
+XkbStateNotifyEvent.ptr_buttons	92
+XkbStateNotifyEvent.keycode	96
+XkbStateNotifyEvent.event_type	97
+XkbStateNotifyEvent.req_major	98
+XkbStateNotifyEvent.req_minor	99
+XkbStateNotifyEvent	104
+XExposeEvent.type	0
+XExposeEvent.serial	8
+XExposeEvent.send_event	16
+XExposeEvent.display	24
+XExposeEvent.window	32
+XExposeEvent.x	40
+XExposeEvent.y	44
+XExposeEvent.width	48
+XExposeEvent.height	52
+XExposeEvent.count	56
+XExposeEvent	64
+XkbMapNotifyEvent.type	0
+XkbMapNotifyEvent.serial	8
+XkbMapNotifyEvent.send_event	16
+XkbMapNotifyEvent.display	24
+XkbMapNotifyEvent.time	32
+XkbMapNotifyEvent.xkb_type	40
+XkbMapNotifyEvent.device	44
+XkbMapNotifyEvent.changed	48
+XkbMapNotifyEvent.flags	52
+XkbMapNotifyEvent.first_type	56
+XkbMapNotifyEvent.num_types	60
+XkbMapNotifyEvent.min_key_code	64
+XkbMapNotifyEvent.max_key_code	65
+XkbMapNotifyEvent.first_key_sym	66
+XkbMapNotifyEvent.first_key_act	67
+XkbMapNotifyEvent.first_key_behavior	68
+XkbMapNotifyEvent.first_key_explicit	69
+XkbMapNotifyEvent.first_modmap_key	70
+XkbMapNotifyEvent.first_vmodmap_key	71
+XkbMapNotifyEvent.num_key_syms	72
+XkbMapNotifyEvent.num_key_acts	76
+XkbMapNotifyEvent.num_key_behaviors	80
+XkbMapNotifyEvent.num_key_explicit	84
+XkbMapNotifyEvent.num_modmap_keys	88
+XkbMapNotifyEvent.num_vmodmap_keys	92
+XkbMapNotifyEvent.vmods	96
+XkbMapNotifyEvent	104
+XGCValues.function	0
+XGCValues.plane_mask	8
+XGCValues.foreground	16
+XGCValues.background	24
+XGCValues.line_width	32
+XGCValues.line_style	36
+XGCValues.cap_style	40
+XGCValues.join_style	44
+XGCValues.fill_style	48
+XGCValues.fill_rule	52
+XGCValues.arc_mode	56
+XGCValues.tile	64
+XGCValues.stipple	72
+XGCValues.ts_x_origin	80
+XGCValues.ts_y_origin	84
+XGCValues.font	88
+XGCValues.subwindow_mode	96
+XGCValues.graphics_exposures	100
+XGCValues.clip_x_origin	104
+XGCValues.clip_y_origin	108
+XGCValues.clip_mask	112
+XGCValues.dash_offset	120
+XGCValues.dashes	124
+XGCValues	128
+XFocusChangeEvent.type	0
+XFocusChangeEvent.serial	8
+XFocusChangeEvent.send_event	16
+XFocusChangeEvent.display	24
+XFocusChangeEvent.window	32
+XFocusChangeEvent.mode	40
+XFocusChangeEvent.detail	44
+XFocusChangeEvent	48
+XPixmapFormatValues.depth	0
+XPixmapFormatValues.bits_per_pixel	4
+XPixmapFormatValues.scanline_pad	8
+XPixmapFormatValues	12
+XMapEvent.type	0
+XMapEvent.serial	8
+XMapEvent.send_event	16
+XMapEvent.display	24
+XMapEvent.event	32
+XMapEvent.window	40
+XMapEvent.override_redirect	48
+XMapEvent	56
+XkbBellNotifyEvent.type	0
+XkbBellNotifyEvent.serial	8
+XkbBellNotifyEvent.send_event	16
+XkbBellNotifyEvent.display	24
+XkbBellNotifyEvent.time	32
+XkbBellNotifyEvent.xkb_type	40
+XkbBellNotifyEvent.device	44
+XkbBellNotifyEvent.percent	48
+XkbBellNotifyEvent.pitch	52
+XkbBellNotifyEvent.duration	56
+XkbBellNotifyEvent.bell_class	60
+XkbBellNotifyEvent.bell_id	64
+XkbBellNotifyEvent.name	72
+XkbBellNotifyEvent.window	80
+XkbBellNotifyEvent.event_only	88
+XkbBellNotifyEvent	96
+XIMStringConversionText.length	0
+XIMStringConversionText.feedback	8
+XIMStringConversionText.encoding_is_wchar	16
+XIMStringConversionText.string	24
+XIMStringConversionText	32
+XKeyboardState.key_click_percent	0
+XKeyboardState.bell_percent	4
+XKeyboardState.bell_pitch	8
+XKeyboardState.bell_duration	12
+XKeyboardState.led_mask	16
+XKeyboardState.global_auto_repeat	24
+XKeyboardState.auto_repeats	28
+XKeyboardState	64
+XkbEvent.type	0
+XkbEvent.any	0
+XkbEvent.new_kbd	0
+XkbEvent.map	0
+XkbEvent.state	0
+XkbEvent.ctrls	0
+XkbEvent.indicators	0
+XkbEvent.names	0
+XkbEvent.compat	0
+XkbEvent.bell	0
+XkbEvent.message	0
+XkbEvent.accessx	0
+XkbEvent.device	0
+XkbEvent.core	0
+XkbEvent	192
+XPoint.x	0
+XPoint.y	2
+XPoint	4
+XSegment.x1	0
+XSegment.y1	2
+XSegment.x2	4
+XSegment.y2	6
+XSegment	8
+XIconSize.min_width	0
+XIconSize.min_height	4
+XIconSize.max_width	8
+XIconSize.max_height	12
+XIconSize.width_inc	16
+XIconSize.height_inc	20
+XIconSize	24
+XIMCallback.client_data	0
+XIMCallback.callback	8
+XIMCallback	16
+XConfigureEvent.type	0
+XConfigureEvent.serial	8
+XConfigureEvent.send_event	16
+XConfigureEvent.display	24
+XConfigureEvent.event	32
+XConfigureEvent.window	40
+XConfigureEvent.x	48
+XConfigureEvent.y	52
+XConfigureEvent.width	56
+XConfigureEvent.height	60
+XConfigureEvent.border_width	64
+XConfigureEvent.above	72
+XConfigureEvent.override_redirect	80
+XConfigureEvent	88
+XRectangle.x	0
+XRectangle.y	2
+XRectangle.width	4
+XRectangle.height	6
+XRectangle	8
+XkbNamesNotifyEvent.type	0
+XkbNamesNotifyEvent.serial	8
+XkbNamesNotifyEvent.send_event	16
+XkbNamesNotifyEvent.display	24
+XkbNamesNotifyEvent.time	32
+XkbNamesNotifyEvent.xkb_type	40
+XkbNamesNotifyEvent.device	44
+XkbNamesNotifyEvent.changed	48
+XkbNamesNotifyEvent.first_type	52
+XkbNamesNotifyEvent.num_types	56
+XkbNamesNotifyEvent.first_lvl	60
+XkbNamesNotifyEvent.num_lvls	64
+XkbNamesNotifyEvent.num_aliases	68
+XkbNamesNotifyEvent.num_radio_groups	72
+XkbNamesNotifyEvent.changed_vmods	76
+XkbNamesNotifyEvent.changed_groups	80
+XkbNamesNotifyEvent.changed_indicators	84
+XkbNamesNotifyEvent.first_key	88
+XkbNamesNotifyEvent.num_keys	92
+XkbNamesNotifyEvent	96
+XCreateWindowEvent.type	0
+XCreateWindowEvent.serial	8
+XCreateWindowEvent.send_event	16
+XCreateWindowEvent.display	24
+XCreateWindowEvent.parent	32
+XCreateWindowEvent.window	40
+XCreateWindowEvent.x	48
+XCreateWindowEvent.y	52
+XCreateWindowEvent.width	56
+XCreateWindowEvent.height	60
+XCreateWindowEvent.border_width	64
+XCreateWindowEvent.override_redirect	68
+XCreateWindowEvent	72
+XVisibilityEvent.type	0
+XVisibilityEvent.serial	8
+XVisibilityEvent.send_event	16
+XVisibilityEvent.display	24
+XVisibilityEvent.window	32
+XVisibilityEvent.state	40
+XVisibilityEvent	48
+XWMHints.flags	0
+XWMHints.initial_state	12
+XWMHints.icon_pixmap	16
+XWMHints.icon_window	24
+XWMHints.icon_x	32
+XWMHints.icon_y	36
+XWMHints.icon_mask	40
+XWMHints.input	8
+XWMHints.window_group	48
+XWMHints	56
+XCrossingEvent.type	0
+XCrossingEvent.serial	8
+XCrossingEvent.send_event	16
+XCrossingEvent.display	24
+XCrossingEvent.window	32
+XCrossingEvent.root	40
+XCrossingEvent.subwindow	48
+XCrossingEvent.time	56
+XCrossingEvent.x	64
+XCrossingEvent.y	68
+XCrossingEvent.x_root	72
+XCrossingEvent.y_root	76
+XCrossingEvent.mode	80
+XCrossingEvent.detail	84
+XCrossingEvent.same_screen	88
+XCrossingEvent.focus	92
+XCrossingEvent.state	96
+XCrossingEvent	104
+XSelectionRequestEvent.type	0
+XSelectionRequestEvent.serial	8
+XSelectionRequestEvent.send_event	16
+XSelectionRequestEvent.display	24
+XSelectionRequestEvent.owner	32
+XSelectionRequestEvent.requestor	40
+XSelectionRequestEvent.selection	48
+XSelectionRequestEvent.target	56
+XSelectionRequestEvent.property	64
+XSelectionRequestEvent.time	72
+XSelectionRequestEvent	80
+XNoExposeEvent.type	0
+XNoExposeEvent.serial	8
+XNoExposeEvent.send_event	16
+XNoExposeEvent.display	24
+XNoExposeEvent.drawable	32
+XNoExposeEvent.major_code	40
+XNoExposeEvent.minor_code	44
+XNoExposeEvent	48
+XHostAddress.family	0
+XHostAddress.length	4
+XHostAddress.address	8
+XHostAddress	16
+XColormapEvent.type	0
+XColormapEvent.serial	8
+XColormapEvent.send_event	16
+XColormapEvent.display	24
+XColormapEvent.window	32
+XColormapEvent.colormap	40
+XColormapEvent.new	48
+XColormapEvent.state	52
+XColormapEvent	56
+ColorEntry.r	0
+ColorEntry.g	1
+ColorEntry.b	2
+ColorEntry.flags	3
+ColorEntry	4
+XResizeRequestEvent.type	0
+XResizeRequestEvent.serial	8
+XResizeRequestEvent.send_event	16
+XResizeRequestEvent.display	24
+XResizeRequestEvent.window	32
+XResizeRequestEvent.width	40
+XResizeRequestEvent.height	44
+XResizeRequestEvent	48
+Depth.depth	0
+Depth.nvisuals	4
+Depth.visuals	8
+Depth	16
+XPropertyEvent.type	0
+XPropertyEvent.serial	8
+XPropertyEvent.send_event	16
+XPropertyEvent.display	24
+XPropertyEvent.window	32
+XPropertyEvent.atom	40
+XPropertyEvent.time	48
+XPropertyEvent.state	56
+XPropertyEvent	64
+XDestroyWindowEvent.type	0
+XDestroyWindowEvent.serial	8
+XDestroyWindowEvent.send_event	16
+XDestroyWindowEvent.display	24
+XDestroyWindowEvent.event	32
+XDestroyWindowEvent.window	40
+XDestroyWindowEvent	48
+XStandardColormap.colormap	0
+XStandardColormap.red_max	8
+XStandardColormap.red_mult	16
+XStandardColormap.green_max	24
+XStandardColormap.green_mult	32
+XStandardColormap.blue_max	40
+XStandardColormap.blue_mult	48
+XStandardColormap.base_pixel	56
+XStandardColormap.visualid	64
+XStandardColormap.killid	72
+XStandardColormap	80
+XComposeStatus.compose_ptr	0
+XComposeStatus.chars_matched	8
+XComposeStatus	16
+AwtGraphicsConfigData.awt_depth	0
+AwtGraphicsConfigData.awt_cmap	8
+AwtGraphicsConfigData.awt_visInfo	16
+AwtGraphicsConfigData.awt_num_colors	80
+AwtGraphicsConfigData.awtImage	88
+AwtGraphicsConfigData.AwtColorMatch	96
+AwtGraphicsConfigData.monoImage	104
+AwtGraphicsConfigData.monoPixmap	112
+AwtGraphicsConfigData.monoPixmapWidth	120
+AwtGraphicsConfigData.monoPixmapHeight	124
+AwtGraphicsConfigData.monoPixmapGC	128
+AwtGraphicsConfigData.pixelStride	136
+AwtGraphicsConfigData.color_data	144
+AwtGraphicsConfigData.glxInfo	152
+AwtGraphicsConfigData.isTranslucencySupported	160
+AwtGraphicsConfigData.renderPictFormat	168
+AwtGraphicsConfigData	208
+XColor.pixel	0
+XColor.red	8
+XColor.green	10
+XColor.blue	12
+XColor.flags	14
+XColor.pad	15
+XColor	16
+XTextProperty.value	0
+XTextProperty.encoding	8
+XTextProperty.format	16
+XTextProperty.nitems	24
+XTextProperty	32
--- a/src/windows/classes/sun/nio/ch/PollArrayWrapper.java	Thu Jan 24 18:06:24 2013 +0400
+++ b/src/windows/classes/sun/nio/ch/PollArrayWrapper.java	Mon Jan 28 14:23:09 2013 +0100
@@ -28,6 +28,8 @@
 
 package sun.nio.ch;
 
+import java.lang.annotation.Native;
+
 /**
  * Manipulates a native array of structs corresponding to (fd, events) pairs.
  *
@@ -46,19 +48,19 @@
 
     long pollArrayAddress; // pollArrayAddress
 
-    private static final short FD_OFFSET     = 0; // fd offset in pollfd
-    private static final short EVENT_OFFSET  = 4; // events offset in pollfd
+    @Native private static final short FD_OFFSET     = 0; // fd offset in pollfd
+    @Native private static final short EVENT_OFFSET  = 4; // events offset in pollfd
 
     static short SIZE_POLLFD = 8; // sizeof pollfd struct
 
     // events masks
-    static final short POLLIN     = AbstractPollArrayWrapper.POLLIN;
-    static final short POLLOUT    = AbstractPollArrayWrapper.POLLOUT;
-    static final short POLLERR    = AbstractPollArrayWrapper.POLLERR;
-    static final short POLLHUP    = AbstractPollArrayWrapper.POLLHUP;
-    static final short POLLNVAL   = AbstractPollArrayWrapper.POLLNVAL;
-    static final short POLLREMOVE = AbstractPollArrayWrapper.POLLREMOVE;
-    static final short POLLCONN   = 0x0002;
+    @Native static final short POLLIN     = AbstractPollArrayWrapper.POLLIN;
+    @Native static final short POLLOUT    = AbstractPollArrayWrapper.POLLOUT;
+    @Native static final short POLLERR    = AbstractPollArrayWrapper.POLLERR;
+    @Native static final short POLLHUP    = AbstractPollArrayWrapper.POLLHUP;
+    @Native static final short POLLNVAL   = AbstractPollArrayWrapper.POLLNVAL;
+    @Native static final short POLLREMOVE = AbstractPollArrayWrapper.POLLREMOVE;
+    @Native static final short POLLCONN   = 0x0002;
 
     private int size; // Size of the pollArray
 
--- a/test/sun/text/resources/LocaleData	Thu Jan 24 18:06:24 2013 +0400
+++ b/test/sun/text/resources/LocaleData	Mon Jan 28 14:23:09 2013 +0100
@@ -7660,3 +7660,6 @@
 
 # bug 7195759
 CurrencyNames//ZMW=ZMW
+
+# bug 7114053
+LocaleNames/sq/sq=shqip
--- a/test/sun/text/resources/LocaleDataTest.java	Thu Jan 24 18:06:24 2013 +0400
+++ b/test/sun/text/resources/LocaleDataTest.java	Mon Jan 28 14:23:09 2013 +0100
@@ -34,7 +34,7 @@
  *      6509039 6609737 6610748 6645271 6507067 6873931 6450945 6645268 6646611
  *      6645405 6650730 6910489 6573250 6870908 6585666 6716626 6914413 6916787
  *      6919624 6998391 7019267 7020960 7025837 7020583 7036905 7066203 7101495
- *      7003124 7085757 7028073 7171028 7189611 8000983 7195759
+ *      7003124 7085757 7028073 7171028 7189611 8000983 7195759 7114053
  * @summary Verify locale data
  *
  */