changeset 275:3e599d98875d jdk7-b27

Merge
author tbell
date Fri, 16 May 2008 12:25:57 -0700
parents 2bf15b903bec 8767ccc53b42
children da9a7ef8d34e a36a7f0f11ec 41470017e42f
files
diffstat 331 files changed, 8770 insertions(+), 3233 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/classes/com/sun/imageio/plugins/gif/GIFImageReader.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/imageio/plugins/gif/GIFImageReader.java	Fri May 16 12:25:57 2008 -0700
@@ -504,7 +504,7 @@
             }
 
             // Found position of metadata for image 0
-            imageStartPosition.add(new Long(stream.getStreamPosition()));
+            imageStartPosition.add(Long.valueOf(stream.getStreamPosition()));
         } catch (IOException e) {
             throw new IIOException("I/O error reading header!", e);
         }
--- a/src/share/classes/com/sun/imageio/plugins/gif/GIFWritableImageMetadata.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/imageio/plugins/gif/GIFWritableImageMetadata.java	Fri May 16 12:25:57 2008 -0700
@@ -98,7 +98,7 @@
         try {
             return data.getBytes("ISO-8859-1");
         } catch (UnsupportedEncodingException e) {
-            return (new String("")).getBytes();
+            return "".getBytes();
         }
     }
 
--- a/src/share/classes/com/sun/java/swing/plaf/gtk/GTKColorChooserPanel.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/java/swing/plaf/gtk/GTKColorChooserPanel.java	Fri May 16 12:25:57 2008 -0700
@@ -328,7 +328,7 @@
         setHSB(hue, saturation, brightness);
         if (update) {
             settingColor = true;
-            hueSpinner.setValue(new Integer((int)(hue * 360)));
+            hueSpinner.setValue(Integer.valueOf((int)(hue * 360)));
             settingColor = false;
         }
     }
@@ -376,8 +376,8 @@
         setHSB(hue, s, b);
         if (update) {
             settingColor = true;
-            saturationSpinner.setValue(new Integer((int)(s * 255)));
-            valueSpinner.setValue(new Integer((int)(b * 255)));
+            saturationSpinner.setValue(Integer.valueOf((int)(s * 255)));
+            valueSpinner.setValue(Integer.valueOf((int)(b * 255)));
             settingColor = false;
         }
     }
@@ -391,9 +391,9 @@
         setColor(color, false, true, true);
 
         settingColor = true;
-        hueSpinner.setValue(new Integer((int)(hue * 360)));
-        saturationSpinner.setValue(new Integer((int)(saturation * 255)));
-        valueSpinner.setValue(new Integer((int)(brightness * 255)));
+        hueSpinner.setValue(Integer.valueOf((int)(hue * 360)));
+        saturationSpinner.setValue(Integer.valueOf((int)(saturation * 255)));
+        valueSpinner.setValue(Integer.valueOf((int)(brightness * 255)));
         settingColor = false;
     }
 
@@ -409,9 +409,9 @@
         setColor(color, false, false, true);
 
         settingColor = true;
-        redSpinner.setValue(new Integer(color.getRed()));
-        greenSpinner.setValue(new Integer(color.getGreen()));
-        blueSpinner.setValue(new Integer(color.getBlue()));
+        redSpinner.setValue(Integer.valueOf(color.getRed()));
+        greenSpinner.setValue(Integer.valueOf(color.getGreen()));
+        blueSpinner.setValue(Integer.valueOf(color.getBlue()));
         settingColor = false;
     }
 
@@ -454,13 +454,13 @@
         colorNameTF.setText("#" + hexString.substring(1));
 
         if (updateSpinners) {
-            redSpinner.setValue(new Integer(color.getRed()));
-            greenSpinner.setValue(new Integer(color.getGreen()));
-            blueSpinner.setValue(new Integer(color.getBlue()));
+            redSpinner.setValue(Integer.valueOf(color.getRed()));
+            greenSpinner.setValue(Integer.valueOf(color.getGreen()));
+            blueSpinner.setValue(Integer.valueOf(color.getBlue()));
 
-            hueSpinner.setValue(new Integer((int)(hue * 360)));
-            saturationSpinner.setValue(new Integer((int)(saturation * 255)));
-            valueSpinner.setValue(new Integer((int)(brightness * 255)));
+            hueSpinner.setValue(Integer.valueOf((int)(hue * 360)));
+            saturationSpinner.setValue(Integer.valueOf((int)(saturation * 255)));
+            valueSpinner.setValue(Integer.valueOf((int)(brightness * 255)));
         }
         settingColor = false;
     }
--- a/src/share/classes/com/sun/java/swing/plaf/gtk/GTKFileChooserUI.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/java/swing/plaf/gtk/GTKFileChooserUI.java	Fri May 16 12:25:57 2008 -0700
@@ -97,14 +97,11 @@
     private static final Dimension hstrut3 = new Dimension(3, 1);
     private static final Dimension vstrut10 = new Dimension(1, 10);
 
-    private static final Insets insets = new Insets(10, 10, 10, 10);
-
     private static Dimension prefListSize = new Dimension(75, 150);
 
     private static Dimension PREF_SIZE = new Dimension(435, 360);
     private static Dimension MIN_SIZE = new Dimension(200, 300);
 
-    private static Dimension PREF_ACC_SIZE = new Dimension(10, 10);
     private static Dimension ZERO_ACC_SIZE = new Dimension(1, 1);
 
     private static Dimension MAX_SIZE = new Dimension(Short.MAX_VALUE, Short.MAX_VALUE);
@@ -125,7 +122,6 @@
     private JPanel bottomButtonPanel;
     private GTKDirectoryModel model = null;
     private Action newFolderAction;
-    private JPanel interior;
     private boolean readOnly;
     private boolean showDirectoryIcons;
     private boolean showFileIcons;
@@ -710,15 +706,19 @@
         bottomButtonPanel.setName("GTKFileChooser.bottomButtonPanel");
         align(bottomButtonPanel);
 
+        JPanel pnButtons = new JPanel(new GridLayout(1, 2, 5, 0));
+
         JButton cancelButton = getCancelButton(fc);
         align(cancelButton);
         cancelButton.setMargin(buttonMargin);
-        bottomButtonPanel.add(cancelButton);
+        pnButtons.add(cancelButton);
 
-        JButton approveButton = getApproveButton(fc);;
+        JButton approveButton = getApproveButton(fc);
         align(approveButton);
         approveButton.setMargin(buttonMargin);
-        bottomButtonPanel.add(approveButton);
+        pnButtons.add(approveButton);
+
+        bottomButtonPanel.add(pnButtons);
 
         if (fc.getControlButtonsAreShown()) {
             fc.add(bottomButtonPanel, BorderLayout.SOUTH);
@@ -1108,7 +1108,7 @@
             // Get the canonical (full) path. This has the side
             // benefit of removing extraneous chars from the path,
             // for example /foo/bar/ becomes /foo/bar
-            File canonical = null;
+            File canonical;
             try {
                 canonical = fsv.createFileObject(ShellFolder.getNormalizedFile(directory).getPath());
             } catch (IOException e) {
--- a/src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java	Fri May 16 12:25:57 2008 -0700
@@ -336,7 +336,7 @@
         // populate the table with the values from basic.
         super.initComponentDefaults(table);
 
-        Integer zero =  new Integer(0);
+        Integer zero =  Integer.valueOf(0);
         Object zeroBorder = new sun.swing.SwingLazyValue(
             "javax.swing.plaf.BorderUIResource$EmptyBorderUIResource",
             new Object[] {zero, zero, zero, zero});
@@ -371,7 +371,7 @@
         int vProgWidth  =  22 - (progXThickness * 2);
         int vProgHeight =  80 - (progYThickness * 2);
 
-        Integer caretBlinkRate = new Integer(500);
+        Integer caretBlinkRate = Integer.valueOf(500);
         Insets zeroInsets = new InsetsUIResource(0, 0, 0, 0);
 
         Double defaultCaretAspectRatio = new Double(0.025);
@@ -540,7 +540,7 @@
         }
 
         Object[] defaults = new Object[] {
-            "ArrowButton.size", new Integer(13),
+            "ArrowButton.size", Integer.valueOf(13),
 
 
             "Button.defaultButtonFollowsFocus", Boolean.FALSE,
@@ -893,8 +893,8 @@
 
 
             "ScrollBar.squareButtons", Boolean.FALSE,
-            "ScrollBar.thumbHeight", new Integer(14),
-            "ScrollBar.width", new Integer(16),
+            "ScrollBar.thumbHeight", Integer.valueOf(14),
+            "ScrollBar.width", Integer.valueOf(16),
             "ScrollBar.minimumThumbSize", new Dimension(8, 8),
             "ScrollBar.maximumThumbSize", new Dimension(4096, 4096),
             "ScrollBar.allowsAbsolutePositioning", Boolean.TRUE,
@@ -954,12 +954,12 @@
 
 
             "Separator.insets", zeroInsets,
-            "Separator.thickness", new Integer(2),
+            "Separator.thickness", Integer.valueOf(2),
 
 
             "Slider.paintValue", Boolean.TRUE,
-            "Slider.thumbWidth", new Integer(30),
-            "Slider.thumbHeight", new Integer(14),
+            "Slider.thumbWidth", Integer.valueOf(30),
+            "Slider.thumbHeight", Integer.valueOf(14),
             "Slider.focusInputMap",
                     new UIDefaults.LazyInputMap(new Object[] {
                             "RIGHT", "positiveUnitIncrement",
@@ -982,7 +982,7 @@
                              "LEFT", "positiveUnitIncrement",
                           "KP_LEFT", "positiveUnitIncrement",
                          }),
-
+            "Slider.onlyLeftMouseButtonDrag", Boolean.FALSE,
 
             "Spinner.ancestorInputMap",
                new UIDefaults.LazyInputMap(new Object[] {
@@ -1013,9 +1013,9 @@
                     }),
 
 
-            "SplitPane.size", new Integer(7),
-            "SplitPane.oneTouchOffset", new Integer(2),
-            "SplitPane.oneTouchButtonSize", new Integer(5),
+            "SplitPane.size", Integer.valueOf(7),
+            "SplitPane.oneTouchOffset", Integer.valueOf(2),
+            "SplitPane.oneTouchButtonSize", Integer.valueOf(5),
             "SplitPane.supportsOneTouchButtons", Boolean.FALSE,
 
 
@@ -1223,13 +1223,13 @@
 
             "ToolTip.font", new FontLazyValue(Region.TOOL_TIP),
 
-            "Tree.padding", new Integer(4),
+            "Tree.padding", Integer.valueOf(4),
             "Tree.background", tableBg,
             "Tree.drawHorizontalLines", Boolean.FALSE,
             "Tree.drawVerticalLines", Boolean.FALSE,
-            "Tree.rowHeight", new Integer(-1),
+            "Tree.rowHeight", Integer.valueOf(-1),
             "Tree.scrollsOnExpand", Boolean.FALSE,
-            "Tree.expanderSize", new Integer(10),
+            "Tree.expanderSize", Integer.valueOf(10),
             "Tree.repaintWholeRow", Boolean.TRUE,
             "Tree.closedIcon", null,
             "Tree.leafIcon", null,
@@ -1240,8 +1240,8 @@
             "Tree.collapsedIcon", new GTKStyle.GTKLazyValue(
                               "com.sun.java.swing.plaf.gtk.GTKIconFactory",
                               "getTreeCollapsedIcon"),
-            "Tree.leftChildIndent", new Integer(2),
-            "Tree.rightChildIndent", new Integer(12),
+            "Tree.leftChildIndent", Integer.valueOf(2),
+            "Tree.rightChildIndent", Integer.valueOf(12),
             "Tree.scrollsHorizontallyAndVertically", Boolean.FALSE,
             "Tree.drawsFocusBorder", Boolean.TRUE,
             "Tree.focusInputMap",
--- a/src/share/classes/com/sun/java/swing/plaf/gtk/GTKStyle.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/java/swing/plaf/gtk/GTKStyle.java	Fri May 16 12:25:57 2008 -0700
@@ -851,7 +851,7 @@
                 int focusLineWidth = getClassSpecificIntValue(context,
                         "focus-line-width", 0);
                 if (value == null && focusLineWidth > 0) {
-                    value = new Integer(16 + 2 * focusLineWidth);
+                    value = Integer.valueOf(16 + 2 * focusLineWidth);
                 }
             }
             return value;
@@ -975,12 +975,12 @@
 
         private static void initIconTypeMap() {
             ICON_TYPE_MAP = new HashMap<String,Integer>();
-            ICON_TYPE_MAP.put("gtk-menu", new Integer(1));
-            ICON_TYPE_MAP.put("gtk-small-toolbar", new Integer(2));
-            ICON_TYPE_MAP.put("gtk-large-toolbar", new Integer(3));
-            ICON_TYPE_MAP.put("gtk-button", new Integer(4));
-            ICON_TYPE_MAP.put("gtk-dnd", new Integer(5));
-            ICON_TYPE_MAP.put("gtk-dialog", new Integer(6));
+            ICON_TYPE_MAP.put("gtk-menu", Integer.valueOf(1));
+            ICON_TYPE_MAP.put("gtk-small-toolbar", Integer.valueOf(2));
+            ICON_TYPE_MAP.put("gtk-large-toolbar", Integer.valueOf(3));
+            ICON_TYPE_MAP.put("gtk-button", Integer.valueOf(4));
+            ICON_TYPE_MAP.put("gtk-dnd", Integer.valueOf(5));
+            ICON_TYPE_MAP.put("gtk-dialog", Integer.valueOf(6));
         }
 
     }
--- a/src/share/classes/com/sun/java/swing/plaf/gtk/Metacity.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/java/swing/plaf/gtk/Metacity.java	Fri May 16 12:25:57 2008 -0700
@@ -178,7 +178,7 @@
                         name = child.getNodeName();
                         Object value = null;
                         if ("distance".equals(name)) {
-                            value = new Integer(getIntAttr(child, "value", 0));
+                            value = Integer.valueOf(getIntAttr(child, "value", 0));
                         } else if ("border".equals(name)) {
                             value = new Insets(getIntAttr(child, "top", 0),
                                                getIntAttr(child, "left", 0),
@@ -808,7 +808,7 @@
     protected void setFrameGeometry(JComponent titlePane, Map gm) {
         this.frameGeometry = gm;
         if (getInt("top_height") == 0 && titlePane != null) {
-            gm.put("top_height", new Integer(titlePane.getHeight()));
+            gm.put("top_height", Integer.valueOf(titlePane.getHeight()));
         }
     }
 
--- a/src/share/classes/com/sun/java/swing/plaf/motif/MotifGraphicsUtils.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/java/swing/plaf/motif/MotifGraphicsUtils.java	Fri May 16 12:25:57 2008 -0700
@@ -225,15 +225,15 @@
         if(b.getIcon() != null) {
             Icon icon;
             if(!model.isEnabled()) {
-                icon = (Icon) b.getDisabledIcon();
+                icon = b.getDisabledIcon();
             } else if(model.isPressed() && model.isArmed()) {
-                icon = (Icon) b.getPressedIcon();
+                icon = b.getPressedIcon();
                 if(icon == null) {
                     // Use default icon
-                    icon = (Icon) b.getIcon();
+                    icon = b.getIcon();
                 }
             } else {
-                icon = (Icon) b.getIcon();
+                icon = b.getIcon();
             }
 
             if (icon!=null) {
--- a/src/share/classes/com/sun/java/swing/plaf/motif/MotifInternalFrameTitlePane.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/java/swing/plaf/motif/MotifInternalFrameTitlePane.java	Fri May 16 12:25:57 2008 -0700
@@ -86,18 +86,18 @@
 
     protected void assembleSystemMenu() {
         systemMenu = new JPopupMenu();
-        JMenuItem mi = (JMenuItem)systemMenu.add(new JMenuItem(restoreAction));
+        JMenuItem mi = systemMenu.add(new JMenuItem(restoreAction));
         mi.setMnemonic('R');
-        mi = (JMenuItem) systemMenu.add(new JMenuItem(moveAction));
+        mi = systemMenu.add(new JMenuItem(moveAction));
         mi.setMnemonic('M');
-        mi = (JMenuItem) systemMenu.add(new JMenuItem(sizeAction));
+        mi = systemMenu.add(new JMenuItem(sizeAction));
         mi.setMnemonic('S');
-        mi = (JMenuItem) systemMenu.add(new JMenuItem(iconifyAction));
+        mi = systemMenu.add(new JMenuItem(iconifyAction));
         mi.setMnemonic('n');
-        mi = (JMenuItem) systemMenu.add(new JMenuItem(maximizeAction));
+        mi = systemMenu.add(new JMenuItem(maximizeAction));
         mi.setMnemonic('x');
         systemMenu.add(new JSeparator());
-        mi = (JMenuItem) systemMenu.add(new JMenuItem(closeAction));
+        mi = systemMenu.add(new JMenuItem(closeAction));
         mi.setMnemonic('C');
 
         systemButton = new SystemButton();
@@ -157,7 +157,7 @@
     }
 
     public void propertyChange(PropertyChangeEvent evt) {
-        String prop = (String)evt.getPropertyName();
+        String prop = evt.getPropertyName();
         JInternalFrame f = (JInternalFrame)evt.getSource();
         boolean value = false;
         if (JInternalFrame.IS_SELECTED_PROPERTY.equals(prop)) {
--- a/src/share/classes/com/sun/java/swing/plaf/motif/MotifLookAndFeel.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/java/swing/plaf/motif/MotifLookAndFeel.java	Fri May 16 12:25:57 2008 -0700
@@ -290,7 +290,7 @@
 
         Object unselectedTabBackground = new UIDefaults.LazyValue() {
             public Object createValue(UIDefaults table) {
-                Color c = (Color)table.getColor("control");
+                Color c = table.getColor("control");
                 return new ColorUIResource(Math.max((int)(c.getRed()*.85),0),
                                            Math.max((int)(c.getGreen()*.85),0),
                                            Math.max((int)(c.getBlue()*.85),0));
@@ -299,7 +299,7 @@
 
         Object unselectedTabForeground = new UIDefaults.LazyValue() {
             public Object createValue(UIDefaults table) {
-                Color c = (Color)table.getColor("controlText");
+                Color c = table.getColor("controlText");
                 return new ColorUIResource(Math.max((int)(c.getRed()*.85),0),
                                            Math.max((int)(c.getGreen()*.85),0),
                                            Math.max((int)(c.getBlue()*.85),0));
@@ -308,7 +308,7 @@
 
         Object unselectedTabShadow = new UIDefaults.LazyValue() {
             public Object createValue(UIDefaults table) {
-                Color c = (Color)table.getColor("control");
+                Color c = table.getColor("control");
                 Color base = new Color(Math.max((int)(c.getRed()*.85),0),
                                        Math.max((int)(c.getGreen()*.85),0),
                                        Math.max((int)(c.getBlue()*.85),0));
@@ -318,7 +318,7 @@
 
         Object unselectedTabHighlight = new UIDefaults.LazyValue() {
             public Object createValue(UIDefaults table) {
-                Color c = (Color)table.getColor("control");
+                Color c = table.getColor("control");
                 Color base = new Color(Math.max((int)(c.getRed()*.85),0),
                                        Math.max((int)(c.getGreen()*.85),0),
                                        Math.max((int)(c.getBlue()*.85),0));
@@ -567,7 +567,7 @@
             "ProgressBar.selectionBackground", table.get("controlText"),
             "ProgressBar.border", loweredBevelBorder,
             "ProgressBar.cellLength", new Integer(6),
-            "ProgressBar.cellSpacing", new Integer(0),
+            "ProgressBar.cellSpacing", Integer.valueOf(0),
 
             // Buttons
             "Button.margin", new InsetsUIResource(2, 4, 2, 4),
@@ -859,7 +859,7 @@
             "SplitPane.background", table.get("control"),
             "SplitPane.highlight", table.get("controlHighlight"),
             "SplitPane.shadow", table.get("controlShadow"),
-            "SplitPane.dividerSize", new Integer(20),
+            "SplitPane.dividerSize", Integer.valueOf(20),
             "SplitPane.activeThumb", table.get("activeCaptionBorder"),
             "SplitPane.ancestorInputMap",
                new UIDefaults.LazyInputMap(new Object[] {
@@ -1160,7 +1160,7 @@
               }),
 
             "TextField.caretForeground", black,
-            "TextField.caretBlinkRate", new Integer(500),
+            "TextField.caretBlinkRate", Integer.valueOf(500),
             "TextField.inactiveForeground", table.get("textInactiveText"),
             "TextField.selectionBackground", table.get("textHighlight"),
             "TextField.selectionForeground", table.get("textHighlightText"),
@@ -1171,7 +1171,7 @@
             "TextField.focusInputMap", fieldInputMap,
 
             "PasswordField.caretForeground", black,
-            "PasswordField.caretBlinkRate", new Integer(500),
+            "PasswordField.caretBlinkRate", Integer.valueOf(500),
             "PasswordField.inactiveForeground", table.get("textInactiveText"),
             "PasswordField.selectionBackground", table.get("textHighlight"),
             "PasswordField.selectionForeground", table.get("textHighlightText"),
@@ -1182,7 +1182,7 @@
             "PasswordField.focusInputMap", passwordInputMap,
 
             "TextArea.caretForeground", black,
-            "TextArea.caretBlinkRate", new Integer(500),
+            "TextArea.caretBlinkRate", Integer.valueOf(500),
             "TextArea.inactiveForeground", table.get("textInactiveText"),
             "TextArea.selectionBackground", table.get("textHighlight"),
             "TextArea.selectionForeground", table.get("textHighlightText"),
@@ -1193,7 +1193,7 @@
             "TextArea.focusInputMap", multilineInputMap,
 
             "TextPane.caretForeground", black,
-            "TextPane.caretBlinkRate", new Integer(500),
+            "TextPane.caretBlinkRate", Integer.valueOf(500),
             "TextPane.inactiveForeground", table.get("textInactiveText"),
             "TextPane.selectionBackground", lightGray,
             "TextPane.selectionForeground", table.get("textHighlightText"),
@@ -1204,7 +1204,7 @@
             "TextPane.focusInputMap", multilineInputMap,
 
             "EditorPane.caretForeground", red,
-            "EditorPane.caretBlinkRate", new Integer(500),
+            "EditorPane.caretBlinkRate", Integer.valueOf(500),
             "EditorPane.inactiveForeground", table.get("textInactiveText"),
             "EditorPane.selectionBackground", lightGray,
             "EditorPane.selectionForeground", table.get("textHighlightText"),
--- a/src/share/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java	Fri May 16 12:25:57 2008 -0700
@@ -299,9 +299,9 @@
         initResourceBundle(table);
 
         // *** Shared Fonts
-        Integer twelve = new Integer(12);
-        Integer fontPlain = new Integer(Font.PLAIN);
-        Integer fontBold = new Integer(Font.BOLD);
+        Integer twelve = Integer.valueOf(12);
+        Integer fontPlain = Integer.valueOf(Font.PLAIN);
+        Integer fontBold = Integer.valueOf(Font.BOLD);
 
         Object dialogPlain12 = new SwingLazyValue(
                                "javax.swing.plaf.FontUIResource",
@@ -522,19 +522,19 @@
                                                        toolkit);
         Object WindowBorderWidth      = new DesktopProperty(
                                                        "win.frame.sizingBorderWidth",
-                                                       new Integer(1),
+                                                       Integer.valueOf(1),
                                                        toolkit);
         Object TitlePaneHeight        = new DesktopProperty(
                                                        "win.frame.captionHeight",
-                                                       new Integer(18),
+                                                       Integer.valueOf(18),
                                                        toolkit);
         Object TitleButtonWidth       = new DesktopProperty(
                                                        "win.frame.captionButtonWidth",
-                                                       new Integer(16),
+                                                       Integer.valueOf(16),
                                                        toolkit);
         Object TitleButtonHeight      = new DesktopProperty(
                                                        "win.frame.captionButtonHeight",
-                                                       new Integer(16),
+                                                       Integer.valueOf(16),
                                                        toolkit);
         Object InactiveTextColor      = new DesktopProperty(
                                                        "win.text.grayedTextColor",
@@ -567,7 +567,7 @@
         Object IconFont = ControlFont;
 
         Object scrollBarWidth = new DesktopProperty("win.scrollbar.width",
-                                                    new Integer(16), toolkit);
+                                                    Integer.valueOf(16), toolkit);
 
         Object menuBarHeight = new DesktopProperty("win.menu.height",
                                                    null, toolkit);
@@ -673,12 +673,12 @@
             "Button.disabledForeground", InactiveTextColor,
             "Button.disabledShadow", ControlHighlightColor,
             "Button.focus", black,
-            "Button.dashedRectGapX", new XPValue(new Integer(3), new Integer(5)),
-            "Button.dashedRectGapY", new XPValue(new Integer(3), new Integer(4)),
-            "Button.dashedRectGapWidth", new XPValue(new Integer(6), new Integer(10)),
-            "Button.dashedRectGapHeight", new XPValue(new Integer(6), new Integer(8)),
-            "Button.textShiftOffset", new XPValue(new Integer(0),
-                                                  new Integer(1)),
+            "Button.dashedRectGapX", new XPValue(Integer.valueOf(3), Integer.valueOf(5)),
+            "Button.dashedRectGapY", new XPValue(Integer.valueOf(3), Integer.valueOf(4)),
+            "Button.dashedRectGapWidth", new XPValue(Integer.valueOf(6), Integer.valueOf(10)),
+            "Button.dashedRectGapHeight", new XPValue(Integer.valueOf(6), Integer.valueOf(8)),
+            "Button.textShiftOffset", new XPValue(Integer.valueOf(0),
+                                                  Integer.valueOf(1)),
             // W2K keyboard navigation hidding.
             "Button.showMnemonics", showMnemonics,
             "Button.focusInputMap",
@@ -780,7 +780,7 @@
                }),
 
             // DesktopIcon
-            "DesktopIcon.width", new Integer(160),
+            "DesktopIcon.width", Integer.valueOf(160),
 
             "EditorPane.font", ControlFont,
             "EditorPane.background", WindowBackgroundColor,
@@ -814,9 +814,9 @@
                                                                "icons/NewFolder.gif"),
             "FileChooser.useSystemExtensionHiding", Boolean.TRUE,
 
-            "FileChooser.lookInLabelMnemonic", new Integer(KeyEvent.VK_I),
-            "FileChooser.fileNameLabelMnemonic", new Integer(KeyEvent.VK_N),
-            "FileChooser.filesOfTypeLabelMnemonic", new Integer(KeyEvent.VK_T),
+            "FileChooser.lookInLabelMnemonic", Integer.valueOf(KeyEvent.VK_I),
+            "FileChooser.fileNameLabelMnemonic", Integer.valueOf(KeyEvent.VK_N),
+            "FileChooser.filesOfTypeLabelMnemonic", Integer.valueOf(KeyEvent.VK_T),
             "FileChooser.usesSingleFilePane", Boolean.TRUE,
             "FileChooser.noPlacesBar", new DesktopProperty("win.comdlg.noPlacesBar",
                                                            Boolean.FALSE, toolkit),
@@ -1021,10 +1021,10 @@
             "Menu.selectionBackground", SelectionBackgroundColor,
             "Menu.acceleratorForeground", MenuTextColor,
             "Menu.acceleratorSelectionForeground", SelectionTextColor,
-            "Menu.menuPopupOffsetX", new Integer(0),
-            "Menu.menuPopupOffsetY", new Integer(0),
-            "Menu.submenuPopupOffsetX", new Integer(-4),
-            "Menu.submenuPopupOffsetY", new Integer(-3),
+            "Menu.menuPopupOffsetX", Integer.valueOf(0),
+            "Menu.menuPopupOffsetY", Integer.valueOf(0),
+            "Menu.submenuPopupOffsetX", Integer.valueOf(-4),
+            "Menu.submenuPopupOffsetY", Integer.valueOf(-3),
             "Menu.crossMenuMnemonic", Boolean.FALSE,
             "Menu.preserveTopLevelSelection", Boolean.TRUE,
 
@@ -1184,8 +1184,8 @@
             "ProgressBar.highlight", ControlHighlightColor,
             "ProgressBar.selectionForeground", ControlBackgroundColor,
             "ProgressBar.selectionBackground", SelectionBackgroundColor,
-            "ProgressBar.cellLength", new Integer(7),
-            "ProgressBar.cellSpacing", new Integer(2),
+            "ProgressBar.cellLength", Integer.valueOf(7),
+            "ProgressBar.cellSpacing", Integer.valueOf(2),
             "ProgressBar.indeterminateInsets", new Insets(3, 3, 3, 3),
 
             // *** RootPane.
@@ -1292,7 +1292,7 @@
             "SplitPane.highlight", ControlHighlightColor,
             "SplitPane.shadow", ControlShadowColor,
             "SplitPane.darkShadow", ControlDarkShadowColor,
-            "SplitPane.dividerSize", new Integer(5),
+            "SplitPane.dividerSize", Integer.valueOf(5),
             "SplitPane.ancestorInputMap",
                new UIDefaults.LazyInputMap(new Object[] {
                         "UP", "negativeIncrement",
@@ -1496,7 +1496,7 @@
             "ToggleButton.light", ControlLightColor,
             "ToggleButton.highlight", ControlHighlightColor,
             "ToggleButton.focus", ControlTextColor,
-            "ToggleButton.textShiftOffset", new Integer(1),
+            "ToggleButton.textShiftOffset", Integer.valueOf(1),
             "ToggleButton.focusInputMap",
               new UIDefaults.LazyInputMap(new Object[] {
                             "SPACE", "pressed",
@@ -1548,8 +1548,8 @@
             "Tree.background", WindowBackgroundColor,
             "Tree.foreground", WindowTextColor,
             "Tree.hash", gray,
-            "Tree.leftChildIndent", new Integer(8),
-            "Tree.rightChildIndent", new Integer(11),
+            "Tree.leftChildIndent", Integer.valueOf(8),
+            "Tree.rightChildIndent", Integer.valueOf(11),
             "Tree.textForeground", WindowTextColor,
             "Tree.textBackground", WindowBackgroundColor,
             "Tree.selectionForeground", SelectionTextColor,
@@ -2488,18 +2488,18 @@
         private int direction;
 
         XPDLUValue(int xpdlu, int classicdlu, int direction) {
-            super(new Integer(xpdlu), new Integer(classicdlu));
+            super(Integer.valueOf(xpdlu), Integer.valueOf(classicdlu));
             this.direction = direction;
         }
 
         public Object getXPValue(UIDefaults table) {
             int px = dluToPixels(((Integer)xpValue).intValue(), direction);
-            return new Integer(px);
+            return Integer.valueOf(px);
         }
 
         public Object getClassicValue(UIDefaults table) {
             int px = dluToPixels(((Integer)classicValue).intValue(), direction);
-            return new Integer(px);
+            return Integer.valueOf(px);
         }
     }
 
--- a/src/share/classes/com/sun/tools/hat/Main.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/Main.java	Fri May 16 12:25:57 2008 -0700
@@ -23,18 +23,10 @@
  * have any questions.
  */
 
-
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat;
--- a/src/share/classes/com/sun/tools/hat/build.xml	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/build.xml	Fri May 16 12:25:57 2008 -0700
@@ -27,19 +27,9 @@
 
 <!-- 
 
- The contents of this file are subject to the Sun Public License
- Version 1.0 (the "License"); you may not use this file except in
- compliance with the License. A copy of the License is available at
- http://www.sun.com/, and in the file LICENSE.html in the
- doc directory.
- 
  The Original Code is HAT. The Initial Developer of the
  Original Code is Bill Foote, with contributions from others
- at JavaSoft/Sun. Portions created by Bill Foote and others
- at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- 
- In addition to the formal license, I ask that you don't
- change the history or donations files without permission.
+ at JavaSoft/Sun.
 
 -->
 
--- a/src/share/classes/com/sun/tools/hat/internal/model/AbstractJavaHeapObjectVisitor.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/model/AbstractJavaHeapObjectVisitor.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.model;
--- a/src/share/classes/com/sun/tools/hat/internal/model/ArrayTypeCodes.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/model/ArrayTypeCodes.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.model;
--- a/src/share/classes/com/sun/tools/hat/internal/model/HackJavaValue.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/model/HackJavaValue.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.model;
--- a/src/share/classes/com/sun/tools/hat/internal/model/JavaBoolean.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/model/JavaBoolean.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.model;
--- a/src/share/classes/com/sun/tools/hat/internal/model/JavaByte.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/model/JavaByte.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.model;
--- a/src/share/classes/com/sun/tools/hat/internal/model/JavaChar.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/model/JavaChar.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.model;
--- a/src/share/classes/com/sun/tools/hat/internal/model/JavaClass.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/model/JavaClass.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.model;
--- a/src/share/classes/com/sun/tools/hat/internal/model/JavaDouble.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/model/JavaDouble.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.model;
--- a/src/share/classes/com/sun/tools/hat/internal/model/JavaField.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/model/JavaField.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.model;
--- a/src/share/classes/com/sun/tools/hat/internal/model/JavaFloat.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/model/JavaFloat.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.model;
--- a/src/share/classes/com/sun/tools/hat/internal/model/JavaHeapObject.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/model/JavaHeapObject.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.model;
--- a/src/share/classes/com/sun/tools/hat/internal/model/JavaHeapObjectVisitor.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/model/JavaHeapObjectVisitor.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.model;
--- a/src/share/classes/com/sun/tools/hat/internal/model/JavaInt.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/model/JavaInt.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.model;
--- a/src/share/classes/com/sun/tools/hat/internal/model/JavaLazyReadObject.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/model/JavaLazyReadObject.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.model;
--- a/src/share/classes/com/sun/tools/hat/internal/model/JavaLong.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/model/JavaLong.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.model;
--- a/src/share/classes/com/sun/tools/hat/internal/model/JavaObject.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/model/JavaObject.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.model;
--- a/src/share/classes/com/sun/tools/hat/internal/model/JavaObjectArray.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/model/JavaObjectArray.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.model;
--- a/src/share/classes/com/sun/tools/hat/internal/model/JavaObjectRef.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/model/JavaObjectRef.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.model;
--- a/src/share/classes/com/sun/tools/hat/internal/model/JavaShort.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/model/JavaShort.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.model;
--- a/src/share/classes/com/sun/tools/hat/internal/model/JavaStatic.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/model/JavaStatic.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.model;
--- a/src/share/classes/com/sun/tools/hat/internal/model/JavaThing.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/model/JavaThing.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.model;
--- a/src/share/classes/com/sun/tools/hat/internal/model/JavaValue.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/model/JavaValue.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.model;
--- a/src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.model;
--- a/src/share/classes/com/sun/tools/hat/internal/model/ReachableExcludes.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/model/ReachableExcludes.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.model;
--- a/src/share/classes/com/sun/tools/hat/internal/model/ReachableExcludesImpl.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/model/ReachableExcludesImpl.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.model;
--- a/src/share/classes/com/sun/tools/hat/internal/model/ReachableObjects.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/model/ReachableObjects.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.model;
--- a/src/share/classes/com/sun/tools/hat/internal/model/ReferenceChain.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/model/ReferenceChain.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.model;
--- a/src/share/classes/com/sun/tools/hat/internal/model/Root.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/model/Root.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.model;
--- a/src/share/classes/com/sun/tools/hat/internal/model/Snapshot.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/model/Snapshot.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.model;
--- a/src/share/classes/com/sun/tools/hat/internal/model/StackFrame.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/model/StackFrame.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.model;
--- a/src/share/classes/com/sun/tools/hat/internal/model/StackTrace.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/model/StackTrace.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.model;
--- a/src/share/classes/com/sun/tools/hat/internal/oql/OQLEngine.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/oql/OQLEngine.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.oql;
--- a/src/share/classes/com/sun/tools/hat/internal/oql/OQLException.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/oql/OQLException.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.oql;
--- a/src/share/classes/com/sun/tools/hat/internal/oql/OQLQuery.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/oql/OQLQuery.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.oql;
--- a/src/share/classes/com/sun/tools/hat/internal/oql/ObjectVisitor.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/oql/ObjectVisitor.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.oql;
--- a/src/share/classes/com/sun/tools/hat/internal/parser/FileReadBuffer.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/parser/FileReadBuffer.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.parser;
--- a/src/share/classes/com/sun/tools/hat/internal/parser/HprofReader.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/parser/HprofReader.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,21 +23,11 @@
  * have any questions.
  */
 
+
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.parser;
--- a/src/share/classes/com/sun/tools/hat/internal/parser/MappedReadBuffer.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/parser/MappedReadBuffer.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,21 +23,11 @@
  * have any questions.
  */
 
+
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.parser;
--- a/src/share/classes/com/sun/tools/hat/internal/parser/PositionDataInputStream.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/parser/PositionDataInputStream.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.parser;
--- a/src/share/classes/com/sun/tools/hat/internal/parser/PositionInputStream.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/parser/PositionInputStream.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.parser;
--- a/src/share/classes/com/sun/tools/hat/internal/parser/ReadBuffer.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/parser/ReadBuffer.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.parser;
--- a/src/share/classes/com/sun/tools/hat/internal/parser/Reader.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/parser/Reader.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.parser;
--- a/src/share/classes/com/sun/tools/hat/internal/server/AllClassesQuery.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/server/AllClassesQuery.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.server;
--- a/src/share/classes/com/sun/tools/hat/internal/server/AllRootsQuery.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/server/AllRootsQuery.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.server;
--- a/src/share/classes/com/sun/tools/hat/internal/server/ClassQuery.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/server/ClassQuery.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.server;
--- a/src/share/classes/com/sun/tools/hat/internal/server/FinalizerObjectsQuery.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/server/FinalizerObjectsQuery.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.server;
--- a/src/share/classes/com/sun/tools/hat/internal/server/FinalizerSummaryQuery.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/server/FinalizerSummaryQuery.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.server;
--- a/src/share/classes/com/sun/tools/hat/internal/server/HistogramQuery.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/server/HistogramQuery.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.server;
--- a/src/share/classes/com/sun/tools/hat/internal/server/HttpReader.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/server/HttpReader.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.server;
--- a/src/share/classes/com/sun/tools/hat/internal/server/InstancesCountQuery.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/server/InstancesCountQuery.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,19 +24,10 @@
  */
 
 
-/* The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
+/*
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.server;
--- a/src/share/classes/com/sun/tools/hat/internal/server/InstancesQuery.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/server/InstancesQuery.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,19 +24,10 @@
  */
 
 
-/* The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
+/*
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.server;
--- a/src/share/classes/com/sun/tools/hat/internal/server/OQLHelp.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/server/OQLHelp.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.server;
--- a/src/share/classes/com/sun/tools/hat/internal/server/OQLQuery.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/server/OQLQuery.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.server;
--- a/src/share/classes/com/sun/tools/hat/internal/server/ObjectQuery.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/server/ObjectQuery.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,19 +24,10 @@
  */
 
 
-/* The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
+/*
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.server;
--- a/src/share/classes/com/sun/tools/hat/internal/server/PlatformClasses.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/server/PlatformClasses.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,19 +24,10 @@
  */
 
 
-/* The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
+/*
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.server;
--- a/src/share/classes/com/sun/tools/hat/internal/server/QueryHandler.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/server/QueryHandler.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,20 +24,10 @@
  */
 
 
-
-/* The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
+/*
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.server;
--- a/src/share/classes/com/sun/tools/hat/internal/server/QueryListener.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/server/QueryListener.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,19 +24,10 @@
  */
 
 
-/* The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
+/*
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.server;
--- a/src/share/classes/com/sun/tools/hat/internal/server/ReachableQuery.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/server/ReachableQuery.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,20 +24,10 @@
  */
 
 
-
-/* The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
+/*
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.server;
--- a/src/share/classes/com/sun/tools/hat/internal/server/RefsByTypeQuery.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/server/RefsByTypeQuery.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.server;
--- a/src/share/classes/com/sun/tools/hat/internal/server/RootStackQuery.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/server/RootStackQuery.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,19 +24,10 @@
  */
 
 
-/* The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
+/*
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.server;
--- a/src/share/classes/com/sun/tools/hat/internal/server/RootsQuery.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/server/RootsQuery.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,19 +24,10 @@
  */
 
 
-/* The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
+/*
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.server;
--- a/src/share/classes/com/sun/tools/hat/internal/util/ArraySorter.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/util/ArraySorter.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,19 +24,10 @@
  */
 
 
-/* The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
+/*
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.util;
--- a/src/share/classes/com/sun/tools/hat/internal/util/Comparer.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/util/Comparer.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,19 +24,10 @@
  */
 
 
-/* The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
+/*
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.util;
--- a/src/share/classes/com/sun/tools/hat/internal/util/CompositeEnumeration.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/util/CompositeEnumeration.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,20 +25,9 @@
 
 
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- *
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.util;
--- a/src/share/classes/com/sun/tools/hat/internal/util/Misc.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/util/Misc.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,19 +24,10 @@
  */
 
 
-/* The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
+/*
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.util;
--- a/src/share/classes/com/sun/tools/hat/internal/util/VectorSorter.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/internal/util/VectorSorter.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,19 +24,10 @@
  */
 
 
-/* The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- *
+/*
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- *
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
+ * at JavaSoft/Sun.
  */
 
 package com.sun.tools.hat.internal.util;
--- a/src/share/classes/com/sun/tools/hat/resources/hat.js	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/com/sun/tools/hat/resources/hat.js	Fri May 16 12:25:57 2008 -0700
@@ -23,22 +23,10 @@
  * have any questions.
  */
 
-
 /*
- * The contents of this file are subject to the Sun Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. A copy of the License is available at
- * http://www.sun.com/, and in the file LICENSE.html in the
- * doc directory.
- * 
  * The Original Code is HAT. The Initial Developer of the
  * Original Code is Bill Foote, with contributions from others
- * at JavaSoft/Sun. Portions created by Bill Foote and others
- * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
- * 
- * In addition to the formal license, I ask that you don't
- * change the history or donations files without permission.
- * 
+ * at JavaSoft/Sun.
  */
 
 var hatPkg = Packages.com.sun.tools.hat.internal;
--- a/src/share/classes/java/awt/Button.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/Button.java	Fri May 16 12:25:57 2008 -0700
@@ -597,7 +597,7 @@
         public String getAccessibleActionDescription(int i) {
             if (i == 0) {
                 // [[[PENDING:  WDW -- need to provide a localized string]]]
-                return new String("click");
+                return "click";
             } else {
                 return null;
             }
--- a/src/share/classes/java/awt/Color.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/Color.java	Fri May 16 12:25:57 2008 -0700
@@ -51,6 +51,7 @@
  * http://www.w3.org/pub/WWW/Graphics/Color/sRGB.html
  * </A>.
  * <p>
+ * @version     10 Feb 1997
  * @author      Sami Shaio
  * @author      Arthur van Hoff
  * @see         ColorSpace
@@ -1176,23 +1177,32 @@
     }
 
     /**
-     * Creates and returns a {@link PaintContext} used to generate a solid
-     * color pattern.  This enables a <code>Color</code> object to be used
-     * as an argument to any method requiring an object implementing the
-     * {@link Paint} interface.
-     * The same <code>PaintContext</code> is returned, regardless of
-     * whether or not <code>r</code>, <code>r2d</code>,
-     * <code>xform</code>, or <code>hints</code> are <code>null</code>.
-     * @param cm the specified <code>ColorModel</code>
-     * @param r the specified {@link Rectangle}
-     * @param r2d the specified {@link Rectangle2D}
-     * @param xform the specified {@link AffineTransform}
-     * @param hints the specified {@link RenderingHints}
-     * @return a <code>PaintContext</code> that is used to generate a
-     *          solid color pattern.
+     * Creates and returns a {@link PaintContext} used to
+     * generate a solid color field pattern.
+     * See the {@link Paint#createContext specification} of the
+     * method in the {@link Paint} interface for information
+     * on null parameter handling.
+     *
+     * @param cm the preferred {@link ColorModel} which represents the most convenient
+     *           format for the caller to receive the pixel data, or {@code null}
+     *           if there is no preference.
+     * @param r the device space bounding box
+     *                     of the graphics primitive being rendered.
+     * @param r2d the user space bounding box
+     *                   of the graphics primitive being rendered.
+     * @param xform the {@link AffineTransform} from user
+     *              space into device space.
+     * @param hints the set of hints that the context object can use to
+     *              choose between rendering alternatives.
+     * @return the {@code PaintContext} for
+     *         generating color patterns.
      * @see Paint
      * @see PaintContext
-     * @see Graphics2D#setPaint
+     * @see ColorModel
+     * @see Rectangle
+     * @see Rectangle2D
+     * @see AffineTransform
+     * @see RenderingHints
      */
     public synchronized PaintContext createContext(ColorModel cm, Rectangle r,
                                                    Rectangle2D r2d,
--- a/src/share/classes/java/awt/Component.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/Component.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 1995-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1995-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -49,6 +49,7 @@
 import java.io.IOException;
 import java.beans.PropertyChangeListener;
 import java.beans.PropertyChangeSupport;
+import java.beans.Transient;
 import java.awt.event.InputMethodListener;
 import java.awt.event.InputMethodEvent;
 import java.awt.im.InputContext;
@@ -634,7 +635,9 @@
      */
     private PropertyChangeSupport changeSupport;
 
-    private transient final Object changeSupportLock = new Object();
+    // Note: this field is considered final, though readObject() prohibits
+    // initializing final fields.
+    private transient Object changeSupportLock = new Object();
     private Object getChangeSupportLock() {
         return changeSupportLock;
     }
@@ -1003,7 +1006,7 @@
 
     /**
      * Gets this component's locking object (the object that owns the thread
-     * sychronization monitor) for AWT component-tree and layout
+     * synchronization monitor) for AWT component-tree and layout
      * operations.
      * @return this component's locking object
      */
@@ -1100,6 +1103,7 @@
      * @see #setVisible
      * @since JDK1.0
      */
+    @Transient
     public boolean isVisible() {
         return isVisible_NoClientCode();
     }
@@ -1325,12 +1329,15 @@
             KeyboardFocusManager.clearMostRecentFocusOwner(this);
             synchronized (getTreeLock()) {
                 enabled = false;
-                if (isFocusOwner()) {
+                // A disabled lw container is allowed to contain a focus owner.
+                if ((isFocusOwner() || (containsFocus() && !isLightweight())) &&
+                    KeyboardFocusManager.isAutoFocusTransferEnabled())
+                {
                     // Don't clear the global focus owner. If transferFocus
                     // fails, we want the focus to stay on the disabled
                     // Component so that keyboard traversal, et. al. still
                     // makes sense to the user.
-                    autoTransferFocus(false);
+                    transferFocus(false);
                 }
                 ComponentPeer peer = this.peer;
                 if (peer != null) {
@@ -1491,8 +1498,8 @@
             synchronized (getTreeLock()) {
                 visible = false;
                 mixOnHiding(isLightweight());
-                if (containsFocus()) {
-                    autoTransferFocus(true);
+                if (containsFocus() && KeyboardFocusManager.isAutoFocusTransferEnabled()) {
+                    transferFocus(true);
                 }
                 ComponentPeer peer = this.peer;
                 if (peer != null) {
@@ -1531,6 +1538,7 @@
      * @beaninfo
      *       bound: true
      */
+    @Transient
     public Color getForeground() {
         Color foreground = this.foreground;
         if (foreground != null) {
@@ -1585,6 +1593,7 @@
      * @see #setBackground
      * @since JDK1.0
      */
+    @Transient
     public Color getBackground() {
         Color background = this.background;
         if (background != null) {
@@ -1644,6 +1653,7 @@
      * @see #setFont
      * @since JDK1.0
      */
+    @Transient
     public Font getFont() {
         return getFont_NoClientCode();
     }
@@ -6576,12 +6586,8 @@
         }
 
         synchronized (getTreeLock()) {
-            if (isFocusOwner()
-                && KeyboardFocusManager.isAutoFocusTransferEnabled()
-                && !nextFocusHelper())
-            {
-                KeyboardFocusManager.getCurrentKeyboardFocusManager().
-                    clearGlobalFocusOwner();
+            if (isFocusOwner() && KeyboardFocusManager.isAutoFocusTransferEnabledFor(this)) {
+                transferFocus(true);
             }
 
             if (getContainer() != null && isAddNotifyComplete) {
@@ -6716,8 +6722,8 @@
 
         firePropertyChange("focusable", oldFocusable, focusable);
         if (oldFocusable && !focusable) {
-            if (isFocusOwner()) {
-                autoTransferFocus(true);
+            if (isFocusOwner() && KeyboardFocusManager.isAutoFocusTransferEnabled()) {
+                transferFocus(true);
             }
             KeyboardFocusManager.clearMostRecentFocusOwner(this);
         }
@@ -7371,69 +7377,6 @@
         }
     }
 
-    private void autoTransferFocus(boolean clearOnFailure) {
-        Component toTest = KeyboardFocusManager.
-            getCurrentKeyboardFocusManager().getFocusOwner();
-        if (toTest != this) {
-            if (toTest != null) {
-                toTest.autoTransferFocus(clearOnFailure);
-            }
-            return;
-        }
-
-        // Check if there are pending focus requests.  We shouldn't do
-        // auto-transfer if user has already took care of this
-        // component becoming ineligible to hold focus.
-        if (!KeyboardFocusManager.isAutoFocusTransferEnabled()) {
-            return;
-        }
-
-        // the following code will execute only if this Component is the focus
-        // owner
-
-        if (!(isDisplayable() && isVisible() && isEnabled() && isFocusable())) {
-            doAutoTransfer(clearOnFailure);
-            return;
-        }
-
-        toTest = getParent();
-
-        while (toTest != null && !(toTest instanceof Window)) {
-            if (!(toTest.isDisplayable() && toTest.isVisible() &&
-                  (toTest.isEnabled() || toTest.isLightweight()))) {
-                doAutoTransfer(clearOnFailure);
-                return;
-            }
-            toTest = toTest.getParent();
-        }
-    }
-    private void doAutoTransfer(boolean clearOnFailure) {
-        if (focusLog.isLoggable(Level.FINER)) {
-            focusLog.log(Level.FINER, "this = " + this + ", clearOnFailure = " + clearOnFailure);
-        }
-        if (clearOnFailure) {
-            if (!nextFocusHelper()) {
-                if (focusLog.isLoggable(Level.FINER)) {
-                    focusLog.log(Level.FINER, "clear global focus owner");
-                }
-                KeyboardFocusManager.getCurrentKeyboardFocusManager().
-                    clearGlobalFocusOwner();
-            }
-        } else {
-            transferFocus();
-        }
-    }
-
-    /**
-     * Transfers the focus to the next component, as though this Component were
-     * the focus owner.
-     * @see       #requestFocus()
-     * @since     JDK1.1
-     */
-    public void transferFocus() {
-        nextFocus();
-    }
-
     /**
      * Returns the Container which is the focus cycle root of this Component's
      * focus traversal cycle. Each focus traversal cycle has only a single
@@ -7473,31 +7416,51 @@
         return (rootAncestor == container);
     }
 
+    Container getTraversalRoot() {
+        return getFocusCycleRootAncestor();
+    }
+
+    /**
+     * Transfers the focus to the next component, as though this Component were
+     * the focus owner.
+     * @see       #requestFocus()
+     * @since     JDK1.1
+     */
+    public void transferFocus() {
+        nextFocus();
+    }
+
     /**
      * @deprecated As of JDK version 1.1,
      * replaced by transferFocus().
      */
     @Deprecated
     public void nextFocus() {
-        nextFocusHelper();
-    }
-
-    private boolean nextFocusHelper() {
-        Component toFocus = preNextFocusHelper();
+        transferFocus(false);
+    }
+
+    boolean transferFocus(boolean clearOnFailure) {
         if (focusLog.isLoggable(Level.FINER)) {
-            focusLog.log(Level.FINER, "toFocus = " + toFocus);
-        }
-        if (isFocusOwner() && toFocus == this) {
-            return false;
-        }
-        return postNextFocusHelper(toFocus, CausedFocusEvent.Cause.TRAVERSAL_FORWARD);
-    }
-
-    Container getTraversalRoot() {
-        return getFocusCycleRootAncestor();
-    }
-
-    final Component preNextFocusHelper() {
+            focusLog.finer("clearOnFailure = " + clearOnFailure);
+        }
+        Component toFocus = getNextFocusCandidate();
+        boolean res = false;
+        if (toFocus != null && !toFocus.isFocusOwner() && toFocus != this) {
+            res = toFocus.requestFocusInWindow(CausedFocusEvent.Cause.TRAVERSAL_FORWARD);
+        }
+        if (clearOnFailure && !res) {
+            if (focusLog.isLoggable(Level.FINER)) {
+                focusLog.finer("clear global focus owner");
+            }
+            KeyboardFocusManager.getCurrentKeyboardFocusManager().clearGlobalFocusOwner();
+        }
+        if (focusLog.isLoggable(Level.FINER)) {
+            focusLog.finer("returning result: " + res);
+        }
+        return res;
+    }
+
+    final Component getNextFocusCandidate() {
         Container rootAncestor = getTraversalRoot();
         Component comp = this;
         while (rootAncestor != null &&
@@ -7509,18 +7472,19 @@
             rootAncestor = comp.getFocusCycleRootAncestor();
         }
         if (focusLog.isLoggable(Level.FINER)) {
-            focusLog.log(Level.FINER, "comp = " + comp + ", root = " + rootAncestor);
-        }
+            focusLog.finer("comp = " + comp + ", root = " + rootAncestor);
+        }
+        Component candidate = null;
         if (rootAncestor != null) {
             FocusTraversalPolicy policy = rootAncestor.getFocusTraversalPolicy();
             Component toFocus = policy.getComponentAfter(rootAncestor, comp);
             if (focusLog.isLoggable(Level.FINER)) {
-                focusLog.log(Level.FINER, "component after is " + toFocus);
+                focusLog.finer("component after is " + toFocus);
             }
             if (toFocus == null) {
                 toFocus = policy.getDefaultComponent(rootAncestor);
                 if (focusLog.isLoggable(Level.FINER)) {
-                    focusLog.log(Level.FINER, "default component is " + toFocus);
+                    focusLog.finer("default component is " + toFocus);
                 }
             }
             if (toFocus == null) {
@@ -7529,23 +7493,12 @@
                     toFocus = applet;
                 }
             }
-            return toFocus;
-        }
-        return null;
-    }
-
-    static boolean postNextFocusHelper(Component toFocus, CausedFocusEvent.Cause cause) {
-        if (toFocus != null) {
-            if (focusLog.isLoggable(Level.FINER)) {
-                focusLog.log(Level.FINER, "Next component " + toFocus);
-            }
-            boolean res = toFocus.requestFocusInWindow(cause);
-            if (focusLog.isLoggable(Level.FINER)) {
-                focusLog.log(Level.FINER, "Request focus returned " + res);
-            }
-            return res;
-        }
-        return false;
+            candidate = toFocus;
+        }
+        if (focusLog.isLoggable(Level.FINER)) {
+            focusLog.finer("Focus transfer candidate: " + candidate);
+        }
+        return candidate;
     }
 
     /**
@@ -7555,6 +7508,10 @@
      * @since     1.4
      */
     public void transferFocusBackward() {
+        transferFocusBackward(false);
+    }
+
+    boolean transferFocusBackward(boolean clearOnFailure) {
         Container rootAncestor = getTraversalRoot();
         Component comp = this;
         while (rootAncestor != null &&
@@ -7565,6 +7522,7 @@
             comp = rootAncestor;
             rootAncestor = comp.getFocusCycleRootAncestor();
         }
+        boolean res = false;
         if (rootAncestor != null) {
             FocusTraversalPolicy policy = rootAncestor.getFocusTraversalPolicy();
             Component toFocus = policy.getComponentBefore(rootAncestor, comp);
@@ -7572,9 +7530,19 @@
                 toFocus = policy.getDefaultComponent(rootAncestor);
             }
             if (toFocus != null) {
-                toFocus.requestFocusInWindow(CausedFocusEvent.Cause.TRAVERSAL_BACKWARD);
-            }
-        }
+                res = toFocus.requestFocusInWindow(CausedFocusEvent.Cause.TRAVERSAL_BACKWARD);
+            }
+        }
+        if (!res) {
+            if (focusLog.isLoggable(Level.FINER)) {
+                focusLog.finer("clear global focus owner");
+            }
+            KeyboardFocusManager.getCurrentKeyboardFocusManager().clearGlobalFocusOwner();
+        }
+        if (focusLog.isLoggable(Level.FINER)) {
+            focusLog.finer("returning result: " + res);
+        }
+        return res;
     }
 
     /**
@@ -7649,6 +7617,20 @@
         return hasFocus();
     }
 
+    /*
+     * Used to disallow auto-focus-transfer on disposal of the focus owner
+     * in the process of disposing its parent container.
+     */
+    private boolean autoFocusTransferOnDisposal = true;
+
+    void setAutoFocusTransferOnDisposal(boolean value) {
+        autoFocusTransferOnDisposal = value;
+    }
+
+    boolean isAutoFocusTransferOnDisposal() {
+        return autoFocusTransferOnDisposal;
+    }
+
     /**
      * Adds the specified popup menu to the component.
      * @param     popup the popup menu to be added to the component.
@@ -8310,6 +8292,8 @@
     private void readObject(ObjectInputStream s)
       throws ClassNotFoundException, IOException
     {
+        changeSupportLock = new Object();
+
         s.defaultReadObject();
 
         appContext = AppContext.getAppContext();
--- a/src/share/classes/java/awt/Container.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/Container.java	Fri May 16 12:25:57 2008 -0700
@@ -2660,9 +2660,26 @@
         synchronized (getTreeLock()) {
             int ncomponents = this.ncomponents;
             Component component[] = this.component;
-            for (int i = ncomponents-1 ; i >= 0 ; i--) {
-                if( component[i] != null )
-                component[i].removeNotify();
+            for (int i = ncomponents - 1; i >= 0; i--) {
+                if( component[i] != null ) {
+                    // Fix for 6607170.
+                    // We want to suppress focus change on disposal
+                    // of the focused component. But because of focus
+                    // is asynchronous, we should suppress focus change
+                    // on every component in case it receives native focus
+                    // in the process of disposal.
+                    component[i].setAutoFocusTransferOnDisposal(false);
+                    component[i].removeNotify();
+                    component[i].setAutoFocusTransferOnDisposal(true);
+                }
+            }
+            // If some of the children had focus before disposal then it still has.
+            // Auto-transfer focus to the next (or previous) component if auto-transfer
+            // is enabled.
+            if (containsFocus() && KeyboardFocusManager.isAutoFocusTransferEnabledFor(this)) {
+                if (!transferFocus(false)) {
+                    transferFocusBackward(true);
+                }
             }
             if ( dispatcher != null ) {
                 dispatcher.dispose();
--- a/src/share/classes/java/awt/DefaultKeyboardFocusManager.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/DefaultKeyboardFocusManager.java	Fri May 16 12:25:57 2008 -0700
@@ -155,12 +155,13 @@
                                    boolean clearOnFailure)
     {
         if (toFocus != vetoedComponent && toFocus.isShowing() && toFocus.isFocusable() &&
-            toFocus.requestFocus(false, CausedFocusEvent.Cause.ROLLBACK)) {
+            toFocus.requestFocus(false, CausedFocusEvent.Cause.ROLLBACK))
+        {
             return true;
         } else {
-            Component nextFocus = toFocus.preNextFocusHelper();
-            if (nextFocus != vetoedComponent
-                && Component.postNextFocusHelper(nextFocus, CausedFocusEvent.Cause.ROLLBACK))
+            Component nextFocus = toFocus.getNextFocusCandidate();
+            if (nextFocus != null && nextFocus != vetoedComponent &&
+                nextFocus.requestFocusInWindow(CausedFocusEvent.Cause.ROLLBACK))
             {
                 return true;
             } else if (clearOnFailure) {
@@ -504,9 +505,16 @@
                 {
                     // we should not accept focus on such component, so reject it.
                     dequeueKeyEvents(-1, newFocusOwner);
-                    if (KeyboardFocusManager.isAutoFocusTransferEnabled())
-                    {
-                        restoreFocus(fe, newFocusedWindow);
+                    if (KeyboardFocusManager.isAutoFocusTransferEnabled()) {
+                        // If FOCUS_GAINED is for a disposed component (however
+                        // it shouldn't happen) its toplevel parent is null. In this
+                        // case we have to try to restore focus in the current focused
+                        // window (for the details: 6607170).
+                        if (newFocusedWindow == null) {
+                            restoreFocus(fe, currentFocusedWindow);
+                        } else {
+                            restoreFocus(fe, newFocusedWindow);
+                        }
                     }
                     break;
                 }
@@ -1078,6 +1086,9 @@
                     focusNextComponent(focusedComponent);
                 }
                 return;
+            } else if (e.getID() == KeyEvent.KEY_PRESSED) {
+                // Fix for 6637607: consumeNextKeyTyped should be reset.
+                consumeNextKeyTyped = false;
             }
 
             toTest = focusedComponent.getFocusTraversalKeys(
--- a/src/share/classes/java/awt/Dimension.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/Dimension.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 1995-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1995-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,6 +26,7 @@
 package java.awt;
 
 import java.awt.geom.Dimension2D;
+import java.beans.Transient;
 
 /**
  * The <code>Dimension</code> class encapsulates the width and
@@ -165,6 +166,7 @@
      * @see      java.awt.Component#getSize
      * @since    1.1
      */
+    @Transient
     public Dimension getSize() {
         return new Dimension(width, height);
     }
--- a/src/share/classes/java/awt/GradientPaint.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/GradientPaint.java	Fri May 16 12:25:57 2008 -0700
@@ -53,6 +53,7 @@
  *
  * @see Paint
  * @see Graphics2D#setPaint
+ * @version 10 Feb 1997
  */
 
 public class GradientPaint implements Paint {
@@ -223,19 +224,32 @@
     }
 
     /**
-     * Creates and returns a context used to generate the color pattern.
-     * @param cm {@link ColorModel} that receives
-     * the <code>Paint</code> data. This is used only as a hint.
-     * @param deviceBounds the device space bounding box of the
-     * graphics primitive being rendered
-     * @param userBounds the user space bounding box of the
-     * graphics primitive being rendered
+     * Creates and returns a {@link PaintContext} used to
+     * generate a linear color gradient pattern.
+     * See the {@link Paint#createContext specification} of the
+     * method in the {@link Paint} interface for information
+     * on null parameter handling.
+     *
+     * @param cm the preferred {@link ColorModel} which represents the most convenient
+     *           format for the caller to receive the pixel data, or {@code null}
+     *           if there is no preference.
+     * @param deviceBounds the device space bounding box
+     *                     of the graphics primitive being rendered.
+     * @param userBounds the user space bounding box
+     *                   of the graphics primitive being rendered.
      * @param xform the {@link AffineTransform} from user
-     *     space into device space
-     * @param hints the hints that the context object uses to choose
-     * between rendering alternatives
-     * @return the {@link PaintContext} that generates color patterns.
+     *              space into device space.
+     * @param hints the set of hints that the context object can use to
+     *              choose between rendering alternatives.
+     * @return the {@code PaintContext} for
+     *         generating color patterns.
+     * @see Paint
      * @see PaintContext
+     * @see ColorModel
+     * @see Rectangle
+     * @see Rectangle2D
+     * @see AffineTransform
+     * @see RenderingHints
      */
     public PaintContext createContext(ColorModel cm,
                                       Rectangle deviceBounds,
--- a/src/share/classes/java/awt/KeyboardFocusManager.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/KeyboardFocusManager.java	Fri May 16 12:25:57 2008 -0700
@@ -2578,6 +2578,10 @@
         }
     }
 
+    static boolean isAutoFocusTransferEnabledFor(Component comp) {
+        return isAutoFocusTransferEnabled() && comp.isAutoFocusTransferOnDisposal();
+    }
+
     /*
      * Used to process exceptions in dispatching focus event (in focusLost/focusGained callbacks).
      * @param ex previously caught exception that may be processed right here, or null
--- a/src/share/classes/java/awt/LinearGradientPaint.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/LinearGradientPaint.java	Fri May 16 12:25:57 2008 -0700
@@ -296,7 +296,32 @@
     }
 
     /**
-     * {@inheritDoc}
+     * Creates and returns a {@link PaintContext} used to
+     * generate a linear color gradient pattern.
+     * See the {@link Paint#createContext specification} of the
+     * method in the {@link Paint} interface for information
+     * on null parameter handling.
+     *
+     * @param cm the preferred {@link ColorModel} which represents the most convenient
+     *           format for the caller to receive the pixel data, or {@code null}
+     *           if there is no preference.
+     * @param deviceBounds the device space bounding box
+     *                     of the graphics primitive being rendered.
+     * @param userBounds the user space bounding box
+     *                   of the graphics primitive being rendered.
+     * @param transform the {@link AffineTransform} from user
+     *              space into device space.
+     * @param hints the set of hints that the context object can use to
+     *              choose between rendering alternatives.
+     * @return the {@code PaintContext} for
+     *         generating color patterns.
+     * @see Paint
+     * @see PaintContext
+     * @see ColorModel
+     * @see Rectangle
+     * @see Rectangle2D
+     * @see AffineTransform
+     * @see RenderingHints
      */
     public PaintContext createContext(ColorModel cm,
                                       Rectangle deviceBounds,
--- a/src/share/classes/java/awt/MenuItem.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/MenuItem.java	Fri May 16 12:25:57 2008 -0700
@@ -847,7 +847,7 @@
         public String getAccessibleActionDescription(int i) {
             if (i == 0) {
                 // [[[PENDING:  WDW -- need to provide a localized string]]]
-                return new String("click");
+                return "click";
             } else {
                 return null;
             }
--- a/src/share/classes/java/awt/Paint.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/Paint.java	Fri May 16 12:25:57 2008 -0700
@@ -46,42 +46,58 @@
  * @see GradientPaint
  * @see TexturePaint
  * @see Graphics2D#setPaint
+ * @version 1.36, 06/05/07
  */
 
 public interface Paint extends Transparency {
     /**
      * Creates and returns a {@link PaintContext} used to
      * generate the color pattern.
-     * Since the ColorModel argument to createContext is only a
-     * hint, implementations of Paint should accept a null argument
-     * for ColorModel.  Note that if the application does not
-     * prefer a specific ColorModel, the null ColorModel argument
-     * will give the Paint implementation full leeway in using the
-     * most efficient ColorModel it prefers for its raster processing.
-     * <p>
-     * Since the API documentation was not specific about this in
-     * releases before 1.4, there may be implementations of
-     * <code>Paint</code> that do not accept a null
-     * <code>ColorModel</code> argument.
-     * If a developer is writing code which passes a null
-     * <code>ColorModel</code> argument to the
-     * <code>createContext</code> method of <code>Paint</code>
-     * objects from arbitrary sources it would be wise to code defensively
-     * by manufacturing a non-null <code>ColorModel</code> for those
-     * objects which throw a <code>NullPointerException</code>.
-     * @param cm the {@link ColorModel} that receives the
-     * <code>Paint</code> data. This is used only as a hint.
+     * The arguments to this method convey additional information
+     * about the rendering operation that may be
+     * used or ignored on various implementations of the {@code Paint} interface.
+     * A caller must pass non-{@code null} values for all of the arguments
+     * except for the {@code ColorModel} argument which may be {@code null} to
+     * indicate that no specific {@code ColorModel} type is preferred.
+     * Implementations of the {@code Paint} interface are allowed to use or ignore
+     * any of the arguments as makes sense for their function, and are
+     * not constrained to use the specified {@code ColorModel} for the returned
+     * {@code PaintContext}, even if it is not {@code null}.
+     * Implementations are allowed to throw {@code NullPointerException} for
+     * any {@code null} argument other than the {@code ColorModel} argument,
+     * but are not required to do so.
+     *
+     * @param cm the preferred {@link ColorModel} which represents the most convenient
+     *           format for the caller to receive the pixel data, or {@code null}
+     *           if there is no preference.
      * @param deviceBounds the device space bounding box
-     *                     of the graphics primitive being rendered
+     *                     of the graphics primitive being rendered.
+     *                     Implementations of the {@code Paint} interface
+     *                     are allowed to throw {@code NullPointerException}
+     *                     for a {@code null} {@code deviceBounds}.
      * @param userBounds the user space bounding box
-     *                     of the graphics primitive being rendered
+     *                   of the graphics primitive being rendered.
+     *                     Implementations of the {@code Paint} interface
+     *                     are allowed to throw {@code NullPointerException}
+     *                     for a {@code null} {@code userBounds}.
      * @param xform the {@link AffineTransform} from user
-     *      space into device space
-     * @param hints the hint that the context object uses to
-     *              choose between rendering alternatives
-     * @return the <code>PaintContext</code> for
-     *              generating color patterns
+     *              space into device space.
+     *                     Implementations of the {@code Paint} interface
+     *                     are allowed to throw {@code NullPointerException}
+     *                     for a {@code null} {@code xform}.
+     * @param hints the set of hints that the context object can use to
+     *              choose between rendering alternatives.
+     *                     Implementations of the {@code Paint} interface
+     *                     are allowed to throw {@code NullPointerException}
+     *                     for a {@code null} {@code hints}.
+     * @return the {@code PaintContext} for
+     *         generating color patterns.
      * @see PaintContext
+     * @see ColorModel
+     * @see Rectangle
+     * @see Rectangle2D
+     * @see AffineTransform
+     * @see RenderingHints
      */
     public PaintContext createContext(ColorModel cm,
                                       Rectangle deviceBounds,
--- a/src/share/classes/java/awt/Point.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/Point.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 1995-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1995-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,6 +26,7 @@
 package java.awt;
 
 import java.awt.geom.Point2D;
+import java.beans.Transient;
 
 /**
  * A point representing a location in {@code (x,y)} coordinate space,
@@ -119,6 +120,7 @@
      * @see         java.awt.Point#setLocation(int, int)
      * @since       1.1
      */
+    @Transient
     public Point getLocation() {
         return new Point(x, y);
     }
--- a/src/share/classes/java/awt/RadialGradientPaint.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/RadialGradientPaint.java	Fri May 16 12:25:57 2008 -0700
@@ -543,7 +543,31 @@
     }
 
     /**
-     * {@inheritDoc}
+     * Creates and returns a {@link PaintContext} used to
+     * generate a circular radial color gradient pattern.
+     * See the description of the {@link Paint#createContext createContext} method
+     * for information on null parameter handling.
+     *
+     * @param cm the preferred {@link ColorModel} which represents the most convenient
+     *           format for the caller to receive the pixel data, or {@code null}
+     *           if there is no preference.
+     * @param deviceBounds the device space bounding box
+     *                     of the graphics primitive being rendered.
+     * @param userBounds the user space bounding box
+     *                   of the graphics primitive being rendered.
+     * @param transform the {@link AffineTransform} from user
+     *              space into device space.
+     * @param hints the set of hints that the context object can use to
+     *              choose between rendering alternatives.
+     * @return the {@code PaintContext} for
+     *         generating color patterns.
+     * @see Paint
+     * @see PaintContext
+     * @see ColorModel
+     * @see Rectangle
+     * @see Rectangle2D
+     * @see AffineTransform
+     * @see RenderingHints
      */
     public PaintContext createContext(ColorModel cm,
                                       Rectangle deviceBounds,
--- a/src/share/classes/java/awt/Rectangle.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/Rectangle.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 1995-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1995-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,6 +26,7 @@
 package java.awt;
 
 import java.awt.geom.Rectangle2D;
+import java.beans.Transient;
 
 /**
  * A <code>Rectangle</code> specifies an area in a coordinate space that is
@@ -308,6 +309,7 @@
      * @see       #setBounds(int, int, int, int)
      * @since     1.1
      */
+    @Transient
     public Rectangle getBounds() {
         return new Rectangle(x, y, width, height);
     }
--- a/src/share/classes/java/awt/ScrollPane.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/ScrollPane.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 1996-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -32,6 +32,7 @@
 import sun.awt.SunToolkit;
 
 import java.beans.ConstructorProperties;
+import java.beans.Transient;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 import java.io.IOException;
@@ -390,6 +391,7 @@
      * @throws NullPointerException if the scrollpane does not contain
      *     a child
      */
+    @Transient
     public Point getScrollPosition() {
         if (ncomponents <= 0) {
             throw new NullPointerException("child is null");
--- a/src/share/classes/java/awt/TexturePaint.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/TexturePaint.java	Fri May 16 12:25:57 2008 -0700
@@ -45,6 +45,7 @@
  * replicated <code>Rectangle2D</code>.
  * @see Paint
  * @see Graphics2D#setPaint
+ * @version 1.48, 06/05/07
  */
 
 public class TexturePaint implements Paint {
@@ -93,20 +94,32 @@
     }
 
     /**
-     * Creates and returns a context used to generate the color pattern.
-     * @param cm the {@link ColorModel} that receives the
-     * <code>Paint</code> data. This is used only as a hint.
-     * @param deviceBounds the device space bounding box of the graphics
-     * primitive being rendered
-     * @param userBounds the user space bounding box of the graphics
-     * primitive being rendered
-     * @param xform the {@link AffineTransform} from user space
-     *          into device space
-     * @param hints a {@link RenderingHints} object that can be used to
-     *          specify how the pattern is ultimately rendered
-     * @return the {@link PaintContext} used for generating color
-     *          patterns.
+     * Creates and returns a {@link PaintContext} used to
+     * generate a tiled image pattern.
+     * See the {@link Paint#createContext specification} of the
+     * method in the {@link Paint} interface for information
+     * on null parameter handling.
+     *
+     * @param cm the preferred {@link ColorModel} which represents the most convenient
+     *           format for the caller to receive the pixel data, or {@code null}
+     *           if there is no preference.
+     * @param deviceBounds the device space bounding box
+     *                     of the graphics primitive being rendered.
+     * @param userBounds the user space bounding box
+     *                   of the graphics primitive being rendered.
+     * @param xform the {@link AffineTransform} from user
+     *              space into device space.
+     * @param hints the set of hints that the context object can use to
+     *              choose between rendering alternatives.
+     * @return the {@code PaintContext} for
+     *         generating color patterns.
+     * @see Paint
      * @see PaintContext
+     * @see ColorModel
+     * @see Rectangle
+     * @see Rectangle2D
+     * @see AffineTransform
+     * @see RenderingHints
      */
     public PaintContext createContext(ColorModel cm,
                                       Rectangle deviceBounds,
--- a/src/share/classes/java/awt/datatransfer/SystemFlavorMap.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/datatransfer/SystemFlavorMap.java	Fri May 16 12:25:57 2008 -0700
@@ -298,7 +298,7 @@
                     while (continueLine(line)) {
                         String nextLine = in.readLine();
                         if (nextLine == null) {
-                            nextLine = new String("");
+                            nextLine = "";
                         }
                         String loppedLine =
                             line.substring(0, line.length() - 1);
@@ -313,7 +313,7 @@
                         }
                         nextLine = nextLine.substring(startIndex,
                                                       nextLine.length());
-                        line = new String(loppedLine+nextLine);
+                        line = loppedLine+nextLine;
                     }
 
                     // Find start of key
--- a/src/share/classes/java/awt/dnd/DragGestureEvent.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/dnd/DragGestureEvent.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 1998-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1998-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -55,9 +55,19 @@
  * platform dependent drag initiating gesture has occurred
  * on the <code>Component</code> that it is tracking.
  *
+ * The {@code action} field of any {@code DragGestureEvent} instance should take one of the following
+ * values:
+ * <ul>
+ * <li> {@code DnDConstants.ACTION_COPY}
+ * <li> {@code DnDConstants.ACTION_MOVE}
+ * <li> {@code DnDConstants.ACTION_LINK}
+ * </ul>
+ * Assigning the value different from listed above will cause an unspecified behavior.
+ *
  * @see java.awt.dnd.DragGestureRecognizer
  * @see java.awt.dnd.DragGestureListener
  * @see java.awt.dnd.DragSource
+ * @see java.awt.dnd.DnDConstants
  */
 
 public class DragGestureEvent extends EventObject {
@@ -65,19 +75,25 @@
     private static final long serialVersionUID = 9080172649166731306L;
 
     /**
-     * Constructs a <code>DragGestureEvent</code> given the
-     * <code>DragGestureRecognizer</code> firing this event,
-     * an <code>int</code> representing
-     * the user's preferred action, a <code>Point</code>
-     * indicating the origin of the drag, and a <code>List</code>
-     * of events that comprise the gesture.
+     * Constructs a <code>DragGestureEvent</code> object given by the
+     * <code>DragGestureRecognizer</code> instance firing this event,
+     * an {@code act} parameter representing
+     * the user's preferred action, an {@code ori} parameter
+     * indicating the origin of the drag, and a {@code List} of
+     * events that comprise the gesture({@code evs} parameter).
      * <P>
      * @param dgr The <code>DragGestureRecognizer</code> firing this event
-     * @param act The the user's preferred action
+     * @param act The user's preferred action.
+     *            For information on allowable values, see
+     *            the class description for {@link DragGestureEvent}
      * @param ori The origin of the drag
      * @param evs The <code>List</code> of events that comprise the gesture
      * <P>
-     * @throws IllegalArgumentException if input parameters are {@code null}
+     * @throws IllegalArgumentException if any parameter equals {@code null}
+     * @throws IllegalArgumentException if the act parameter does not comply with
+     *                                  the values given in the class
+     *                                  description for {@link DragGestureEvent}
+     * @see java.awt.dnd.DnDConstants
      */
 
     public DragGestureEvent(DragGestureRecognizer dgr, int act, Point ori,
--- a/src/share/classes/java/awt/dnd/DropTargetEvent.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/dnd/DropTargetEvent.java	Fri May 16 12:25:57 2008 -0700
@@ -45,10 +45,13 @@
     private static final long serialVersionUID = 2821229066521922993L;
 
     /**
-     * Construct a <code>DropTargetEvent</code> with
-     * a specified <code>DropTargetContext</code>.
+     * Construct a <code>DropTargetEvent</code> object with
+     * the specified <code>DropTargetContext</code>.
      * <P>
-     * @param dtc the <code>DropTargetContext</code>
+     * @param dtc The <code>DropTargetContext</code>
+     * @throws NullPointerException if {@code dtc} equals {@code null}.
+     * @see #getSource()
+     * @see #getDropTargetContext()
      */
 
     public DropTargetEvent(DropTargetContext dtc) {
--- a/src/share/classes/java/awt/event/ActionEvent.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/event/ActionEvent.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 1996-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -45,6 +45,10 @@
  * is therefore spared the details of processing individual mouse movements
  * and mouse clicks, and can instead process a "meaningful" (semantic)
  * event like "button pressed".
+ * <p>
+ * An unspecified behavior will be caused if the {@code id} parameter
+ * of any particular {@code ActionEvent} instance is not
+ * in the range from {@code ACTION_FIRST} to {@code ACTION_LAST}.
  *
  * @see ActionListener
  * @see <a href="http://java.sun.com/docs/books/tutorial/post1.0/ui/eventmodel.html">Tutorial: Java 1.1 Event Model</a>
@@ -134,18 +138,22 @@
     /**
      * Constructs an <code>ActionEvent</code> object.
      * <p>
-     * Note that passing in an invalid <code>id</code> results in
-     * unspecified behavior. This method throws an
+     * This method throws an
      * <code>IllegalArgumentException</code> if <code>source</code>
      * is <code>null</code>.
      * A <code>null</code> <code>command</code> string is legal,
      * but not recommended.
      *
-     * @param source  the object that originated the event
-     * @param id      an integer that identifies the event
-     * @param command a string that may specify a command (possibly one
+     * @param source  The object that originated the event
+     * @param id      An integer that identifies the event.
+     *                     For information on allowable values, see
+     *                     the class description for {@link ActionEvent}
+     * @param command A string that may specify a command (possibly one
      *                of several) associated with the event
      * @throws IllegalArgumentException if <code>source</code> is null
+     * @see #getSource()
+     * @see #getID()
+     * @see #getActionCommand()
      */
     public ActionEvent(Object source, int id, String command) {
         this(source, id, command, 0);
@@ -154,19 +162,27 @@
     /**
      * Constructs an <code>ActionEvent</code> object with modifier keys.
      * <p>
-     * Note that passing in an invalid <code>id</code> results in
-     * unspecified behavior. This method throws an
+     * This method throws an
      * <code>IllegalArgumentException</code> if <code>source</code>
      * is <code>null</code>.
      * A <code>null</code> <code>command</code> string is legal,
      * but not recommended.
      *
-     * @param source    the object that originated the event
-     * @param id        an integer that identifies the event
-     * @param command   a string that may specify a command (possibly one
-     *                  of several) associated with the event
-     * @param modifiers the modifier keys held down during this action
+     * @param source  The object that originated the event
+     * @param id      An integer that identifies the event.
+     *                     For information on allowable values, see
+     *                     the class description for {@link ActionEvent}
+     * @param command A string that may specify a command (possibly one
+     *                of several) associated with the event
+     * @param modifiers The modifier keys down during event
+     *                  (shift, ctrl, alt, meta).
+     *                  Passing negative parameter is not recommended.
+     *                  Zero value means that no modifiers were passed
      * @throws IllegalArgumentException if <code>source</code> is null
+     * @see #getSource()
+     * @see #getID()
+     * @see #getActionCommand()
+     * @see #getModifiers()
      */
     public ActionEvent(Object source, int id, String command, int modifiers) {
         this(source, id, command, 0, modifiers);
@@ -176,20 +192,31 @@
      * Constructs an <code>ActionEvent</code> object with the specified
      * modifier keys and timestamp.
      * <p>
-     * Note that passing in an invalid <code>id</code> results in
-     * unspecified behavior. This method throws an
+     * This method throws an
      * <code>IllegalArgumentException</code> if <code>source</code>
      * is <code>null</code>.
      * A <code>null</code> <code>command</code> string is legal,
      * but not recommended.
      *
-     * @param source    the object that originated the event
-     * @param id        an integer that identifies the event
-     * @param command   a string that may specify a command (possibly one
-     *                  of several) associated with the event
-     * @param when      the time the event occurred
-     * @param modifiers the modifier keys held down during this action
+     * @param source    The object that originated the event
+     * @param id      An integer that identifies the event.
+     *                     For information on allowable values, see
+     *                     the class description for {@link ActionEvent}
+     * @param command A string that may specify a command (possibly one
+     *                of several) associated with the event
+     * @param modifiers The modifier keys down during event
+     *                  (shift, ctrl, alt, meta).
+     *                  Passing negative parameter is not recommended.
+     *                  Zero value means that no modifiers were passed
+     * @param when   A long that gives the time the event occurred.
+     *               Passing negative or zero value
+     *               is not recommended
      * @throws IllegalArgumentException if <code>source</code> is null
+     * @see #getSource()
+     * @see #getID()
+     * @see #getActionCommand()
+     * @see #getModifiers()
+     * @see #getWhen()
      *
      * @since 1.4
      */
--- a/src/share/classes/java/awt/event/AdjustmentEvent.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/event/AdjustmentEvent.java	Fri May 16 12:25:57 2008 -0700
@@ -29,7 +29,25 @@
 import java.awt.AWTEvent;
 
 /**
- * The adjustment event emitted by Adjustable objects.
+ * The adjustment event emitted by Adjustable objects like
+ * {@link java.awt.Scrollbar} and {@link java.awt.ScrollPane}.
+ * When the user changes the value of the scrolling component,
+ * it receives an instance of {@code AdjustmentEvent}.
+ * <p>
+ * An unspecified behavior will be caused if the {@code id} parameter
+ * of any particular {@code AdjustmentEvent} instance is not
+ * in the range from {@code ADJUSTMENT_FIRST} to {@code ADJUSTMENT_LAST}.
+ * <p>
+ * The {@code type} of any {@code AdjustmentEvent} instance takes one of the following
+ * values:
+ *                     <ul>
+ *                     <li> {@code UNIT_INCREMENT}
+ *                     <li> {@code UNIT_DECREMENT}
+ *                     <li> {@code BLOCK_INCREMENT}
+ *                     <li> {@code BLOCK_DECREMENT}
+ *                     <li> {@code TRACK}
+ *                     </ul>
+ * Assigning the value different from listed above will cause an unspecified behavior.
  * @see java.awt.Adjustable
  * @see AdjustmentListener
  *
@@ -130,17 +148,24 @@
      * Constructs an <code>AdjustmentEvent</code> object with the
      * specified <code>Adjustable</code> source, event type,
      * adjustment type, and value.
-     * <p>Note that passing in an invalid <code>id</code> results in
-     * unspecified behavior.  This method throws an
+     * <p> This method throws an
      * <code>IllegalArgumentException</code> if <code>source</code>
      * is <code>null</code>.
      *
-     * @param source the <code>Adjustable</code> object where the
+     * @param source The <code>Adjustable</code> object where the
      *               event originated
-     * @param id     the event type
-     * @param type   the adjustment type
-     * @param value  the current value of the adjustment
+     * @param id     An integer indicating the type of event.
+     *                     For information on allowable values, see
+     *                     the class description for {@link AdjustmentEvent}
+     * @param type   An integer indicating the adjustment type.
+     *                     For information on allowable values, see
+     *                     the class description for {@link AdjustmentEvent}
+     * @param value  The current value of the adjustment
      * @throws IllegalArgumentException if <code>source</code> is null
+     * @see #getSource()
+     * @see #getID()
+     * @see #getAdjustmentType()
+     * @see #getValue()
      */
     public AdjustmentEvent(Adjustable source, int id, int type, int value) {
         this(source, id, type, value, false);
@@ -149,22 +174,29 @@
     /**
      * Constructs an <code>AdjustmentEvent</code> object with the
      * specified Adjustable source, event type, adjustment type, and value.
-     * <p>Note that passing in an invalid <code>id</code> results in
-     * unspecified behavior.  This method throws an
+     * <p> This method throws an
      * <code>IllegalArgumentException</code> if <code>source</code>
      * is <code>null</code>.
-
      *
-     * @param source the <code>Adjustable</code> object where the
+     * @param source The <code>Adjustable</code> object where the
      *               event originated
-     * @param id     the event type
-     * @param type   the adjustment type
-     * @param value  the current value of the adjustment
-     * @param isAdjusting <code>true</code> if the event is one
+     * @param id     An integer indicating the type of event.
+     *                     For information on allowable values, see
+     *                     the class description for {@link AdjustmentEvent}
+     * @param type   An integer indicating the adjustment type.
+     *                     For information on allowable values, see
+     *                     the class description for {@link AdjustmentEvent}
+     * @param value  The current value of the adjustment
+     * @param isAdjusting A boolean that equals <code>true</code> if the event is one
      *               of a series of multiple adjusting events,
      *               otherwise <code>false</code>
      * @throws IllegalArgumentException if <code>source</code> is null
      * @since 1.4
+     * @see #getSource()
+     * @see #getID()
+     * @see #getAdjustmentType()
+     * @see #getValue()
+     * @see #getValueIsAdjusting()
      */
     public AdjustmentEvent(Adjustable source, int id, int type, int value, boolean isAdjusting) {
         super(source, id);
--- a/src/share/classes/java/awt/event/ComponentEvent.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/event/ComponentEvent.java	Fri May 16 12:25:57 2008 -0700
@@ -52,6 +52,10 @@
  * (<code>ComponentAdapter</code> objects implement the
  * <code>ComponentListener</code> interface.) Each such listener object
  * gets this <code>ComponentEvent</code> when the event occurs.
+ * <p>
+ * An unspecified behavior will be caused if the {@code id} parameter
+ * of any particular {@code ComponentEvent} instance is not
+ * in the range from {@code COMPONENT_FIRST} to {@code COMPONENT_LAST}.
  *
  * @see ComponentAdapter
  * @see ComponentListener
@@ -99,14 +103,17 @@
 
     /**
      * Constructs a <code>ComponentEvent</code> object.
-     * <p>Note that passing in an invalid <code>id</code> results in
-     * unspecified behavior. This method throws an
+     * <p> This method throws an
      * <code>IllegalArgumentException</code> if <code>source</code>
      * is <code>null</code>.
      *
-     * @param source the <code>Component</code> that originated the event
-     * @param id     an integer indicating the type of event
+     * @param source The <code>Component</code> that originated the event
+     * @param id     An integer indicating the type of event.
+     *                     For information on allowable values, see
+     *                     the class description for {@link ComponentEvent}
      * @throws IllegalArgumentException if <code>source</code> is null
+     * @see #getComponent()
+     * @see #getID()
      */
     public ComponentEvent(Component source, int id) {
         super(source, id);
--- a/src/share/classes/java/awt/event/ContainerEvent.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/event/ContainerEvent.java	Fri May 16 12:25:57 2008 -0700
@@ -45,6 +45,10 @@
  * (<code>ContainerAdapter</code> objects implement the
  * <code>ContainerListener</code> interface.) Each such listener object
  * gets this <code>ContainerEvent</code> when the event occurs.
+ * <p>
+ * An unspecified behavior will be caused if the {@code id} parameter
+ * of any particular {@code ContainerEvent} instance is not
+ * in the range from {@code CONTAINER_FIRST} to {@code CONTAINER_LAST}.
  *
  * @see ContainerAdapter
  * @see ContainerListener
@@ -92,16 +96,20 @@
 
     /**
      * Constructs a <code>ContainerEvent</code> object.
-     * <p>Note that passing in an invalid <code>id</code> results in
-     * unspecified behavior. This method throws an
+     * <p> This method throws an
      * <code>IllegalArgumentException</code> if <code>source</code>
      * is <code>null</code>.
      *
-     * @param source the <code>Component</code> object (container)
+     * @param source The <code>Component</code> object (container)
      *               that originated the event
-     * @param id     an integer indicating the type of event
+     * @param id     An integer indicating the type of event.
+     *                     For information on allowable values, see
+     *                     the class description for {@link ContainerEvent}
      * @param child  the component that was added or removed
      * @throws IllegalArgumentException if <code>source</code> is null
+     * @see #getContainer()
+     * @see #getID()
+     * @see #getChild()
      */
     public ContainerEvent(Component source, int id, Component child) {
         super(source, id);
--- a/src/share/classes/java/awt/event/FocusEvent.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/event/FocusEvent.java	Fri May 16 12:25:57 2008 -0700
@@ -50,6 +50,10 @@
  * reactivated. Both permanent and temporary focus events are delivered using
  * the FOCUS_GAINED and FOCUS_LOST event ids; the level may be distinguished in
  * the event using the isTemporary() method.
+ * <p>
+ * An unspecified behavior will be caused if the {@code id} parameter
+ * of any particular {@code FocusEvent} instance is not
+ * in the range from {@code FOCUS_FIRST} to {@code FOCUS_LAST}.
  *
  * @see FocusAdapter
  * @see FocusListener
@@ -121,18 +125,23 @@
      * application, with a Java application in a different VM,
      * or with no other <code>Component</code>, then the opposite
      * <code>Component</code> is <code>null</code>.
-     * <p>Note that passing in an invalid <code>id</code> results in
-     * unspecified behavior. This method throws an
+     * <p> This method throws an
      * <code>IllegalArgumentException</code> if <code>source</code>
      * is <code>null</code>.
      *
-     * @param source     the <code>Component</code> that originated the event
-     * @param id         <code>FOCUS_GAINED</code> or <code>FOCUS_LOST</code>
-     * @param temporary  <code>true</code> if the focus change is temporary;
+     * @param source     The <code>Component</code> that originated the event
+     * @param id         An integer indicating the type of event.
+     *                     For information on allowable values, see
+     *                     the class description for {@link FocusEvent}
+     * @param temporary  Equals <code>true</code> if the focus change is temporary;
      *                   <code>false</code> otherwise
-     * @param opposite   the other Component involved in the focus change,
+     * @param opposite   The other Component involved in the focus change,
      *                   or <code>null</code>
-     * @throws IllegalArgumentException if <code>source</code> is null
+     * @throws IllegalArgumentException if <code>source</code> equals {@code null}
+     * @see #getSource()
+     * @see #getID()
+     * @see #isTemporary()
+     * @see #getOppositeComponent()
      * @since 1.4
      */
     public FocusEvent(Component source, int id, boolean temporary,
@@ -145,16 +154,20 @@
     /**
      * Constructs a <code>FocusEvent</code> object and identifies
      * whether or not the change is temporary.
-     * <p>Note that passing in an invalid <code>id</code> results in
-     * unspecified behavior. This method throws an
+     * <p> This method throws an
      * <code>IllegalArgumentException</code> if <code>source</code>
      * is <code>null</code>.
      *
-     * @param source    the <code>Component</code> that originated the event
-     * @param id        an integer indicating the type of event
-     * @param temporary <code>true</code> if the focus change is temporary;
+     * @param source    The <code>Component</code> that originated the event
+     * @param id        An integer indicating the type of event.
+     *                     For information on allowable values, see
+     *                     the class description for {@link FocusEvent}
+     * @param temporary Equals <code>true</code> if the focus change is temporary;
      *                  <code>false</code> otherwise
-     * @throws IllegalArgumentException if <code>source</code> is null
+     * @throws IllegalArgumentException if <code>source</code> equals {@code null}
+     * @see #getSource()
+     * @see #getID()
+     * @see #isTemporary()
      */
     public FocusEvent(Component source, int id, boolean temporary) {
         this(source, id, temporary, null);
@@ -163,14 +176,17 @@
     /**
      * Constructs a <code>FocusEvent</code> object and identifies it
      * as a permanent change in focus.
-     * <p>Note that passing in an invalid <code>id</code> results in
-     * unspecified behavior. This method throws an
+     * <p> This method throws an
      * <code>IllegalArgumentException</code> if <code>source</code>
      * is <code>null</code>.
      *
-     * @param source    the <code>Component</code> that originated the event
-     * @param id        an integer indicating the type of event
-     * @throws IllegalArgumentException if <code>source</code> is null
+     * @param source    The <code>Component</code> that originated the event
+     * @param id        An integer indicating the type of event.
+     *                     For information on allowable values, see
+     *                     the class description for {@link FocusEvent}
+     * @throws IllegalArgumentException if <code>source</code> equals {@code null}
+     * @see #getSource()
+     * @see #getID()
      */
     public FocusEvent(Component source, int id) {
         this(source, id, false);
--- a/src/share/classes/java/awt/event/HierarchyEvent.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/event/HierarchyEvent.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 1999-2004 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1999-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,7 @@
 
 /**
  * An event which indicates a change to the <code>Component</code>
- * hierarchy to which a <code>Component</code> belongs.
+ * hierarchy to which <code>Component</code> belongs.
  * <ul>
  * <li>Hierarchy Change Events (HierarchyListener)
  *     <ul>
@@ -58,16 +58,30 @@
  * Container is added, removed, moved, or resized, and passed down the
  * hierarchy. It is also generated by a Component object when that object's
  * <code>addNotify</code>, <code>removeNotify</code>, <code>show</code>, or
- * <code>hide</code> method is called. ANCESTOR_MOVED and ANCESTOR_RESIZED
+ * <code>hide</code> method is called. The {@code ANCESTOR_MOVED} and
+ * {@code ANCESTOR_RESIZED}
  * events are dispatched to every <code>HierarchyBoundsListener</code> or
  * <code>HierarchyBoundsAdapter</code> object which registered to receive
  * such events using the Component's <code>addHierarchyBoundsListener</code>
  * method. (<code>HierarchyBoundsAdapter</code> objects implement the <code>
- * HierarchyBoundsListener</code> interface.) HIERARCHY_CHANGED events are
+ * HierarchyBoundsListener</code> interface.) The {@code HIERARCHY_CHANGED} events are
  * dispatched to every <code>HierarchyListener</code> object which registered
  * to receive such events using the Component's <code>addHierarchyListener
  * </code> method. Each such listener object gets this <code>HierarchyEvent
  * </code> when the event occurs.
+ * <p>
+ * An unspecified behavior will be caused if the {@code id} parameter
+ * of any particular {@code HierarchyEvent} instance is not
+ * in the range from {@code HIERARCHY_FIRST} to {@code HIERARCHY_LAST}.
+ * <br>
+ * The {@code changeFlags} parameter of any {@code HierarchyEvent} instance takes one of the following
+ * values:
+ * <ul>
+ * <li> {@code HierarchyEvent.PARENT_CHANGED}
+ * <li> {@code HierarchyEvent.DISPLAYABILITY_CHANGED}
+ * <li> {@code HierarchyEvent.SHOWING_CHANGED}
+ * </ul>
+ * Assigning the value different from listed above will cause unspecified behavior.
  *
  * @author      David Mendenhall
  * @see         HierarchyListener
@@ -108,20 +122,20 @@
     public static final int HIERARCHY_LAST = ANCESTOR_RESIZED;
 
     /**
-     * Indicates that the <code>HIERARCHY_CHANGED</code> event
+     * A change flag indicates that the <code>HIERARCHY_CHANGED</code> event
      * was generated by a reparenting operation.
      */
     public static final int PARENT_CHANGED = 0x1;
 
     /**
-     * Indicates that the <code>HIERARCHY_CHANGED</code> event
-     * was generated due to a change in the displayability
-     * of the hierarchy.  To discern the
-     * current displayability of the hierarchy, call
-     * <code>Component.isDisplayable</code>. Displayability changes occur
-     * in response to explicit or implicit calls to
+     * A change flag indicates that the <code>HIERARCHY_CHANGED</code> event
+     * was generated due to the changing of the hierarchy displayability.
+     * To discern the
+     * current displayability of the hierarchy, call the
+     * <code>Component.isDisplayable</code> method. Displayability changes occur
+     * in response to explicit or implicit calls of the
      * <code>Component.addNotify</code> and
-     * <code>Component.removeNotify</code>.
+     * <code>Component.removeNotify</code> methods.
      *
      * @see java.awt.Component#isDisplayable()
      * @see java.awt.Component#addNotify()
@@ -130,15 +144,15 @@
     public static final int DISPLAYABILITY_CHANGED = 0x2;
 
     /**
-     * Indicates that the <code>HIERARCHY_CHANGED</code> event
-     * was generated due to a change in the showing state
-     * of the hierarchy. To discern the
-     * current showing state of the hierarchy, call
-     * <code>Component.isShowing</code>. Showing state changes occur
+     * A change flag indicates that the <code>HIERARCHY_CHANGED</code> event
+     * was generated due to the changing of the hierarchy showing state.
+     * To discern the
+     * current showing state of the hierarchy, call the
+     * <code>Component.isShowing</code> method. Showing state changes occur
      * when either the displayability or visibility of the
      * hierarchy occurs. Visibility changes occur in response to explicit
-     * or implicit calls to <code>Component.show</code> and
-     * <code>Component.hide</code>.
+     * or implicit calls of the <code>Component.show</code> and
+     * <code>Component.hide</code> methods.
      *
      * @see java.awt.Component#isShowing()
      * @see java.awt.Component#addNotify()
@@ -155,20 +169,26 @@
     /**
      * Constructs an <code>HierarchyEvent</code> object to identify a
      * change in the <code>Component</code> hierarchy.
-     * <p>Note that passing in an invalid <code>id</code> results in
-     * unspecified behavior. This method throws an
+     * <p>This method throws an
      * <code>IllegalArgumentException</code> if <code>source</code>
      * is <code>null</code>.
      *
-     * @param source          the <code>Component</code> object that
+     * @param source          The <code>Component</code> object that
      *                        originated the event
-     * @param id              an integer indicating the type of event
-     * @param changed         the <code>Component</code> at the top of
+     * @param id              An integer indicating the type of event.
+     *                        For information on allowable values, see
+     *                        the class description for {@link HierarchyEvent}
+     * @param changed         The <code>Component</code> at the top of
      *                        the hierarchy which was changed
-     * @param changedParent   the parent of <code>changed</code>; this
+     * @param changedParent   The parent of the <code>changed</code> component.
+     *                        This
      *                        may be the parent before or after the
      *                        change, depending on the type of change
-     * @throws IllegalArgumentException if <code>source</code> is null
+     * @throws IllegalArgumentException if <code>source</code> is {@code null}
+     * @see #getSource()
+     * @see #getID()
+     * @see #getChanged()
+     * @see #getChangedParent()
      */
     public HierarchyEvent(Component source, int id, Component changed,
                           Container changedParent) {
@@ -180,23 +200,32 @@
     /**
      * Constructs an <code>HierarchyEvent</code> object to identify
      * a change in the <code>Component</code> hierarchy.
-     * <p>Note that passing in an invalid <code>id</code> results in
-     * unspecified behavior. This method throws an
+     * <p> This method throws an
      * <code>IllegalArgumentException</code> if <code>source</code>
      * is <code>null</code>.
      *
-     * @param source          the <code>Component</code> object that
+     * @param source          The <code>Component</code> object that
      *                        originated the event
-     * @param id              an integer indicating the type of event
-     * @param changed         the <code>Component</code> at the top
+     * @param id              An integer indicating the type of event.
+     *                        For information on allowable values, see
+     *                        the class description for {@link HierarchyEvent}
+     * @param changed         The <code>Component</code> at the top
      *                        of the hierarchy which was changed
-     * @param changedParent   the parent of <code>changed</code>; this
+     * @param changedParent   The parent of the <code>changed</code> component.
+     *                        This
      *                        may be the parent before or after the
      *                        change, depending on the type of change
-     * @param changeFlags     a bitmask which indicates the type(s) of
-     *                        <code>HIERARCHY_CHANGED</code> events
-     *                        represented in this event object
+     * @param changeFlags     A bitmask which indicates the type(s) of
+     *                        the <code>HIERARCHY_CHANGED</code> events
+     *                        represented in this event object.
+     *                        For information on allowable values, see
+     *                        the class description for {@link HierarchyEvent}
      * @throws IllegalArgumentException if <code>source</code> is null
+     * @see #getSource()
+     * @see #getID()
+     * @see #getChanged()
+     * @see #getChangedParent()
+     * @see #getChangeFlags()
      */
     public HierarchyEvent(Component source, int id, Component changed,
                           Container changedParent, long changeFlags) {
--- a/src/share/classes/java/awt/event/InputEvent.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/event/InputEvent.java	Fri May 16 12:25:57 2008 -0700
@@ -208,17 +208,32 @@
     /**
      * Constructs an InputEvent object with the specified source component,
      * modifiers, and type.
-     * <p>Note that passing in an invalid <code>id</code> results in
-     * unspecified behavior. This method throws an
+     * <p> This method throws an
      * <code>IllegalArgumentException</code> if <code>source</code>
      * is <code>null</code>.
      *
      * @param source the object where the event originated
-     * @param id the event type
-     * @param when the time the event occurred
-     * @param modifiers represents the modifier keys and mouse buttons down
-     *                  while the event occurred
+     * @param id           the integer that identifies the event type.
+     *                     It is allowed to pass as parameter any value that
+     *                     allowed for some subclass of {@code InputEvent} class.
+     *                     Passing in the value different from those values result
+     *                     in unspecified behavior
+     * @param when         a long int that gives the time the event occurred.
+     *                     Passing negative or zero value
+     *                     is not recommended
+     * @param modifiers    the modifier keys down during event (e.g. shift, ctrl,
+     *                     alt, meta)
+     *                     Passing negative parameter is not recommended.
+     *                     Zero value means no modifiers.
+     *                     Either extended _DOWN_MASK or old _MASK modifiers
+     *                     should be used, but both models should not be mixed
+     *                     in one event. Use of the extended modifiers is
+     *                     preferred
      * @throws IllegalArgumentException if <code>source</code> is null
+     * @see #getSource()
+     * @see #getID()
+     * @see #getWhen()
+     * @see #getModifiers()
      */
     InputEvent(Component source, int id, long when, int modifiers) {
         super(source, id);
@@ -285,7 +300,8 @@
     }
 
     /**
-     * Returns the timestamp of when this event occurred.
+     * Returns the difference in milliseconds between the timestamp of when this event occurred and
+     * midnight, January 1, 1970 UTC.
      */
     public long getWhen() {
         return when;
@@ -358,7 +374,12 @@
      * Returns a String describing the extended modifier keys and
      * mouse buttons, such as "Shift", "Button1", or "Ctrl+Shift".
      * These strings can be localized by changing the
-     * awt.properties file.
+     * <code>awt.properties</code> file.
+     * <p>
+     * Note that passing negative parameter is incorrect,
+     * and will cause the returning an unspecified string.
+     * Zero parameter means that no modifiers were passed and will
+     * cause the returning an empty string.
      *
      * @param modifiers a modifier mask describing the extended
        *                modifier keys and mouse buttons for the event
--- a/src/share/classes/java/awt/event/InvocationEvent.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/event/InvocationEvent.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 1998-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1998-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -39,6 +39,10 @@
  * can use this fact to write replacement functions for <code>invokeLater
  * </code> and <code>invokeAndWait</code> without writing special-case code
  * in any <code>AWTEventListener</code> objects.
+ * <p>
+ * An unspecified behavior will be caused if the {@code id} parameter
+ * of any particular {@code InvocationEvent} instance is not
+ * in the range from {@code INVOCATION_FIRST} to {@code INVOCATION_LAST}.
  *
  * @author      Fred Ecks
  * @author      David Mendenhall
@@ -123,12 +127,13 @@
      * <p> This method throws an <code>IllegalArgumentException</code>
      * if <code>source</code> is <code>null</code>.
      *
-     * @param source    the <code>Object</code> that originated the event
-     * @param runnable  the <code>Runnable</code> whose <code>run</code>
+     * @param source    The <code>Object</code> that originated the event
+     * @param runnable  The <code>Runnable</code> whose <code>run</code>
      *                  method will be executed
      * @throws IllegalArgumentException if <code>source</code> is null
      *
-     * @see     #InvocationEvent(Object, Runnable, Object, boolean)
+     * @see #getSource()
+     * @see #InvocationEvent(Object, Runnable, Object, boolean)
      */
     public InvocationEvent(Object source, Runnable runnable) {
         this(source, runnable, null, false);
@@ -147,15 +152,15 @@
      * <p>This method throws an <code>IllegalArgumentException</code>
      * if <code>source</code> is <code>null</code>.
      *
-     * @param source            the <code>Object</code> that originated
+     * @param source            The <code>Object</code> that originated
      *                          the event
-     * @param runnable          the <code>Runnable</code> whose
+     * @param runnable          The <code>Runnable</code> whose
      *                          <code>run</code> method will be
      *                          executed
-     * @param notifier          the Object whose <code>notifyAll</code>
+     * @param notifier          The {@code Object} whose <code>notifyAll</code>
      *                          method will be called after
      *                          <code>Runnable.run</code> has returned
-     * @param catchThrowables   specifies whether <code>dispatch</code>
+     * @param catchThrowables   Specifies whether <code>dispatch</code>
      *                          should catch Throwable when executing
      *                          the <code>Runnable</code>'s <code>run</code>
      *                          method, or should instead propagate those
@@ -163,6 +168,7 @@
      *                          dispatch loop
      * @throws IllegalArgumentException if <code>source</code> is null
      *
+     * @see #getSource()
      * @see     #InvocationEvent(Object, int, Runnable, Object, boolean)
      */
     public InvocationEvent(Object source, Runnable runnable, Object notifier,
@@ -176,26 +182,29 @@
      * method when dispatched.  If notifier is non-<code>null</code>,
      * <code>notifyAll</code> will be called on it
      * immediately after <code>run</code> returns.
-     * <p>Note that passing in an invalid <code>id</code> results in
-     * unspecified behavior. This method throws an
+     * <p>This method throws an
      * <code>IllegalArgumentException</code> if <code>source</code>
      * is <code>null</code>.
      *
-     * @param source            the <code>Object</code> that originated
+     * @param source            The <code>Object</code> that originated
      *                          the event
-     * @param id                the ID for the event
-     * @param runnable          the <code>Runnable</code> whose
+     * @param id     An integer indicating the type of event.
+     *                     For information on allowable values, see
+     *                     the class description for {@link InvocationEvent}
+     * @param runnable          The <code>Runnable</code> whose
      *                          <code>run</code> method will be executed
-     * @param notifier          the <code>Object</code> whose <code>notifyAll</code>
+     * @param notifier          The <code>Object</code> whose <code>notifyAll</code>
      *                          method will be called after
      *                          <code>Runnable.run</code> has returned
-     * @param catchThrowables   specifies whether <code>dispatch</code>
+     * @param catchThrowables   Specifies whether <code>dispatch</code>
      *                          should catch Throwable when executing the
      *                          <code>Runnable</code>'s <code>run</code>
      *                          method, or should instead propagate those
      *                          Throwables to the EventDispatchThread's
      *                          dispatch loop
      * @throws IllegalArgumentException if <code>source</code> is null
+     * @see #getSource()
+     * @see #getID()
      */
     protected InvocationEvent(Object source, int id, Runnable runnable,
                               Object notifier, boolean catchThrowables) {
--- a/src/share/classes/java/awt/event/ItemEvent.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/event/ItemEvent.java	Fri May 16 12:25:57 2008 -0700
@@ -41,6 +41,18 @@
  * spared the details of processing individual mouse movements and mouse
  * clicks, and can instead process a "meaningful" (semantic) event like
  * "item selected" or "item deselected".
+ * <p>
+ * An unspecified behavior will be caused if the {@code id} parameter
+ * of any particular {@code ItemEvent} instance is not
+ * in the range from {@code ITEM_FIRST} to {@code ITEM_LAST}.
+ * <p>
+ * The {@code stateChange} of any {@code ItemEvent} instance takes one of the following
+ * values:
+ *                     <ul>
+ *                     <li> {@code ItemEvent.SELECTED}
+ *                     <li> {@code ItemEvent.DESELECTED}
+ *                     </ul>
+ * Assigning the value different from listed above will cause an unspecified behavior.
  *
  * @author Carl Quinn
  *
@@ -101,19 +113,24 @@
 
     /**
      * Constructs an <code>ItemEvent</code> object.
-     * <p>Note that passing in an invalid <code>id</code> results in
-     * unspecified behavior. This method throws an
+     * <p> This method throws an
      * <code>IllegalArgumentException</code> if <code>source</code>
      * is <code>null</code>.
      *
-     * @param source the <code>ItemSelectable</code> object
+     * @param source The <code>ItemSelectable</code> object
      *               that originated the event
-     * @param id     an integer that identifies the event type
-     * @param item   an object -- the item affected by the event
-     * @param stateChange
-     *               an integer that indicates whether the item was
-     *               selected or deselected
+     * @param id           The integer that identifies the event type.
+     *                     For information on allowable values, see
+     *                     the class description for {@link ItemEvent}
+     * @param item   An object -- the item affected by the event
+     * @param stateChange  An integer that indicates whether the item was
+     *               selected or deselected.
+     *                     For information on allowable values, see
+     *                     the class description for {@link ItemEvent}
      * @throws IllegalArgumentException if <code>source</code> is null
+     * @see #getItemSelectable()
+     * @see #getID()
+     * @see #getStateChange()
      */
     public ItemEvent(ItemSelectable source, int id, Object item, int stateChange) {
         super(source, id);
--- a/src/share/classes/java/awt/event/KeyEvent.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/event/KeyEvent.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 1996-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -128,6 +128,10 @@
  * (VK_ENTER, VK_BACK_SPACE, and VK_TAB), do not rely on the values of the VK_
  * constants.  Sun reserves the right to change these values as needed
  * to accomodate a wider range of keyboards in the future.
+ * <p>
+ * An unspecified behavior will be caused if the {@code id} parameter
+ * of any particular {@code KeyEvent} instance is not
+ * in the range from {@code KEY_FIRST} to {@code KEY_LAST}.
  *
  * @author Carl Quinn
  * @author Amy Fowler
@@ -914,27 +918,32 @@
 
     /**
      * Constructs a <code>KeyEvent</code> object.
-     * <p>Note that passing in an invalid <code>id</code> results in
-     * unspecified behavior. This method throws an
+     * <p>This method throws an
      * <code>IllegalArgumentException</code> if <code>source</code>
      * is <code>null</code>.
      *
-     * @param source    the <code>Component</code> that originated the event
-     * @param id        an integer identifying the type of event
-     * @param when      a long integer that specifies the time the event
-     *                  occurred
-     * @param modifiers the modifier keys down during event (shift, ctrl,
-     *                  alt, meta)
-     *                  Either extended _DOWN_MASK or old _MASK modifiers
-     *                  should be used, but both models should not be mixed
-     *                  in one event. Use of the extended modifiers is
-     *                  preferred.
-     * @param keyCode   the integer code for an actual key, or VK_UNDEFINED
+     * @param source    The <code>Component</code> that originated the event
+     * @param id              An integer indicating the type of event.
+     *                  For information on allowable values, see
+     *                  the class description for {@link KeyEvent}
+     * @param when      A long integer that specifies the time the event
+     *                  occurred.
+     *                     Passing negative or zero value
+     *                     is not recommended
+     * @param modifiers The modifier keys down during event (shift, ctrl,
+     *                  alt, meta).
+     *                     Passing negative value
+     *                     is not recommended.
+     *                     Zero value means that no modifiers were passed.
+     *                  Use either an extended _DOWN_MASK or old _MASK modifiers,
+     *                  however do not mix models in the one event.
+     *                  The extended modifiers are preferred for using
+     * @param keyCode   The integer code for an actual key, or VK_UNDEFINED
      *                  (for a key-typed event)
-     * @param keyChar   the Unicode character generated by this event, or
+     * @param keyChar   The Unicode character generated by this event, or
      *                  CHAR_UNDEFINED (for key-pressed and key-released
      *                  events which do not map to a valid Unicode character)
-     * @param keyLocation  identifies the key location.  The only legal
+     * @param keyLocation  Identifies the key location.  The only legal
      *        values are <code>KEY_LOCATION_UNKNOWN</code>,
      *        <code>KEY_LOCATION_STANDARD</code>, <code>KEY_LOCATION_LEFT</code>,
      *        <code>KEY_LOCATION_RIGHT</code>, and <code>KEY_LOCATION_NUMPAD</code>.
@@ -948,6 +957,13 @@
      *     or if <code>keyLocation</code> is not one of the legal
      *       values enumerated above.
      * @throws IllegalArgumentException if <code>source</code> is null
+     * @see #getSource()
+     * @see #getID()
+     * @see #getWhen()
+     * @see #getModifiers()
+     * @see #getKeyCode()
+     * @see #getKeyChar()
+     * @see #getKeyLocation()
      * @since 1.4
      */
     public KeyEvent(Component source, int id, long when, int modifiers,
@@ -982,24 +998,29 @@
 
     /**
      * Constructs a <code>KeyEvent</code> object.
-     * <p>Note that passing in an invalid <code>id</code> results in
-     * unspecified behavior. This method throws an
+     * <p> This method throws an
      * <code>IllegalArgumentException</code> if <code>source</code>
      * is <code>null</code>.
      *
-     * @param source    the <code>Component</code> that originated the event
-     * @param id        an integer identifying the type of event
-     * @param when      a long integer that specifies the time the event
-     *                  occurred
-     * @param modifiers the modifier keys down during event (shift, ctrl,
-     *                  alt, meta)
-     *                  Either extended _DOWN_MASK or old _MASK modifiers
-     *                  should be used, but both models should not be mixed
-     *                  in one event. Use of the extended modifiers is
-     *                  preferred.
-     * @param keyCode   the integer code for an actual key, or VK_UNDEFINED
+     * @param source    The <code>Component</code> that originated the event
+     * @param id              An integer indicating the type of event.
+     *                  For information on allowable values, see
+     *                  the class description for {@link KeyEvent}
+     * @param when      A long integer that specifies the time the event
+     *                  occurred.
+     *                     Passing negative or zero value
+     *                     is not recommended
+     * @param modifiers The modifier keys down during event (shift, ctrl,
+     *                  alt, meta).
+     *                     Passing negative value
+     *                     is not recommended.
+     *                     Zero value means that no modifiers were passed.
+     *                  Use either an extended _DOWN_MASK or old _MASK modifiers,
+     *                  however do not mix models in the one event.
+     *                  The extended modifiers are preferred for using
+     * @param keyCode   The integer code for an actual key, or VK_UNDEFINED
      *                  (for a key-typed event)
-     * @param keyChar   the Unicode character generated by this event, or
+     * @param keyChar   The Unicode character generated by this event, or
      *                  CHAR_UNDEFINED (for key-pressed and key-released
      *                  events which do not map to a valid Unicode character)
      * @throws IllegalArgumentException  if <code>id</code> is
@@ -1008,6 +1029,12 @@
      *     <code>KEY_TYPED</code> and <code>keyCode</code> is not
      *     <code>VK_UNDEFINED</code>
      * @throws IllegalArgumentException if <code>source</code> is null
+     * @see #getSource()
+     * @see #getID()
+     * @see #getWhen()
+     * @see #getModifiers()
+     * @see #getKeyCode()
+     * @see #getKeyChar()
      */
     public KeyEvent(Component source, int id, long when, int modifiers,
                     int keyCode, char keyChar) {
--- a/src/share/classes/java/awt/event/MouseEvent.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/event/MouseEvent.java	Fri May 16 12:25:57 2008 -0700
@@ -159,6 +159,11 @@
  * The reported coordinates for mouse drag events are clipped to fit within the
  * bounds of the virtual device associated with the <code>Component</code>.
  * </ul>
+ * <p>
+ * An unspecified behavior will be caused if the {@code id} parameter
+ * of any particular {@code MouseEvent} instance is not
+ * in the range from {@code MOUSE_FIRST} to {@code MOUSE_LAST}-1
+ * ({@code MOUSE_WHEEL} is not acceptable).
  *
  * @author Carl Quinn
  *
@@ -418,8 +423,7 @@
      * specified source component,
      * type, modifiers, coordinates, and click count.
      * <p>
-     * Note that passing in an invalid <code>id</code> results in
-     * unspecified behavior.  Creating an invalid event (such
+     * Creating an invalid event (such
      * as by using more than one of the old _MASKs, or modifier/button
      * values which don't match) results in unspecified behavior.
      * An invocation of the form
@@ -435,28 +439,44 @@
      * <code>IllegalArgumentException</code> if <code>source</code>
      * is <code>null</code>.
      *
-     * @param source       the <code>Component</code> that originated the event
-     * @param id           the integer that identifies the event
-     * @param when         a long int that gives the time the event occurred
-     * @param modifiers    the modifier keys down during event (e.g. shift, ctrl,
+     * @param source       The <code>Component</code> that originated the event
+     * @param id              An integer indicating the type of event.
+     *                     For information on allowable values, see
+     *                     the class description for {@link MouseEvent}
+     * @param when         A long integer that gives the time the event occurred.
+     *                     Passing negative or zero value
+     *                     is not recommended
+     * @param modifiers    The modifier keys down during event (e.g. shift, ctrl,
      *                     alt, meta)
-     *                     Either extended _DOWN_MASK or old _MASK modifiers
-     *                     should be used, but both models should not be mixed
-     *                     in one event. Use of the extended modifiers is
-     *                     preferred.
-     * @param x            the horizontal x coordinate for the mouse location
-     * @param y            the vertical y coordinate for the mouse location
-     * @param clickCount   the number of mouse clicks associated with event
-     * @param popupTrigger a boolean, true if this event is a trigger for a
-     *                     popup menu
-     * @param button       which of the mouse buttons has changed state.
-     *                      <code>NOBUTTON</code>,
-     *                      <code>BUTTON1</code>,
-     *                      <code>BUTTON2</code> or
-     *                      <code>BUTTON3</code>.
+     *                     Passing negative parameter
+     *                     is not recommended.
+     *                     Zero value means that no modifiers were passed.
+     *                     Use either an extended _DOWN_MASK or old _MASK modifiers,
+     *                     however do not mix models in the one event.
+     *                     The extended modifiers are preferred for using
+     * @param x            The horizontal x coordinate for the mouse location.
+     *                       It is allowed to pass negative values
+     * @param y            The vertical y coordinate for the mouse location.
+     *                       It is allowed to pass negative values
+     * @param clickCount   The number of mouse clicks associated with event.
+     *                       Passing negative value
+     *                       is not recommended
+     * @param popupTrigger A boolean that equals {@code true} if this event
+     *                     is a trigger for a popup menu
+     * @param button       An integer that indicates, which of the mouse buttons has
+     *                     changed its state
      * @throws IllegalArgumentException if an invalid <code>button</code>
      *            value is passed in
      * @throws IllegalArgumentException if <code>source</code> is null
+     * @see #getSource()
+     * @see #getID()
+     * @see #getWhen()
+     * @see #getModifiers()
+     * @see #getX()
+     * @see #getY()
+     * @see #getClickCount()
+     * @see #isPopupTrigger()
+     * @see #getButton()
      * @since 1.4
      */
     public MouseEvent(Component source, int id, long when, int modifiers,
@@ -479,8 +499,6 @@
      * Constructs a <code>MouseEvent</code> object with the
      * specified source component,
      * type, modifiers, coordinates, and click count.
-     * <p>Note that passing in an invalid <code>id</code> results in
-     * unspecified behavior.
      * An invocation of the form
      * <tt>MouseEvent(source, id, when, modifiers, x, y, clickCount, popupTrigger)</tt>
      * behaves in exactly the same way as the invocation
@@ -493,21 +511,39 @@
      * This method throws an <code>IllegalArgumentException</code>
      * if <code>source</code> is <code>null</code>.
      *
-     * @param source       the <code>Component</code> that originated the event
-     * @param id           the integer that identifies the event
-     * @param when         a long int that gives the time the event occurred
-     * @param modifiers    the modifier keys down during event (e.g. shift, ctrl,
+     * @param source       The <code>Component</code> that originated the event
+     * @param id              An integer indicating the type of event.
+     *                     For information on allowable values, see
+     *                     the class description for {@link MouseEvent}
+     * @param when         A long integer that gives the time the event occurred.
+     *                     Passing negative or zero value
+     *                     is not recommended
+     * @param modifiers    The modifier keys down during event (e.g. shift, ctrl,
      *                     alt, meta)
-     *                     Either extended _DOWN_MASK or old _MASK modifiers
-     *                     should be used, but both models should not be mixed
-     *                     in one event. Use of the extended modifiers is
-     *                     preferred.
-     * @param x            the horizontal x coordinate for the mouse location
-     * @param y            the vertical y coordinate for the mouse location
-     * @param clickCount   the number of mouse clicks associated with event
-     * @param popupTrigger a boolean, true if this event is a trigger for a
-     *                     popup menu
+     *                     Passing negative parameter
+     *                     is not recommended.
+     *                     Zero value means that no modifiers were passed.
+     *                     Use either an extended _DOWN_MASK or old _MASK modifiers,
+     *                     however do not mix models in the one event.
+     *                     The extended modifiers are preferred for using
+     * @param x            The horizontal x coordinate for the mouse location.
+     *                       It is allowed to pass negative values
+     * @param y            The vertical y coordinate for the mouse location.
+     *                       It is allowed to pass negative values
+     * @param clickCount   The number of mouse clicks associated with event.
+     *                       Passing negative value
+     *                       is not recommended
+     * @param popupTrigger A boolean that equals {@code true} if this event
+     *                     is a trigger for a popup menu
      * @throws IllegalArgumentException if <code>source</code> is null
+     * @see #getSource()
+     * @see #getID()
+     * @see #getWhen()
+     * @see #getModifiers()
+     * @see #getX()
+     * @see #getY()
+     * @see #getClickCount()
+     * @see #isPopupTrigger()
      */
      public MouseEvent(Component source, int id, long when, int modifiers,
                       int x, int y, int clickCount, boolean popupTrigger) {
@@ -520,8 +556,7 @@
      * specified source component,
      * type, modifiers, coordinates, absolute coordinates, and click count.
      * <p>
-     * Note that passing in an invalid <code>id</code> results in
-     * unspecified behavior.  Creating an invalid event (such
+     * Creating an invalid event (such
      * as by using more than one of the old _MASKs, or modifier/button
      * values which don't match) results in unspecified behavior.
      * Even if inconsistent values for relative and absolute coordinates are
@@ -531,30 +566,50 @@
      * <code>IllegalArgumentException</code> if <code>source</code>
      * is <code>null</code>.
      *
-     * @param source       the <code>Component</code> that originated the event
-     * @param id           the integer that identifies the event
-     * @param when         a long int that gives the time the event occurred
-     * @param modifiers    the modifier keys down during event (e.g. shift, ctrl,
+     * @param source       The <code>Component</code> that originated the event
+     * @param id              An integer indicating the type of event.
+     *                     For information on allowable values, see
+     *                     the class description for {@link MouseEvent}
+     * @param when         A long integer that gives the time the event occurred.
+     *                     Passing negative or zero value
+     *                     is not recommended
+     * @param modifiers    The modifier keys down during event (e.g. shift, ctrl,
      *                     alt, meta)
-     *                     Either extended _DOWN_MASK or old _MASK modifiers
-     *                     should be used, but both models should not be mixed
-     *                     in one event. Use of the extended modifiers is
-     *                     preferred.
-     * @param x            the horizontal x coordinate for the mouse location
-     * @param y            the vertical y coordinate for the mouse location
-     * @param xAbs         the absolute horizontal x coordinate for the mouse location
-     * @param yAbs         the absolute vertical y coordinate for the mouse location
-     * @param clickCount   the number of mouse clicks associated with event
-     * @param popupTrigger a boolean, true if this event is a trigger for a
-     *                     popup menu
-     * @param button       which of the mouse buttons has changed state.
-     *                      <code>NOBUTTON</code>,
-     *                      <code>BUTTON1</code>,
-     *                      <code>BUTTON2</code> or
-     *                      <code>BUTTON3</code>.
+     *                     Passing negative parameter
+     *                     is not recommended.
+     *                     Zero value means that no modifiers were passed.
+     *                     Use either an extended _DOWN_MASK or old _MASK modifiers,
+     *                     however do not mix models in the one event.
+     *                     The extended modifiers are preferred for using
+     * @param x            The horizontal x coordinate for the mouse location.
+     *                       It is allowed to pass negative values
+     * @param y            The vertical y coordinate for the mouse location.
+     *                       It is allowed to pass negative values
+     * @param xAbs           The absolute horizontal x coordinate for the mouse location
+     *                       It is allowed to pass negative values
+     * @param yAbs           The absolute vertical y coordinate for the mouse location
+     *                       It is allowed to pass negative values
+     * @param clickCount   The number of mouse clicks associated with event.
+     *                       Passing negative value
+     *                       is not recommended
+     * @param popupTrigger A boolean that equals {@code true} if this event
+     *                     is a trigger for a popup menu
+     * @param button       An integer that indicates, which of the mouse buttons has
+     *                     changed its state
      * @throws IllegalArgumentException if an invalid <code>button</code>
      *            value is passed in
      * @throws IllegalArgumentException if <code>source</code> is null
+     * @see #getSource()
+     * @see #getID()
+     * @see #getWhen()
+     * @see #getModifiers()
+     * @see #getX()
+     * @see #getY()
+     * @see #getXOnScreen()
+     * @see #getYOnScreen()
+     * @see #getClickCount()
+     * @see #isPopupTrigger()
+     * @see #getButton()
      * @since 1.6
      */
     public MouseEvent(Component source, int id, long when, int modifiers,
@@ -675,21 +730,26 @@
     }
 
     /**
-     * Returns a <code>String</code> describing the modifier keys and
+     * Returns a <code>String</code> instance describing the modifier keys and
      * mouse buttons that were down during the event, such as "Shift",
      * or "Ctrl+Shift". These strings can be localized by changing
      * the <code>awt.properties</code> file.
      * <p>
-     * Note that <code>InputEvent.ALT_MASK</code> and
-     * <code>InputEvent.BUTTON2_MASK</code> have the same value,
-     * so the string "Alt" is returned for both modifiers.  Likewise,
-     * <code>InputEvent.META_MASK</code> and
-     * <code>InputEvent.BUTTON3_MASK</code> have the same value,
-     * so the string "Meta" is returned for both modifiers.
+     * Note that the <code>InputEvent.ALT_MASK</code> and
+     * <code>InputEvent.BUTTON2_MASK</code> have equal values,
+     * so the "Alt" string is returned for both modifiers.  Likewise,
+     * the <code>InputEvent.META_MASK</code> and
+     * <code>InputEvent.BUTTON3_MASK</code> have equal values,
+     * so the "Meta" string is returned for both modifiers.
+     * <p>
+     * Note that passing negative parameter is incorrect,
+     * and will cause the returning an unspecified string.
+     * Zero parameter means that no modifiers were passed and will
+     * cause the returning an empty string.
      *
-     * @param modifiers a modifier mask describing the modifier keys and
+     * @param modifiers A modifier mask describing the modifier keys and
      *                  mouse buttons that were down during the event
-     * @return string   a text description of the combination of modifier
+     * @return string   string text description of the combination of modifier
      *                  keys and mouse buttons that were down during the event
      * @see InputEvent#getModifiersExText(int)
      * @since 1.4
--- a/src/share/classes/java/awt/event/MouseWheelEvent.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/event/MouseWheelEvent.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
--- a/src/share/classes/java/awt/event/PaintEvent.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/event/PaintEvent.java	Fri May 16 12:25:57 2008 -0700
@@ -36,6 +36,10 @@
  * designed to be used with the Event Listener model; programs
  * should continue to override paint/update methods in order
  * render themselves properly.
+ * <p>
+ * An unspecified behavior will be caused if the {@code id} parameter
+ * of any particular {@code PaintEvent} instance is not
+ * in the range from {@code PAINT_FIRST} to {@code PAINT_LAST}.
  *
  * @author Amy Fowler
  * @since 1.1
@@ -82,15 +86,19 @@
     /**
      * Constructs a <code>PaintEvent</code> object with the specified
      * source component and type.
-     * <p>Note that passing in an invalid <code>id</code> results in
-     * unspecified behavior. This method throws an
+     * <p> This method throws an
      * <code>IllegalArgumentException</code> if <code>source</code>
      * is <code>null</code>.
      *
-     * @param source     the object where the event originated
-     * @param id         the event type
-     * @param updateRect the rectangle area which needs to be repainted
+     * @param source     The object where the event originated
+     * @param id           The integer that identifies the event type.
+     *                     For information on allowable values, see
+     *                     the class description for {@link PaintEvent}
+     * @param updateRect The rectangle area which needs to be repainted
      * @throws IllegalArgumentException if <code>source</code> is null
+     * @see #getSource()
+     * @see #getID()
+     * @see #getUpdateRect()
      */
     public PaintEvent(Component source, int id, Rectangle updateRect) {
         super(source, id);
--- a/src/share/classes/java/awt/event/TextEvent.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/event/TextEvent.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 1996-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -38,12 +38,15 @@
  * this <code>TextEvent</code> when the event occurs. The listener is
  * spared the details of processing individual mouse movements and key strokes
  * Instead, it can process a "meaningful" (semantic) event like "text changed".
+ * <p>
+ * An unspecified behavior will be caused if the {@code id} parameter
+ * of any particular {@code TextEvent} instance is not
+ * in the range from {@code TEXT_FIRST} to {@code TEXT_LAST}.
  *
  * @author Georges Saab
  *
  * @see java.awt.TextComponent
  * @see TextListener
- * @see <a href="http://java.sun.com/docs/books/tutorial/post1.0/ui/textlistener.html">Tutorial: Writing a Text Listener</a>
  *
  * @since 1.1
  */
@@ -72,15 +75,18 @@
 
     /**
      * Constructs a <code>TextEvent</code> object.
-     * <p>Note that passing in an invalid <code>id</code> results in
-     * unspecified behavior. This method throws an
+     * <p> This method throws an
      * <code>IllegalArgumentException</code> if <code>source</code>
      * is <code>null</code>.
      *
-     * @param source the (<code>TextComponent</code>) object that
+     * @param source The (<code>TextComponent</code>) object that
      *               originated the event
-     * @param id     an integer that identifies the event type
+     * @param id     An integer that identifies the event type.
+     *                     For information on allowable values, see
+     *                     the class description for {@link TextEvent}
      * @throws IllegalArgumentException if <code>source</code> is null
+     * @see #getSource()
+     * @see #getID()
      */
     public TextEvent(Object source, int id) {
         super(source, id);
--- a/src/share/classes/java/awt/event/TextListener.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/event/TextListener.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 1996-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -40,7 +40,6 @@
  * @author Georges Saab
  *
  * @see TextEvent
- * @see <a href="http://java.sun.com/docs/books/tutorial/post1.0/ui/textlistener.html">Tutorial: Writing a Text Listener</a>
  *
  * @since 1.1
  */
--- a/src/share/classes/java/awt/event/WindowEvent.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/event/WindowEvent.java	Fri May 16 12:25:57 2008 -0700
@@ -41,6 +41,10 @@
  * (<code>WindowAdapter</code> objects implement the
  * <code>WindowListener</code> interface.) Each such listener object
  * gets this <code>WindowEvent</code> when the event occurs.
+ * <p>
+ * An unspecified behavior will be caused if the {@code id} parameter
+ * of any particular {@code WindowEvent} instance is not
+ * in the range from {@code WINDOW_FIRST} to {@code WINDOW_LAST}.
  *
  * @author Carl Quinn
  * @author Amy Fowler
@@ -170,20 +174,27 @@
 
     /**
      * Constructs a <code>WindowEvent</code> object.
-     * <p>Note that passing in an invalid <code>id</code> results in
-     * unspecified behavior. This method throws an
+     * <p>This method throws an
      * <code>IllegalArgumentException</code> if <code>source</code>
      * is <code>null</code>.
      *
-     * @param source    the <code>Window</code> object
+     * @param source    The <code>Window</code> object
      *                    that originated the event
-     * @param id        an integer indicating the type of event.
-     * @param opposite  the other window involved in the focus or activation
+     * @param id        An integer indicating the type of event.
+     *                     For information on allowable values, see
+     *                     the class description for {@link WindowEvent}
+     * @param opposite  The other window involved in the focus or activation
      *                      change, or <code>null</code>
-     * @param oldState  previous state of the window for window state
-     *                      change event
-     * @param newState  new state of the window for window state change event
+     * @param oldState  Previous state of the window for window state change event.
+     *                  See {@code #getOldState()} for allowable values
+     * @param newState  New state of the window for window state change event.
+     *                  See {@code #getNewState()} for allowable values
      * @throws IllegalArgumentException if <code>source</code> is null
+     * @see #getWindow()
+     * @see #getID()
+     * @see #getOppositeWindow()
+     * @see #getOldState()
+     * @see #getNewState()
      * @since 1.4
      */
     public WindowEvent(Window source, int id, Window opposite,
@@ -209,24 +220,28 @@
      * If this focus change occurs with a native application, with a
      * Java application in a different VM, or with no other
      * <code>Window</code>, then the opposite Window is <code>null</code>.
-     * <p>Note that passing in an invalid <code>id</code> results in
-     * unspecified behavior. This method throws an
+     * <p>This method throws an
      * <code>IllegalArgumentException</code> if <code>source</code>
      * is <code>null</code>.
      *
-     * @param source     the <code>Window</code> object that
+     * @param source     The <code>Window</code> object that
      *                   originated the event
-     * @param id         <code>WINDOW_ACTIVATED</code>,
-     *                   <code>WINDOW_DEACTIVATED</code>,
-     *                   <code>WINDOW_GAINED_FOCUS</code>,
-     *                   or <code>WINDOW_LOST_FOCUS</code>. It is
-     *                   expected that this constructor will not be used for
-     *                   other <code>WindowEvent</code> types because the
-     *                   opposite <code>Window</code> of such events
-     *                   will always be <code>null</code>
-     * @param opposite   the other <code>Window</code> involved in the
+     * @param id        An integer indicating the type of event.
+     *                     For information on allowable values, see
+     *                     the class description for {@link WindowEvent}.
+     *                  It is expected that this constructor will not
+     *                  be used for other then
+     *                  {@code WINDOW_ACTIVATED},{@code WINDOW_DEACTIVATED},
+     *                  {@code WINDOW_GAINED_FOCUS}, or {@code WINDOW_LOST_FOCUS}.
+     *                  {@code WindowEvent} types,
+     *                  because the opposite <code>Window</code> of other event types
+     *                  will always be {@code null}.
+     * @param opposite   The other <code>Window</code> involved in the
      *                   focus or activation change, or <code>null</code>
      * @throws IllegalArgumentException if <code>source</code> is null
+     * @see #getWindow()
+     * @see #getID()
+     * @see #getOppositeWindow()
      * @since 1.4
      */
     public WindowEvent(Window source, int id, Window opposite) {
@@ -236,21 +251,30 @@
     /**
      * Constructs a <code>WindowEvent</code> object with the specified
      * previous and new window states.
-     * <p>Note that passing in an invalid <code>id</code> results in
-     * unspecified behavior. This method throws an
+     * <p>This method throws an
      * <code>IllegalArgumentException</code> if <code>source</code>
      * is <code>null</code>.
      *
-     * @param source    the <code>Window</code> object
+     * @param source    The <code>Window</code> object
      *                  that originated the event
-     * @param id        <code>WINDOW_STATE_CHANGED</code> event type.
+     * @param id        An integer indicating the type of event.
+     *                     For information on allowable values, see
+     *                     the class description for {@link WindowEvent}.
      *                  It is expected that this constructor will not
-     *                  be used for other <code>WindowEvent</code>
+     *                  be used for other then
+     *                  {@code WINDOW_STATE_CHANGED}
+     *                  {@code WindowEvent}
      *                  types, because the previous and new window
      *                  states are meaningless for other event types.
-     * @param oldState  an integer representing the previous window state
-     * @param newState  an integer representing the new window state
+     * @param oldState  An integer representing the previous window state.
+     *                  See {@code #getOldState()} for allowable values
+     * @param newState  An integer representing the new window state.
+     *                  See {@code #getNewState()} for allowable values
      * @throws IllegalArgumentException if <code>source</code> is null
+     * @see #getWindow()
+     * @see #getID()
+     * @see #getOldState()
+     * @see #getNewState()
      * @since 1.4
      */
     public WindowEvent(Window source, int id, int oldState, int newState) {
@@ -259,14 +283,17 @@
 
     /**
      * Constructs a <code>WindowEvent</code> object.
-     * <p>Note that passing in an invalid <code>id</code> results in
-     * unspecified behavior. This method throws an
+     * <p>This method throws an
      * <code>IllegalArgumentException</code> if <code>source</code>
      * is <code>null</code>.
      *
-     * @param source the <code>Window</code> object that originated the event
-     * @param id     an integer indicating the type of event
+     * @param source The <code>Window</code> object that originated the event
+     * @param id     An integer indicating the type of event.
+     *                     For information on allowable values, see
+     *                     the class description for {@link WindowEvent}.
      * @throws IllegalArgumentException if <code>source</code> is null
+     * @see #getWindow()
+     * @see #getID()
      */
     public WindowEvent(Window source, int id) {
         this(source, id, null, 0, 0);
--- a/src/share/classes/java/awt/geom/RectangularShape.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/geom/RectangularShape.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,6 +27,7 @@
 
 import java.awt.Shape;
 import java.awt.Rectangle;
+import java.beans.Transient;
 
 /**
  * <code>RectangularShape</code> is the base class for a number of
@@ -171,6 +172,7 @@
      * @see #setFrame(Rectangle2D)
      * @since 1.2
      */
+    @Transient
     public Rectangle2D getFrame() {
         return new Rectangle2D.Double(getX(), getY(), getWidth(), getHeight());
     }
--- a/src/share/classes/java/awt/im/InputContext.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/im/InputContext.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -28,6 +28,7 @@
 import java.awt.Component;
 import java.util.Locale;
 import java.awt.AWTEvent;
+import java.beans.Transient;
 import java.lang.Character.Subset;
 import sun.awt.im.InputMethodContext;
 
@@ -231,6 +232,7 @@
      * @see #setCompositionEnabled
      * @since 1.3
      */
+    @Transient
     public boolean isCompositionEnabled() {
         // real implementation is in sun.awt.im.InputContext
         return false;
--- a/src/share/classes/java/awt/image/BufferedImage.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/awt/image/BufferedImage.java	Fri May 16 12:25:57 2008 -0700
@@ -1210,9 +1210,9 @@
      *          <code>BufferedImage</code>.
      */
     public String toString() {
-        return new String("BufferedImage@"+Integer.toHexString(hashCode())
-                          +": type = "+imageType
-                          +" "+colorModel+" "+raster);
+        return "BufferedImage@"+Integer.toHexString(hashCode())
+            +": type = "+imageType
+            +" "+colorModel+" "+raster;
     }
 
     /**
--- a/src/share/classes/java/beans/DefaultPersistenceDelegate.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/beans/DefaultPersistenceDelegate.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -164,53 +164,19 @@
         return new Expression(oldInstance, oldInstance.getClass(), "new", constructorArgs);
     }
 
-    private Method findMethod(Class type, String property) throws IntrospectionException {
+    private Method findMethod(Class type, String property) {
         if (property == null) {
             throw new IllegalArgumentException("Property name is null");
         }
-        BeanInfo info = Introspector.getBeanInfo(type);
-        for (PropertyDescriptor pd : info.getPropertyDescriptors()) {
-            if (property.equals(pd.getName())) {
-                Method method = pd.getReadMethod();
-                if (method != null) {
-                    return method;
-                }
-                throw new IllegalStateException("Could not find getter for the property " + property);
-            }
+        PropertyDescriptor pd = getPropertyDescriptor(type, property);
+        if (pd == null) {
+            throw new IllegalStateException("Could not find property by the name " + property);
         }
-        throw new IllegalStateException("Could not find property by the name " + property);
-    }
-
-    // This is a workaround for a bug in the introspector.
-    // PropertyDescriptors are not shared amongst subclasses.
-    private boolean isTransient(Class type, PropertyDescriptor pd) {
-        if (type == null) {
-            return false;
+        Method method = pd.getReadMethod();
+        if (method == null) {
+            throw new IllegalStateException("Could not find getter for the property " + property);
         }
-        // This code was mistakenly deleted - it may be fine and
-        // is more efficient than the code below. This should
-        // all disappear anyway when property descriptors are shared
-        // by the introspector.
-        /*
-        Method getter = pd.getReadMethod();
-        Class declaringClass = getter.getDeclaringClass();
-        if (declaringClass == type) {
-            return Boolean.TRUE.equals(pd.getValue("transient"));
-        }
-        */
-        String pName = pd.getName();
-        BeanInfo info = MetaData.getBeanInfo(type);
-        PropertyDescriptor[] propertyDescriptors = info.getPropertyDescriptors();
-        for (int i = 0; i < propertyDescriptors.length; ++i ) {
-            PropertyDescriptor pd2 = propertyDescriptors[i];
-            if (pName.equals(pd2.getName())) {
-                Object value = pd2.getValue("transient");
-                if (value != null) {
-                    return Boolean.TRUE.equals(value);
-                }
-            }
-        }
-        return isTransient(type.getSuperclass(), pd);
+        return method;
     }
 
     private static boolean equals(Object o1, Object o2) {
@@ -221,7 +187,7 @@
         Method getter = pd.getReadMethod();
         Method setter = pd.getWriteMethod();
 
-        if (getter != null && setter != null && !isTransient(type, pd)) {
+        if (getter != null && setter != null) {
             Expression oldGetExp = new Expression(oldInstance, getter.getName(), new Object[]{});
             Expression newGetExp = new Expression(newInstance, getter.getName(), new Object[]{});
             Object oldValue = oldGetExp.getValue();
@@ -254,14 +220,19 @@
 
     // Write out the properties of this instance.
     private void initBean(Class type, Object oldInstance, Object newInstance, Encoder out) {
-        // System.out.println("initBean: " + oldInstance);
-        BeanInfo info = MetaData.getBeanInfo(type);
-
+        BeanInfo info;
+        try {
+            info = Introspector.getBeanInfo(type);
+        } catch (IntrospectionException exception) {
+            return;
+        }
         // Properties
-        PropertyDescriptor[] propertyDescriptors = info.getPropertyDescriptors();
-        for (int i = 0; i < propertyDescriptors.length; ++i ) {
+        for (PropertyDescriptor d : info.getPropertyDescriptors()) {
+            if (d.isTransient()) {
+                continue;
+            }
             try {
-                doProperty(type, propertyDescriptors[i], oldInstance, newInstance, out);
+                doProperty(type, d, oldInstance, newInstance, out);
             }
             catch (Exception e) {
                 out.getExceptionListener().exceptionThrown(e);
@@ -295,9 +266,10 @@
         if (!java.awt.Component.class.isAssignableFrom(type)) {
             return; // Just handle the listeners of Components for now.
         }
-        EventSetDescriptor[] eventSetDescriptors = info.getEventSetDescriptors();
-        for (int e = 0; e < eventSetDescriptors.length; e++) {
-            EventSetDescriptor d = eventSetDescriptors[e];
+        for (EventSetDescriptor d : info.getEventSetDescriptors()) {
+            if (d.isTransient()) {
+                continue;
+            }
             Class listenerType = d.getListenerType();
 
 
@@ -408,4 +380,15 @@
             initBean(type, oldInstance, newInstance, out);
         }
     }
+
+    private static PropertyDescriptor getPropertyDescriptor(Class type, String property) {
+        try {
+            for (PropertyDescriptor pd : Introspector.getBeanInfo(type).getPropertyDescriptors()) {
+                if (property.equals(pd.getName()))
+                    return pd;
+            }
+        } catch (IntrospectionException exception) {
+        }
+        return null;
+    }
 }
--- a/src/share/classes/java/beans/EventSetDescriptor.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/beans/EventSetDescriptor.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 1996-2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -369,6 +369,7 @@
             setClass0(method.getDeclaringClass());
         }
         addMethodDescriptor = new MethodDescriptor(method);
+        setTransient(method.getAnnotation(Transient.class));
     }
 
     /**
@@ -389,6 +390,7 @@
             setClass0(method.getDeclaringClass());
         }
         removeMethodDescriptor = new MethodDescriptor(method);
+        setTransient(method.getAnnotation(Transient.class));
     }
 
     /**
@@ -411,6 +413,7 @@
             setClass0(method.getDeclaringClass());
         }
         getMethodDescriptor = new MethodDescriptor(method);
+        setTransient(method.getAnnotation(Transient.class));
     }
 
     /**
--- a/src/share/classes/java/beans/FeatureDescriptor.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/beans/FeatureDescriptor.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 1996-2004 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,9 @@
 import java.lang.ref.SoftReference;
 
 import java.lang.reflect.Method;
-import java.lang.reflect.Type;
+
+import java.util.Enumeration;
+import java.util.Hashtable;
 
 /**
  * The FeatureDescriptor class is the common baseclass for PropertyDescriptor,
@@ -46,6 +48,7 @@
  */
 
 public class FeatureDescriptor {
+    private static final String TRANSIENT = "transient";
 
     private Reference<Class> classRef;
 
@@ -187,10 +190,7 @@
      * @param value  The value.
      */
     public void setValue(String attributeName, Object value) {
-        if (table == null) {
-            table = new java.util.Hashtable();
-        }
-        table.put(attributeName, value);
+        getTable().put(attributeName, value);
     }
 
     /**
@@ -201,10 +201,9 @@
      *     the attribute is unknown.
      */
     public Object getValue(String attributeName) {
-        if (table == null) {
-           return null;
-        }
-        return table.get(attributeName);
+        return (this.table != null)
+                ? this.table.get(attributeName)
+                : null;
     }
 
     /**
@@ -214,11 +213,8 @@
      * @return  An enumeration of the locale-independent names of any
      *    attributes that have been registered with setValue.
      */
-    public java.util.Enumeration<String> attributeNames() {
-        if (table == null) {
-            table = new java.util.Hashtable();
-        }
-        return table.keys();
+    public Enumeration<String> attributeNames() {
+        return getTable().keys();
     }
 
     /**
@@ -268,16 +264,54 @@
         addTable(old.table);
     }
 
-    private void addTable(java.util.Hashtable t) {
-        if (t == null) {
-            return;
+    /**
+     * Copies all values from the specified attribute table.
+     * If some attribute is exist its value should be overridden.
+     *
+     * @param table  the attribute table with new values
+     */
+    private void addTable(Hashtable<String, Object> table) {
+        if ((table != null) && !table.isEmpty()) {
+            getTable().putAll(table);
         }
-        java.util.Enumeration keys = t.keys();
-        while (keys.hasMoreElements()) {
-            String key = (String)keys.nextElement();
-            Object value = t.get(key);
-            setValue(key, value);
+    }
+
+    /**
+     * Returns the initialized attribute table.
+     *
+     * @return the initialized attribute table
+     */
+    private Hashtable<String, Object> getTable() {
+        if (this.table == null) {
+            this.table = new Hashtable<String, Object>();
         }
+        return this.table;
+    }
+
+    /**
+     * Sets the "transient" attribute according to the annotation.
+     * If the "transient" attribute is already set
+     * it should not be changed.
+     *
+     * @param annotation  the annotation of the element of the feature
+     */
+    void setTransient(Transient annotation) {
+        if ((annotation != null) && (null == getValue(TRANSIENT))) {
+            setValue(TRANSIENT, annotation.value());
+        }
+    }
+
+    /**
+     * Indicates whether the feature is transient.
+     *
+     * @return {@code true} if the feature is transient,
+     *         {@code false} otherwise
+     */
+    boolean isTransient() {
+        Object value = getValue(TRANSIENT);
+        return (value instanceof Boolean)
+                ? (Boolean) value
+                : false;
     }
 
     // Package private methods for recreating the weak/soft referent
@@ -293,39 +327,6 @@
     }
 
     /**
-     * Create a Reference wrapper for the object.
-     *
-     * @param obj object that will be wrapped
-     * @param soft true if a SoftReference should be created; otherwise Soft
-     * @return a Reference or null if obj is null.
-     */
-    static Reference createReference(Object obj, boolean soft) {
-        Reference ref = null;
-        if (obj != null) {
-            if (soft) {
-                ref = new SoftReference(obj);
-            } else {
-                ref = new WeakReference(obj);
-            }
-        }
-        return ref;
-    }
-
-    // Convenience method which creates a WeakReference.
-    static Reference createReference(Object obj) {
-        return createReference(obj, false);
-    }
-
-    /**
-     * Returns an object from a Reference wrapper.
-     *
-     * @return the Object in a wrapper or null.
-     */
-    static Object getObject(Reference ref) {
-        return (ref == null) ? null : (Object)ref.get();
-    }
-
-    /**
      * Creates a new soft reference that refers to the given object.
      *
      * @return a new soft reference or <code>null</code> if object is <code>null</code>
@@ -391,5 +392,5 @@
     private String shortDescription;
     private String name;
     private String displayName;
-    private java.util.Hashtable table;
+    private Hashtable<String, Object> table;
 }
--- a/src/share/classes/java/beans/IndexedPropertyDescriptor.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/beans/IndexedPropertyDescriptor.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 1996-2004 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -231,6 +231,7 @@
 
         indexedReadMethodName = readMethod.getName();
         this.indexedReadMethodRef = getSoftReference(readMethod);
+        setTransient(readMethod.getAnnotation(Transient.class));
     }
 
 
@@ -303,6 +304,7 @@
 
         indexedWriteMethodName = writeMethod.getName();
         this.indexedWriteMethodRef = getSoftReference(writeMethod);
+        setTransient(writeMethod.getAnnotation(Transient.class));
     }
 
     /**
--- a/src/share/classes/java/beans/MetaData.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/beans/MetaData.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2000-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -1352,7 +1352,6 @@
 
 class MetaData {
     private static Hashtable internalPersistenceDelegates = new Hashtable();
-    private static Hashtable transientProperties = new Hashtable();
 
     private static PersistenceDelegate nullPersistenceDelegate = new NullPersistenceDelegate();
     private static PersistenceDelegate enumPersistenceDelegate = new EnumPersistenceDelegate();
@@ -1383,94 +1382,6 @@
 
         internalPersistenceDelegates.put("java.util.JumboEnumSet", new java_util_EnumSet_PersistenceDelegate());
         internalPersistenceDelegates.put("java.util.RegularEnumSet", new java_util_EnumSet_PersistenceDelegate());
-
-// Transient properties
-
-  // awt
-
-    // Infinite graphs.
-        removeProperty("java.awt.geom.RectangularShape", "frame");
-        // removeProperty("java.awt.Rectangle2D", "frame");
-        // removeProperty("java.awt.Rectangle", "frame");
-
-        removeProperty("java.awt.Rectangle", "bounds");
-        removeProperty("java.awt.Dimension", "size");
-        removeProperty("java.awt.Point", "location");
-
-        // The color and font properties in Component need special treatment, see above.
-        removeProperty("java.awt.Component", "foreground");
-        removeProperty("java.awt.Component", "background");
-        removeProperty("java.awt.Component", "font");
-
-        // The visible property of Component needs special treatment because of Windows.
-        removeProperty("java.awt.Component", "visible");
-
-        // This property throws an exception if accessed when there is no child.
-        removeProperty("java.awt.ScrollPane", "scrollPosition");
-
-        // 4917458 this should be removed for XAWT since it may throw
-        // an unsupported exception if there isn't any input methods.
-        // This shouldn't be a problem since these are added behind
-        // the scenes automatically.
-        removeProperty("java.awt.im.InputContext", "compositionEnabled");
-
-  // swing
-
-        // The size properties in JComponent need special treatment, see above.
-        removeProperty("javax.swing.JComponent", "minimumSize");
-        removeProperty("javax.swing.JComponent", "preferredSize");
-        removeProperty("javax.swing.JComponent", "maximumSize");
-
-        // These properties have platform specific implementations
-        // and should not appear in archives.
-        removeProperty("javax.swing.ImageIcon", "image");
-        removeProperty("javax.swing.ImageIcon", "imageObserver");
-
-        // This property unconditionally throws a "not implemented" exception.
-        removeProperty("javax.swing.JMenuBar", "helpMenu");
-
-        // The scrollBars in a JScrollPane are dynamic and should not
-        // be archived. The row and columns headers are changed by
-        // components like JTable on "addNotify".
-        removeProperty("javax.swing.JScrollPane", "verticalScrollBar");
-        removeProperty("javax.swing.JScrollPane", "horizontalScrollBar");
-        removeProperty("javax.swing.JScrollPane", "rowHeader");
-        removeProperty("javax.swing.JScrollPane", "columnHeader");
-
-        removeProperty("javax.swing.JViewport", "extentSize");
-
-        // Renderers need special treatment, since their properties
-        // change during rendering.
-        removeProperty("javax.swing.table.JTableHeader", "defaultRenderer");
-        removeProperty("javax.swing.JList", "cellRenderer");
-
-        removeProperty("javax.swing.JList", "selectedIndices");
-
-        // The lead and anchor selection indexes are best ignored.
-        // Selection is rarely something that should persist from
-        // development to deployment.
-        removeProperty("javax.swing.DefaultListSelectionModel", "leadSelectionIndex");
-        removeProperty("javax.swing.DefaultListSelectionModel", "anchorSelectionIndex");
-
-        // The selection must come after the text itself.
-        removeProperty("javax.swing.JComboBox", "selectedIndex");
-
-        // All selection information should come after the JTabbedPane is built
-        removeProperty("javax.swing.JTabbedPane", "selectedIndex");
-        removeProperty("javax.swing.JTabbedPane", "selectedComponent");
-
-        // PENDING: The "disabledIcon" property is often computed from the icon property.
-        removeProperty("javax.swing.AbstractButton", "disabledIcon");
-        removeProperty("javax.swing.JLabel", "disabledIcon");
-
-        // The caret property throws errors when it it set beyond
-        // the extent of the text. We could just set it after the
-        // text, but this is probably not something we want to archive anyway.
-        removeProperty("javax.swing.text.JTextComponent", "caret");
-        removeProperty("javax.swing.text.JTextComponent", "caretPosition");
-        // The selectionStart must come after the text itself.
-        removeProperty("javax.swing.text.JTextComponent", "selectionStart");
-        removeProperty("javax.swing.text.JTextComponent", "selectionEnd");
     }
 
     /*pp*/ static boolean equals(Object o1, Object o2) {
@@ -1509,18 +1420,6 @@
         // }
 
         String typeName = type.getName();
-
-        // Check to see if there are properties that have been lazily registered for removal.
-        if (getBeanAttribute(type, "transient_init") == null) {
-            Vector tp = (Vector)transientProperties.get(typeName);
-            if (tp != null) {
-                for(int i = 0; i < tp.size(); i++) {
-                    setPropertyAttribute(type, (String)tp.get(i), "transient", Boolean.TRUE);
-                }
-            }
-            setBeanAttribute(type, "transient_init", Boolean.TRUE);
-        }
-
         PersistenceDelegate pd = (PersistenceDelegate)getBeanAttribute(type, "persistenceDelegate");
         if (pd == null) {
             pd = (PersistenceDelegate)internalPersistenceDelegates.get(typeName);
@@ -1583,55 +1482,11 @@
         return true;
     }
 
-    // Wrapper for Introspector.getBeanInfo to handle exception handling.
-    // Note: this relys on new 1.4 Introspector semantics which cache the BeanInfos
-    public static BeanInfo getBeanInfo(Class type) {
-        BeanInfo info = null;
+    private static Object getBeanAttribute(Class type, String attribute) {
         try {
-            info = Introspector.getBeanInfo(type);
-        } catch (Throwable e) {
-            e.printStackTrace();
+            return Introspector.getBeanInfo(type).getBeanDescriptor().getValue(attribute);
+        } catch (IntrospectionException exception) {
+            return null;
         }
-
-        return info;
-    }
-
-    private static PropertyDescriptor getPropertyDescriptor(Class type, String propertyName) {
-        BeanInfo info = getBeanInfo(type);
-        PropertyDescriptor[] propertyDescriptors = info.getPropertyDescriptors();
-        // System.out.println("Searching for: " + propertyName + " in " + type);
-        for(int i = 0; i < propertyDescriptors.length; i++) {
-            PropertyDescriptor pd  = propertyDescriptors[i];
-            if (propertyName.equals(pd.getName())) {
-                return pd;
-            }
-        }
-        return null;
-    }
-
-    private static void setPropertyAttribute(Class type, String property, String attribute, Object value) {
-        PropertyDescriptor pd = getPropertyDescriptor(type, property);
-        if (pd == null) {
-            System.err.println("Warning: property " + property + " is not defined on " + type);
-            return;
-        }
-        pd.setValue(attribute, value);
-    }
-
-    private static void setBeanAttribute(Class type, String attribute, Object value) {
-        getBeanInfo(type).getBeanDescriptor().setValue(attribute, value);
-    }
-
-    private static Object getBeanAttribute(Class type, String attribute) {
-        return getBeanInfo(type).getBeanDescriptor().getValue(attribute);
-    }
-
-    private static void removeProperty(String typeName, String property) {
-        Vector tp = (Vector)transientProperties.get(typeName);
-        if (tp == null) {
-            tp = new Vector();
-            transientProperties.put(typeName, tp);
-        }
-        tp.add(property);
     }
 }
--- a/src/share/classes/java/beans/PropertyDescriptor.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/beans/PropertyDescriptor.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 1996-2004 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -256,6 +256,7 @@
 
         readMethodName = readMethod.getName();
         this.readMethodRef = getSoftReference(readMethod);
+        setTransient(readMethod.getAnnotation(Transient.class));
     }
 
     /**
@@ -320,7 +321,7 @@
 
         writeMethodName = writeMethod.getName();
         this.writeMethodRef = getSoftReference(writeMethod);
-
+        setTransient(writeMethod.getAnnotation(Transient.class));
     }
 
     private Method getReadMethod0() {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/share/classes/java/beans/Transient.java	Fri May 16 12:25:57 2008 -0700
@@ -0,0 +1,68 @@
+/*
+ * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package java.beans;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+/**
+ * Indicates that an attribute called "transient"
+ * should be declared with the given {@code value}
+ * when the {@link Introspector} constructs
+ * a {@link PropertyDescriptor} or {@link EventSetDescriptor}
+ * classes associated with the annotated code element.
+ * A {@code true} value for the "transient" attribute
+ * indicates to encoders derived from {@link Encoder}
+ * that this feature should be ignored.
+ * <p/>
+ * The {@code Transient} annotation may be be used
+ * in any of the methods that are involved
+ * in a {@link FeatureDescriptor} subclass
+ * to identify the transient feature in the annotated class and its subclasses.
+ * Normally, the method that starts with "get" is the best place
+ * to put the annotation and it is this declaration
+ * that takes precedence in the case of multiple annotations
+ * being defined for the same feature.
+ * <p/>
+ * To declare a feature non-transient in a class
+ * whose superclass declares it transient,
+ * use {@code @Transient(false)}.
+ * In all cases, the {@link Introspector} decides
+ * if a feature is transient by referring to the annotation
+ * on the most specific superclass.
+ * If no {@code Transient} annotation is present
+ * in any superclass the feature is not transient.
+ *
+ * @since 1.7
+ */
+@Target({METHOD})
+@Retention(RUNTIME)
+public @interface Transient {
+    boolean value() default true;
+}
--- a/src/share/classes/java/text/DictionaryBasedBreakIterator.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/text/DictionaryBasedBreakIterator.java	Fri May 16 12:25:57 2008 -0700
@@ -384,7 +384,7 @@
             // on the last character of a legal word.  Push that position onto
             // the possible-break-positions stack
             if (dictionary.getNextState(state, 0) == -1) {
-                possibleBreakPositions.push(new Integer(text.getIndex()));
+                possibleBreakPositions.push(Integer.valueOf(text.getIndex()));
             }
 
             // look up the new state to transition to in the dictionary
@@ -395,7 +395,7 @@
             // and we've successfully traversed the whole range.  Drop out
             // of the loop.
             if (state == -1) {
-                currentBreakPositions.push(new Integer(text.getIndex()));
+                currentBreakPositions.push(Integer.valueOf(text.getIndex()));
                 break;
             }
 
@@ -496,7 +496,7 @@
         if (!currentBreakPositions.isEmpty()) {
             currentBreakPositions.pop();
         }
-        currentBreakPositions.push(new Integer(endPos));
+        currentBreakPositions.push(Integer.valueOf(endPos));
 
         // create a regular array to hold the break positions and copy
         // the break positions from the stack to the array (in addition,
--- a/src/share/classes/java/text/MessageFormat.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/java/text/MessageFormat.java	Fri May 16 12:25:57 2008 -0700
@@ -1286,7 +1286,7 @@
                             characterIterators.add(
                                          createAttributedCharacterIterator(
                                          subIterator, Field.ARGUMENT,
-                                         new Integer(argumentNumber)));
+                                         Integer.valueOf(argumentNumber)));
                             last = result.length();
                         }
                         arg = null;
@@ -1296,7 +1296,7 @@
                         characterIterators.add(
                                  createAttributedCharacterIterator(
                                  arg, Field.ARGUMENT,
-                                 new Integer(argumentNumber)));
+                                 Integer.valueOf(argumentNumber)));
                         last = result.length();
                     }
                 }
--- a/src/share/classes/javax/imageio/stream/ImageInputStreamImpl.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/imageio/stream/ImageInputStreamImpl.java	Fri May 16 12:25:57 2008 -0700
@@ -778,8 +778,8 @@
      */
     public void mark() {
         try {
-            markByteStack.push(new Long(getStreamPosition()));
-            markBitStack.push(new Integer(getBitOffset()));
+            markByteStack.push(Long.valueOf(getStreamPosition()));
+            markBitStack.push(Integer.valueOf(getBitOffset()));
         } catch (IOException e) {
         }
     }
--- a/src/share/classes/javax/swing/AbstractButton.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/AbstractButton.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,9 @@
 import java.awt.image.*;
 import java.text.*;
 import java.awt.geom.*;
-import java.beans.*;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.beans.Transient;
 import java.util.Enumeration;
 import java.util.Vector;
 import java.io.Serializable;
@@ -645,6 +647,7 @@
      * @see #setDisabledIcon
      * @see javax.swing.LookAndFeel#getDisabledIcon
      */
+    @Transient
     public Icon getDisabledIcon() {
         if (disabledIcon == null) {
             disabledIcon = UIManager.getLookAndFeel().getDisabledIcon(this, getIcon());
@@ -2047,14 +2050,14 @@
                     null, AccessibleState.SELECTED);
                 accessibleContext.firePropertyChange(
                     AccessibleContext.ACCESSIBLE_VALUE_PROPERTY,
-                    new Integer(0), new Integer(1));
+                    Integer.valueOf(0), Integer.valueOf(1));
             } else {
                 accessibleContext.firePropertyChange(
                     AccessibleContext.ACCESSIBLE_STATE_PROPERTY,
                     AccessibleState.SELECTED, null);
                 accessibleContext.firePropertyChange(
                     AccessibleContext.ACCESSIBLE_VALUE_PROPERTY,
-                    new Integer(1), new Integer(0));
+                    Integer.valueOf(1), Integer.valueOf(0));
             }
         }
     }
@@ -2552,9 +2555,9 @@
          */
         public Number getCurrentAccessibleValue() {
             if (isSelected()) {
-                return new Integer(1);
+                return Integer.valueOf(1);
             } else {
-                return new Integer(0);
+                return Integer.valueOf(0);
             }
         }
 
@@ -2583,7 +2586,7 @@
          * @return an Integer of 0.
          */
         public Number getMinimumAccessibleValue() {
-            return new Integer(0);
+            return Integer.valueOf(0);
         }
 
         /**
@@ -2592,7 +2595,7 @@
          * @return An Integer of 1.
          */
         public Number getMaximumAccessibleValue() {
-            return new Integer(1);
+            return Integer.valueOf(1);
         }
 
 
--- a/src/share/classes/javax/swing/DebugGraphicsInfo.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/DebugGraphicsInfo.java	Fri May 16 12:25:57 2008 -0700
@@ -49,7 +49,7 @@
             componentToDebug = new Hashtable();
         }
         if (debug > 0) {
-            componentToDebug.put(component, new Integer(debug));
+            componentToDebug.put(component, Integer.valueOf(debug));
         } else {
             componentToDebug.remove(component);
         }
--- a/src/share/classes/javax/swing/DefaultListSelectionModel.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/DefaultListSelectionModel.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -28,6 +28,7 @@
 import java.util.EventListener;
 import java.util.BitSet;
 import java.io.Serializable;
+import java.beans.Transient;
 
 import javax.swing.event.*;
 
@@ -714,11 +715,13 @@
     }
 
     /** {@inheritDoc} */
+    @Transient
     public int getAnchorSelectionIndex() {
         return anchorIndex;
     }
 
     /** {@inheritDoc} */
+    @Transient
     public int getLeadSelectionIndex() {
         return leadIndex;
     }
--- a/src/share/classes/javax/swing/ImageIcon.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/ImageIcon.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,6 +27,7 @@
 import java.awt.*;
 import java.awt.image.*;
 import java.beans.ConstructorProperties;
+import java.beans.Transient;
 import java.net.URL;
 
 import java.io.Serializable;
@@ -336,6 +337,7 @@
      * Returns this icon's <code>Image</code>.
      * @return the <code>Image</code> object for this <code>ImageIcon</code>
      */
+    @Transient
     public Image getImage() {
         return image;
     }
@@ -436,6 +438,7 @@
      *
      * @return the image observer, which may be null
      */
+    @Transient
     public ImageObserver getImageObserver() {
         return imageObserver;
     }
--- a/src/share/classes/javax/swing/JComboBox.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/JComboBox.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,7 +24,9 @@
  */
 package javax.swing;
 
-import java.beans.*;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.beans.Transient;
 import java.util.*;
 
 import java.awt.*;
@@ -636,6 +638,7 @@
      *                  or -1 if no item is selected or if
      *                  the currently selected item is not in the list
      */
+    @Transient
     public int getSelectedIndex() {
         Object sObject = dataModel.getSelectedItem();
         int i,c;
--- a/src/share/classes/javax/swing/JComponent.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/JComponent.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -43,7 +43,10 @@
 import java.awt.peer.LightweightPeer;
 import java.awt.dnd.DropTarget;
 import java.awt.font.FontRenderContext;
-import java.beans.*;
+import java.beans.PropertyChangeListener;
+import java.beans.VetoableChangeListener;
+import java.beans.VetoableChangeSupport;
+import java.beans.Transient;
 
 import java.applet.Applet;
 
@@ -1634,6 +1637,7 @@
      * @see #setPreferredSize
      * @see ComponentUI
      */
+    @Transient
     public Dimension getPreferredSize() {
         if (isPreferredSizeSet()) {
             return super.getPreferredSize();
@@ -1675,6 +1679,7 @@
      * @see #setMaximumSize
      * @see ComponentUI
      */
+    @Transient
     public Dimension getMaximumSize() {
         if (isMaximumSizeSet()) {
             return super.getMaximumSize();
@@ -1714,6 +1719,7 @@
      * @see #setMinimumSize
      * @see ComponentUI
      */
+    @Transient
     public Dimension getMinimumSize() {
         if (isMinimumSizeSet()) {
             return super.getMinimumSize();
--- a/src/share/classes/javax/swing/JEditorPane.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/JEditorPane.java	Fri May 16 12:25:57 2008 -0700
@@ -429,9 +429,8 @@
             // different url or POST method, load the new content
 
             int p = getAsynchronousLoadPriority(getDocument());
-            if ((postData == null) || (p < 0)) {
-                // Either we do not have POST data, or should submit the data
-                // synchronously.
+            if (p < 0) {
+                // open stream synchronously
                 InputStream in = getStream(page);
                 if (kit != null) {
                     Document doc = initializeModel(kit, page);
@@ -440,22 +439,13 @@
                     // view notifications slowing it down (i.e. best synchronous
                     // behavior) or set the model and start to feed it on a separate
                     // thread (best asynchronous behavior).
-                    synchronized(this) {
-                        if (loading != null) {
-                            // we are loading asynchronously, so we need to cancel
-                            // the old stream.
-                            loading.cancel();
-                            loading = null;
-                        }
-                    }
                     p = getAsynchronousLoadPriority(doc);
                     if (p >= 0) {
                         // load asynchronously
                         setDocument(doc);
                         synchronized(this) {
-                            loading = new PageStream(in);
-                            Thread pl = new PageLoader(doc, loading, p, loaded, page);
-                            pl.start();
+                            pageLoader = new PageLoader(doc, in, loaded, page);
+                            pageLoader.execute();
                         }
                         return;
                     }
@@ -464,11 +454,15 @@
                     reloaded = true;
                 }
             } else {
-                // We have POST data and should send it asynchronously.
-                // Send (and subsequentally read) data in separate thread.
+                // we may need to cancel background loading
+                if (pageLoader != null) {
+                    pageLoader.cancel(true);
+                }
+
+                // Do everything in a background thread.
                 // Model initialization is deferred to that thread, too.
-                Thread pl = new PageLoader(null, null, p, loaded, page);
-                pl.start();
+                pageLoader = new PageLoader(null, null, loaded, page);
+                pageLoader.execute();
                 return;
             }
         }
@@ -604,44 +598,38 @@
 
 
     /**
-     * Thread to load a stream into the text document model.
+     * Loads a stream into the text document model.
      */
-    class PageLoader extends Thread {
+    class PageLoader extends SwingWorker<URL, Object> {
 
         /**
          * Construct an asynchronous page loader.
          */
-        PageLoader(Document doc, InputStream in, int priority, URL old,
-                   URL page) {
-            setPriority(priority);
+        PageLoader(Document doc, InputStream in, URL old, URL page) {
             this.in = in;
             this.old = old;
             this.page = page;
             this.doc = doc;
         }
 
-        boolean pageLoaded = false;
-
         /**
          * Try to load the document, then scroll the view
          * to the reference (if specified).  When done, fire
          * a page property change event.
          */
-        public void run() {
+        protected URL doInBackground() {
+            boolean pageLoaded = false;
             try {
                 if (in == null) {
                     in = getStream(page);
                     if (kit == null) {
                         // We received document of unknown content type.
-                        UIManager.getLookAndFeel().provideErrorFeedback(
-                                JEditorPane.this);
-                        return;
-                    }
-                    // Access to <code>loading</code> should be synchronized.
-                    synchronized(JEditorPane.this) {
-                        in = loading = new PageStream(in);
+                        UIManager.getLookAndFeel().
+                                provideErrorFeedback(JEditorPane.this);
+                        return old;
                     }
                 }
+
                 if (doc == null) {
                     try {
                         SwingUtilities.invokeAndWait(new Runnable() {
@@ -653,11 +641,11 @@
                     } catch (InvocationTargetException ex) {
                         UIManager.getLookAndFeel().provideErrorFeedback(
                                                             JEditorPane.this);
-                        return;
+                        return old;
                     } catch (InterruptedException ex) {
                         UIManager.getLookAndFeel().provideErrorFeedback(
                                                             JEditorPane.this);
-                        return;
+                        return old;
                     }
                 }
 
@@ -682,16 +670,14 @@
             } catch (IOException ioe) {
                 UIManager.getLookAndFeel().provideErrorFeedback(JEditorPane.this);
             } finally {
-                synchronized(JEditorPane.this) {
-                    loading = null;
+                if (pageLoaded) {
+                    SwingUtilities.invokeLater(new Runnable() {
+                        public void run() {
+                            JEditorPane.this.firePropertyChange("page", old, page);
+                        }
+                    });
                 }
-                SwingUtilities.invokeLater(new Runnable() {
-                    public void run() {
-                        if (pageLoaded) {
-                            firePropertyChange("page", old, page);
-                        }
-                    }
-                });
+                return (pageLoaded ? page : old);
             }
         }
 
@@ -718,51 +704,6 @@
         Document doc;
     }
 
-    static class PageStream extends FilterInputStream {
-
-        boolean canceled;
-
-        public PageStream(InputStream i) {
-            super(i);
-            canceled = false;
-        }
-
-        /**
-         * Cancel the loading of the stream by throwing
-         * an IOException on the next request.
-         */
-        public synchronized void cancel() {
-            canceled = true;
-        }
-
-        protected synchronized void checkCanceled() throws IOException {
-            if (canceled) {
-                throw new IOException("page canceled");
-            }
-        }
-
-        public int read() throws IOException {
-            checkCanceled();
-            return super.read();
-        }
-
-        public long skip(long n) throws IOException {
-            checkCanceled();
-            return super.skip(n);
-        }
-
-        public int available() throws IOException {
-            checkCanceled();
-            return super.available();
-        }
-
-        public void reset() throws IOException {
-            checkCanceled();
-            super.reset();
-        }
-
-    }
-
     /**
      * Fetches a stream for the given URL, which is about to
      * be loaded by the <code>setPage</code> method.  By
@@ -1179,11 +1120,6 @@
      * current selection.  The replacement text will have the
      * attributes currently defined for input.  If the component is not
      * editable, beep and return.
-     * <p>
-     * This method is thread safe, although most Swing methods
-     * are not. Please see
-     * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
-     * to Use Threads</A> for more information.
      *
      * @param content  the content to replace the selection with.  This
      *   value can be <code>null</code>
@@ -1454,11 +1390,6 @@
      * create a StringReader and call the read method.  In this case the model
      * would be replaced after it was initialized with the contents of the
      * string.
-     * <p>
-     * This method is thread safe, although most Swing methods
-     * are not. Please see
-     * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
-     * to Use Threads</A> for more information.
      *
      * @param t the new text to be set; if <code>null</code> the old
      *    text will be deleted
@@ -1573,11 +1504,7 @@
 
     // --- variables ---------------------------------------
 
-    /**
-     * Stream currently loading asynchronously (potentially cancelable).
-     * Access to this variable should be synchronized.
-     */
-    PageStream loading;
+    private SwingWorker<URL, Object> pageLoader;
 
     /**
      * Current content binding of the editor.
--- a/src/share/classes/javax/swing/JInternalFrame.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/JInternalFrame.java	Fri May 16 12:25:57 2008 -0700
@@ -1285,7 +1285,7 @@
      *     description: Specifies what desktop layer is used.
      */
     public void setLayer(int layer) {
-      this.setLayer(new Integer(layer));
+      this.setLayer(Integer.valueOf(layer));
     }
 
     /**
@@ -2092,7 +2092,7 @@
          * have a value
          */
         public Number getCurrentAccessibleValue() {
-            return new Integer(getLayer());
+            return Integer.valueOf(getLayer());
         }
 
         /**
@@ -2116,7 +2116,7 @@
          * have a minimum value
          */
         public Number getMinimumAccessibleValue() {
-            return new Integer(Integer.MIN_VALUE);
+            return Integer.MIN_VALUE;
         }
 
         /**
@@ -2126,7 +2126,7 @@
          * have a maximum value
          */
         public Number getMaximumAccessibleValue() {
-            return new Integer(Integer.MAX_VALUE);
+            return Integer.MAX_VALUE;
         }
 
     } // AccessibleJInternalFrame
--- a/src/share/classes/javax/swing/JLabel.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/JLabel.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -31,6 +31,7 @@
 import java.awt.*;
 import java.text.*;
 import java.awt.geom.*;
+import java.beans.Transient;
 
 import java.io.ObjectOutputStream;
 import java.io.ObjectInputStream;
@@ -422,6 +423,7 @@
      * @see javax.swing.LookAndFeel#getDisabledIcon
      * @see ImageIcon
      */
+    @Transient
     public Icon getDisabledIcon() {
         if (!disabledIconSet && disabledIcon == null && defaultIcon != null) {
             disabledIcon = UIManager.getLookAndFeel().getDisabledIcon(this, defaultIcon);
--- a/src/share/classes/javax/swing/JList.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/JList.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -31,7 +31,9 @@
 import java.util.Vector;
 import java.util.Locale;
 
-import java.beans.*;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.beans.Transient;
 
 import javax.swing.event.*;
 import javax.accessibility.*;
@@ -724,6 +726,7 @@
      * @return the value of the {@code cellRenderer} property
      * @see #setCellRenderer
      */
+    @Transient
     public ListCellRenderer getCellRenderer() {
         return cellRenderer;
     }
@@ -2153,6 +2156,7 @@
      * @see #removeSelectionInterval
      * @see #addListSelectionListener
      */
+    @Transient
     public int[] getSelectedIndices() {
         ListSelectionModel sm = getSelectionModel();
         int iMin = sm.getMinSelectionIndex();
--- a/src/share/classes/javax/swing/JMenuBar.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/JMenuBar.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -32,6 +32,7 @@
 import java.awt.Point;
 import java.awt.Rectangle;
 import java.awt.event.*;
+import java.beans.Transient;
 import java.util.Vector;
 import java.util.Enumeration;
 
@@ -236,6 +237,7 @@
      *
      * @return the <code>JMenu</code> that delivers help to the user
      */
+    @Transient
     public JMenu getHelpMenu() {
         throw new Error("getHelpMenu() not yet implemented.");
     }
--- a/src/share/classes/javax/swing/JOptionPane.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/JOptionPane.java	Fri May 16 12:25:57 2008 -0700
@@ -1512,7 +1512,7 @@
 
         iFrame.putClientProperty("JInternalFrame.frameType", "optionDialog");
         iFrame.putClientProperty("JInternalFrame.messageType",
-                                 new Integer(getMessageType()));
+                                 Integer.valueOf(getMessageType()));
 
         iFrame.addInternalFrameListener(new InternalFrameAdapter() {
             public void internalFrameClosing(InternalFrameEvent e) {
--- a/src/share/classes/javax/swing/JProgressBar.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/JProgressBar.java	Fri May 16 12:25:57 2008 -0700
@@ -775,9 +775,9 @@
                 accessibleContext.firePropertyChange(
                         AccessibleContext.ACCESSIBLE_VALUE_PROPERTY,
                         (oldModel== null
-                         ? null : new Integer(oldModel.getValue())),
+                         ? null : Integer.valueOf(oldModel.getValue())),
                         (newModel== null
-                         ? null : new Integer(newModel.getValue())));
+                         ? null : Integer.valueOf(newModel.getValue())));
             }
 
             if (model != null) {
@@ -850,8 +850,8 @@
         if (accessibleContext != null) {
             accessibleContext.firePropertyChange(
                     AccessibleContext.ACCESSIBLE_VALUE_PROPERTY,
-                    new Integer(oldValue),
-                    new Integer(brm.getValue()));
+                    Integer.valueOf(oldValue),
+                    Integer.valueOf(brm.getValue()));
         }
     }
 
@@ -1087,7 +1087,7 @@
          * @return the current value of this object
          */
         public Number getCurrentAccessibleValue() {
-            return new Integer(getValue());
+            return Integer.valueOf(getValue());
         }
 
         /**
@@ -1110,7 +1110,7 @@
          * @return the minimum value of this object
          */
         public Number getMinimumAccessibleValue() {
-            return new Integer(getMinimum());
+            return Integer.valueOf(getMinimum());
         }
 
         /**
@@ -1120,7 +1120,7 @@
          */
         public Number getMaximumAccessibleValue() {
             // TIGER - 4422362
-            return new Integer(model.getMaximum() - model.getExtent());
+            return Integer.valueOf(model.getMaximum() - model.getExtent());
         }
 
     } // AccessibleJProgressBar
--- a/src/share/classes/javax/swing/JScrollBar.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/JScrollBar.java	Fri May 16 12:25:57 2008 -0700
@@ -314,7 +314,7 @@
         BoundedRangeModel oldModel = model;
         if (model != null) {
             model.removeChangeListener(fwdAdjustmentEvents);
-            oldValue = new Integer(model.getValue());
+            oldValue = Integer.valueOf(model.getValue());
         }
         model = newModel;
         if (model != null) {
@@ -465,8 +465,8 @@
         if (accessibleContext != null) {
             accessibleContext.firePropertyChange(
                     AccessibleContext.ACCESSIBLE_VALUE_PROPERTY,
-                    new Integer(oldValue),
-                    new Integer(m.getValue()));
+                    Integer.valueOf(oldValue),
+                    Integer.valueOf(m.getValue()));
         }
     }
 
@@ -611,8 +611,8 @@
         if (accessibleContext != null) {
             accessibleContext.firePropertyChange(
                     AccessibleContext.ACCESSIBLE_VALUE_PROPERTY,
-                    new Integer(oldValue),
-                    new Integer(m.getValue()));
+                    Integer.valueOf(oldValue),
+                    Integer.valueOf(m.getValue()));
         }
     }
 
@@ -880,7 +880,7 @@
          * @return The current value of this object.
          */
         public Number getCurrentAccessibleValue() {
-            return new Integer(getValue());
+            return Integer.valueOf(getValue());
         }
 
         /**
@@ -903,7 +903,7 @@
          * @return The minimum value of this object.
          */
         public Number getMinimumAccessibleValue() {
-            return new Integer(getMinimum());
+            return Integer.valueOf(getMinimum());
         }
 
         /**
--- a/src/share/classes/javax/swing/JScrollPane.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/JScrollPane.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -43,8 +43,9 @@
 import java.io.ObjectInputStream;
 import java.io.IOException;
 
-import java.beans.*;
-
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.beans.Transient;
 
 /**
  * Provides a scrollable view of a lightweight component.
@@ -822,6 +823,7 @@
      * @return the <code>horizontalScrollBar</code> property
      * @see #setHorizontalScrollBar
      */
+    @Transient
     public JScrollBar getHorizontalScrollBar() {
         return horizontalScrollBar;
     }
@@ -880,6 +882,7 @@
      * @return the <code>verticalScrollBar</code> property
      * @see #setVerticalScrollBar
      */
+    @Transient
     public JScrollBar getVerticalScrollBar() {
         return verticalScrollBar;
     }
@@ -1012,6 +1015,7 @@
      * @return the <code>rowHeader</code> property
      * @see #setRowHeader
      */
+    @Transient
     public JViewport getRowHeader() {
         return rowHeader;
     }
@@ -1081,6 +1085,7 @@
      * @return the <code>columnHeader</code> property
      * @see #setColumnHeader
      */
+    @Transient
     public JViewport getColumnHeader() {
         return columnHeader;
     }
--- a/src/share/classes/javax/swing/JSlider.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/JSlider.java	Fri May 16 12:25:57 2008 -0700
@@ -485,9 +485,9 @@
                 accessibleContext.firePropertyChange(
                                                     AccessibleContext.ACCESSIBLE_VALUE_PROPERTY,
                                                     (oldModel == null
-                                                     ? null : new Integer(oldModel.getValue())),
+                                                     ? null : Integer.valueOf(oldModel.getValue())),
                                                     (newModel == null
-                                                     ? null : new Integer(newModel.getValue())));
+                                                     ? null : Integer.valueOf(newModel.getValue())));
             }
         }
 
@@ -538,8 +538,8 @@
         if (accessibleContext != null) {
             accessibleContext.firePropertyChange(
                                                 AccessibleContext.ACCESSIBLE_VALUE_PROPERTY,
-                                                new Integer(oldValue),
-                                                new Integer(m.getValue()));
+                                                Integer.valueOf(oldValue),
+                                                Integer.valueOf(m.getValue()));
         }
     }
 
@@ -581,7 +581,7 @@
     public void setMinimum(int minimum) {
         int oldMin = getModel().getMinimum();
         getModel().setMinimum(minimum);
-        firePropertyChange( "minimum", new Integer( oldMin ), new Integer( minimum ) );
+        firePropertyChange( "minimum", Integer.valueOf( oldMin ), Integer.valueOf( minimum ) );
     }
 
 
@@ -622,7 +622,7 @@
     public void setMaximum(int maximum) {
         int oldMax = getModel().getMaximum();
         getModel().setMaximum(maximum);
-        firePropertyChange( "maximum", new Integer( oldMax ), new Integer( maximum ) );
+        firePropertyChange( "maximum", Integer.valueOf( oldMax ), Integer.valueOf( maximum ) );
     }
 
 
@@ -989,7 +989,7 @@
 
             void createLabels() {
                 for ( int labelIndex = start; labelIndex <= getMaximum(); labelIndex += increment ) {
-                    put( new Integer( labelIndex ), new LabelUIResource( ""+labelIndex, JLabel.CENTER ) );
+                    put( Integer.valueOf( labelIndex ), new LabelUIResource( ""+labelIndex, JLabel.CENTER ) );
                 }
             }
         }
@@ -1463,7 +1463,7 @@
          * @return The current value of this object.
          */
         public Number getCurrentAccessibleValue() {
-            return new Integer(getValue());
+            return Integer.valueOf(getValue());
         }
 
         /**
@@ -1486,7 +1486,7 @@
          * @return The minimum value of this object.
          */
         public Number getMinimumAccessibleValue() {
-            return new Integer(getMinimum());
+            return Integer.valueOf(getMinimum());
         }
 
         /**
@@ -1497,7 +1497,7 @@
         public Number getMaximumAccessibleValue() {
             // TIGER - 4422362
             BoundedRangeModel model = JSlider.this.getModel();
-            return new Integer(model.getMaximum() - model.getExtent());
+            return Integer.valueOf(model.getMaximum() - model.getExtent());
         }
     } // AccessibleJSlider
 }
--- a/src/share/classes/javax/swing/JSplitPane.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/JSplitPane.java	Fri May 16 12:25:57 2008 -0700
@@ -1195,7 +1195,7 @@
          * @return a localized String describing the value of this object
          */
         public Number getCurrentAccessibleValue() {
-            return new Integer(getDividerLocation());
+            return Integer.valueOf(getDividerLocation());
         }
 
 
@@ -1220,7 +1220,7 @@
          * @return The minimum value of this object.
          */
         public Number getMinimumAccessibleValue() {
-            return new Integer(getUI().getMinimumDividerLocation(
+            return Integer.valueOf(getUI().getMinimumDividerLocation(
                                                         JSplitPane.this));
         }
 
@@ -1231,7 +1231,7 @@
          * @return The maximum value of this object.
          */
         public Number getMaximumAccessibleValue() {
-            return new Integer(getUI().getMaximumDividerLocation(
+            return Integer.valueOf(getUI().getMaximumDividerLocation(
                                                         JSplitPane.this));
         }
 
--- a/src/share/classes/javax/swing/JTabbedPane.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/JTabbedPane.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,7 +27,7 @@
 
 import java.awt.*;
 import java.awt.event.*;
-import java.beans.*;
+import java.beans.Transient;
 import java.util.*;
 import javax.swing.event.*;
 import javax.swing.plaf.*;
@@ -563,6 +563,7 @@
      * @return the index of the selected tab
      * @see #setSelectedIndex
      */
+    @Transient
     public int getSelectedIndex() {
         return model.getSelectedIndex();
     }
@@ -648,6 +649,7 @@
      * @return the component corresponding to the selected tab
      * @see #setSelectedComponent
      */
+    @Transient
     public Component getSelectedComponent() {
         int index = getSelectedIndex();
         if (index == -1) {
@@ -967,7 +969,7 @@
         // currently no IndexPropertyChangeEvent.  Once
         // IndexPropertyChangeEvents have been added this code should be
         // modified to use it.
-        putClientProperty("__index_to_remove__", new Integer(index));
+        putClientProperty("__index_to_remove__", Integer.valueOf(index));
 
         /* if the selected tab is after the removal */
         if (selected > index) {
--- a/src/share/classes/javax/swing/JTable.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/JTable.java	Fri May 16 12:25:57 2008 -0700
@@ -7680,7 +7680,7 @@
          */
         public Accessible getAccessibleRowDescription(int r) {
             if (r < 0 || r >= getAccessibleRowCount()) {
-                throw new IllegalArgumentException(new Integer(r).toString());
+                throw new IllegalArgumentException(Integer.toString(r));
             }
             if (rowDescription == null) {
                 return null;
@@ -7698,7 +7698,7 @@
          */
         public void setAccessibleRowDescription(int r, Accessible a) {
             if (r < 0 || r >= getAccessibleRowCount()) {
-                throw new IllegalArgumentException(new Integer(r).toString());
+                throw new IllegalArgumentException(Integer.toString(r));
             }
             if (rowDescription == null) {
                 int numRows = getAccessibleRowCount();
@@ -7716,7 +7716,7 @@
          */
         public Accessible getAccessibleColumnDescription(int c) {
             if (c < 0 || c >= getAccessibleColumnCount()) {
-                throw new IllegalArgumentException(new Integer(c).toString());
+                throw new IllegalArgumentException(Integer.toString(c));
             }
             if (columnDescription == null) {
                 return null;
@@ -7734,7 +7734,7 @@
          */
         public void setAccessibleColumnDescription(int c, Accessible a) {
             if (c < 0 || c >= getAccessibleColumnCount()) {
-                throw new IllegalArgumentException(new Integer(c).toString());
+                throw new IllegalArgumentException(Integer.toString(c));
             }
             if (columnDescription == null) {
                 int numColumns = getAccessibleColumnCount();
--- a/src/share/classes/javax/swing/JTextArea.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/JTextArea.java	Fri May 16 12:25:57 2008 -0700
@@ -267,7 +267,7 @@
         Document doc = getDocument();
         if (doc != null) {
             int old = getTabSize();
-            doc.putProperty(PlainDocument.tabSizeAttribute, new Integer(size));
+            doc.putProperty(PlainDocument.tabSizeAttribute, Integer.valueOf(size));
             firePropertyChange("tabSize", old, size);
         }
     }
@@ -444,11 +444,6 @@
     /**
      * Inserts the specified text at the specified position.  Does nothing
      * if the model is null or if the text is null or empty.
-     * <p>
-     * This method is thread safe, although most Swing methods
-     * are not. Please see
-     * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
-     * to Use Threads</A> for more information.
      *
      * @param str the text to insert
      * @param pos the position at which to insert >= 0
@@ -471,11 +466,6 @@
     /**
      * Appends the given text to the end of the document.  Does nothing if
      * the model is null or the string is null or empty.
-     * <p>
-     * This method is thread safe, although most Swing methods
-     * are not. Please see
-     * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
-     * to Use Threads</A> for more information.
      *
      * @param str the text to insert
      * @see #insert
@@ -494,11 +484,6 @@
      * Replaces text from the indicated start to end position with the
      * new text specified.  Does nothing if the model is null.  Simply
      * does a delete if the new string is null or empty.
-     * <p>
-     * This method is thread safe, although most Swing methods
-     * are not. Please see
-     * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
-     * to Use Threads</A> for more information.
      *
      * @param str the text to use as the replacement
      * @param start the start position >= 0
--- a/src/share/classes/javax/swing/JTextPane.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/JTextPane.java	Fri May 16 12:25:57 2008 -0700
@@ -167,11 +167,6 @@
      * current selection.  The replacement text will have the
      * attributes currently defined for input at the point of
      * insertion.  If the document is not editable, beep and return.
-     * <p>
-     * This method is thread safe, although most Swing methods
-     * are not. Please see
-     * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
-     * to Use Threads</A> for more information.
      *
      * @param content  the content to replace the selection with
      */
@@ -229,11 +224,6 @@
      * a value of <code>0.75</code> will cause 75 percent of the
      * component to be above the baseline, and 25 percent of the
      * component to be below the baseline.
-     * <p>
-     * This method is thread safe, although most Swing methods
-     * are not. Please see
-     * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
-     * to Use Threads</A> for more information.
      *
      * @param c    the component to insert
      */
@@ -252,11 +242,6 @@
      * current position of the caret.  This is represented in
      * the associated document as an attribute of one character
      * of content.
-     * <p>
-     * This method is thread safe, although most Swing methods
-     * are not. Please see
-     * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
-     * to Use Threads</A> for more information.
      *
      * @param g    the icon to insert
      * @see Icon
@@ -320,11 +305,6 @@
      * through the logical style assigned to the paragraph, which
      * in term may resolve through some hierarchy completely
      * independent of the element hierarchy in the document.
-     * <p>
-     * This method is thread safe, although most Swing methods
-     * are not. Please see
-     * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
-     * to Use Threads</A> for more information.
      *
      * @param s  the logical style to assign to the paragraph,
      *          or <code>null</code> for no style
@@ -367,11 +347,6 @@
      * is no selection, the attributes are applied to
      * the input attribute set which defines the attributes
      * for any new text that gets inserted.
-     * <p>
-     * This method is thread safe, although most Swing methods
-     * are not. Please see
-     * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
-     * to Use Threads</A> for more information.
      *
      * @param attr the attributes
      * @param replace if true, then replace the existing attributes first
@@ -412,11 +387,6 @@
      * to the paragraphs that intersect the selection.
      * If there is no selection, the attributes are applied
      * to the paragraph at the current caret position.
-     * <p>
-     * This method is thread safe, although most Swing methods
-     * are not. Please see
-     * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
-     * to Use Threads</A> for more information.
      *
      * @param attr the non-<code>null</code> attributes
      * @param replace if true, replace the existing attributes first
--- a/src/share/classes/javax/swing/JViewport.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/JViewport.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -30,6 +30,7 @@
 import java.awt.image.VolatileImage;
 import java.awt.peer.ComponentPeer;
 import java.applet.Applet;
+import java.beans.Transient;
 import javax.swing.plaf.ViewportUI;
 
 import javax.swing.event.*;
@@ -1257,6 +1258,7 @@
      *
      * @return a <code>Dimension</code> object giving the size of the view
      */
+    @Transient
     public Dimension getExtentSize() {
         return getSize();
     }
--- a/src/share/classes/javax/swing/MenuSelectionManager.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/MenuSelectionManager.java	Fri May 16 12:25:57 2008 -0700
@@ -218,9 +218,9 @@
         int selectionSize;
         p = event.getPoint();
 
-        Component source = (Component)event.getSource();
+        Component source = event.getComponent();
 
-        if (!source.isShowing()) {
+        if ((source != null) && !source.isShowing()) {
             // This can happen if a mouseReleased removes the
             // containing component -- bug 4146684
             return;
@@ -236,7 +236,9 @@
             return;
         }
 
-        SwingUtilities.convertPointToScreen(p,source);
+        if (source != null) {
+            SwingUtilities.convertPointToScreen(p, source);
+        }
 
         screenX = p.x;
         screenY = p.y;
--- a/src/share/classes/javax/swing/Popup.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/Popup.java	Fri May 16 12:25:57 2008 -0700
@@ -229,7 +229,15 @@
             // Popups are typically transient and most likely won't benefit
             // from true double buffering.  Turn it off here.
             getRootPane().setUseTrueDoubleBuffering(false);
-            setAlwaysOnTop(true);
+            // Try to set "always-on-top" for the popup window.
+            // Applets usually don't have sufficient permissions to do it.
+            // In this case simply ignore the exception.
+            try {
+                setAlwaysOnTop(true);
+            } catch (SecurityException se) {
+                // setAlwaysOnTop is restricted,
+                // the exception is ignored
+            }
         }
 
         public void update(Graphics g) {
--- a/src/share/classes/javax/swing/ScrollPaneLayout.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/ScrollPaneLayout.java	Fri May 16 12:25:57 2008 -0700
@@ -488,10 +488,14 @@
         Dimension viewSize = null;
         Component view = null;
 
-        if (viewport !=  null) {
+        if (viewport != null) {
             extentSize = viewport.getPreferredSize();
             view = viewport.getView();
-            viewSize  = view.getPreferredSize();
+            if (view != null) {
+                viewSize = view.getPreferredSize();
+            } else {
+                viewSize = new Dimension(0, 0);
+            }
         }
 
         /* If there's a viewport add its preferredSize.
--- a/src/share/classes/javax/swing/SpinnerNumberModel.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/SpinnerNumberModel.java	Fri May 16 12:25:57 2008 -0700
@@ -144,7 +144,7 @@
      *     <code>minimum &lt;= value &lt;= maximum</code>
      */
     public SpinnerNumberModel(int value, int minimum, int maximum, int stepSize) {
-        this(new Integer(value), new Integer(minimum), new Integer(maximum), new Integer(stepSize));
+        this(Integer.valueOf(value), Integer.valueOf(minimum), Integer.valueOf(maximum), Integer.valueOf(stepSize));
     }
 
 
@@ -171,7 +171,7 @@
      * <code>stepSize</code> equal to one, and an initial value of zero.
      */
     public SpinnerNumberModel() {
-        this(new Integer(0), null, null, new Integer(1));
+        this(Integer.valueOf(0), null, null, Integer.valueOf(1));
     }
 
 
@@ -333,16 +333,16 @@
             long v = value.longValue() + (stepSize.longValue() * (long)dir);
 
             if (value instanceof Long) {
-                newValue = new Long(v);
+                newValue = Long.valueOf(v);
             }
             else if (value instanceof Integer) {
-                newValue = new Integer((int)v);
+                newValue = Integer.valueOf((int)v);
             }
             else if (value instanceof Short) {
-                newValue = new Short((short)v);
+                newValue = Short.valueOf((short)v);
             }
             else {
-                newValue = new Byte((byte)v);
+                newValue = Byte.valueOf((byte)v);
             }
         }
 
--- a/src/share/classes/javax/swing/TablePrintable.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/TablePrintable.java	Fri May 16 12:25:57 2008 -0700
@@ -215,7 +215,7 @@
         }
 
         // to pass the page number when formatting the header and footer text
-        Object[] pageNumber = new Object[]{new Integer(pageIndex + 1)};
+        Object[] pageNumber = new Object[]{Integer.valueOf(pageIndex + 1)};
 
         // fetch the formatted header text, if any
         String headerText = null;
--- a/src/share/classes/javax/swing/border/TitledBorder.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/border/TitledBorder.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -642,6 +642,9 @@
         if (c == null) {
             throw new NullPointerException("Must supply non-null component");
         }
+        if (width < 0) {
+            throw new IllegalArgumentException("Width must be >= 0");
+        }
         if (height < 0) {
             throw new IllegalArgumentException("Height must be >= 0");
         }
--- a/src/share/classes/javax/swing/colorchooser/AbstractColorChooserPanel.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/colorchooser/AbstractColorChooserPanel.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 1998-2001 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1998-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,9 +26,7 @@
 package javax.swing.colorchooser;
 
 import java.awt.*;
-import java.io.Serializable;
 import javax.swing.*;
-import javax.swing.event.*;
 
 /**
  * This is the abstract superclass for color choosers.  If you want to add
@@ -55,17 +53,6 @@
     private JColorChooser chooser;
 
     /**
-     *
-     */
-    private ChangeListener colorListener;
-
-    /**
-     *
-     */
-    private boolean dirty  = true;
-
-
-    /**
       * Invoked automatically when the model's state changes.
       * It is also called by <code>installChooserPanel</code> to allow
       * you to set up the initial state of your chooser.
@@ -157,8 +144,6 @@
         chooser = enclosingChooser;
         buildChooser();
         updateChooser();
-        colorListener = new ModelListener();
-        getColorSelectionModel().addChangeListener(colorListener);
     }
 
     /**
@@ -166,7 +151,6 @@
      * If override this, be sure to call <code>super</code>.
      */
   public void uninstallChooserPanel(JColorChooser enclosingChooser) {
-        getColorSelectionModel().removeChangeListener(colorListener);
         chooser = null;
     }
 
@@ -192,10 +176,6 @@
      * @param g  the <code>Graphics</code> object
      */
     public void paint(Graphics g) {
-        if (dirty) {
-            updateChooser();
-            dirty = false;
-        }
         super.paint(g);
     }
 
@@ -222,18 +202,4 @@
         }
         return defaultValue;
     }
-
-    /**
-     *
-     */
-    class ModelListener implements ChangeListener, Serializable {
-        public void stateChanged(ChangeEvent e) {
-          if (isShowing()) {  // isVisible
-                updateChooser();
-                dirty = false;
-            } else {
-                dirty = true;
-            }
-        }
-    }
 }
--- a/src/share/classes/javax/swing/filechooser/FileSystemView.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/filechooser/FileSystemView.java	Fri May 16 12:25:57 2008 -0700
@@ -26,26 +26,18 @@
 package javax.swing.filechooser;
 
 
-import javax.swing.event.*;
 import javax.swing.*;
 
 import java.awt.Image;
 import java.io.File;
-import java.io.FileFilter;
-import java.io.FilenameFilter;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
 import java.util.Vector;
+import java.lang.ref.WeakReference;
 import java.beans.PropertyChangeListener;
 import java.beans.PropertyChangeEvent;
 
-
-import java.lang.reflect.*;
-
 import sun.awt.shell.*;
 
 /**
@@ -74,18 +66,11 @@
     static FileSystemView unixFileSystemView = null;
     //static FileSystemView macFileSystemView = null;
     static FileSystemView genericFileSystemView = null;
-    static boolean useSystemExtensionsHiding = false;
+
+    private boolean useSystemExtensionHiding =
+            UIManager.getDefaults().getBoolean("FileChooser.useSystemExtensionHiding");
 
     public static FileSystemView getFileSystemView() {
-        useSystemExtensionsHiding = UIManager.getDefaults().getBoolean("FileChooser.useSystemExtensionHiding");
-        UIManager.addPropertyChangeListener(new PropertyChangeListener() {
-            public void propertyChange(PropertyChangeEvent e) {
-               if (e.getPropertyName().equals("lookAndFeel")) {
-                   useSystemExtensionsHiding = UIManager.getDefaults().getBoolean("FileChooser.useSystemExtensionHiding");
-               }
-            }
-        });
-
         if(File.separatorChar == '\\') {
             if(windowsFileSystemView == null) {
                 windowsFileSystemView = new WindowsFileSystemView();
@@ -113,6 +98,26 @@
         return genericFileSystemView;
     }
 
+    public FileSystemView() {
+        final WeakReference<FileSystemView> weakReference = new WeakReference<FileSystemView>(this);
+
+        UIManager.addPropertyChangeListener(new PropertyChangeListener() {
+            public void propertyChange(PropertyChangeEvent evt) {
+                FileSystemView fileSystemView = weakReference.get();
+
+                if (fileSystemView == null) {
+                    // FileSystemView was destroyed
+                    UIManager.removePropertyChangeListener(this);
+                } else {
+                    if (evt.getPropertyName().equals("lookAndFeel")) {
+                        fileSystemView.useSystemExtensionHiding =
+                                UIManager.getDefaults().getBoolean("FileChooser.useSystemExtensionHiding");
+                    }
+                }
+            }
+        });
+    }
+
     /**
      * Determines if the given file is a root in the navigatable tree(s).
      * Examples: Windows 98 has one root, the Desktop folder. DOS has one root
@@ -170,7 +175,7 @@
         if (f != null) {
             name = f.getName();
             if (!name.equals("..") && !name.equals(".") &&
-                (useSystemExtensionsHiding ||
+                (useSystemExtensionHiding ||
                  !isFileSystem(f) ||
                  isFileSystemRoot(f)) &&
                 ((f instanceof ShellFolder) ||
--- a/src/share/classes/javax/swing/plaf/basic/BasicButtonUI.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/plaf/basic/BasicButtonUI.java	Fri May 16 12:25:57 2008 -0700
@@ -109,7 +109,7 @@
             LookAndFeel.installProperty(b, "rolloverEnabled", rollover);
         }
 
-        LookAndFeel.installProperty(b, "iconTextGap", new Integer(4));
+        LookAndFeel.installProperty(b, "iconTextGap", Integer.valueOf(4));
     }
 
     protected void installListeners(AbstractButton b) {
--- a/src/share/classes/javax/swing/plaf/basic/BasicColorChooserUI.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/plaf/basic/BasicColorChooserUI.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 1997-2004 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -30,16 +30,12 @@
 import javax.swing.event.*;
 import javax.swing.border.*;
 import javax.swing.plaf.*;
-import java.util.*;
 import java.awt.*;
-import java.awt.image.*;
 import java.awt.event.*;
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
-import java.io.Serializable;
 
 import sun.swing.DefaultLookup;
-import sun.swing.UIAction;
 
 /**
  * Provides the basic look and feel for a JColorChooser.
@@ -212,9 +208,24 @@
     protected void uninstallListeners() {
         chooser.removePropertyChangeListener( propertyChangeListener );
         chooser.getSelectionModel().removeChangeListener(previewListener);
+        previewListener = null;
         previewPanel.removeMouseListener(getHandler());
     }
 
+    private void selectionChanged(ColorSelectionModel model) {
+        if (this.previewPanel != null) {
+            this.previewPanel.setForeground(model.getSelectedColor());
+            this.previewPanel.repaint();
+        }
+        AbstractColorChooserPanel[] panels = this.chooser.getChooserPanels();
+        if (panels != null) {
+            for (AbstractColorChooserPanel panel : panels) {
+                if (panel != null) {
+                    panel.updateChooser();
+                }
+            }
+        }
+    }
 
     private class Handler implements ChangeListener, MouseListener,
             PropertyChangeListener {
@@ -222,11 +233,7 @@
         // ChangeListener
         //
         public void stateChanged(ChangeEvent evt) {
-            ColorSelectionModel model = (ColorSelectionModel)evt.getSource();
-            if (previewPanel != null) {
-                previewPanel.setForeground(model.getSelectedColor());
-                previewPanel.repaint();
-            }
+            selectionChanged((ColorSelectionModel) evt.getSource());
         }
 
         //
@@ -302,13 +309,19 @@
                     newPanels[i].installChooserPanel(chooser);
                 }
             }
-
-            if (prop == JColorChooser.PREVIEW_PANEL_PROPERTY) {
+            else if (prop == JColorChooser.PREVIEW_PANEL_PROPERTY) {
                 if (evt.getNewValue() != previewPanel) {
                     installPreviewPanel();
                 }
             }
-            if (prop == "componentOrientation") {
+            else if (prop == JColorChooser.SELECTION_MODEL_PROPERTY) {
+                ColorSelectionModel oldModel = (ColorSelectionModel) evt.getOldValue();
+                oldModel.removeChangeListener(previewListener);
+                ColorSelectionModel newModel = (ColorSelectionModel) evt.getNewValue();
+                newModel.addChangeListener(previewListener);
+                selectionChanged(newModel);
+            }
+            else if (prop == "componentOrientation") {
                 ComponentOrientation o =
                     (ComponentOrientation)evt.getNewValue();
                 JColorChooser cc = (JColorChooser)evt.getSource();
--- a/src/share/classes/javax/swing/plaf/basic/BasicLookAndFeel.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/plaf/basic/BasicLookAndFeel.java	Fri May 16 12:25:57 2008 -0700
@@ -654,7 +654,7 @@
                 "javax.swing.plaf.basic.BasicIconFactory",
                 "getRadioButtonMenuItemIcon");
 
-        Object menuItemAcceleratorDelimiter = new String("+");
+        Object menuItemAcceleratorDelimiter = "+";
 
         // *** OptionPane value objects
 
@@ -1364,6 +1364,7 @@
                         "LEFT", "positiveUnitIncrement",
                      "KP_LEFT", "positiveUnitIncrement",
                  }),
+            "Slider.onlyLeftMouseButtonDrag", Boolean.TRUE,
 
             // *** Spinner
             "Spinner.font", monospacedPlain12,
--- a/src/share/classes/javax/swing/plaf/basic/BasicMenuItemUI.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/plaf/basic/BasicMenuItemUI.java	Fri May 16 12:25:57 2008 -0700
@@ -146,7 +146,7 @@
             menuItem.setMargin(UIManager.getInsets(prefix + ".margin"));
         }
 
-        LookAndFeel.installProperty(menuItem, "iconTextGap", new Integer(4));
+        LookAndFeel.installProperty(menuItem, "iconTextGap", Integer.valueOf(4));
         defaultTextIconGap = menuItem.getIconTextGap();
 
         LookAndFeel.installBorder(menuItem, prefix + ".border");
--- a/src/share/classes/javax/swing/plaf/basic/BasicOptionPaneUI.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/plaf/basic/BasicOptionPaneUI.java	Fri May 16 12:25:57 2008 -0700
@@ -1195,10 +1195,10 @@
                 if (options == null) {
                     if (optionType == JOptionPane.OK_CANCEL_OPTION &&
                         buttonIndex == 1) {
-                        optionPane.setValue(new Integer(2));
+                        optionPane.setValue(Integer.valueOf(2));
 
                     } else {
-                        optionPane.setValue(new Integer(buttonIndex));
+                        optionPane.setValue(Integer.valueOf(buttonIndex));
                     }
                 } else {
                     optionPane.setValue(options[buttonIndex]);
@@ -1393,7 +1393,7 @@
             if (getName() == CLOSE) {
                 JOptionPane optionPane = (JOptionPane)e.getSource();
 
-                optionPane.setValue(new Integer(JOptionPane.CLOSED_OPTION));
+                optionPane.setValue(Integer.valueOf(JOptionPane.CLOSED_OPTION));
             }
         }
     }
--- a/src/share/classes/javax/swing/plaf/basic/BasicSliderUI.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/plaf/basic/BasicSliderUI.java	Fri May 16 12:25:57 2008 -0700
@@ -552,20 +552,28 @@
         contentRect.height = focusRect.height - (focusInsets.top + focusInsets.bottom);
     }
 
+    private int getTickSpacing() {
+        int majorTickSpacing = slider.getMajorTickSpacing();
+        int minorTickSpacing = slider.getMinorTickSpacing();
+
+        int result;
+
+        if (minorTickSpacing > 0) {
+            result = minorTickSpacing;
+        } else if (majorTickSpacing > 0) {
+            result = majorTickSpacing;
+        } else {
+            result = 0;
+        }
+
+        return result;
+    }
+
     protected void calculateThumbLocation() {
         if ( slider.getSnapToTicks() ) {
             int sliderValue = slider.getValue();
             int snappedValue = sliderValue;
-            int majorTickSpacing = slider.getMajorTickSpacing();
-            int minorTickSpacing = slider.getMinorTickSpacing();
-            int tickSpacing = 0;
-
-            if ( minorTickSpacing > 0 ) {
-                tickSpacing = minorTickSpacing;
-            }
-            else if ( majorTickSpacing > 0 ) {
-                tickSpacing = majorTickSpacing;
-            }
+            int tickSpacing = getTickSpacing();
 
             if ( tickSpacing != 0 ) {
                 // If it's not on a tick, change the value
@@ -1273,28 +1281,34 @@
 
     public void scrollByBlock(int direction)    {
         synchronized(slider)    {
-
-            int oldValue = slider.getValue();
             int blockIncrement =
                 (slider.getMaximum() - slider.getMinimum()) / 10;
-            if (blockIncrement <= 0 &&
-                slider.getMaximum() > slider.getMinimum()) {
-
+            if (blockIncrement == 0) {
                 blockIncrement = 1;
             }
 
+            if (slider.getSnapToTicks()) {
+                int tickSpacing = getTickSpacing();
+
+                if (blockIncrement < tickSpacing) {
+                    blockIncrement = tickSpacing;
+                }
+            }
+
             int delta = blockIncrement * ((direction > 0) ? POSITIVE_SCROLL : NEGATIVE_SCROLL);
-            slider.setValue(oldValue + delta);
+            slider.setValue(slider.getValue() + delta);
         }
     }
 
     public void scrollByUnit(int direction) {
         synchronized(slider)    {
+            int delta = ((direction > 0) ? POSITIVE_SCROLL : NEGATIVE_SCROLL);
 
-            int oldValue = slider.getValue();
-            int delta = 1 * ((direction > 0) ? POSITIVE_SCROLL : NEGATIVE_SCROLL);
+            if (slider.getSnapToTicks()) {
+                delta *= getTickSpacing();
+            }
 
-            slider.setValue(oldValue + delta);
+            slider.setValue(slider.getValue() + delta);
         }
     }
 
@@ -1573,6 +1587,11 @@
 
             // Clicked in the Thumb area?
             if (thumbRect.contains(currentMouseX, currentMouseY)) {
+                if (UIManager.getBoolean("Slider.onlyLeftMouseButtonDrag")
+                        && !SwingUtilities.isLeftMouseButton(e)) {
+                    return;
+                }
+
                 switch (slider.getOrientation()) {
                 case JSlider.VERTICAL:
                     offset = currentMouseY - thumbRect.y;
@@ -1584,6 +1603,11 @@
                 isDragging = true;
                 return;
             }
+
+            if (!SwingUtilities.isLeftMouseButton(e)) {
+                return;
+            }
+
             isDragging = false;
             slider.setValueIsAdjusting(true);
 
--- a/src/share/classes/javax/swing/plaf/basic/BasicTabbedPaneUI.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/plaf/basic/BasicTabbedPaneUI.java	Fri May 16 12:25:57 2008 -0700
@@ -539,7 +539,7 @@
         }
         mnemonicInputMap.put(KeyStroke.getKeyStroke(mnemonic, Event.ALT_MASK),
                              "setSelectedIndex");
-        mnemonicToIndexMap.put(new Integer(mnemonic), new Integer(index));
+        mnemonicToIndexMap.put(Integer.valueOf(mnemonic), Integer.valueOf(index));
     }
 
     /**
@@ -2231,7 +2231,7 @@
                         mnemonic  -= ('a' - 'A');
                     }
                     Integer index = (Integer)ui.mnemonicToIndexMap.
-                                 get(new Integer(mnemonic));
+                                 get(Integer.valueOf(mnemonic));
                     if (index != null && pane.isEnabledAt(index.intValue())) {
                         pane.setSelectedIndex(index.intValue());
                     }
--- a/src/share/classes/javax/swing/plaf/basic/BasicToolBarUI.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/plaf/basic/BasicToolBarUI.java	Fri May 16 12:25:57 2008 -0700
@@ -178,7 +178,7 @@
         dragWindow = null;
         dockingSource = null;
 
-        c.putClientProperty( FOCUSED_COMP_INDEX, new Integer( focusedCompIndex ) );
+        c.putClientProperty( FOCUSED_COMP_INDEX, Integer.valueOf( focusedCompIndex ) );
     }
 
     protected void installDefaults( )
--- a/src/share/classes/javax/swing/plaf/metal/MetalIconFactory.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/plaf/metal/MetalIconFactory.java	Fri May 16 12:25:57 2008 -0700
@@ -2278,18 +2278,16 @@
     }
 
     public void paintIcon( Component c, Graphics g, int x, int y ) {
-        JSlider slider = (JSlider)c;
-
-        boolean leftToRight = MetalUtils.isLeftToRight(slider);
+        boolean leftToRight = MetalUtils.isLeftToRight(c);
 
         g.translate( x, y );
 
         // Draw the frame
-        if ( slider.hasFocus() ) {
+        if ( c.hasFocus() ) {
             g.setColor( MetalLookAndFeel.getPrimaryControlInfo() );
         }
         else {
-            g.setColor( slider.isEnabled() ? MetalLookAndFeel.getPrimaryControlInfo() :
+            g.setColor( c.isEnabled() ? MetalLookAndFeel.getPrimaryControlInfo() :
                                              MetalLookAndFeel.getControlDarkShadow() );
         }
 
@@ -2309,7 +2307,7 @@
         }
 
         // Fill in the background
-        if ( slider.hasFocus() ) {
+        if ( c.hasFocus() ) {
             g.setColor( c.getForeground() );
         }
         else {
@@ -2338,8 +2336,8 @@
 
         // Draw the bumps
         int offset = (leftToRight) ? 2 : 8;
-        if ( slider.isEnabled() ) {
-            if ( slider.hasFocus() ) {
+        if ( c.isEnabled() ) {
+            if ( c.hasFocus() ) {
                 primaryBumps.paintIcon( c, g, offset, 2 );
             }
             else {
@@ -2348,8 +2346,8 @@
         }
 
         // Draw the highlight
-        if ( slider.isEnabled() ) {
-            g.setColor( slider.hasFocus() ? MetalLookAndFeel.getPrimaryControl()
+        if ( c.isEnabled() ) {
+            g.setColor( c.hasFocus() ? MetalLookAndFeel.getPrimaryControl()
                         : MetalLookAndFeel.getControlHighlight() );
             if (leftToRight) {
                 g.drawLine( 1, 1, 8, 1 );
@@ -2389,16 +2387,14 @@
     }
 
     public void paintIcon( Component c, Graphics g, int x, int y ) {
-        JSlider slider = (JSlider)c;
-
         g.translate( x, y );
 
         // Draw the frame
-        if ( slider.hasFocus() ) {
+        if ( c.hasFocus() ) {
             g.setColor( MetalLookAndFeel.getPrimaryControlInfo() );
         }
         else {
-            g.setColor( slider.isEnabled() ? MetalLookAndFeel.getPrimaryControlInfo() :
+            g.setColor( c.isEnabled() ? MetalLookAndFeel.getPrimaryControlInfo() :
                                              MetalLookAndFeel.getControlDarkShadow() );
         }
 
@@ -2409,7 +2405,7 @@
         g.drawLine(  7,15 , 14,8 );  // right slant
 
         // Fill in the background
-        if ( slider.hasFocus() ) {
+        if ( c.hasFocus() ) {
             g.setColor( c.getForeground() );
         }
         else {
@@ -2425,8 +2421,8 @@
         g.drawLine( 7,14 ,  7,14 );
 
         // Draw the bumps
-        if ( slider.isEnabled() ) {
-            if ( slider.hasFocus() ) {
+        if ( c.isEnabled() ) {
+            if ( c.hasFocus() ) {
                 primaryBumps.paintIcon( c, g, 2, 2 );
             }
             else {
@@ -2435,8 +2431,8 @@
         }
 
         // Draw the highlight
-        if ( slider.isEnabled() ) {
-            g.setColor( slider.hasFocus() ? MetalLookAndFeel.getPrimaryControl()
+        if ( c.isEnabled() ) {
+            g.setColor( c.hasFocus() ? MetalLookAndFeel.getPrimaryControl()
                         : MetalLookAndFeel.getControlHighlight() );
             g.drawLine( 1, 1, 13, 1 );
             g.drawLine( 1, 1, 1, 8 );
--- a/src/share/classes/javax/swing/plaf/metal/MetalLookAndFeel.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/plaf/metal/MetalLookAndFeel.java	Fri May 16 12:25:57 2008 -0700
@@ -455,7 +455,7 @@
 
         Insets zeroInsets = new InsetsUIResource(0, 0, 0, 0);
 
-        Integer zero = new Integer(0);
+        Integer zero = Integer.valueOf(0);
 
         Object textFieldBorder =
             new SwingLazyValue("javax.swing.plaf.metal.MetalBorders",
@@ -904,7 +904,7 @@
             "ProgressBar.selectionBackground", primaryControlDarkShadow,
             "ProgressBar.border", progressBarBorder,
             "ProgressBar.cellSpacing", zero,
-            "ProgressBar.cellLength", new Integer(1),
+            "ProgressBar.cellLength", Integer.valueOf(1),
 
             // Combo Box
             "ComboBox.background", control,
@@ -971,7 +971,7 @@
             "DesktopIcon.font", controlTextValue,
             "DesktopIcon.foreground", controlTextColor,
             "DesktopIcon.background", control,
-            "DesktopIcon.width", new Integer(160),
+            "DesktopIcon.width", Integer.valueOf(160),
 
             "Desktop.ancestorInputMap",
                new UIDefaults.LazyInputMap(new Object[] {
--- a/src/share/classes/javax/swing/plaf/synth/SynthArrowButton.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/plaf/synth/SynthArrowButton.java	Fri May 16 12:25:57 2008 -0700
@@ -53,7 +53,7 @@
 
     public void setDirection(int dir) {
         direction = dir;
-        putClientProperty("__arrow_direction__", new Integer(dir));
+        putClientProperty("__arrow_direction__", Integer.valueOf(dir));
         repaint();
     }
 
--- a/src/share/classes/javax/swing/plaf/synth/SynthDesktopPaneUI.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/plaf/synth/SynthDesktopPaneUI.java	Fri May 16 12:25:57 2008 -0700
@@ -96,7 +96,7 @@
             }
             taskBar.setBackground(desktop.getBackground());
             desktop.add(taskBar,
-                new Integer(JLayeredPane.PALETTE_LAYER.intValue() + 1));
+                Integer.valueOf(JLayeredPane.PALETTE_LAYER.intValue() + 1));
             if (desktop.isShowing()) {
                 taskBar.adjustSize();
             }
--- a/src/share/classes/javax/swing/plaf/synth/SynthSplitPaneUI.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/plaf/synth/SynthSplitPaneUI.java	Fri May 16 12:25:57 2008 -0700
@@ -127,7 +127,7 @@
         if (style != oldStyle) {
             Object value = style.get(context, "SplitPane.size");
             if (value == null) {
-                value = new Integer(6);
+                value = Integer.valueOf(6);
             }
             LookAndFeel.installProperty(splitPane, "dividerSize", value);
 
--- a/src/share/classes/javax/swing/table/JTableHeader.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/table/JTableHeader.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -37,6 +37,7 @@
 import javax.accessibility.*;
 
 import java.beans.PropertyChangeListener;
+import java.beans.Transient;
 
 import java.io.ObjectOutputStream;
 import java.io.ObjectInputStream;
@@ -325,6 +326,7 @@
      * @return the default renderer
      * @since 1.3
      */
+    @Transient
     public TableCellRenderer getDefaultRenderer() {
         return defaultRenderer;
     }
--- a/src/share/classes/javax/swing/table/TableColumn.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/table/TableColumn.java	Fri May 16 12:25:57 2008 -0700
@@ -281,7 +281,7 @@
 
     private void firePropertyChange(String propertyName, int oldValue, int newValue) {
         if (oldValue != newValue) {
-            firePropertyChange(propertyName, new Integer(oldValue), new Integer(newValue));
+            firePropertyChange(propertyName, Integer.valueOf(oldValue), Integer.valueOf(newValue));
         }
     }
 
--- a/src/share/classes/javax/swing/text/AbstractDocument.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/text/AbstractDocument.java	Fri May 16 12:25:57 2008 -0700
@@ -351,7 +351,7 @@
      *   loaded asynchronously
      */
     public void setAsynchronousLoadPriority(int p) {
-        Integer loadPriority = (p >= 0) ? new Integer(p) : null;
+        Integer loadPriority = (p >= 0) ? Integer.valueOf(p) : null;
         putProperty(AbstractDocument.AsyncLoadPriority, loadPriority);
     }
 
@@ -2675,7 +2675,7 @@
          */
         BidiElement(Element parent, int start, int end, int level) {
             super(parent, new SimpleAttributeSet(), start, end);
-            addAttribute(StyleConstants.BidiLevel, new Integer(level));
+            addAttribute(StyleConstants.BidiLevel, Integer.valueOf(level));
             //System.out.println("BidiElement: start = " + start
             //                   + " end = " + end + " level = " + level );
         }
--- a/src/share/classes/javax/swing/text/JTextComponent.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/text/JTextComponent.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -29,6 +29,7 @@
 import java.security.AccessController;
 import java.security.PrivilegedAction;
 
+import java.beans.Transient;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Hashtable;
@@ -571,6 +572,7 @@
      *
      * @return the caret
      */
+    @Transient
     public Caret getCaret() {
         return caret;
     }
@@ -1349,11 +1351,6 @@
      * This is the method that is used by the default implementation
      * of the action for inserting content that gets bound to the
      * keymap actions.
-     * <p>
-     * This method is thread safe, although most Swing methods
-     * are not. Please see
-     * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
-     * to Use Threads</A> for more information.
      *
      * @param content  the content to replace the selection with
      */
@@ -1677,6 +1674,7 @@
      * @return the position of the text insertion caret for the
      *  text component >= 0
      */
+    @Transient
     public int getCaretPosition() {
         return caret.getDot();
     }
@@ -1687,12 +1685,8 @@
      * or empty, has the effect of simply deleting the old text.
      * When text has been inserted, the resulting caret location
      * is determined by the implementation of the caret class.
+     *
      * <p>
-     * This method is thread safe, although most Swing methods
-     * are not. Please see
-     * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
-     * to Use Threads</A> for more information.
-     *
      * Note that text is not a bound property, so no <code>PropertyChangeEvent
      * </code> is fired when it changes. To listen for changes to the text,
      * use <code>DocumentListener</code>.
@@ -1806,6 +1800,7 @@
      *
      * @return the start position >= 0
      */
+    @Transient
     public int getSelectionStart() {
         int start = Math.min(caret.getDot(), caret.getMark());
         return start;
@@ -1838,6 +1833,7 @@
      *
      * @return the end position >= 0
      */
+    @Transient
     public int getSelectionEnd() {
         int end = Math.max(caret.getDot(), caret.getMark());
         return end;
--- a/src/share/classes/javax/swing/text/NumberFormatter.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/text/NumberFormatter.java	Fri May 16 12:25:57 2008 -0700
@@ -173,23 +173,24 @@
      */
     private Object convertValueToValueClass(Object value, Class valueClass) {
         if (valueClass != null && (value instanceof Number)) {
+            Number numberValue = (Number)value;
             if (valueClass == Integer.class) {
-                return new Integer(((Number)value).intValue());
+                return Integer.valueOf(numberValue.intValue());
             }
             else if (valueClass == Long.class) {
-                return new Long(((Number)value).longValue());
+                return Long.valueOf(numberValue.longValue());
             }
             else if (valueClass == Float.class) {
-                return new Float(((Number)value).floatValue());
+                return Float.valueOf(numberValue.floatValue());
             }
             else if (valueClass == Double.class) {
-                return new Double(((Number)value).doubleValue());
+                return Double.valueOf(numberValue.doubleValue());
             }
             else if (valueClass == Byte.class) {
-                return new Byte(((Number)value).byteValue());
+                return Byte.valueOf(numberValue.byteValue());
             }
             else if (valueClass == Short.class) {
-                return new Short(((Number)value).shortValue());
+                return Short.valueOf(numberValue.shortValue());
             }
         }
         return value;
--- a/src/share/classes/javax/swing/text/PlainDocument.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/text/PlainDocument.java	Fri May 16 12:25:57 2008 -0700
@@ -89,7 +89,7 @@
      */
     public PlainDocument(Content c) {
         super(c);
-        putProperty(tabSizeAttribute, new Integer(8));
+        putProperty(tabSizeAttribute, Integer.valueOf(8));
         defaultRoot = createDefaultRoot();
     }
 
--- a/src/share/classes/javax/swing/text/Segment.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/text/Segment.java	Fri May 16 12:25:57 2008 -0700
@@ -118,7 +118,7 @@
         if (array != null) {
             return new String(array, offset, count);
         }
-        return new String();
+        return "";
     }
 
     // --- CharacterIterator methods -------------------------------------
--- a/src/share/classes/javax/swing/text/StyleConstants.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/text/StyleConstants.java	Fri May 16 12:25:57 2008 -0700
@@ -296,7 +296,7 @@
      * @param o the bidi level value
      */
     public static void setBidiLevel(MutableAttributeSet a, int o) {
-        a.addAttribute(BidiLevel, new Integer(o));
+        a.addAttribute(BidiLevel, Integer.valueOf(o));
     }
 
     /**
@@ -386,7 +386,7 @@
      * @param s the font size
      */
     public static void setFontSize(MutableAttributeSet a, int s) {
-        a.addAttribute(FontSize, new Integer(s));
+        a.addAttribute(FontSize, Integer.valueOf(s));
     }
 
     /**
@@ -753,7 +753,7 @@
      * @param align the alignment value
      */
     public static void setAlignment(MutableAttributeSet a, int align) {
-        a.addAttribute(Alignment, new Integer(align));
+        a.addAttribute(Alignment, Integer.valueOf(align));
     }
 
     /**
--- a/src/share/classes/javax/swing/text/html/AccessibleHTML.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/text/html/AccessibleHTML.java	Fri May 16 12:25:57 2008 -0700
@@ -1970,7 +1970,7 @@
 
                     for (int i = 0; i < nRows; i++) {
                         if (isAccessibleRowSelected(i)) {
-                            vec.addElement(new Integer(i));
+                            vec.addElement(Integer.valueOf(i));
                         }
                     }
                     int retval[] = new int[vec.size()];
@@ -1995,7 +1995,7 @@
 
                     for (int i = 0; i < nColumns; i++) {
                         if (isAccessibleColumnSelected(i)) {
-                            vec.addElement(new Integer(i));
+                            vec.addElement(Integer.valueOf(i));
                         }
                     }
                     int retval[] = new int[vec.size()];
@@ -2139,7 +2139,7 @@
                 private int columnCount = 0;
 
                 public void addHeader(TableCellElementInfo cellInfo, int rowNumber) {
-                    Integer rowInteger = new Integer(rowNumber);
+                    Integer rowInteger = Integer.valueOf(rowNumber);
                     ArrayList list = (ArrayList)headers.get(rowInteger);
                     if (list == null) {
                         list = new ArrayList();
@@ -2201,7 +2201,7 @@
                 }
 
                 private TableCellElementInfo getElementInfoAt(int r, int c) {
-                    ArrayList list = (ArrayList)headers.get(new Integer(r));
+                    ArrayList list = (ArrayList)headers.get(Integer.valueOf(r));
                     if (list != null) {
                         return (TableCellElementInfo)list.get(c);
                     } else {
--- a/src/share/classes/javax/swing/text/html/CSS.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/text/html/CSS.java	Fri May 16 12:25:57 2008 -0700
@@ -1099,7 +1099,7 @@
      */
     static String colorToHex(Color color) {
 
-      String colorstr = new String("#");
+      String colorstr = "#";
 
       // Red
       String str = Integer.toHexString(color.getRed());
--- a/src/share/classes/javax/swing/text/html/HTMLEditorKit.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/text/html/HTMLEditorKit.java	Fri May 16 12:25:57 2008 -0700
@@ -1899,8 +1899,8 @@
                     // assistive technologies listening for such events.
                     comp.getAccessibleContext().firePropertyChange(
                         AccessibleContext.ACCESSIBLE_HYPERTEXT_OFFSET,
-                        new Integer(kit.prevHypertextOffset),
-                        new Integer(e.getDot()));
+                        Integer.valueOf(kit.prevHypertextOffset),
+                        Integer.valueOf(e.getDot()));
                 }
             }
         }
--- a/src/share/classes/javax/swing/text/html/parser/AttributeList.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/text/html/parser/AttributeList.java	Fri May 16 12:25:57 2008 -0700
@@ -132,7 +132,7 @@
     static Hashtable attributeTypes = new Hashtable();
 
     static void defineAttributeType(String nm, int val) {
-        Integer num = new Integer(val);
+        Integer num = Integer.valueOf(val);
         attributeTypes.put(nm, num);
         attributeTypes.put(num, nm);
     }
@@ -154,11 +154,11 @@
         defineAttributeType("NUTOKEN", NUTOKEN);
         defineAttributeType("NUTOKENS", NUTOKENS);
 
-        attributeTypes.put("fixed", new Integer(FIXED));
-        attributeTypes.put("required", new Integer(REQUIRED));
-        attributeTypes.put("current", new Integer(CURRENT));
-        attributeTypes.put("conref", new Integer(CONREF));
-        attributeTypes.put("implied", new Integer(IMPLIED));
+        attributeTypes.put("fixed", Integer.valueOf(FIXED));
+        attributeTypes.put("required", Integer.valueOf(REQUIRED));
+        attributeTypes.put("current", Integer.valueOf(CURRENT));
+        attributeTypes.put("conref", Integer.valueOf(CONREF));
+        attributeTypes.put("implied", Integer.valueOf(IMPLIED));
     }
 
     public static int name2type(String nm) {
@@ -167,6 +167,6 @@
     }
 
     public static String type2name(int tp) {
-        return (String)attributeTypes.get(new Integer(tp));
+        return (String)attributeTypes.get(Integer.valueOf(tp));
     }
 }
--- a/src/share/classes/javax/swing/text/html/parser/DTD.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/text/html/parser/DTD.java	Fri May 16 12:25:57 2008 -0700
@@ -113,7 +113,7 @@
      *    <code>ch</code> character
      */
     public Entity getEntity(int ch) {
-        return (Entity)entityHash.get(new Integer(ch));
+        return (Entity)entityHash.get(Integer.valueOf(ch));
     }
 
     /**
@@ -178,7 +178,7 @@
                 switch (type & ~GENERAL) {
                   case CDATA:
                   case SDATA:
-                    entityHash.put(new Integer(data[0]), ent);
+                      entityHash.put(Integer.valueOf(data[0]), ent);
                     break;
                 }
             }
--- a/src/share/classes/javax/swing/text/html/parser/Element.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/text/html/parser/Element.java	Fri May 16 12:25:57 2008 -0700
@@ -162,10 +162,10 @@
     static Hashtable contentTypes = new Hashtable();
 
     static {
-        contentTypes.put("CDATA", new Integer(CDATA));
-        contentTypes.put("RCDATA", new Integer(RCDATA));
-        contentTypes.put("EMPTY", new Integer(EMPTY));
-        contentTypes.put("ANY", new Integer(ANY));
+        contentTypes.put("CDATA", Integer.valueOf(CDATA));
+        contentTypes.put("RCDATA", Integer.valueOf(RCDATA));
+        contentTypes.put("EMPTY", Integer.valueOf(EMPTY));
+        contentTypes.put("ANY", Integer.valueOf(ANY));
     }
 
     public static int name2type(String nm) {
--- a/src/share/classes/javax/swing/text/html/parser/Entity.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/text/html/parser/Entity.java	Fri May 16 12:25:57 2008 -0700
@@ -110,15 +110,15 @@
     static Hashtable entityTypes = new Hashtable();
 
     static {
-        entityTypes.put("PUBLIC", new Integer(PUBLIC));
-        entityTypes.put("CDATA", new Integer(CDATA));
-        entityTypes.put("SDATA", new Integer(SDATA));
-        entityTypes.put("PI", new Integer(PI));
-        entityTypes.put("STARTTAG", new Integer(STARTTAG));
-        entityTypes.put("ENDTAG", new Integer(ENDTAG));
-        entityTypes.put("MS", new Integer(MS));
-        entityTypes.put("MD", new Integer(MD));
-        entityTypes.put("SYSTEM", new Integer(SYSTEM));
+        entityTypes.put("PUBLIC", Integer.valueOf(PUBLIC));
+        entityTypes.put("CDATA", Integer.valueOf(CDATA));
+        entityTypes.put("SDATA", Integer.valueOf(SDATA));
+        entityTypes.put("PI", Integer.valueOf(PI));
+        entityTypes.put("STARTTAG", Integer.valueOf(STARTTAG));
+        entityTypes.put("ENDTAG", Integer.valueOf(ENDTAG));
+        entityTypes.put("MS", Integer.valueOf(MS));
+        entityTypes.put("MD", Integer.valueOf(MD));
+        entityTypes.put("SYSTEM", Integer.valueOf(SYSTEM));
     }
 
     /**
--- a/src/share/classes/javax/swing/text/html/parser/Parser.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/text/html/parser/Parser.java	Fri May 16 12:25:57 2008 -0700
@@ -1842,7 +1842,7 @@
             String elemStr = getString(0);
 
             if (elemStr.equals("image")) {
-                elemStr = new String("img");
+                elemStr = "img";
             }
 
             /* determine if this element is part of the dtd. */
--- a/src/share/classes/javax/swing/text/rtf/RTFAttributes.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/text/rtf/RTFAttributes.java	Fri May 16 12:25:57 2008 -0700
@@ -281,7 +281,7 @@
         public AssertiveAttribute(int d, Object s, String r, int v)
         {
             super(d, s, r);
-            swingValue = new Integer(v);
+            swingValue = Integer.valueOf(v);
         }
 
         public boolean set(MutableAttributeSet target)
@@ -343,7 +343,7 @@
         public NumericAttribute(int d, Object s,
                                 String r, int ds, int dr)
         {
-            this(d, s, r, new Integer(ds), dr, 1f);
+            this(d, s, r, Integer.valueOf(ds), dr, 1f);
         }
 
         public NumericAttribute(int d, Object s,
@@ -377,7 +377,7 @@
             Number swingValue;
 
             if (scale == 1f)
-                swingValue = new Integer(parameter);
+                swingValue = Integer.valueOf(parameter);
             else
                 swingValue = new Float(parameter / scale);
             target.addAttribute(swingName, swingValue);
--- a/src/share/classes/javax/swing/text/rtf/RTFGenerator.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/text/rtf/RTFGenerator.java	Fri May 16 12:25:57 2008 -0700
@@ -83,11 +83,7 @@
     static public final String defaultFontFamily = "Helvetica";
 
     /* constants so we can avoid allocating objects in inner loops */
-    /* these should all be final, but javac seems to be a bit buggy */
-    static protected Integer One, Zero;
-    static protected Boolean False;
-    static protected Float ZeroPointZero;
-    static private Object MagicToken;
+    final static private Object MagicToken;
 
     /* An array of character-keyword pairs. This could be done
        as a dictionary (and lookup would be quicker), but that
@@ -98,11 +94,7 @@
     static protected CharacterKeywordPair[] textKeywords;
 
     static {
-        One = new Integer(1);
-        Zero = new Integer(0);
-        False = Boolean.valueOf(false);
         MagicToken = new Object();
-        ZeroPointZero = new Float(0);
 
         Dictionary textKeywordDictionary = RTFReader.textKeywords;
         Enumeration keys = textKeywordDictionary.keys();
@@ -142,7 +134,7 @@
 public RTFGenerator(OutputStream to)
 {
     colorTable = new Hashtable();
-    colorTable.put(defaultRTFColor, new Integer(0));
+    colorTable.put(defaultRTFColor, Integer.valueOf(0));
     colorCount = 1;
 
     fontTable = new Hashtable();
@@ -693,7 +685,7 @@
 {
     writeControlWord("pard");
 
-    currentAttributes.addAttribute(StyleConstants.Alignment,       Zero);
+    currentAttributes.addAttribute(StyleConstants.Alignment, Integer.valueOf(0));
 
     int wordIndex;
     int wordCount = RTFAttributes.attributes.length;
--- a/src/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java	Fri May 16 12:25:57 2008 -0700
@@ -157,8 +157,8 @@
             selectionMode = TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION;
         if(oldMode != selectionMode && changeSupport != null)
             changeSupport.firePropertyChange(SELECTION_MODE_PROPERTY,
-                                             new Integer(oldMode),
-                                             new Integer(selectionMode));
+                                             Integer.valueOf(oldMode),
+                                             Integer.valueOf(selectionMode));
     }
 
     /**
--- a/src/share/classes/sun/applet/AppletPanel.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/sun/applet/AppletPanel.java	Fri May 16 12:25:57 2008 -0700
@@ -285,7 +285,7 @@
                 //System.out.println("SEND0= " + id);
                 queue = new Queue();
             }
-            Integer eventId = new Integer(id);
+            Integer eventId = Integer.valueOf(id);
             queue.enqueue(eventId);
             notifyAll();
         }
--- a/src/share/classes/sun/applet/AppletViewer.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/sun/applet/AppletViewer.java	Fri May 16 12:25:57 2008 -0700
@@ -587,9 +587,9 @@
         Dimension d = panel.size();
         Insets in = panel.insets();
         panel.atts.put("width",
-                       new Integer(d.width - (in.left + in.right)).toString());
+                       Integer.toString(d.width - (in.left + in.right)));
         panel.atts.put("height",
-                       new Integer(d.height - (in.top + in.bottom)).toString());
+                       Integer.toString(d.height - (in.top + in.bottom)));
     }
 
     /**
--- a/src/share/classes/sun/awt/FontConfiguration.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/sun/awt/FontConfiguration.java	Fri May 16 12:25:57 2008 -0700
@@ -1956,7 +1956,7 @@
             /*Init these tables to allow componentFontNameID, fontfileNameIDs
               to start from "1".
             */
-            componentFontNameIDs.put("", new Short((short)0));
+            componentFontNameIDs.put("", Short.valueOf((short)0));
 
             fontfileNameIDs = new HashMap<String, Short>();
             filenames = new HashMap<Short, Short>();
--- a/src/share/classes/sun/awt/im/InputContext.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/sun/awt/im/InputContext.java	Fri May 16 12:25:57 2008 -0700
@@ -556,7 +556,7 @@
             }
             usedInputMethods.put(inputMethodLocator.deriveLocator(null), inputMethod);
             perInputMethodState.put(inputMethod,
-                                    new Boolean(clientWindowNotificationEnabled));
+                                    Boolean.valueOf(clientWindowNotificationEnabled));
             enableClientWindowNotification(inputMethod, false);
             if (this == inputMethodWindowContext) {
                 inputMethod.hideWindows();
@@ -921,7 +921,7 @@
             if (perInputMethodState == null) {
                 perInputMethodState = new HashMap(5);
             }
-            perInputMethodState.put(requester, new Boolean(enable));
+            perInputMethodState.put(requester, Boolean.valueOf(enable));
             return;
         }
 
--- a/src/share/classes/sun/font/FileFontStrike.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/sun/font/FileFontStrike.java	Fri May 16 12:25:57 2008 -0700
@@ -657,7 +657,7 @@
              * we first obtain this information, then the image, and never
              * will access this value again.
              */
-            Integer key = new Integer(glyphCode);
+            Integer key = Integer.valueOf(glyphCode);
             Point2D.Float value = null;
             ConcurrentHashMap<Integer, Point2D.Float> glyphMetricsMap = null;
             if (glyphMetricsMapRef != null) {
@@ -724,7 +724,7 @@
             boundsMap = new ConcurrentHashMap<Integer, Rectangle2D.Float>();
         }
 
-        Integer key = new Integer(glyphCode);
+        Integer key = Integer.valueOf(glyphCode);
         Rectangle2D.Float bounds = boundsMap.get(key);
 
         if (bounds == null) {
--- a/src/share/classes/sun/font/FontManager.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/sun/font/FontManager.java	Fri May 16 12:25:57 2008 -0700
@@ -2124,7 +2124,7 @@
 
     private static void addLCIDMapEntry(Map<String, Short> map,
                                         String key, short value) {
-        map.put(key, new Short(value));
+        map.put(key, Short.valueOf(value));
     }
 
     private static synchronized void createLCIDMap() {
--- a/src/share/classes/sun/font/FontResolver.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/sun/font/FontResolver.java	Fri May 16 12:25:57 2008 -0700
@@ -117,7 +117,7 @@
                 Font2D font2D = FontManager.getFont2D(font);
                 if (font2D.hasSupplementaryChars()) {
                     fonts.add(font);
-                    indices.add(new Integer(i));
+                    indices.add(Integer.valueOf(i));
                 }
             }
 
--- a/src/share/classes/sun/font/PhysicalStrike.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/sun/font/PhysicalStrike.java	Fri May 16 12:25:57 2008 -0700
@@ -114,7 +114,7 @@
      */
     Point2D.Float getGlyphPoint(int glyphCode, int ptNumber) {
         Point2D.Float gp = null;
-        Integer ptKey = new Integer(glyphCode<<16|ptNumber);
+        Integer ptKey = Integer.valueOf(glyphCode<<16|ptNumber);
         if (glyphPointMapCache == null) {
             synchronized (this) {
                 if (glyphPointMapCache == null) {
--- a/src/share/classes/sun/java2d/SunGraphics2D.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/sun/java2d/SunGraphics2D.java	Fri May 16 12:25:57 2008 -0700
@@ -1374,7 +1374,7 @@
                   SunHints.Value.get(SunHints.INTKEY_FRACTIONALMETRICS,
                                      fractionalMetricsHint));
         model.put(SunHints.KEY_TEXT_ANTIALIAS_LCD_CONTRAST,
-                  new Integer(lcdTextContrast));
+                  Integer.valueOf(lcdTextContrast));
         Object value;
         switch (interpolationHint) {
         case SunHints.INTVAL_INTERPOLATION_NEAREST_NEIGHBOR:
--- a/src/share/classes/sun/java2d/loops/SurfaceType.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/sun/java2d/loops/SurfaceType.java	Fri May 16 12:25:57 2008 -0700
@@ -408,7 +408,7 @@
             if (unusedUID > 255) {
                 throw new InternalError("surface type id overflow");
             }
-            i = new Integer(unusedUID++);
+            i = Integer.valueOf(unusedUID++);
             surfaceUIDMap.put(desc, i);
         }
         return i.intValue();
--- a/src/share/classes/sun/print/PSPrinterJob.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/sun/print/PSPrinterJob.java	Fri May 16 12:25:57 2008 -0700
@@ -1536,16 +1536,16 @@
             execCmd = new String[ncomps];
             execCmd[n++] = "/usr/bin/lpr";
             if ((pFlags & PRINTER) != 0) {
-                execCmd[n++] = new String("-P" + printer);
+                execCmd[n++] = "-P" + printer;
             }
             if ((pFlags & BANNER) != 0) {
-                execCmd[n++] = new String("-J"  + banner);
+                execCmd[n++] = "-J"  + banner;
             }
             if ((pFlags & COPIES) != 0) {
-                execCmd[n++] = new String("-#" + new Integer(copies).toString());
+                execCmd[n++] = "-#" + copies;
             }
             if ((pFlags & NOSHEET) != 0) {
-                execCmd[n++] = new String("-h");
+                execCmd[n++] = "-h";
             }
             if ((pFlags & OPTIONS) != 0) {
                 execCmd[n++] = new String(options);
@@ -1556,19 +1556,19 @@
             execCmd[n++] = "/usr/bin/lp";
             execCmd[n++] = "-c";           // make a copy of the spool file
             if ((pFlags & PRINTER) != 0) {
-                execCmd[n++] = new String("-d" + printer);
+                execCmd[n++] = "-d" + printer;
             }
             if ((pFlags & BANNER) != 0) {
-                execCmd[n++] = new String("-t"  + banner);
+                execCmd[n++] = "-t"  + banner;
             }
             if ((pFlags & COPIES) != 0) {
-                execCmd[n++] = new String("-n" + new Integer(copies).toString());
+                execCmd[n++] = "-n" + copies;
             }
             if ((pFlags & NOSHEET) != 0) {
-                execCmd[n++] = new String("-o nobanner");
+                execCmd[n++] = "-o nobanner";
             }
             if ((pFlags & OPTIONS) != 0) {
-                execCmd[n++] = new String("-o" + options);
+                execCmd[n++] = "-o" + options;
             }
         }
         execCmd[n++] = spoolFile;
--- a/src/share/classes/sun/print/RasterPrinterJob.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/sun/print/RasterPrinterJob.java	Fri May 16 12:25:57 2008 -0700
@@ -245,7 +245,7 @@
     /**
      * The name of the job being printed.
      */
-    private String mDocName = new String("Java Printing");
+    private String mDocName = "Java Printing";
 
 
     /**
--- a/src/share/classes/sun/swing/FilePane.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/sun/swing/FilePane.java	Fri May 16 12:25:57 2008 -0700
@@ -1285,7 +1285,6 @@
 
     int lastIndex = -1;
     File editFile = null;
-    int editX = 20;
 
     private int getEditIndex() {
         return lastIndex;
@@ -1315,7 +1314,9 @@
      * @param index visual index of the file to be edited
      */
     private void editFileName(int index) {
-        File currentDirectory = getFileChooser().getCurrentDirectory();
+        JFileChooser chooser = getFileChooser();
+        File currentDirectory = chooser.getCurrentDirectory();
+
         if (readOnly || !canWrite(currentDirectory)) {
             return;
         }
@@ -1332,9 +1333,15 @@
                 editCell.setNextFocusableComponent(list);
             }
             list.add(editCell);
-            editCell.setText(getFileChooser().getName(editFile));
+            editCell.setText(chooser.getName(editFile));
             ComponentOrientation orientation = list.getComponentOrientation();
             editCell.setComponentOrientation(orientation);
+
+            Icon icon = chooser.getIcon(editFile);
+
+            // PENDING - grab padding (4) below from defaults table.
+            int editX = icon == null ? 20 : icon.getIconWidth() + 4;
+
             if (orientation.isLeftToRight()) {
                 editCell.setBounds(editX + r.x, r.y, r.width - editX, r.height);
             } else {
@@ -1458,11 +1465,6 @@
             Icon icon = getFileChooser().getIcon(file);
             if (icon != null) {
                 setIcon(icon);
-
-                if (isSelected) {
-                    // PENDING - grab padding (4) below from defaults table.
-                    editX = icon.getIconWidth() + 4;
-                }
             } else {
                 if (getFileChooser().getFileSystemView().isTraversable(file)) {
                     setText(fileName+File.separator);
--- a/src/share/classes/sun/swing/WindowsPlacesBar.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/sun/swing/WindowsPlacesBar.java	Fri May 16 12:25:57 2008 -0700
@@ -93,11 +93,18 @@
             if (index >= 0 && index < folderName.length() - 1) {
                 folderName = folderName.substring(index + 1);
             }
-            Icon icon = null;
+            Icon icon;
             if (files[i] instanceof ShellFolder) {
                 // We want a large icon, fsv only gives us a small.
                 ShellFolder sf = (ShellFolder)files[i];
-                icon = new ImageIcon(sf.getIcon(true), sf.getFolderType());
+                Image image = sf.getIcon(true);
+
+                if (image == null) {
+                    // Get default image
+                    image = (Image) ShellFolder.get("shell32LargeIcon 1");
+                }
+
+                icon = image == null ? null : new ImageIcon(image, sf.getFolderType());
             } else {
                 icon = fsv.getSystemIcon(files[i]);
             }
--- a/src/share/classes/sun/text/normalizer/VersionInfo.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/share/classes/sun/text/normalizer/VersionInfo.java	Fri May 16 12:25:57 2008 -0700
@@ -116,7 +116,7 @@
             throw new IllegalArgumentException(INVALID_VERSION_NUMBER_);
         }
         int     version = getInt(major, minor, milli, micro);
-        Integer key     = new Integer(version);
+        Integer key     = Integer.valueOf(version);
         Object  result  = MAP_.get(key);
         if (result == null) {
             result = new VersionInfo(version);
--- a/src/solaris/classes/sun/awt/X11/MWMConstants.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/solaris/classes/sun/awt/X11/MWMConstants.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2003 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,9 @@
 
 package sun.awt.X11;
 
-public interface MWMConstants {
+final public class MWMConstants {
+
+    private MWMConstants(){}
 
 /* bit definitions for MwmHints.flags */
     static final int MWM_HINTS_FUNCTIONS=       (1  << 0);
--- a/src/solaris/classes/sun/awt/X11/MotifDnDConstants.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/solaris/classes/sun/awt/X11/MotifDnDConstants.java	Fri May 16 12:25:57 2008 -0700
@@ -118,11 +118,11 @@
                                                             XA_MOTIF_DRAG_WINDOW,
                                                             0, 1,
                                                             false,
-                                                            XlibWrapper.AnyPropertyType);
+                                                            XConstants.AnyPropertyType);
         try {
             int status = wpg.execute(XToolkit.IgnoreBadWindowHandler);
 
-            if (status == XlibWrapper.Success &&
+            if (status == XConstants.Success &&
                 wpg.getData() != 0 &&
                 wpg.getActualType() == XAtom.XA_WINDOW &&
                 wpg.getActualFormat() == 32 &&
@@ -163,20 +163,20 @@
         XlibWrapper.XGrabServer(newDisplay);
 
         try {
-            XlibWrapper.XSetCloseDownMode(newDisplay, (int)XlibWrapper.RetainPermanent);
+            XlibWrapper.XSetCloseDownMode(newDisplay, (int)XConstants.RetainPermanent);
 
             XSetWindowAttributes xwa = new XSetWindowAttributes();
 
             try {
                 xwa.set_override_redirect(true);
-                xwa.set_event_mask(XlibWrapper.PropertyChangeMask);
+                xwa.set_event_mask(XConstants.PropertyChangeMask);
 
                 motifWindow = XlibWrapper.XCreateWindow(newDisplay, defaultRootWindow,
                                                         -10, -10, 1, 1, 0, 0,
-                                                        XlibWrapper.InputOnly,
-                                                        XlibWrapper.CopyFromParent,
-                                                        (XlibWrapper.CWOverrideRedirect |
-                                                         XlibWrapper.CWEventMask),
+                                                        XConstants.InputOnly,
+                                                        XConstants.CopyFromParent,
+                                                        (XConstants.CWOverrideRedirect |
+                                                         XConstants.CWEventMask),
                                                         xwa.pData);
 
                 if (motifWindow == 0) {
@@ -195,13 +195,13 @@
                                                 defaultRootWindow,
                                                 XA_MOTIF_DRAG_WINDOW.getAtom(),
                                                 XAtom.XA_WINDOW, 32,
-                                                XlibWrapper.PropModeReplace,
+                                                XConstants.PropModeReplace,
                                                 data, 1);
 
                     XToolkit.RESTORE_XERROR_HANDLER();
 
                     if (XToolkit.saved_error != null &&
-                        XToolkit.saved_error.get_error_code() != XlibWrapper.Success) {
+                        XToolkit.saved_error.get_error_code() != XConstants.Success) {
                         throw new XException("Cannot write motif drag window handle.");
                     }
 
@@ -282,7 +282,7 @@
         try {
             int status = wpg.execute(XToolkit.IgnoreBadWindowHandler);
 
-            if (status != XlibWrapper.Success
+            if (status != XConstants.Success
                 || wpg.getActualType() != XA_MOTIF_DRAG_TARGETS.getAtom()
                 || wpg.getData() == 0) {
 
@@ -399,13 +399,13 @@
                                         motifWindow,
                                         XA_MOTIF_DRAG_TARGETS.getAtom(),
                                         XA_MOTIF_DRAG_TARGETS.getAtom(), 8,
-                                        XlibWrapper.PropModeReplace,
+                                        XConstants.PropModeReplace,
                                         data, tableSize);
 
             XToolkit.RESTORE_XERROR_HANDLER();
 
             if (XToolkit.saved_error != null &&
-                XToolkit.saved_error.get_error_code() != XlibWrapper.Success) {
+                XToolkit.saved_error.get_error_code() != XConstants.Success) {
 
                 // Create a new motif window and retry.
                 motifWindow = createMotifWindow();
@@ -415,13 +415,13 @@
                                             motifWindow,
                                             XA_MOTIF_DRAG_TARGETS.getAtom(),
                                             XA_MOTIF_DRAG_TARGETS.getAtom(), 8,
-                                            XlibWrapper.PropModeReplace,
+                                            XConstants.PropModeReplace,
                                             data, tableSize);
 
                 XToolkit.RESTORE_XERROR_HANDLER();
 
                 if (XToolkit.saved_error != null &&
-                    XToolkit.saved_error.get_error_code() != XlibWrapper.Success) {
+                    XToolkit.saved_error.get_error_code() != XConstants.Success) {
                     throw new XException("Cannot write motif drag targets property.");
                 }
             }
@@ -538,12 +538,12 @@
             XlibWrapper.XChangeProperty(XToolkit.getDisplay(), window,
                                         XA_MOTIF_ATOM_0.getAtom(),
                                         XA_MOTIF_DRAG_INITIATOR_INFO.getAtom(),
-                                        8, XlibWrapper.PropModeReplace,
+                                        8, XConstants.PropModeReplace,
                                         structData, MOTIF_INITIATOR_INFO_SIZE);
             XToolkit.RESTORE_XERROR_HANDLER();
 
             if (XToolkit.saved_error != null &&
-                XToolkit.saved_error.get_error_code() != XlibWrapper.Success) {
+                XToolkit.saved_error.get_error_code() != XConstants.Success) {
                 throw new XException("Cannot write drag initiator info");
             }
         } finally {
@@ -571,12 +571,12 @@
             XlibWrapper.XChangeProperty(XToolkit.getDisplay(), window,
                                         XA_MOTIF_DRAG_RECEIVER_INFO.getAtom(),
                                         XA_MOTIF_DRAG_RECEIVER_INFO.getAtom(),
-                                        8, XlibWrapper.PropModeReplace,
+                                        8, XConstants.PropModeReplace,
                                         data, dataSize);
             XToolkit.RESTORE_XERROR_HANDLER();
 
             if (XToolkit.saved_error != null &&
-                XToolkit.saved_error.get_error_code() != XlibWrapper.Success) {
+                XToolkit.saved_error.get_error_code() != XConstants.Success) {
                 throw new XException("Cannot write Motif receiver info property");
             }
         } finally {
--- a/src/solaris/classes/sun/awt/X11/MotifDnDDragSourceProtocol.java	Mon May 12 18:06:23 2008 -0700
+++ b/src/solaris/classes/sun/awt/X11/MotifDnDDragSourceProtocol.java	Fri May 16 12:25:57 2008 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2003-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -44,7 +44,7 @@
 
     private static final Unsafe unsafe = XlibWrapper.unsafe;
 
-    private long targetEnterServerTime = XlibWrapper.CurrentTime;
+    private long targetEnterServerTime = XConstants.CurrentTime;
 
     protected MotifDnDDragSourceProtocol(XDragSourceProtocolListener listener) {
         super(listener);
@@ -86,7 +86,7 @@
 
         if (!MotifDnDConstants.MotifDnDSelection.setOwner(contents, formatMap,
                                                           formats,
-                                                          XlibWrapper.CurrentTime)) {
+                                                          XConstants.CurrentTime)) {
             cleanup();
             throw new InvalidDnDOperationException("Cannot acquire selection ownership");
         }
@@ -137,7 +137,7 @@
         long time = t;
 
         /* Discard events from the previous receiver. */
-        if (targetEnterServerTime == XlibWrapper.CurrentTime ||
+        if (targetEnterServerTime == XConstants.CurrentTime ||
             time < targetEnterServerTime) {
             return true;
         }
@@ -181,7 +181,7 @@
             new WindowPropertyGetter(window,
                                      MotifDnDConstants.XA_MOTIF_DRAG_RECEIVER_INFO,
                                      0, 0xFFFF, false,
-                                     XlibWrapper.AnyPropertyType);
+                                     XConstants.AnyPropertyType);
 
         try {
             int status = wpg.execute(XToolkit.IgnoreBadWindowHandler);
@@ -200,7 +200,7 @@
              *     CARD32       heap_offset B32;
              * } xmDragReceiverInfoStruct;
              */
-            if (status == (int)XlibWrapper.Success && wpg.getData() != 0 &&
+            if (status == (int)XConstants.Success && wpg.getData() != 0 &&
                 wpg.getActualType() != 0 && wpg.getActualFormat() == 8 &&
                 wpg.getNumberOfItems() >