# HG changeset patch # User lana # Date 1381769556 25200 # Node ID c142f19c71813667a91da8b6687a2907cfc83be3 # Parent 5b63cde6a6a1ac646a658372e200d247bbe44c92# Parent c0864e216d36ee931c765a0a055e122a705b217e Merge diff -r c0864e216d36 -r c142f19c7181 jdk/makefiles/CompileJavaClasses.gmk diff -r c0864e216d36 -r c142f19c7181 jdk/makefiles/CreateJars.gmk --- a/jdk/makefiles/CreateJars.gmk Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/makefiles/CreateJars.gmk Mon Oct 14 09:52:36 2013 -0700 @@ -983,8 +983,6 @@ JARINDEX:=true)) endif -########################################################################################## - # This file is imported from hotspot in Import.gmk. Copying it into images/lib so that # all jars can be found in one place when creating images in Images.gmk. It needs to be # done here so that clean targets can be simple and accurate. diff -r c0864e216d36 -r c142f19c7181 jdk/src/macosx/classes/apple/applescript/AppleScriptEngine.java --- a/jdk/src/macosx/classes/apple/applescript/AppleScriptEngine.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/macosx/classes/apple/applescript/AppleScriptEngine.java Mon Oct 14 09:52:36 2013 -0700 @@ -155,7 +155,7 @@ TRACE("init()"); // set up our context /* TODO -- name of current executable? bad java documentation at: - * http://java.sun.com/javase/6/docs/api/javax/script/ScriptEngine.html#FILENAME */ + * http://docs.oracle.com/javase/6/docs/api/javax/script/ScriptEngine.html#FILENAME */ put(ScriptEngine.FILENAME, ""); put(ScriptEngine.ENGINE, getEngine()); put(ScriptEngine.ENGINE_VERSION, getEngineVersion()); diff -r c0864e216d36 -r c142f19c7181 jdk/src/macosx/classes/com/apple/eawt/_AppEventLegacyHandler.java --- a/jdk/src/macosx/classes/com/apple/eawt/_AppEventLegacyHandler.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/macosx/classes/com/apple/eawt/_AppEventLegacyHandler.java Mon Oct 14 09:52:36 2013 -0700 @@ -31,10 +31,6 @@ import com.apple.eawt.AppEvent.*; -interface _OpenAppHandler { - void handleOpenApp(); -} - @SuppressWarnings("deprecation") class _AppEventLegacyHandler implements AboutHandler, PreferencesHandler, _OpenAppHandler, AppReOpenedListener, OpenFilesHandler, PrintFilesHandler, QuitHandler { final _AppEventHandler parent; diff -r c0864e216d36 -r c142f19c7181 jdk/src/macosx/classes/com/apple/eawt/_OpenAppHandler.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/src/macosx/classes/com/apple/eawt/_OpenAppHandler.java Mon Oct 14 09:52:36 2013 -0700 @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package com.apple.eawt; + +interface _OpenAppHandler { + void handleOpenApp(); +} \ No newline at end of file diff -r c0864e216d36 -r c142f19c7181 jdk/src/macosx/classes/com/apple/laf/AquaComboBoxRenderer.java --- a/jdk/src/macosx/classes/com/apple/laf/AquaComboBoxRenderer.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/macosx/classes/com/apple/laf/AquaComboBoxRenderer.java Mon Oct 14 09:52:36 2013 -0700 @@ -25,141 +25,11 @@ package com.apple.laf; -import java.awt.*; - import javax.swing.*; import javax.swing.plaf.UIResource; -import sun.swing.SwingUtilities2; - class AquaComboBoxRenderer extends AquaComboBoxRendererInternal implements UIResource { public AquaComboBoxRenderer(final JComboBox comboBox) { super(comboBox); } } - -class AquaComboBoxRendererInternal extends JLabel implements ListCellRenderer { - final JComboBox fComboBox; - boolean fSelected; - boolean fChecked; - boolean fInList; - boolean fEditable; - boolean fDrawCheckedItem = true; - - // Provides space for a checkbox, and is translucent - public AquaComboBoxRendererInternal(final JComboBox comboBox) { - super(); - fComboBox = comboBox; - } - - // Don't include checkIcon space, because this is also used for button size calculations - // - the popup-size calc will get checkIcon space from getInsets - public Dimension getPreferredSize() { - // From BasicComboBoxRenderer - trick to avoid zero-height items - final Dimension size; - - final String text = getText(); - if ((text == null) || ("".equals(text))) { - setText(" "); - size = super.getPreferredSize(); - setText(""); - } else { - size = super.getPreferredSize(); - } - return size; - } - - // Don't paint the border here, it gets painted by the UI - protected void paintBorder(final Graphics g) { - - } - - public int getBaseline(int width, int height) { - return super.getBaseline(width, height) - 1; - } - - // Really means is the one with the mouse over it - public Component getListCellRendererComponent(final JList list, final Object value, int index, final boolean isSelected, final boolean cellHasFocus) { - fInList = (index >= 0); // When the button wants the item painted, it passes in -1 - fSelected = isSelected; - if (index < 0) { - index = fComboBox.getSelectedIndex(); - } - - // changed this to not ask for selected index but directly compare the current item and selected item - // different from basic because basic has no concept of checked, just has the last one selected, - // and the user changes selection. We have selection and a check mark. - // we used to call fComboBox.getSelectedIndex which ends up being a very bad call for large checkboxes - // it does a linear compare of every object in the checkbox until it finds the selected one, so if - // we have a 5000 element list we will 5000 * (selected index) .equals() of objects. - // See Radar #3141307 - - // Fix for Radar # 3204287 where we ask for an item at a negative index! - if (index >= 0) { - final Object item = fComboBox.getItemAt(index); - fChecked = fInList && item != null && item.equals(fComboBox.getSelectedItem()); - } else { - fChecked = false; - } - - fEditable = fComboBox.isEditable(); - if (isSelected) { - if (fEditable) { - setBackground(UIManager.getColor("List.selectionBackground")); - setForeground(UIManager.getColor("List.selectionForeground")); - } else { - setBackground(list.getSelectionBackground()); - setForeground(list.getSelectionForeground()); - } - } else { - if (fEditable) { - setBackground(UIManager.getColor("List.background")); - setForeground(UIManager.getColor("List.foreground")); - } else { - setBackground(list.getBackground()); - setForeground(list.getForeground()); - } - } - - setFont(list.getFont()); - - if (value instanceof Icon) { - setIcon((Icon)value); - } else { - setText((value == null) ? " " : value.toString()); - } - return this; - } - - public Insets getInsets(Insets insets) { - if (insets == null) insets = new Insets(0, 0, 0, 0); - insets.top = 1; - insets.bottom = 1; - insets.right = 5; - insets.left = (fInList && !fEditable ? 16 + 7 : 5); - return insets; - } - - protected void setDrawCheckedItem(final boolean drawCheckedItem) { - this.fDrawCheckedItem = drawCheckedItem; - } - - // Paint this component, and a checkbox if it's the selected item and not in the button - protected void paintComponent(final Graphics g) { - if (fInList) { - if (fSelected && !fEditable) { - AquaMenuPainter.instance().paintSelectedMenuItemBackground(g, getWidth(), getHeight()); - } else { - g.setColor(getBackground()); - g.fillRect(0, 0, getWidth(), getHeight()); - } - - if (fChecked && !fEditable && fDrawCheckedItem) { - final int y = getHeight() - 4; - g.setColor(getForeground()); - SwingUtilities2.drawString(fComboBox, g, "\u2713", 6, y); - } - } - super.paintComponent(g); - } -} diff -r c0864e216d36 -r c142f19c7181 jdk/src/macosx/classes/com/apple/laf/AquaComboBoxRendererInternal.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/src/macosx/classes/com/apple/laf/AquaComboBoxRendererInternal.java Mon Oct 14 09:52:36 2013 -0700 @@ -0,0 +1,157 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package com.apple.laf; + +import sun.swing.SwingUtilities2; + +import javax.swing.*; +import java.awt.*; + +class AquaComboBoxRendererInternal extends JLabel implements ListCellRenderer { + final JComboBox fComboBox; + boolean fSelected; + boolean fChecked; + boolean fInList; + boolean fEditable; + boolean fDrawCheckedItem = true; + + // Provides space for a checkbox, and is translucent + public AquaComboBoxRendererInternal(final JComboBox comboBox) { + super(); + fComboBox = comboBox; + } + + // Don't include checkIcon space, because this is also used for button size calculations + // - the popup-size calc will get checkIcon space from getInsets + public Dimension getPreferredSize() { + // From BasicComboBoxRenderer - trick to avoid zero-height items + final Dimension size; + + final String text = getText(); + if ((text == null) || ("".equals(text))) { + setText(" "); + size = super.getPreferredSize(); + setText(""); + } else { + size = super.getPreferredSize(); + } + return size; + } + + // Don't paint the border here, it gets painted by the UI + protected void paintBorder(final Graphics g) { + + } + + public int getBaseline(int width, int height) { + return super.getBaseline(width, height) - 1; + } + + // Really means is the one with the mouse over it + public Component getListCellRendererComponent(final JList list, final Object value, int index, final boolean isSelected, final boolean cellHasFocus) { + fInList = (index >= 0); // When the button wants the item painted, it passes in -1 + fSelected = isSelected; + if (index < 0) { + index = fComboBox.getSelectedIndex(); + } + + // changed this to not ask for selected index but directly compare the current item and selected item + // different from basic because basic has no concept of checked, just has the last one selected, + // and the user changes selection. We have selection and a check mark. + // we used to call fComboBox.getSelectedIndex which ends up being a very bad call for large checkboxes + // it does a linear compare of every object in the checkbox until it finds the selected one, so if + // we have a 5000 element list we will 5000 * (selected index) .equals() of objects. + // See Radar #3141307 + + // Fix for Radar # 3204287 where we ask for an item at a negative index! + if (index >= 0) { + final Object item = fComboBox.getItemAt(index); + fChecked = fInList && item != null && item.equals(fComboBox.getSelectedItem()); + } else { + fChecked = false; + } + + fEditable = fComboBox.isEditable(); + if (isSelected) { + if (fEditable) { + setBackground(UIManager.getColor("List.selectionBackground")); + setForeground(UIManager.getColor("List.selectionForeground")); + } else { + setBackground(list.getSelectionBackground()); + setForeground(list.getSelectionForeground()); + } + } else { + if (fEditable) { + setBackground(UIManager.getColor("List.background")); + setForeground(UIManager.getColor("List.foreground")); + } else { + setBackground(list.getBackground()); + setForeground(list.getForeground()); + } + } + + setFont(list.getFont()); + + if (value instanceof Icon) { + setIcon((Icon)value); + } else { + setText((value == null) ? " " : value.toString()); + } + return this; + } + + public Insets getInsets(Insets insets) { + if (insets == null) insets = new Insets(0, 0, 0, 0); + insets.top = 1; + insets.bottom = 1; + insets.right = 5; + insets.left = (fInList && !fEditable ? 16 + 7 : 5); + return insets; + } + + protected void setDrawCheckedItem(final boolean drawCheckedItem) { + this.fDrawCheckedItem = drawCheckedItem; + } + + // Paint this component, and a checkbox if it's the selected item and not in the button + protected void paintComponent(final Graphics g) { + if (fInList) { + if (fSelected && !fEditable) { + AquaMenuPainter.instance().paintSelectedMenuItemBackground(g, getWidth(), getHeight()); + } else { + g.setColor(getBackground()); + g.fillRect(0, 0, getWidth(), getHeight()); + } + + if (fChecked && !fEditable && fDrawCheckedItem) { + final int y = getHeight() - 4; + g.setColor(getForeground()); + SwingUtilities2.drawString(fComboBox, g, "\u2713", 6, y); + } + } + super.paintComponent(g); + } +} diff -r c0864e216d36 -r c142f19c7181 jdk/src/macosx/classes/com/apple/laf/AquaComboBoxUI.java --- a/jdk/src/macosx/classes/com/apple/laf/AquaComboBoxUI.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/macosx/classes/com/apple/laf/AquaComboBoxUI.java Mon Oct 14 09:52:36 2013 -0700 @@ -281,12 +281,16 @@ actionMap.put("aquaSelectPageUp", highlightPageUpAction); actionMap.put("aquaSelectPageDown", highlightPageDownAction); + actionMap.put("aquaHidePopup", hideAction); + SwingUtilities.replaceUIActionMap(comboBox, actionMap); } - abstract class ComboBoxAction extends AbstractAction { + private abstract class ComboBoxAction extends AbstractAction { public void actionPerformed(final ActionEvent e) { - if (!comboBox.isEnabled() || !comboBox.isShowing()) return; + if (!comboBox.isEnabled() || !comboBox.isShowing()) { + return; + } if (comboBox.isPopupVisible()) { final AquaComboBoxUI ui = (AquaComboBoxUI)comboBox.getUI(); @@ -302,7 +306,7 @@ /** * Hilight _but do not select_ the next item in the list. */ - Action highlightNextAction = new ComboBoxAction() { + private Action highlightNextAction = new ComboBoxAction() { @Override public void performComboBoxAction(AquaComboBoxUI ui) { final int si = listBox.getSelectedIndex(); @@ -318,7 +322,7 @@ /** * Hilight _but do not select_ the previous item in the list. */ - Action highlightPreviousAction = new ComboBoxAction() { + private Action highlightPreviousAction = new ComboBoxAction() { @Override void performComboBoxAction(final AquaComboBoxUI ui) { final int si = listBox.getSelectedIndex(); @@ -330,7 +334,7 @@ } }; - Action highlightFirstAction = new ComboBoxAction() { + private Action highlightFirstAction = new ComboBoxAction() { @Override void performComboBoxAction(final AquaComboBoxUI ui) { listBox.setSelectedIndex(0); @@ -338,7 +342,7 @@ } }; - Action highlightLastAction = new ComboBoxAction() { + private Action highlightLastAction = new ComboBoxAction() { @Override void performComboBoxAction(final AquaComboBoxUI ui) { final int size = listBox.getModel().getSize(); @@ -347,7 +351,7 @@ } }; - Action highlightPageUpAction = new ComboBoxAction() { + private Action highlightPageUpAction = new ComboBoxAction() { @Override void performComboBoxAction(final AquaComboBoxUI ui) { final int current = listBox.getSelectedIndex(); @@ -367,7 +371,7 @@ } }; - Action highlightPageDownAction = new ComboBoxAction() { + private Action highlightPageDownAction = new ComboBoxAction() { @Override void performComboBoxAction(final AquaComboBoxUI ui) { final int current = listBox.getSelectedIndex(); @@ -482,13 +486,13 @@ // This is somewhat messy. The difference here from BasicComboBoxUI.EnterAction is that // arrow up or down does not automatically select the - static final Action triggerSelectionAction = new AbstractAction() { + private static final Action triggerSelectionAction = new AbstractAction() { public void actionPerformed(final ActionEvent e) { triggerSelectionEvent((JComboBox)e.getSource(), e); } }; - static final Action toggleSelectionAction = new AbstractAction() { + private static final Action toggleSelectionAction = new AbstractAction() { public void actionPerformed(final ActionEvent e) { final JComboBox comboBox = (JComboBox)e.getSource(); if (!comboBox.isEnabled()) return; @@ -506,6 +510,18 @@ } }; + private static Action hideAction = new AbstractAction() { + @Override + public void actionPerformed(final ActionEvent e) { + final JComboBox comboBox = (JComboBox)e.getSource(); + + if (comboBox.isPopupVisible()) { + comboBox.firePopupMenuCanceled(); + comboBox.setPopupVisible(false); + } + } + }; + public void applySizeFor(final JComponent c, final Size size) { if (arrowButton == null) return; final Border border = arrowButton.getBorder(); diff -r c0864e216d36 -r c142f19c7181 jdk/src/macosx/classes/com/apple/laf/AquaKeyBindings.java --- a/jdk/src/macosx/classes/com/apple/laf/AquaKeyBindings.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/macosx/classes/com/apple/laf/AquaKeyBindings.java Mon Oct 14 09:52:36 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -209,7 +209,7 @@ LateBoundInputMap getComboBoxInputMap() { return new LateBoundInputMap(new SimpleBinding(new String[] { - "ESCAPE", "hidePopup", + "ESCAPE", "aquaHidePopup", "PAGE_UP", "aquaSelectPageUp", "PAGE_DOWN", "aquaSelectPageDown", "HOME", "aquaSelectHome", diff -r c0864e216d36 -r c142f19c7181 jdk/src/macosx/classes/com/apple/laf/AquaMenuBarUI.java --- a/jdk/src/macosx/classes/com/apple/laf/AquaMenuBarUI.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/macosx/classes/com/apple/laf/AquaMenuBarUI.java Mon Oct 14 09:52:36 2013 -0700 @@ -73,8 +73,9 @@ public Dimension getPreferredSize(final JComponent c) { if (isScreenMenuBar((JMenuBar)c)) { - if (setScreenMenuBar((JFrame)(c.getTopLevelAncestor()))) ; - return new Dimension(0, 0); + if (setScreenMenuBar((JFrame)(c.getTopLevelAncestor()))) { + return new Dimension(0, 0); + } } return null; } diff -r c0864e216d36 -r c142f19c7181 jdk/src/macosx/classes/sun/awt/CGraphicsEnvironment.java --- a/jdk/src/macosx/classes/sun/awt/CGraphicsEnvironment.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/macosx/classes/sun/awt/CGraphicsEnvironment.java Mon Oct 14 09:52:36 2013 -0700 @@ -181,6 +181,9 @@ initDevices(); d = devices.get(mainDisplayID); + if (d == null) { + throw new AWTError("no screen devices"); + } } return d; } diff -r c0864e216d36 -r c142f19c7181 jdk/src/macosx/classes/sun/lwawt/LWComponentPeer.java --- a/jdk/src/macosx/classes/sun/lwawt/LWComponentPeer.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/macosx/classes/sun/lwawt/LWComponentPeer.java Mon Oct 14 09:52:36 2013 -0700 @@ -385,11 +385,6 @@ // ---- PEER METHODS ---- // - @Override - public Toolkit getToolkit() { - return LWToolkit.getLWToolkit(); - } - // Just a helper method public LWToolkit getLWToolkit() { return LWToolkit.getLWToolkit(); @@ -1010,13 +1005,13 @@ @Override public boolean prepareImage(Image img, int w, int h, ImageObserver o) { // TODO: is it a right/complete implementation? - return getToolkit().prepareImage(img, w, h, o); + return Toolkit.getDefaultToolkit().prepareImage(img, w, h, o); } @Override public int checkImage(Image img, int w, int h, ImageObserver o) { // TODO: is it a right/complete implementation? - return getToolkit().checkImage(img, w, h, o); + return Toolkit.getDefaultToolkit().checkImage(img, w, h, o); } @Override diff -r c0864e216d36 -r c142f19c7181 jdk/src/macosx/classes/sun/lwawt/LWTextComponentPeer.java --- a/jdk/src/macosx/classes/sun/lwawt/LWTextComponentPeer.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/macosx/classes/sun/lwawt/LWTextComponentPeer.java Mon Oct 14 09:52:36 2013 -0700 @@ -71,13 +71,14 @@ } setEditable(getTarget().isEditable()); setText(getTarget().getText()); + setCaretPosition(getTarget().getCaretPosition()); getTarget().addInputMethodListener(this); final int start = getTarget().getSelectionStart(); final int end = getTarget().getSelectionEnd(); if (end > start) { + // Should be called after setText() and setCaretPosition() select(start, end); } - setCaretPosition(getTarget().getCaretPosition()); firstChangeSkipped = true; } @@ -122,7 +123,7 @@ } @Override - public final void setText(final String l) { + public final void setText(final String text) { synchronized (getDelegateLock()) { // JTextArea.setText() posts two different events (remove & insert). // Since we make no differences between text events, @@ -130,7 +131,7 @@ // JTextArea.setText() is called. final Document document = getTextComponent().getDocument(); document.removeDocumentListener(this); - getTextComponent().setText(l); + getTextComponent().setText(text); revalidate(); if (firstChangeSkipped) { postEvent(new TextEvent(getTarget(), diff -r c0864e216d36 -r c142f19c7181 jdk/src/macosx/classes/sun/lwawt/LWWindowPeer.java --- a/jdk/src/macosx/classes/sun/lwawt/LWWindowPeer.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/macosx/classes/sun/lwawt/LWWindowPeer.java Mon Oct 14 09:52:36 2013 -0700 @@ -317,9 +317,25 @@ op |= SET_SIZE; } + // Don't post ComponentMoved/Resized and Paint events + // until we've got a notification from the delegate + Rectangle cb = constrainBounds(x, y, w, h); + setBounds(cb.x, cb.y, cb.width, cb.height, op, false, false); + // Get updated bounds, so we don't have to handle 'op' here manually + Rectangle r = getBounds(); + platformWindow.setBounds(r.x, r.y, r.width, r.height); + } + + public Rectangle constrainBounds(Rectangle bounds) { + return constrainBounds(bounds.x, bounds.y, bounds.width, bounds.height); + } + + public Rectangle constrainBounds(int x, int y, int w, int h) { + if (w < MINIMUM_WIDTH) { w = MINIMUM_WIDTH; } + if (h < MINIMUM_HEIGHT) { h = MINIMUM_HEIGHT; } @@ -334,12 +350,7 @@ h = maxH; } - // Don't post ComponentMoved/Resized and Paint events - // until we've got a notification from the delegate - setBounds(x, y, w, h, op, false, false); - // Get updated bounds, so we don't have to handle 'op' here manually - Rectangle r = getBounds(); - platformWindow.setBounds(r.x, r.y, r.width, r.height); + return new Rectangle(x, y, w, h); } @Override @@ -393,8 +404,12 @@ @Override public void setModalBlocked(Dialog blocker, boolean blocked) { synchronized (getPeerTreeLock()) { - this.blocker = !blocked ? null : - (LWWindowPeer) AWTAccessor.getComponentAccessor().getPeer(blocker); + ComponentPeer peer = AWTAccessor.getComponentAccessor().getPeer(blocker); + if (blocked && (peer instanceof LWWindowPeer)) { + this.blocker = (LWWindowPeer) peer; + } else { + this.blocker = null; + } } platformWindow.setModalBlocked(blocked); @@ -1146,8 +1161,11 @@ return false; } - Window currentActive = KeyboardFocusManager. - getCurrentKeyboardFocusManager().getActiveWindow(); + AppContext targetAppContext = AWTAccessor.getComponentAccessor().getAppContext(getTarget()); + KeyboardFocusManager kfm = AWTAccessor.getKeyboardFocusManagerAccessor() + .getCurrentKeyboardFocusManager(targetAppContext); + Window currentActive = kfm.getActiveWindow(); + Window opposite = LWKeyboardFocusManagerPeer.getInstance(). getCurrentFocusedWindow(); diff -r c0864e216d36 -r c142f19c7181 jdk/src/macosx/classes/sun/lwawt/macosx/CDropTargetContextPeer.java --- a/jdk/src/macosx/classes/sun/lwawt/macosx/CDropTargetContextPeer.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/macosx/classes/sun/lwawt/macosx/CDropTargetContextPeer.java Mon Oct 14 09:52:36 2013 -0700 @@ -26,6 +26,7 @@ package sun.lwawt.macosx; import java.awt.*; +import java.awt.dnd.DropTarget; import sun.awt.dnd.SunDropTargetContextPeer; import sun.awt.dnd.SunDropTargetEvent; @@ -38,7 +39,7 @@ private long fNativeDropTransfer = 0; private long fNativeDataAvailable = 0; private Object fNativeData = null; - private boolean insideTarget = true; + private DropTarget insideTarget = null; Object awtLockAccess = new Object(); @@ -88,26 +89,19 @@ return fNativeData; } - // We need to take care of dragExit message because for some reason it is not being - // generated for lightweight components + // We need to take care of dragEnter and dragExit messages because + // native system generates them only for heavyweights @Override protected void processMotionMessage(SunDropTargetEvent event, boolean operationChanged) { - Component eventSource = (Component)event.getComponent(); - Point screenPoint = event.getPoint(); - SwingUtilities.convertPointToScreen(screenPoint, eventSource); - Rectangle screenBounds = new Rectangle(eventSource.getLocationOnScreen().x, - eventSource.getLocationOnScreen().y, - eventSource.getWidth(), eventSource.getHeight()); - if(insideTarget) { - if(!screenBounds.contains(screenPoint)) { + boolean eventInsideTarget = isEventInsideTarget(event); + if (event.getComponent().getDropTarget() == insideTarget) { + if (!eventInsideTarget) { processExitMessage(event); - insideTarget = false; return; } } else { - if(screenBounds.contains(screenPoint)) { + if (eventInsideTarget) { processEnterMessage(event); - insideTarget = true; } else { return; } @@ -115,17 +109,52 @@ super.processMotionMessage(event, operationChanged); } + /** + * Could be called when DnD enters a heavyweight or synthesized in processMotionMessage + */ + @Override + protected void processEnterMessage(SunDropTargetEvent event) { + Component c = event.getComponent(); + DropTarget dt = event.getComponent().getDropTarget(); + if (isEventInsideTarget(event) + && dt != insideTarget + && c.isShowing() + && dt != null + && dt.isActive()) { + insideTarget = dt; + super.processEnterMessage(event); + } + } + + /** + * Could be called when DnD exits a heavyweight or synthesized in processMotionMessage + */ + @Override + protected void processExitMessage(SunDropTargetEvent event) { + if (event.getComponent().getDropTarget() == insideTarget) { + insideTarget = null; + super.processExitMessage(event); + } + } + @Override protected void processDropMessage(SunDropTargetEvent event) { - Component eventSource = (Component)event.getComponent(); + if (isEventInsideTarget(event)) { + super.processDropMessage(event); + insideTarget = null; + } + } + + private boolean isEventInsideTarget(SunDropTargetEvent event) { + Component eventSource = event.getComponent(); Point screenPoint = event.getPoint(); SwingUtilities.convertPointToScreen(screenPoint, eventSource); - Rectangle screenBounds = new Rectangle(eventSource.getLocationOnScreen().x, - eventSource.getLocationOnScreen().y, - eventSource.getWidth(), eventSource.getHeight()); - if(screenBounds.contains(screenPoint)) { - super.processDropMessage(event); - } + Point locationOnScreen = eventSource.getLocationOnScreen(); + Rectangle screenBounds = new Rectangle(locationOnScreen.x, + locationOnScreen.y, + eventSource.getWidth(), + eventSource.getHeight()); + return screenBounds.contains(screenPoint); } @Override diff -r c0864e216d36 -r c142f19c7181 jdk/src/macosx/classes/sun/lwawt/macosx/CFileDialog.java --- a/jdk/src/macosx/classes/sun/lwawt/macosx/CFileDialog.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/macosx/classes/sun/lwawt/macosx/CFileDialog.java Mon Oct 14 09:52:36 2013 -0700 @@ -327,11 +327,6 @@ } @Override - public Toolkit getToolkit() { - return Toolkit.getDefaultToolkit(); - } - - @Override public void handleEvent(AWTEvent e) { } diff -r c0864e216d36 -r c142f19c7181 jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java --- a/jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java Mon Oct 14 09:52:36 2013 -0700 @@ -210,7 +210,6 @@ private boolean undecorated; // initialized in getInitialStyleBits() private Rectangle normalBounds = null; // not-null only for undecorated maximized windows private CPlatformResponder responder; - private volatile boolean zoomed = false; // from native perspective public CPlatformWindow() { super(0, true); @@ -231,7 +230,9 @@ contentView.initialize(peer, responder); final long ownerPtr = owner != null ? owner.getNSWindowPtr() : 0L; - final long nativeWindowPtr = nativeCreateNSWindow(contentView.getAWTView(), ownerPtr, styleBits, 0, 0, 0, 0); + Rectangle bounds = _peer.constrainBounds(_target.getBounds()); + final long nativeWindowPtr = nativeCreateNSWindow(contentView.getAWTView(), + ownerPtr, styleBits, bounds.x, bounds.y, bounds.width, bounds.height); setPtr(nativeWindowPtr); if (target instanceof javax.swing.RootPaneContainer) { @@ -466,7 +467,8 @@ } private boolean isMaximized() { - return undecorated ? this.normalBounds != null : zoomed; + return undecorated ? this.normalBounds != null + : CWrapper.NSWindow.isZoomed(getNSWindowPtr()); } private void maximize() { @@ -474,7 +476,6 @@ return; } if (!undecorated) { - zoomed = true; CWrapper.NSWindow.zoom(getNSWindowPtr()); } else { deliverZoom(true); @@ -496,7 +497,6 @@ return; } if (!undecorated) { - zoomed = false; CWrapper.NSWindow.zoom(getNSWindowPtr()); } else { deliverZoom(false); diff -r c0864e216d36 -r c142f19c7181 jdk/src/macosx/classes/sun/lwawt/macosx/CWrapper.java --- a/jdk/src/macosx/classes/sun/lwawt/macosx/CWrapper.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/macosx/classes/sun/lwawt/macosx/CWrapper.java Mon Oct 14 09:52:36 2013 -0700 @@ -68,6 +68,7 @@ public static native void miniaturize(long window); public static native void deminiaturize(long window); + public static native boolean isZoomed(long window); public static native void zoom(long window); public static native void makeFirstResponder(long window, long responder); diff -r c0864e216d36 -r c142f19c7181 jdk/src/macosx/lib/flavormap.properties --- a/jdk/src/macosx/lib/flavormap.properties Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/macosx/lib/flavormap.properties Mon Oct 14 09:52:36 2013 -0700 @@ -76,5 +76,6 @@ text/uri-list=application/x-java-file-list;class=java.util.List PNG=image/x-java-image;class=java.awt.Image JFIF=image/x-java-image;class=java.awt.Image +TIFF=image/x-java-image;class=java.awt.Image RICH_TEXT=text/rtf HTML=text/html;charset=utf-8;eoln="\r\n";terminators=1 diff -r c0864e216d36 -r c142f19c7181 jdk/src/macosx/native/sun/awt/AWTWindow.m --- a/jdk/src/macosx/native/sun/awt/AWTWindow.m Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/macosx/native/sun/awt/AWTWindow.m Mon Oct 14 09:52:36 2013 -0700 @@ -366,7 +366,7 @@ - (BOOL) canBecomeMainWindow { AWT_ASSERT_APPKIT_THREAD; - if(!self.isEnabled){ + if (!self.isEnabled) { // Native system can bring up the NSWindow to // the top even if the window is not main. // We should bring up the modal dialog manually @@ -377,7 +377,7 @@ if (platformWindow != NULL) { static JNF_MEMBER_CACHE(jm_checkBlockingAndOrder, jc_CPlatformWindow, "checkBlockingAndOrder", "()Z"); - JNFCallVoidMethod(env, platformWindow, jm_checkBlockingAndOrder); + JNFCallBooleanMethod(env, platformWindow, jm_checkBlockingAndOrder); (*env)->DeleteLocalRef(env, platformWindow); } } diff -r c0864e216d36 -r c142f19c7181 jdk/src/macosx/native/sun/awt/CDropTarget.m --- a/jdk/src/macosx/native/sun/awt/CDropTarget.m Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/macosx/native/sun/awt/CDropTarget.m Mon Oct 14 09:52:36 2013 -0700 @@ -477,6 +477,8 @@ sDraggingExited = FALSE; sDraggingLocation = [sender draggingLocation]; NSPoint javaLocation = [fView convertPoint:sDraggingLocation fromView:nil]; + javaLocation.y = fView.window.frame.size.height - javaLocation.y; + DLog5(@"+ dragEnter: loc native %f, %f, java %f, %f\n", sDraggingLocation.x, sDraggingLocation.y, javaLocation.x, javaLocation.y); ////////// BEGIN Calculate the current drag actions ////////// @@ -570,8 +572,7 @@ // Should we notify Java things have changed? if (sDraggingError == FALSE && notifyJava) { NSPoint javaLocation = [fView convertPoint:sDraggingLocation fromView:nil]; - // For some reason even after the convertPoint drag events come with the y coordinate reverted - javaLocation.y = fView.window.frame.size.height - javaLocation.y; + javaLocation.y = fView.window.frame.size.height - javaLocation.y; //DLog5(@" : dragMoved: loc native %f, %f, java %f, %f\n", sDraggingLocation.x, sDraggingLocation.y, javaLocation.x, javaLocation.y); jlongArray formats = sDraggingFormats; diff -r c0864e216d36 -r c142f19c7181 jdk/src/macosx/native/sun/awt/CFileDialog.m --- a/jdk/src/macosx/native/sun/awt/CFileDialog.m Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/macosx/native/sun/awt/CFileDialog.m Mon Oct 14 09:52:36 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -93,6 +93,14 @@ - (void)safeSaveOrLoad { NSSavePanel *thePanel = nil; + /* + * 8013553: turns off extension hiding for the native file dialog. + * This way is used because setExtensionHidden(NO) doesn't work + * as expected. + */ + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + [defaults setBool:NO forKey:@"NSNavLastUserSetHideExtensionButtonState"]; + if (fMode == java_awt_FileDialog_SAVE) { thePanel = [NSSavePanel savePanel]; [thePanel setAllowsOtherFileTypes:YES]; @@ -110,7 +118,7 @@ if (fMode == java_awt_FileDialog_LOAD) { NSOpenPanel *openPanel = (NSOpenPanel *)thePanel; [openPanel setAllowsMultipleSelection:fMultipleMode]; - [openPanel setCanChooseFiles:YES]; + [openPanel setCanChooseFiles:!fChooseDirectories]; [openPanel setCanChooseDirectories:fChooseDirectories]; [openPanel setCanCreateDirectories:YES]; } diff -r c0864e216d36 -r c142f19c7181 jdk/src/macosx/native/sun/awt/CWrapper.m --- a/jdk/src/macosx/native/sun/awt/CWrapper.m Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/macosx/native/sun/awt/CWrapper.m Mon Oct 14 09:52:36 2013 -0700 @@ -437,6 +437,29 @@ /* * Class: sun_lwawt_macosx_CWrapper$NSWindow + * Method: isZoomed + * Signature: (J)Z + */ +JNIEXPORT jboolean JNICALL +Java_sun_lwawt_macosx_CWrapper_00024NSWindow_isZoomed +(JNIEnv *env, jclass cls, jlong windowPtr) +{ + __block jboolean isZoomed = JNI_FALSE; + +JNF_COCOA_ENTER(env); + + NSWindow *window = (NSWindow *)jlong_to_ptr(windowPtr); + [ThreadUtilities performOnMainThreadWaiting:YES block:^(){ + isZoomed = [window isZoomed]; + }]; + +JNF_COCOA_EXIT(env); + + return isZoomed; +} + +/* + * Class: sun_lwawt_macosx_CWrapper$NSWindow * Method: zoom * Signature: (J)V */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/macosx/native/sun/awt/awt.m --- a/jdk/src/macosx/native/sun/awt/awt.m Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/macosx/native/sun/awt/awt.m Mon Oct 14 09:52:36 2013 -0700 @@ -227,7 +227,7 @@ id jrsAppKitAWTClass = objc_getClass("JRSAppKitAWT"); SEL markAppSel = @selector(markAppIsDaemon); if (![jrsAppKitAWTClass respondsToSelector:markAppSel]) return NO; - return (BOOL)[jrsAppKitAWTClass performSelector:markAppSel]; + return [jrsAppKitAWTClass performSelector:markAppSel] ? YES : NO; } + (void)appKitIsRunning:(id)arg { @@ -337,6 +337,8 @@ // Headless mode trumps either ordinary AWT or SWT-in-AWT mode. Declare us a daemon and return. if (headless) { + // Note that we don't install run loop observers in headless mode + // because we don't need them (see 7174704) if (!forceEmbeddedMode) { setUpAppKitThreadName(); } diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/com/sun/imageio/plugins/bmp/BMPCompressionTypes.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/src/share/classes/com/sun/imageio/plugins/bmp/BMPCompressionTypes.java Mon Oct 14 09:52:36 2013 -0700 @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package com.sun.imageio.plugins.bmp; + +public class BMPCompressionTypes { + + private static final String[] compressionTypeNames = + {"BI_RGB", "BI_RLE8", "BI_RLE4", "BI_BITFIELDS", "BI_JPEG", "BI_PNG"}; + + static int getType(String typeString) { + for (int i = 0; i < compressionTypeNames.length; i++) + if (compressionTypeNames[i].equals(typeString)) + return i; + return 0; + } + + static String getName(int type) { + return compressionTypeNames[type]; + } + + public static String[] getCompressionTypes() { + return compressionTypeNames.clone(); + } +} diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/com/sun/imageio/plugins/bmp/BMPConstants.java --- a/jdk/src/share/classes/com/sun/imageio/plugins/bmp/BMPConstants.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/com/sun/imageio/plugins/bmp/BMPConstants.java Mon Oct 14 09:52:36 2013 -0700 @@ -47,7 +47,4 @@ static final int BI_BITFIELDS = 3; static final int BI_JPEG = 4; static final int BI_PNG = 5; - - static final String[] compressionTypeNames = - {"BI_RGB", "BI_RLE8", "BI_RLE4", "BI_BITFIELDS", "BI_JPEG", "BI_PNG"}; } diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/com/sun/imageio/plugins/bmp/BMPImageWriter.java --- a/jdk/src/share/classes/com/sun/imageio/plugins/bmp/BMPImageWriter.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/com/sun/imageio/plugins/bmp/BMPImageWriter.java Mon Oct 14 09:52:36 2013 -0700 @@ -25,7 +25,6 @@ package com.sun.imageio.plugins.bmp; -import java.awt.Point; import java.awt.Rectangle; import java.awt.image.ColorModel; import java.awt.image.ComponentSampleModel; @@ -42,7 +41,6 @@ import java.awt.image.RenderedImage; import java.awt.image.SampleModel; import java.awt.image.SinglePixelPackedSampleModel; -import java.awt.image.WritableRaster; import java.awt.image.BufferedImage; import java.io.IOException; @@ -51,22 +49,16 @@ import java.util.Iterator; import javax.imageio.IIOImage; -import javax.imageio.IIOException; import javax.imageio.ImageIO; import javax.imageio.ImageTypeSpecifier; import javax.imageio.ImageWriteParam; import javax.imageio.ImageWriter; import javax.imageio.metadata.IIOMetadata; -import javax.imageio.metadata.IIOMetadataNode; -import javax.imageio.metadata.IIOMetadataFormatImpl; -import javax.imageio.metadata.IIOInvalidTreeException; import javax.imageio.spi.ImageWriterSpi; import javax.imageio.stream.ImageOutputStream; import javax.imageio.event.IIOWriteProgressListener; import javax.imageio.event.IIOWriteWarningListener; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; import javax.imageio.plugins.bmp.BMPImageWriteParam; import com.sun.imageio.plugins.common.ImageUtil; @@ -129,7 +121,7 @@ meta.compression = getPreferredCompressionType(imageType); if (param != null && param.getCompressionMode() == ImageWriteParam.MODE_EXPLICIT) { - meta.compression = getCompressionType(param.getCompressionType()); + meta.compression = BMPCompressionTypes.getType(param.getCompressionType()); } meta.bitsPerPixel = (short)imageType.getColorModel().getPixelSize(); return meta; @@ -308,7 +300,7 @@ switch(bmpParam.getCompressionMode()) { case ImageWriteParam.MODE_EXPLICIT: - compressionType = getCompressionType(bmpParam.getCompressionType()); + compressionType = BMPCompressionTypes.getType(bmpParam.getCompressionType()); break; case ImageWriteParam.MODE_COPY_FROM_METADATA: compressionType = bmpImageMetadata.compression; @@ -323,12 +315,12 @@ if (!canEncodeImage(compressionType, colorModel, sampleModel)) { throw new IOException("Image can not be encoded with compression type " - + compressionTypeNames[compressionType]); + + BMPCompressionTypes.getName(compressionType)); } byte r[] = null, g[] = null, b[] = null, a[] = null; - if (compressionType == BMPConstants.BI_BITFIELDS) { + if (compressionType == BI_BITFIELDS) { bitsPerPixel = DataBuffer.getDataTypeSize(sampleModel.getDataType()); @@ -372,7 +364,7 @@ // an exception related to unsupported image format throw new IOException("Image can not be encoded with " + "compression type " + - compressionTypeNames[compressionType]); + BMPCompressionTypes.getName(compressionType)); } } writeMaskToPalette(rmask, 0, r, g, b, a); @@ -511,8 +503,8 @@ * Images with any other compression type must be wrote in the * bottom-up layout. */ - if (compressionType == BMPConstants.BI_RGB || - compressionType == BMPConstants.BI_BITFIELDS) + if (compressionType == BI_RGB || + compressionType == BI_BITFIELDS) { isTopDown = bmpParam.isTopDown(); } else { @@ -543,7 +535,7 @@ if (isPalette == true) { // write palette - if (compressionType == BMPConstants.BI_BITFIELDS) { + if (compressionType == BI_BITFIELDS) { // write masks for red, green and blue components. for (int i=0; i<3; i++) { int mask = (a[i]&0xFF) + ((r[i]&0xFF)*0x100) + ((g[i]&0xFF)*0x10000) + ((b[i]&0xFF)*0x1000000); @@ -571,8 +563,8 @@ int l; - if (compressionType == BMPConstants.BI_JPEG || - compressionType == BMPConstants.BI_PNG) { + if (compressionType == BI_JPEG || + compressionType == BI_PNG) { // prepare embedded buffer embedded_stream = new ByteArrayOutputStream(); @@ -657,7 +649,7 @@ pos = sppsm.getOffset(startX, startY); } - if (compressionType == BMPConstants.BI_RGB || compressionType == BMPConstants.BI_BITFIELDS){ + if (compressionType == BI_RGB || compressionType == BI_BITFIELDS){ switch(dataType) { case DataBuffer.TYPE_BYTE: byte[] bdata = @@ -687,7 +679,7 @@ for(int k=0; kColorSpaceType node - public static final String[] colorSpaceTypeNames = { + static final String[] colorSpaceTypeNames = { "GRAY", null, "RGB", "RGB", "GRAY", null, "RGB" }; diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/com/sun/imageio/plugins/wbmp/WBMPImageReaderSpi.java --- a/jdk/src/share/classes/com/sun/imageio/plugins/wbmp/WBMPImageReaderSpi.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/com/sun/imageio/plugins/wbmp/WBMPImageReaderSpi.java Mon Oct 14 09:52:36 2013 -0700 @@ -85,42 +85,42 @@ ImageInputStream stream = (ImageInputStream)source; stream.mark(); - int type = stream.readByte(); // TypeField - int fixHeaderField = stream.readByte(); - // check WBMP "header" - if (type != 0 || fixHeaderField != 0) { - // while WBMP reader does not support ext WBMP headers - stream.reset(); - return false; - } + try { + int type = stream.readByte(); // TypeField + int fixHeaderField = stream.readByte(); + // check WBMP "header" + if (type != 0 || fixHeaderField != 0) { + // while WBMP reader does not support ext WBMP headers + return false; + } - int width = ReaderUtil.readMultiByteInteger(stream); - int height = ReaderUtil.readMultiByteInteger(stream); - // check image dimension - if (width <= 0 || height <= 0) { - stream.reset(); - return false; - } + int width = ReaderUtil.readMultiByteInteger(stream); + int height = ReaderUtil.readMultiByteInteger(stream); + // check image dimension + if (width <= 0 || height <= 0) { + return false; + } - long dataLength = stream.length(); - if (dataLength == -1) { - // We can't verify that amount of data in the stream - // corresponds to image dimension because we do not know - // the length of the data stream. - // Assuming that wbmp image are used for mobile devices, - // let's introduce an upper limit for image dimension. - // In case if exact amount of raster data is unknown, - // let's reject images with dimension above the limit. + long dataLength = stream.length(); + if (dataLength == -1) { + // We can't verify that amount of data in the stream + // corresponds to image dimension because we do not know + // the length of the data stream. + // Assuming that wbmp image are used for mobile devices, + // let's introduce an upper limit for image dimension. + // In case if exact amount of raster data is unknown, + // let's reject images with dimension above the limit. + return (width < MAX_WBMP_WIDTH) && (height < MAX_WBMP_HEIGHT); + } + + dataLength -= stream.getStreamPosition(); + + long scanSize = (width / 8) + ((width % 8) == 0 ? 0 : 1); + + return (dataLength == scanSize * height); + } finally { stream.reset(); - return (width < MAX_WBMP_WIDTH) && (height < MAX_WBMP_HEIGHT); } - - dataLength -= stream.getStreamPosition(); - stream.reset(); - - long scanSize = (width / 8) + ((width % 8) == 0 ? 0 : 1); - - return (dataLength == scanSize * height); } public ImageReader createReaderInstance(Object extension) diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/com/sun/media/sound/JSSecurityManager.java --- a/jdk/src/share/classes/com/sun/media/sound/JSSecurityManager.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/com/sun/media/sound/JSSecurityManager.java Mon Oct 14 09:52:36 2013 -0700 @@ -187,9 +187,18 @@ static List getProviders(final Class providerClass) { List p = new ArrayList<>(); - // ServiceLoader creates "lazy" iterator instance, so it doesn't, - // require do be called from privileged section - final Iterator ps = ServiceLoader.load(providerClass).iterator(); + // ServiceLoader creates "lazy" iterator instance, but it ensures that + // next/hasNext run with permissions that are restricted by whatever + // creates the ServiceLoader instance, so it requires to be called from + // privileged section + final PrivilegedAction> psAction = + new PrivilegedAction>() { + @Override + public Iterator run() { + return ServiceLoader.load(providerClass).iterator(); + } + }; + final Iterator ps = AccessController.doPrivileged(psAction); // the iterator's hasNext() method looks through classpath for // the provider class names, so it requires read permissions diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/com/sun/org/apache/xml/internal/security/keys/content/x509/XMLX509SKI.java --- a/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/keys/content/x509/XMLX509SKI.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/keys/content/x509/XMLX509SKI.java Mon Oct 14 09:52:36 2013 -0700 @@ -35,7 +35,7 @@ /** * Handles SubjectKeyIdentifier (SKI) for X.509v3. * - * @see + * @see * Interface X509Extension */ public class XMLX509SKI extends SignatureElementProxy implements XMLX509DataContent { diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/implementations/ResolverDirectHTTP.java --- a/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/implementations/ResolverDirectHTTP.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/implementations/ResolverDirectHTTP.java Mon Oct 14 09:52:36 2013 -0700 @@ -56,7 +56,7 @@ * * * @see Java Tip 42: Write Java apps that work with proxy-based firewalls - * @see SUN J2SE docs for network properties + * @see SUN J2SE docs for network properties * @see The JAVA FAQ Question 9.5: How do I make Java work with a proxy server? */ public class ResolverDirectHTTP extends ResourceResolverSpi { diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/applet/Applet.java --- a/jdk/src/share/classes/java/applet/Applet.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/applet/Applet.java Mon Oct 14 09:52:36 2013 -0700 @@ -143,11 +143,11 @@ * For example, suppose an applet is contained * within the document: *
-     *    http://java.sun.com/products/jdk/1.2/index.html
+     *    http://www.oracle.com/technetwork/java/index.html
      * 
* The document base is: *
-     *    http://java.sun.com/products/jdk/1.2/index.html
+     *    http://www.oracle.com/technetwork/java/index.html
      * 
* * @return the {@link java.net.URL} of the document that contains this diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/applet/AppletStub.java --- a/jdk/src/share/classes/java/applet/AppletStub.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/applet/AppletStub.java Mon Oct 14 09:52:36 2013 -0700 @@ -54,11 +54,11 @@ * For example, suppose an applet is contained * within the document: *
-     *    http://java.sun.com/products/jdk/1.2/index.html
+     *    http://www.oracle.com/technetwork/java/index.html
      * 
* The document base is: *
-     *    http://java.sun.com/products/jdk/1.2/index.html
+     *    http://www.oracle.com/technetwork/java/index.html
      * 
* * @return the {@link java.net.URL} of the document that contains the diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/BorderLayout.java --- a/jdk/src/share/classes/java/awt/BorderLayout.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/BorderLayout.java Mon Oct 14 09:52:36 2013 -0700 @@ -96,7 +96,7 @@ * alt="Diagram of an applet demonstrating BorderLayout. * Each section of the BorderLayout contains a Button corresponding to its position in the layout, one of: * North, West, Center, East, or South." - * ALIGN=center HSPACE=10 VSPACE=7> + * style="float:center; margin: 7px 10px;"> *

* The code for this applet is as follows: *

diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/Button.java --- a/jdk/src/share/classes/java/awt/Button.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/Button.java Mon Oct 14 09:52:36 2013 -0700 @@ -40,7 +40,7 @@ * under the Solaris operating system: *

* The following context describes the graphic + * style="float:center; margin: 7px 10px;"> *

* The first view shows the button as it appears normally. * The second view shows the button diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/Checkbox.java --- a/jdk/src/share/classes/java/awt/Checkbox.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/Checkbox.java Mon Oct 14 09:52:36 2013 -0700 @@ -53,7 +53,7 @@ * created by this code example: *

* The following context describes the graphic. + * style="float:center; margin: 7px 10px;"> *

* The button labeled one is in the "on" state, and the * other two are in the "off" state. In this example, which uses the diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/CheckboxGroup.java --- a/jdk/src/share/classes/java/awt/CheckboxGroup.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/CheckboxGroup.java Mon Oct 14 09:52:36 2013 -0700 @@ -48,7 +48,7 @@ *

* Shows three checkboxes, arranged vertically, labeled one, two, and three. Checkbox one is in the on state. + * style="float:center; margin: 7px 10px;"> *

* @author Sami Shaio * @see java.awt.Checkbox diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/CheckboxMenuItem.java --- a/jdk/src/share/classes/java/awt/CheckboxMenuItem.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/CheckboxMenuItem.java Mon Oct 14 09:52:36 2013 -0700 @@ -44,7 +44,7 @@ *

* Menu labeled Examples, containing items Basic, Simple, Check, and More Examples. The Check item is a CheckBoxMenuItem instance, in the off state. + * style="float:center; margin: 7px 10px;"> *

* The item labeled Check shows a check box menu item * in its "off" state. diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/Choice.java --- a/jdk/src/share/classes/java/awt/Choice.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/Choice.java Mon Oct 14 09:52:36 2013 -0700 @@ -52,7 +52,7 @@ * it appears as follows in its normal state: *

* The following text describes the graphic + * style="float:center; margin: 7px 10px;"> *

* In the picture, "Green" is the current choice. * Pushing the mouse button down on the object causes a menu to diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/Color.java --- a/jdk/src/share/classes/java/awt/Color.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/Color.java Mon Oct 14 09:52:36 2013 -0700 @@ -823,7 +823,7 @@ *

* The integer that is returned by HSBtoRGB encodes the * value of a color in bits 0-23 of an integer value that is the same - * format used by the method {@link #getRGB() getRGB}. + * format used by the method {@link #getRGB() getRGB}. * This integer can be supplied as an argument to the * Color constructor that takes a single integer argument. * @param hue the hue component of the color diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/Component.java --- a/jdk/src/share/classes/java/awt/Component.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/Component.java Mon Oct 14 09:52:36 2013 -0700 @@ -173,10 +173,10 @@ * Note: For more information on the paint mechanisms utilitized * by AWT and Swing, including information on how to write the most * efficient painting code, see - * Painting in AWT and Swing. + * Painting in AWT and Swing. *

* For details on the focus subsystem, see - * + * * How to Use the Focus Subsystem, * a section in The Java Tutorial, and the * Focus Specification @@ -1223,10 +1223,6 @@ * be called on the toolkit thread. */ final Toolkit getToolkitImpl() { - ComponentPeer peer = this.peer; - if ((peer != null) && ! (peer instanceof LightweightPeer)){ - return peer.getToolkit(); - } Container parent = this.parent; if (parent != null) { return parent.getToolkitImpl(); @@ -3205,7 +3201,7 @@ * Note: For more information on the paint mechanisms utilitized * by AWT and Swing, including information on how to write the most * efficient painting code, see - * Painting in AWT and Swing. + * Painting in AWT and Swing. * * @param g the graphics context to use for painting * @see #update @@ -3240,7 +3236,7 @@ * Note: For more information on the paint mechanisms utilitized * by AWT and Swing, including information on how to write the most * efficient painting code, see - * Painting in AWT and Swing. + * Painting in AWT and Swing. * * @param g the specified context to use for updating * @see #paint @@ -3301,7 +3297,7 @@ * Note: For more information on the paint mechanisms utilitized * by AWT and Swing, including information on how to write the most * efficient painting code, see - * Painting in AWT and Swing. + * Painting in AWT and Swing. * * @see #update(Graphics) @@ -3319,7 +3315,7 @@ * Note: For more information on the paint mechanisms utilitized * by AWT and Swing, including information on how to write the most * efficient painting code, see - * Painting in AWT and Swing. + * Painting in AWT and Swing. * * @param tm maximum time in milliseconds before update * @see #paint @@ -3341,7 +3337,7 @@ * Note: For more information on the paint mechanisms utilitized * by AWT and Swing, including information on how to write the most * efficient painting code, see - * Painting in AWT and Swing. + * Painting in AWT and Swing. * * @param x the x coordinate * @param y the y coordinate @@ -3366,7 +3362,7 @@ * Note: For more information on the paint mechanisms utilitized * by AWT and Swing, including information on how to write the most * efficient painting code, see - * Painting in AWT and Swing. + * Painting in AWT and Swing. * * @param tm maximum time in milliseconds before update * @param x the x coordinate diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/Container.java --- a/jdk/src/share/classes/java/awt/Container.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/Container.java Mon Oct 14 09:52:36 2013 -0700 @@ -75,7 +75,7 @@ * (and hence to the bottom of the stacking order). *

* Note: For details on the focus subsystem, see - * + * * How to Use the Focus Subsystem, * a section in The Java Tutorial, and the * Focus Specification diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/DefaultFocusTraversalPolicy.java --- a/jdk/src/share/classes/java/awt/DefaultFocusTraversalPolicy.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/DefaultFocusTraversalPolicy.java Mon Oct 14 09:52:36 2013 -0700 @@ -54,7 +54,7 @@ * impact, the focusability of the Component itself. *

* Please see - * + * * How to Use the Focus Subsystem, * a section in The Java Tutorial, and the * Focus Specification diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/DefaultKeyboardFocusManager.java --- a/jdk/src/share/classes/java/awt/DefaultKeyboardFocusManager.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/DefaultKeyboardFocusManager.java Mon Oct 14 09:52:36 2013 -0700 @@ -49,7 +49,7 @@ * Container's FocusTraversalPolicy. *

* Please see - * + * * How to Use the Focus Subsystem, * a section in The Java Tutorial, and the * Focus Specification diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/DisplayMode.java --- a/jdk/src/share/classes/java/awt/DisplayMode.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/DisplayMode.java Mon Oct 14 09:52:36 2013 -0700 @@ -35,7 +35,7 @@ * (see {@link GraphicsDevice#isDisplayChangeSupported}). *

* For more information on full-screen exclusive mode API, see the - * + * * Full-Screen Exclusive Mode API Tutorial. * * @see GraphicsDevice diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/EventQueue.java --- a/jdk/src/share/classes/java/awt/EventQueue.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/EventQueue.java Mon Oct 14 09:52:36 2013 -0700 @@ -652,7 +652,7 @@ * Dispatches an event. The manner in which the event is * dispatched depends upon the type of the event and the * type of the event's source object: - *

+ *

* * * @@ -680,7 +680,7 @@ * * *
Event TypeNo action (ignored)
- *

+ *

* @param event an instance of java.awt.AWTEvent, * or a subclass of it * @throws NullPointerException if event is null diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/FileDialog.java --- a/jdk/src/share/classes/java/awt/FileDialog.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/FileDialog.java Mon Oct 14 09:52:36 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1995, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -457,9 +457,16 @@ * specified file. This file becomes the default file if it is set * before the file dialog window is first shown. *

+ * When the dialog is shown, the specified file is selected. The kind of + * selection depends on the file existence, the dialog type, and the native + * platform. E.g., the file could be highlighted in the file list, or a + * file name editbox could be populated with the file name. + *

+ * This method accepts either a full file path, or a file name with an + * extension if used together with the {@code setDirectory} method. + *

* Specifying "" as the file is exactly equivalent to specifying - * null - * as the file. + * {@code null} as the file. * * @param file the file being set * @see #getFile diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/FlowLayout.java --- a/jdk/src/share/classes/java/awt/FlowLayout.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/FlowLayout.java Mon Oct 14 09:52:36 2013 -0700 @@ -54,7 +54,7 @@ *

* Graphic of Layout for Three Buttons + * style="float:center; margin: 7px 10px;"> *

* Here is the code for this applet: *

diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/FocusTraversalPolicy.java --- a/jdk/src/share/classes/java/awt/FocusTraversalPolicy.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/FocusTraversalPolicy.java Mon Oct 14 09:52:36 2013 -0700 @@ -49,7 +49,7 @@ * policy is used to perform the search operation. *

* Please see - * + * * How to Use the Focus Subsystem, * a section in The Java Tutorial, and the * Focus Specification diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/Font.java --- a/jdk/src/share/classes/java/awt/Font.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/Font.java Mon Oct 14 09:52:36 2013 -0700 @@ -127,7 +127,7 @@ *

* For a discussion of the relative advantages and disadvantages of using * physical or logical fonts, see the - * Internationalization FAQ + * Internationalization FAQ * document. * *

Font Faces and Names

diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/FontMetrics.java --- a/jdk/src/share/classes/java/awt/FontMetrics.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/FontMetrics.java Mon Oct 14 09:52:36 2013 -0700 @@ -51,8 +51,8 @@ *
  • {@link #charsWidth(char[], int, int)} * *

    - * The letter 'p' showing its 'reference point' + * The letter 'p' showing its 'reference point' * Note that the implementations of these methods are * inefficient, so they are usually overridden with more efficient * toolkit-specific implementations. diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/Frame.java --- a/jdk/src/share/classes/java/awt/Frame.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/Frame.java Mon Oct 14 09:52:36 2013 -0700 @@ -83,7 +83,7 @@ * Diagram of virtual device encompassing three physical screens and one primary physical screen. The primary physical screen
  * shows (0,0) coords while a different physical screen shows (-80,-100) coords. + * style="float:center; margin: 7px 10px;"> *

    * In such an environment, when calling setLocation, * you must pass a virtual coordinate to this method. Similarly, diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/GraphicsDevice.java --- a/jdk/src/share/classes/java/awt/GraphicsDevice.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/GraphicsDevice.java Mon Oct 14 09:52:36 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -69,7 +69,7 @@ * *

    * For more information on full-screen exclusive mode API, see the - * + * * Full-Screen Exclusive Mode API Tutorial. * * @see GraphicsEnvironment @@ -334,11 +334,12 @@ } /** - * Returns the Window object representing the + * Returns the {@code Window} object representing the * full-screen window if the device is in full-screen mode. * - * @return the full-screen window, or null if the device is - * not in full-screen mode. + * @return the full-screen window, or {@code null} if the device is + * not in full-screen mode. The {@code Window} object can differ + * from the object previously set by {@code setFullScreenWindow}. * @see #setFullScreenWindow(Window) * @since 1.4 */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/GridBagLayout.java --- a/jdk/src/share/classes/java/awt/GridBagLayout.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/GridBagLayout.java Mon Oct 14 09:52:36 2013 -0700 @@ -125,9 +125,9 @@ *

    * - * - * - * + * + * + * * * * * *

    Absolute Values

    Orientation Relative Values

    Baseline Relative Values

    Absolute Values

    Orientation Relative Values

    Baseline Relative Values

    @@ -201,7 +201,7 @@ *
    * The following text describes this graphic (Figure 1). + * alt="The following text describes this graphic (Figure 1)." style="float:center"> *
    * This layout consists of three components: @@ -255,10 +255,10 @@ *
    * * * * * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/GridLayout.java --- a/jdk/src/share/classes/java/awt/GridLayout.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/GridLayout.java Mon Oct 14 09:52:36 2013 -0700 @@ -55,7 +55,7 @@ * If the container's ComponentOrientation property is horizontal * and right-to-left, the example produces the output shown in Figure 2. *

    - *

    - * The preceeding text describes this graphic (Figure 1). + * The preceeding text describes this graphic (Figure 1). * - * The preceeding text describes this graphic (Figure 2). + * The preceeding text describes this graphic (Figure 2). *
    Figure 2: Horizontal, Left-to-Right
    + *
    * *
    Shows 6 buttons in rows of 2. Row 1 shows buttons 1 then 2.
@@ -73,7 +73,7 @@
  *
  * <td>Figure 2: Horizontal, Right-to-Left</td>
  * </tr>
- * </table></center>
+ * </table>
  * <p>
  * When both the number of rows and the number of columns have
  * been set to non-zero values, either by a constructor or
diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/KeyboardFocusManager.java
--- a/jdk/src/share/classes/java/awt/KeyboardFocusManager.java	Mon Oct 14 14:28:50 2013 +0200
+++ b/jdk/src/share/classes/java/awt/KeyboardFocusManager.java	Mon Oct 14 09:52:36 2013 -0700
@@ -88,7 +88,7 @@
  * ClassLoader.
  * <p>
  * Please see
- * <a href= + * * How to Use the Focus Subsystem, * a section in The Java Tutorial, and the * Focus Specification @@ -590,6 +590,7 @@ * * @see Component#requestFocus() * @see java.awt.event.FocusEvent#FOCUS_LOST + * @since 1.8 */ public void clearFocusOwner() { if (getFocusOwner() != null) { diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/Label.java --- a/jdk/src/share/classes/java/awt/Label.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/Label.java Mon Oct 14 09:52:36 2013 -0700 @@ -46,7 +46,7 @@ * produces the following labels: *

    * Two labels: 'Hi There!' and 'Another label' + * style="float:center; margin: 7px 10px;"> * * @author Sami Shaio * @since JDK1.0 diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/LinearGradientPaint.java --- a/jdk/src/share/classes/java/awt/LinearGradientPaint.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/LinearGradientPaint.java Mon Oct 14 09:52:36 2013 -0700 @@ -94,7 +94,7 @@ * of the three cycle methods: *

    *

    - * + * LinearGradientPaint *
    * * @see java.awt.Paint diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/List.java --- a/jdk/src/share/classes/java/awt/List.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/List.java Mon Oct 14 09:52:36 2013 -0700 @@ -61,7 +61,7 @@ * scrolling list: *

    * Shows a list containing: Venus, Earth, JavaSoft, and Mars. Javasoft is selected. + * alt="Shows a list containing: Venus, Earth, JavaSoft, and Mars. Javasoft is selected." style="float:center; margin: 7px 10px;"> *

    * If the List allows multiple selections, then clicking on * an item that is already selected deselects it. In the preceding diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/MenuBar.java --- a/jdk/src/share/classes/java/awt/MenuBar.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/MenuBar.java Mon Oct 14 09:52:36 2013 -0700 @@ -45,7 +45,7 @@ * Diagram of MenuBar containing 2 menus: Examples and Options.
  * Examples menu is expanded showing items: Basic, Simple, Check, and More Examples. + * style="float:center; margin: 7px 10px;"> *

    * A menu bar handles keyboard shortcuts for menu items, passing them * along to its child menus. diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/MenuItem.java --- a/jdk/src/share/classes/java/awt/MenuItem.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/MenuItem.java Mon Oct 14 09:52:36 2013 -0700 @@ -42,8 +42,8 @@ *

    * This picture of a menu bar shows five menu items: * The following text describes this graphic. - *
    + * style="float:center; margin: 7px 10px;"> + *
    * The first two items are simple menu items, labeled * "Basic" and "Simple". * Following these two items is a separator, which is itself diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/RadialGradientPaint.java --- a/jdk/src/share/classes/java/awt/RadialGradientPaint.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/RadialGradientPaint.java Mon Oct 14 09:52:36 2013 -0700 @@ -80,14 +80,14 @@ * from the focus point. The following figure shows that the distance AB * is equal to the distance BC, and the distance AD is equal to the distance DE. *

    - * + * RadialGradientPaint-3 *
    * If the gradient and graphics rendering transforms are uniformly scaled and * the user sets the focus so that it coincides with the center of the circle, * the gradient color proportions are equal for any line drawn from the center. * The following figure shows the distances AB, BC, AD, and DE. They are all equal. *
    - * + * RadialGradientPaint-4 *
    * Note that some minor variations in distances may occur due to sampling at * the granularity of a pixel. @@ -117,7 +117,7 @@ * (centered) focus for each of the three cycle methods: *

    *

    - * + * RadialGradientPaint-1 *
    * *

    @@ -141,7 +141,7 @@ * focus for each of the three cycle methods: *

    *

    - * + * RadialGradientPaint-2 *
    * * @see java.awt.Paint diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/Scrollbar.java --- a/jdk/src/share/classes/java/awt/Scrollbar.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/Scrollbar.java Mon Oct 14 09:52:36 2013 -0700 @@ -42,7 +42,7 @@ * the red, green, and blue components of a color: *

    * Image shows 3 vertical sliders, side-by-side. + * style="float:center; margin: 7px 10px;"> *

    * Each scroll bar in this example could be created with * code similar to the following: @@ -60,7 +60,7 @@ *

    * Image shows horizontal slider with starting range of 0 and ending range of 300. The slider thumb is labeled 60. + * style="float:center; margin: 7px 10px;"> *

    * The value range represented by the bubble in this example * is the visible amount. The horizontal scroll bar @@ -295,7 +295,7 @@ * Constructs a new vertical scroll bar. * The default properties of the scroll bar are listed in * the following table: - *

    + *

    * * * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/SystemTray.java --- a/jdk/src/share/classes/java/awt/SystemTray.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/SystemTray.java Mon Oct 14 09:52:36 2013 -0700 @@ -361,7 +361,7 @@ /** * Adds a {@code PropertyChangeListener} to the list of listeners for the * specific property. The following properties are currently supported: - *

    + *

    *

    Property
    * * @@ -384,7 +384,7 @@ * The property is accessed by the {@link #getSystemTray} method. * *
    Property
    - *

    + *

    * The {@code listener} listens to property changes only in this context. *

    * If {@code listener} is {@code null}, no exception is thrown diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/TextArea.java --- a/jdk/src/share/classes/java/awt/TextArea.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/TextArea.java Mon Oct 14 09:52:36 2013 -0700 @@ -42,7 +42,7 @@ * The following image shows the appearance of a text area: *

    * A TextArea showing the word 'Hello!' + * style="float:center; margin: 7px 10px;"> *

    * This text area could be created by the following line of code: *

    diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/TextComponent.java --- a/jdk/src/share/classes/java/awt/TextComponent.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/TextComponent.java Mon Oct 14 09:52:36 2013 -0700 @@ -822,37 +822,6 @@ // Accessibility support //////////////// - - /** - * - */ - int getIndexAtPoint(Point p) { - return -1; -/* To be fully implemented in a future release - if (peer == null) { - return -1; - } - TextComponentPeer peer = (TextComponentPeer)this.peer; - return peer.getIndexAtPoint(p.x, p.y); -*/ - } - - - /** - * - */ - Rectangle getCharacterBounds(int i) { - return null; -/* To be fully implemented in a future release - if (peer == null) { - return null; - } - TextComponentPeer peer = (TextComponentPeer)this.peer; - return peer.getCharacterBounds(i); -*/ - } - - /** * Gets the AccessibleContext associated with this TextComponent. * For text components, the AccessibleContext takes the form of an @@ -963,7 +932,7 @@ * @return the zero-based index of the character under Point p. */ public int getIndexAtPoint(Point p) { - return TextComponent.this.getIndexAtPoint(p); + return -1; } /** @@ -976,7 +945,7 @@ * @return the screen coordinates of the character's bounding box */ public Rectangle getCharacterBounds(int i) { - return TextComponent.this.getCharacterBounds(i); + return null; } /** diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/TextField.java --- a/jdk/src/share/classes/java/awt/TextField.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/TextField.java Mon Oct 14 09:52:36 2013 -0700 @@ -42,7 +42,7 @@ * display the predefined text "Hello". *

    * The preceding text describes this image. + * style="float:center; margin: 7px 10px;"> *

    * Here is the code that produces these four text fields: *

    diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/Toolkit.java --- a/jdk/src/share/classes/java/awt/Toolkit.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/Toolkit.java Mon Oct 14 09:52:36 2013 -0700 @@ -83,7 +83,7 @@ *

    *

  • Moving the focus from one component to another. *
    For more information, see - * Timing + * Timing * Focus Transfers, a section in * The Swing * Tutorial. diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/Window.java --- a/jdk/src/share/classes/java/awt/Window.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/Window.java Mon Oct 14 09:52:36 2013 -0700 @@ -85,7 +85,7 @@ *

    * Diagram shows virtual device containing 4 physical screens. Primary physical screen shows coords (0,0), other screen shows (-80,-100). + * style="float:center; margin: 7px 10px;"> *

    * In such an environment, when calling {@code setLocation}, * you must pass a virtual coordinate to this method. Similarly, @@ -226,6 +226,7 @@ boolean syncLWRequests = false; transient boolean beforeFirstShow = true; private transient boolean disposing = false; + transient WindowDisposerRecord disposerRecord = null; static final int OPENED = 0x01; @@ -437,18 +438,28 @@ transient Object anchor = new Object(); static class WindowDisposerRecord implements sun.java2d.DisposerRecord { - final WeakReference owner; + WeakReference owner; final WeakReference weakThis; final WeakReference context; + WindowDisposerRecord(AppContext context, Window victim) { - owner = new WeakReference(victim.getOwner()); weakThis = victim.weakThis; this.context = new WeakReference(context); } + + public void updateOwner() { + Window victim = weakThis.get(); + owner = (victim == null) + ? null + : new WeakReference(victim.getOwner()); + } + public void dispose() { - Window parent = owner.get(); - if (parent != null) { - parent.removeOwnedWindow(weakThis); + if (owner != null) { + Window parent = owner.get(); + if (parent != null) { + parent.removeOwnedWindow(weakThis); + } } AppContext ac = context.get(); if (null != ac) { @@ -502,6 +513,8 @@ } modalExclusionType = Dialog.ModalExclusionType.NO_EXCLUDE; + disposerRecord = new WindowDisposerRecord(appContext, this); + sun.java2d.Disposer.addRecord(anchor, disposerRecord); SunToolkit.checkAndSetPolicy(this); } @@ -617,11 +630,16 @@ this.parent = owner; if (owner != null) { owner.addOwnedWindow(weakThis); + if (owner.isAlwaysOnTop()) { + try { + setAlwaysOnTop(true); + } catch (SecurityException ignore) { + } + } } - // Fix for 6758673: this call is moved here from init(gc), because // WindowDisposerRecord requires a proper value of parent field. - Disposer.addRecord(anchor, new WindowDisposerRecord(appContext, this)); + disposerRecord.updateOwner(); } /** @@ -1022,7 +1040,9 @@ closeSplashScreen(); Dialog.checkShouldBeBlocked(this); super.show(); - locationByPlatform = false; + synchronized (getTreeLock()) { + this.locationByPlatform = false; + } for (int i = 0; i < ownedWindowList.size(); i++) { Window child = ownedWindowList.elementAt(i).get(); if ((child != null) && child.showWithParent) { @@ -1095,6 +1115,9 @@ modalBlocker.unblockWindow(this); } super.hide(); + synchronized (getTreeLock()) { + this.locationByPlatform = false; + } } final void clearMostRecentFocusOwnerOnHide() { @@ -2180,8 +2203,8 @@ * windows. To detect if always-on-top windows are supported by the * current platform, use {@link Toolkit#isAlwaysOnTopSupported()} and * {@link Window#isAlwaysOnTopSupported()}. If always-on-top mode - * isn't supported by the toolkit or for this window, calling this - * method has no effect. + * isn't supported for this window or this window's toolkit does not + * support always-on-top windows, calling this method has no effect. *

    * If a SecurityManager is installed, the calling thread must be * granted the AWTPermission "setWindowAlwaysOnTop" in @@ -2194,11 +2217,13 @@ * windows * @throws SecurityException if the calling thread does not have * permission to set the value of always-on-top property + * * @see #isAlwaysOnTop * @see #toFront * @see #toBack * @see AWTPermission * @see #isAlwaysOnTopSupported + * @see #getToolkit * @see Toolkit#isAlwaysOnTopSupported * @since 1.5 */ @@ -2224,6 +2249,15 @@ } firePropertyChange("alwaysOnTop", oldAlwaysOnTop, alwaysOnTop); } + for (WeakReference ref : ownedWindowList) { + Window window = ref.get(); + if (window != null) { + try { + window.setAlwaysOnTop(alwaysOnTop); + } catch (SecurityException ignore) { + } + } + } } /** @@ -2231,11 +2265,13 @@ * window. Some platforms may not support always-on-top windows, some * may support only some kinds of top-level windows; for example, * a platform may not support always-on-top modal dialogs. - * @return {@code true}, if the always-on-top mode is - * supported by the toolkit and for this window, - * {@code false}, if always-on-top mode is not supported - * for this window or toolkit doesn't support always-on-top windows. + * + * @return {@code true}, if the always-on-top mode is supported for + * this window and this window's toolkit supports always-on-top windows, + * {@code false} otherwise + * * @see #setAlwaysOnTop(boolean) + * @see #getToolkit * @see Toolkit#isAlwaysOnTopSupported * @since 1.6 */ @@ -2774,6 +2810,7 @@ void connectOwnedWindow(Window child) { child.parent = this; addOwnedWindow(child.weakThis); + child.disposerRecord.updateOwner(); } private void addToWindowList() { @@ -2936,7 +2973,8 @@ weakThis = new WeakReference<>(this); anchor = new Object(); - sun.java2d.Disposer.addRecord(anchor, new WindowDisposerRecord(appContext, this)); + disposerRecord = new WindowDisposerRecord(appContext, this); + sun.java2d.Disposer.addRecord(anchor, disposerRecord); addToWindowList(); initGC(null); diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/datatransfer/DataFlavor.java --- a/jdk/src/share/classes/java/awt/datatransfer/DataFlavor.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/datatransfer/DataFlavor.java Mon Oct 14 09:52:36 2013 -0700 @@ -90,7 +90,7 @@ * the same results. *

    * For more information on the using data transfer with Swing see - * the + * the * How to Use Drag and Drop and Data Transfer, * section in Java Tutorial. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/datatransfer/Transferable.java --- a/jdk/src/share/classes/java/awt/datatransfer/Transferable.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/datatransfer/Transferable.java Mon Oct 14 09:52:36 2013 -0700 @@ -32,7 +32,7 @@ * for a transfer operation. *

    * For information on using data transfer with Swing, see - * + * * How to Use Drag and Drop and Data Transfer, * a section in The Java Tutorial, for more information. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/event/ActionEvent.java --- a/jdk/src/share/classes/java/awt/event/ActionEvent.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/event/ActionEvent.java Mon Oct 14 09:52:36 2013 -0700 @@ -52,7 +52,7 @@ * in the range from {@code ACTION_FIRST} to {@code ACTION_LAST}. * * @see ActionListener - * @see Tutorial: How to Write an Action Listener + * @see Tutorial: How to Write an Action Listener * * @author Carl Quinn * @since 1.1 diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/event/ActionListener.java --- a/jdk/src/share/classes/java/awt/event/ActionListener.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/event/ActionListener.java Mon Oct 14 09:52:36 2013 -0700 @@ -37,7 +37,7 @@ * invoked. * * @see ActionEvent - * @see Tutorial: Java 1.1 Event Model + * @see How to Write an Action Listener * * @author Carl Quinn * @since 1.1 diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/event/ComponentAdapter.java --- a/jdk/src/share/classes/java/awt/event/ComponentAdapter.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/event/ComponentAdapter.java Mon Oct 14 09:52:36 2013 -0700 @@ -44,7 +44,7 @@ * * @see ComponentEvent * @see ComponentListener - * @see Tutorial: Writing a Component Listener + * @see Tutorial: Writing a Component Listener * * @author Carl Quinn * @since 1.1 diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/event/ComponentEvent.java --- a/jdk/src/share/classes/java/awt/event/ComponentEvent.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/event/ComponentEvent.java Mon Oct 14 09:52:36 2013 -0700 @@ -60,7 +60,7 @@ * * @see ComponentAdapter * @see ComponentListener - * @see Tutorial: Writing a Component Listener + * @see Tutorial: Writing a Component Listener * * @author Carl Quinn * @since 1.1 diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/event/ComponentListener.java --- a/jdk/src/share/classes/java/awt/event/ComponentListener.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/event/ComponentListener.java Mon Oct 14 09:52:36 2013 -0700 @@ -46,7 +46,7 @@ * * @see ComponentAdapter * @see ComponentEvent - * @see Tutorial: Writing a Component Listener + * @see Tutorial: Writing a Component Listener * * @author Carl Quinn * @since 1.1 diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/event/ContainerAdapter.java --- a/jdk/src/share/classes/java/awt/event/ContainerAdapter.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/event/ContainerAdapter.java Mon Oct 14 09:52:36 2013 -0700 @@ -44,7 +44,7 @@ * * @see ContainerEvent * @see ContainerListener - * @see Tutorial: Writing a Container Listener + * @see Tutorial: Writing a Container Listener * * @author Amy Fowler * @since 1.1 diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/event/ContainerEvent.java --- a/jdk/src/share/classes/java/awt/event/ContainerEvent.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/event/ContainerEvent.java Mon Oct 14 09:52:36 2013 -0700 @@ -52,7 +52,7 @@ * * @see ContainerAdapter * @see ContainerListener - * @see Tutorial: Writing a Container Listener + * @see Tutorial: Writing a Container Listener * * @author Tim Prinzing * @author Amy Fowler diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/event/ContainerListener.java --- a/jdk/src/share/classes/java/awt/event/ContainerListener.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/event/ContainerListener.java Mon Oct 14 09:52:36 2013 -0700 @@ -46,7 +46,7 @@ * * @see ContainerAdapter * @see ContainerEvent - * @see Tutorial: Writing a Container Listener + * @see Tutorial: Writing a Container Listener * * @author Tim Prinzing * @author Amy Fowler diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/event/FocusAdapter.java --- a/jdk/src/share/classes/java/awt/event/FocusAdapter.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/event/FocusAdapter.java Mon Oct 14 09:52:36 2013 -0700 @@ -44,7 +44,7 @@ * * @see FocusEvent * @see FocusListener - * @see Tutorial: Writing a Focus Listener + * @see Tutorial: Writing a Focus Listener * * @author Carl Quinn * @since 1.1 diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/event/FocusEvent.java --- a/jdk/src/share/classes/java/awt/event/FocusEvent.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/event/FocusEvent.java Mon Oct 14 09:52:36 2013 -0700 @@ -57,7 +57,7 @@ * * @see FocusAdapter * @see FocusListener - * @see Tutorial: Writing a Focus Listener + * @see Tutorial: Writing a Focus Listener * * @author Carl Quinn * @author Amy Fowler diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/event/FocusListener.java --- a/jdk/src/share/classes/java/awt/event/FocusListener.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/event/FocusListener.java Mon Oct 14 09:52:36 2013 -0700 @@ -42,7 +42,7 @@ * * @see FocusAdapter * @see FocusEvent - * @see Tutorial: Writing a Focus Listener + * @see Tutorial: Writing a Focus Listener * * @author Carl Quinn * @since 1.1 diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/event/InputEvent.java --- a/jdk/src/share/classes/java/awt/event/InputEvent.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/event/InputEvent.java Mon Oct 14 09:52:36 2013 -0700 @@ -445,7 +445,7 @@ *

          *    int onmask = SHIFT_DOWN_MASK | BUTTON1_DOWN_MASK;
          *    int offmask = CTRL_DOWN_MASK;
    -     *    if ((event.getModifiersEx() & (onmask | offmask)) == onmask) {
    +     *    if ((event.getModifiersEx() & (onmask | offmask)) == onmask) {
          *        ...
          *    }
          * 
    diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/event/ItemEvent.java --- a/jdk/src/share/classes/java/awt/event/ItemEvent.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/event/ItemEvent.java Mon Oct 14 09:52:36 2013 -0700 @@ -58,7 +58,7 @@ * * @see java.awt.ItemSelectable * @see ItemListener - * @see Tutorial: Writing an Item Listener + * @see Tutorial: Writing an Item Listener * * @since 1.1 */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/event/ItemListener.java --- a/jdk/src/share/classes/java/awt/event/ItemListener.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/event/ItemListener.java Mon Oct 14 09:52:36 2013 -0700 @@ -40,7 +40,7 @@ * * @see java.awt.ItemSelectable * @see ItemEvent - * @see Tutorial: Writing an Item Listener + * @see Tutorial: Writing an Item Listener * * @since 1.1 */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/event/KeyAdapter.java --- a/jdk/src/share/classes/java/awt/event/KeyAdapter.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/event/KeyAdapter.java Mon Oct 14 09:52:36 2013 -0700 @@ -46,7 +46,7 @@ * * @see KeyEvent * @see KeyListener - * @see Tutorial: Writing a Key Listener + * @see Tutorial: Writing a Key Listener * * @since 1.1 */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/event/KeyEvent.java --- a/jdk/src/share/classes/java/awt/event/KeyEvent.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/event/KeyEvent.java Mon Oct 14 09:52:36 2013 -0700 @@ -145,7 +145,7 @@ * * @see KeyAdapter * @see KeyListener - * @see Tutorial: Writing a Key Listener + * @see Tutorial: Writing a Key Listener * * @since 1.1 */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/event/MouseAdapter.java --- a/jdk/src/share/classes/java/awt/event/MouseAdapter.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/event/MouseAdapter.java Mon Oct 14 09:52:36 2013 -0700 @@ -63,7 +63,7 @@ * @see MouseListener * @see MouseMotionListener * @see MouseWheelListener - * @see Tutorial: Writing a Mouse Listener + * @see Tutorial: Writing a Mouse Listener * * @since 1.1 */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/event/MouseEvent.java --- a/jdk/src/share/classes/java/awt/event/MouseEvent.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/event/MouseEvent.java Mon Oct 14 09:52:36 2013 -0700 @@ -146,12 +146,12 @@ * {@link InputEvent#getMaskForButton(int) getMaskForButton(button)} method may be used * as button masks. *

    - * MOUSE_DRAGGED events are delivered to the Component + * {@code MOUSE_DRAGGED} events are delivered to the {@code Component} * in which the mouse button was pressed until the mouse button is released * (regardless of whether the mouse position is within the bounds of the - * Component). Due to platform-dependent Drag&Drop implementations, - * MOUSE_DRAGGED events may not be delivered during a native - * Drag&Drop operation. + * {@code Component}). Due to platform-dependent Drag&Drop implementations, + * {@code MOUSE_DRAGGED} events may not be delivered during a native + * Drag&Drop operation. * * In a multi-screen environment mouse drag events are delivered to the * Component even if the mouse position is outside the bounds of the @@ -182,8 +182,8 @@ * @see MouseMotionAdapter * @see MouseMotionListener * @see MouseWheelListener - * @see Tutorial: Writing a Mouse Listener - * @see Tutorial: Writing a Mouse Motion Listener + * @see Tutorial: Writing a Mouse Listener + * @see Tutorial: Writing a Mouse Motion Listener * * @since 1.1 */ @@ -327,7 +327,7 @@ * For all other events the count will be 0. * * @serial - * @see #getClickCount(). + * @see #getClickCount() */ int clickCount; @@ -403,7 +403,7 @@ /** * Initialize JNI field and method IDs for fields that may be - accessed from C. + * accessed from C. */ private static native void initIDs(); diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/event/MouseListener.java --- a/jdk/src/share/classes/java/awt/event/MouseListener.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/event/MouseListener.java Mon Oct 14 09:52:36 2013 -0700 @@ -50,7 +50,7 @@ * * @see MouseAdapter * @see MouseEvent - * @see Tutorial: Writing a Mouse Listener + * @see Tutorial: Writing a Mouse Listener * * @since 1.1 */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/event/MouseMotionAdapter.java --- a/jdk/src/share/classes/java/awt/event/MouseMotionAdapter.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/event/MouseMotionAdapter.java Mon Oct 14 09:52:36 2013 -0700 @@ -49,7 +49,7 @@ * * @see MouseEvent * @see MouseMotionListener - * @see Tutorial: Writing a Mouse Motion Listener + * @see Tutorial: Writing a Mouse Motion Listener * * @since 1.1 */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/event/MouseMotionListener.java --- a/jdk/src/share/classes/java/awt/event/MouseMotionListener.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/event/MouseMotionListener.java Mon Oct 14 09:52:36 2013 -0700 @@ -47,7 +47,7 @@ * * @see MouseMotionAdapter * @see MouseEvent - * @see Tutorial: Writing a Mouse Motion Listener + * @see Tutorial: Writing a Mouse Motion Listener * * @since 1.1 */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/event/WindowAdapter.java --- a/jdk/src/share/classes/java/awt/event/WindowAdapter.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/event/WindowAdapter.java Mon Oct 14 09:52:36 2013 -0700 @@ -45,7 +45,7 @@ * * @see WindowEvent * @see WindowListener - * @see Tutorial: Writing a Window Listener + * @see Tutorial: Writing a Window Listener * * @author Carl Quinn * @author Amy Fowler diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/event/WindowEvent.java --- a/jdk/src/share/classes/java/awt/event/WindowEvent.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/event/WindowEvent.java Mon Oct 14 09:52:36 2013 -0700 @@ -52,7 +52,7 @@ * * @see WindowAdapter * @see WindowListener - * @see Tutorial: Writing a Window Listener + * @see Tutorial: Writing a Window Listener * * @since JDK1.1 */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/event/WindowFocusListener.java --- a/jdk/src/share/classes/java/awt/event/WindowFocusListener.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/event/WindowFocusListener.java Mon Oct 14 09:52:36 2013 -0700 @@ -47,7 +47,7 @@ * * @see WindowAdapter * @see WindowEvent - * @see Tutorial: Writing a Window Listener + * @see Tutorial: Writing a Window Listener * * @since 1.4 */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/event/WindowListener.java --- a/jdk/src/share/classes/java/awt/event/WindowListener.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/event/WindowListener.java Mon Oct 14 09:52:36 2013 -0700 @@ -44,7 +44,7 @@ * * @see WindowAdapter * @see WindowEvent - * @see Tutorial: How to Write Window Listeners + * @see Tutorial: How to Write Window Listeners * * @since 1.1 */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/font/TextAttribute.java --- a/jdk/src/share/classes/java/awt/font/TextAttribute.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/font/TextAttribute.java Mon Oct 14 09:52:36 2013 -0700 @@ -97,10 +97,10 @@ *

    Summary of attributes

    *

    * - * - * + * * * * @@ -115,7 +115,7 @@ * * - * + * * * * @@ -127,7 +127,7 @@ * * * - * + * * * * @@ -139,7 +139,7 @@ * * * - * + * * * * @@ -151,7 +151,7 @@ * * * - * + * * * * @@ -163,7 +163,7 @@ * * * - * + * * * * @@ -175,7 +175,7 @@ * * * - * + * * * * @@ -187,7 +187,7 @@ * * * - * + * * * * @@ -199,7 +199,7 @@ * * * - * + * * * * @@ -211,7 +211,7 @@ * * * - * + * * * * @@ -223,7 +223,7 @@ * * * - * + * * * * @@ -235,7 +235,7 @@ * * * - * + * * * * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/geom/AffineTransform.java --- a/jdk/src/share/classes/java/awt/geom/AffineTransform.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/geom/AffineTransform.java Mon Oct 14 09:52:36 2013 -0700 @@ -47,7 +47,7 @@ * [ 1 ] [ 0 0 1 ] [ 1 ] [ 1 ] * *

    - *

    Handling 90-Degree Rotations

    + *

    Handling 90-Degree Rotations

    *

    * In some variations of the rotate methods in the * AffineTransform class, a double-precision argument diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/geom/Line2D.java --- a/jdk/src/share/classes/java/awt/geom/Line2D.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/geom/Line2D.java Mon Oct 14 09:52:36 2013 -0700 @@ -35,7 +35,7 @@ * default coordinate system called user space in which the y-axis * values increase downward and x-axis values increase to the right. For * more information on the user space coordinate system, see the - * + * * Coordinate Systems section of the Java 2D Programmer's Guide. *

    * This class is only the abstract superclass for all objects that @@ -82,7 +82,7 @@ public float y2; /** - * Constructs and initializes a Line with coordinates (0, 0) -> (0, 0). + * Constructs and initializes a Line with coordinates (0, 0) → (0, 0). * @since 1.2 */ public Float() { @@ -249,7 +249,7 @@ public double y2; /** - * Constructs and initializes a Line with coordinates (0, 0) -> (0, 0). + * Constructs and initializes a Line with coordinates (0, 0) → (0, 0). * @since 1.2 */ public Double() { @@ -623,7 +623,7 @@ * specified line segment * @param y2 the Y coordinate of the end point of the * specified line segment - * @return if this line segment and the specified line segment + * @return {@code } if this line segment and the specified line segment * intersect each other; false otherwise. * @since 1.2 */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/im/InputContext.java --- a/jdk/src/share/classes/java/awt/im/InputContext.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/im/InputContext.java Mon Oct 14 09:52:36 2013 -0700 @@ -118,7 +118,6 @@ * Otherwise, an input method or keyboard layout that supports the requested * locale is selected in an implementation dependent way. * - *

    * * Before switching away from an input method, any currently uncommitted text * is committed. If no input method or keyboard layout supporting the requested diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/im/InputMethodHighlight.java --- a/jdk/src/share/classes/java/awt/im/InputMethodHighlight.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/im/InputMethodHighlight.java Mon Oct 14 09:52:36 2013 -0700 @@ -51,8 +51,8 @@ * mappings from abstract to concrete styles. Currently defined state values * are raw (unconverted) and converted. * These state values are recommended for use before and after the -* main conversion step of text composition, say, before and after kana->kanji -* or pinyin->hanzi conversion. +* main conversion step of text composition, say, before and after kana->kanji +* or pinyin->hanzi conversion. * The variation field allows input methods to express additional * information about the conversion results. *

    diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/peer/ComponentPeer.java --- a/jdk/src/share/classes/java/awt/peer/ComponentPeer.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/peer/ComponentPeer.java Mon Oct 14 09:52:36 2013 -0700 @@ -260,15 +260,6 @@ ColorModel getColorModel(); /** - * Returns the toolkit that is responsible for the component. - * - * @return the toolkit that is responsible for the component - * - * @see Component#getToolkit() - */ - Toolkit getToolkit(); - - /** * Returns a graphics object to paint on the component. * * @return a graphics object to paint on the component diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/peer/TextComponentPeer.java --- a/jdk/src/share/classes/java/awt/peer/TextComponentPeer.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/peer/TextComponentPeer.java Mon Oct 14 09:52:36 2013 -0700 @@ -60,11 +60,11 @@ /** * Sets the content for the text component. * - * @param l the content to set + * @param text the content to set * * @see TextComponent#setText(String) */ - void setText(String l); + void setText(String text); /** * Returns the start index of the current selection. diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/awt/print/PrinterJob.java --- a/jdk/src/share/classes/java/awt/print/PrinterJob.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/awt/print/PrinterJob.java Mon Oct 14 09:52:36 2013 -0700 @@ -98,7 +98,7 @@ * Calling this method is equivalent to calling * {@link javax.print.PrintServiceLookup#lookupPrintServices( * DocFlavor, AttributeSet) - * PrintServiceLookup.lookupPrintServices()} + * PrintServiceLookup.lookupPrintServices()} * and specifying a Pageable DocFlavor. * @return a possibly empty array of 2D print services. * @since 1.4 @@ -136,8 +136,8 @@ * PrinterJob instances which support print services. * Calling this method is equivalent to calling * {@link javax.print.StreamPrintServiceFactory#lookupStreamPrintServiceFactories(DocFlavor, String) - * StreamPrintServiceFactory.lookupStreamPrintServiceFactories() - * } and specifying a Pageable DocFlavor. + * StreamPrintServiceFactory.lookupStreamPrintServiceFactories() + * } and specifying a Pageable DocFlavor. * * @param mimeType the required output format, or null to mean any format. * @return a possibly empty array of 2D stream print service factories. @@ -155,7 +155,7 @@ /** * A PrinterJob object should be created using the - * static {@link #getPrinterJob() getPrinterJob} method. + * static {@link #getPrinterJob() getPrinterJob} method. */ public PrinterJob() { } diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/beans/EventHandler.java --- a/jdk/src/share/classes/java/beans/EventHandler.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/beans/EventHandler.java Mon Oct 14 09:52:36 2013 -0700 @@ -33,6 +33,7 @@ import java.security.PrivilegedAction; import sun.reflect.misc.MethodUtil; +import sun.reflect.misc.ReflectUtil; /** * The EventHandler class provides @@ -677,22 +678,38 @@ * * @see EventHandler */ - @SuppressWarnings("unchecked") public static T create(Class listenerInterface, Object target, String action, String eventPropertyName, String listenerMethodName) { // Create this first to verify target/action are non-null - EventHandler eventHandler = new EventHandler(target, action, + final EventHandler handler = new EventHandler(target, action, eventPropertyName, listenerMethodName); if (listenerInterface == null) { throw new NullPointerException( "listenerInterface must be non-null"); } - return (T)Proxy.newProxyInstance(target.getClass().getClassLoader(), - new Class[] {listenerInterface}, - eventHandler); + final ClassLoader loader = getClassLoader(listenerInterface); + final Class[] interfaces = {listenerInterface}; + return AccessController.doPrivileged(new PrivilegedAction() { + @SuppressWarnings("unchecked") + public T run() { + return (T) Proxy.newProxyInstance(loader, interfaces, handler); + } + }); + } + + private static ClassLoader getClassLoader(Class type) { + ReflectUtil.checkPackageAccess(type); + ClassLoader loader = type.getClassLoader(); + if (loader == null) { + loader = Thread.currentThread().getContextClassLoader(); // avoid use of BCP + if (loader == null) { + loader = ClassLoader.getSystemClassLoader(); + } + } + return loader; } } diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/beans/Introspector.java --- a/jdk/src/share/classes/java/beans/Introspector.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/beans/Introspector.java Mon Oct 14 09:52:36 2013 -0700 @@ -87,7 +87,7 @@ *

    * For more information about introspection and design patterns, please * consult the - * JavaBeans™ specification. + * JavaBeans™ specification. */ public class Introspector { diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/net/URI.java --- a/jdk/src/share/classes/java/net/URI.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/net/URI.java Mon Oct 14 09:52:36 2013 -0700 @@ -188,7 +188,7 @@ * URI * *

    - * {@code http://java.sun.com/j2se/1.3/docs/guide/collections/designfaq.html#28} + * {@code http://docs.oracle.com/javase/1.3/docs/guide/collections/designfaq.html#28} *
    * * Resolving the relative URI @@ -227,7 +227,7 @@ * possible. For example, relativizing the URI * *
    - * {@code http://java.sun.com/j2se/1.3/docs/guide/index.html} + * {@code http://docs.oracle.com/javase/1.3/docs/guide/index.html} *
    * * against the base URI diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/text/DecimalFormat.java --- a/jdk/src/share/classes/java/text/DecimalFormat.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/text/DecimalFormat.java Mon Oct 14 09:52:36 2013 -0700 @@ -371,7 +371,7 @@ * } * } * - * @see Java Tutorial + * @see Java Tutorial * @see NumberFormat * @see DecimalFormatSymbols * @see ParsePosition diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/java/text/SimpleDateFormat.java --- a/jdk/src/share/classes/java/text/SimpleDateFormat.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/java/text/SimpleDateFormat.java Mon Oct 14 09:52:36 2013 -0700 @@ -412,7 +412,7 @@ * If multiple threads access a format concurrently, it must be synchronized * externally. * - * @see Java Tutorial + * @see Java Tutorial * @see java.util.Calendar * @see java.util.TimeZone * @see DateFormat diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/imageio/plugins/bmp/BMPImageWriteParam.java --- a/jdk/src/share/classes/javax/imageio/plugins/bmp/BMPImageWriteParam.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/imageio/plugins/bmp/BMPImageWriteParam.java Mon Oct 14 09:52:36 2013 -0700 @@ -29,6 +29,7 @@ import javax.imageio.ImageWriteParam; import com.sun.imageio.plugins.bmp.BMPConstants; +import com.sun.imageio.plugins.bmp.BMPCompressionTypes; /** * A subclass of ImageWriteParam for encoding images in @@ -78,7 +79,7 @@ super(locale); // Set compression types ("BI_RGB" denotes uncompressed). - compressionTypes = BMPConstants.compressionTypeNames.clone(); + compressionTypes = BMPCompressionTypes.getCompressionTypes(); // Set compression flag. canWriteCompressed = true; diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/management/Descriptor.java --- a/jdk/src/share/classes/javax/management/Descriptor.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/management/Descriptor.java Mon Oct 14 09:52:36 2013 -0700 @@ -319,7 +319,7 @@ * {@code ModelMBeanOperationInfo}, as * well as the chapter "Model MBeans" of the JMX + * href="http://www.oracle.com/technetwork/java/javase/tech/javamanagement-140525.html">JMX * Specification. The following table summarizes these fields. Note * that when the Type in this table is Number, a String that is the decimal * representation of a Long can also be used.

    diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/print/Doc.java --- a/jdk/src/share/classes/javax/print/Doc.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/print/Doc.java Mon Oct 14 09:52:36 2013 -0700 @@ -65,8 +65,8 @@ * representation object "consumes" the print data as the caller obtains the * print data, such as a print data representation object which is a stream. * Once the Print Job has called {@link #getPrintData() - * getPrintData()} and obtained the stream, any further calls to - * {@link #getPrintData() getPrintData()} will return the same + * getPrintData()} and obtained the stream, any further calls to + * {@link #getPrintData() getPrintData()} will return the same * stream object upon which reading may already be in progress, not a new * stream object that will re-read the print data from the beginning. Specifying * a doc object to behave this way simplifies the implementation of doc objects, @@ -83,7 +83,7 @@ * object is constructed. In this case the doc object might provide a "lazy" * implementation that generates the print data representation object (and/or * the print data) only when the Print Job calls for it (when the Print Job - * calls the {@link #getPrintData() getPrintData()} method). + * calls the {@link #getPrintData() getPrintData()} method). *

    * There is no restriction on the number of client threads that may be * simultaneously accessing the same doc. Therefore, all implementations of diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/print/DocFlavor.java --- a/jdk/src/share/classes/javax/print/DocFlavor.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/print/DocFlavor.java Mon Oct 14 09:52:36 2013 -0700 @@ -53,7 +53,7 @@ *

  • * Representation class name. This specifies the fully-qualified name of * the class of the object from which the actual print data comes, as returned - * by the {@link java.lang.Class#getName() Class.getName()} method. + * by the {@link java.lang.Class#getName() Class.getName()} method. * (Thus the class name for byte[] is "[B", for * char[] it is "[C".) * @@ -174,7 +174,7 @@ * platform for data (eg files) stored in that platform's encoding. * A CharSet which corresponds to this and is suitable for use in a * mime-type for a DocFlavor can be obtained - * from {@link DocFlavor#hostEncoding DocFlavor.hostEncoding} + * from {@link DocFlavor#hostEncoding DocFlavor.hostEncoding} * This may not always be the primary IANA name but is guaranteed to be * understood by this VM. * For common flavors, the pre-defined *HOST DocFlavors may be used. @@ -669,7 +669,7 @@ /** * Doc flavor with MIME type = "text/plain", * encoded in the host platform encoding. - * See {@link DocFlavor#hostEncoding hostEncoding} + * See {@link DocFlavor#hostEncoding hostEncoding} * Print data representation class name = * "[B" (byte array). */ @@ -728,7 +728,7 @@ /** * Doc flavor with MIME type = "text/html", * encoded in the host platform encoding. - * See {@link DocFlavor#hostEncoding hostEncoding} + * See {@link DocFlavor#hostEncoding hostEncoding} * Print data representation class name = * "[B" (byte array). */ @@ -838,7 +838,7 @@ /** * Class DocFlavor.INPUT_STREAM provides predefined static constant * DocFlavor objects for example doc flavors using a byte stream ({@link - * java.io.InputStream java.io.InputStream}) as the print + * java.io.InputStream java.io.InputStream}) as the print * data representation class. *

    * @@ -868,7 +868,7 @@ /** * Doc flavor with MIME type = "text/plain", * encoded in the host platform encoding. - * See {@link DocFlavor#hostEncoding hostEncoding} + * See {@link DocFlavor#hostEncoding hostEncoding} * Print data representation class name = * "java.io.InputStream" (byte stream). */ @@ -925,7 +925,7 @@ /** * Doc flavor with MIME type = "text/html", * encoded in the host platform encoding. - * See {@link DocFlavor#hostEncoding hostEncoding} + * See {@link DocFlavor#hostEncoding hostEncoding} * Print data representation class name = * "java.io.InputStream" (byte stream). */ @@ -1041,7 +1041,7 @@ * Class DocFlavor.URL provides predefined static constant DocFlavor * objects. * For example doc flavors using a Uniform Resource Locator ({@link - * java.net.URL java.net.URL}) as the print data + * java.net.URL java.net.URL}) as the print data * representation class. *

    * @@ -1068,7 +1068,7 @@ /** * Doc flavor with MIME type = "text/plain", * encoded in the host platform encoding. - * See {@link DocFlavor#hostEncoding hostEncoding} + * See {@link DocFlavor#hostEncoding hostEncoding} * Print data representation class name = * "java.net.URL" (byte stream). */ @@ -1125,7 +1125,7 @@ /** * Doc flavor with MIME type = "text/html", * encoded in the host platform encoding. - * See {@link DocFlavor#hostEncoding hostEncoding} + * See {@link DocFlavor#hostEncoding hostEncoding} * Print data representation class name = * "java.net.URL" (byte stream). */ @@ -1280,7 +1280,7 @@ /** * Class DocFlavor.STRING provides predefined static constant DocFlavor * objects for example doc flavors using a string ({@link java.lang.String - * java.lang.String}) as the print data representation class. + * java.lang.String}) as the print data representation class. * As such, the character set is Unicode. *

    * @@ -1328,7 +1328,7 @@ /** * Class DocFlavor.READER provides predefined static constant DocFlavor * objects for example doc flavors using a character stream ({@link - * java.io.Reader java.io.Reader}) as the print data + * java.io.Reader java.io.Reader}) as the print data * representation class. As such, the character set is Unicode. *

    * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/print/MultiDoc.java --- a/jdk/src/share/classes/javax/print/MultiDoc.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/print/MultiDoc.java Mon Oct 14 09:52:36 2013 -0700 @@ -39,9 +39,9 @@ * docs. A multidoc object is like a node in the linked list, containing the * current doc in the list and a pointer to the next node (multidoc) in the * list. The Print Job can call the multidoc's {@link #getDoc() - * getDoc()} method to get the current doc. When it's ready to go + * getDoc()} method to get the current doc. When it's ready to go * on to the next doc, the Print Job can call the multidoc's {@link #next() - * next()} method to get the next multidoc, which contains the + * next()} method to get the next multidoc, which contains the * next doc. So Print Job code for accessing a multidoc might look like this: *

      *      void processMultiDoc(MultiDoc theMultiDoc) {
    @@ -88,12 +88,12 @@
     * multiple docs to a Print Job, every Print Service proxy that supports
      * multidoc print jobs is required to access a MultiDoc object using the
      * interleaved pattern. That is, given a MultiDoc object, the print service
    - * proxy will call {@link #getDoc() getDoc()} one or more times
    + * proxy will call {@link #getDoc() getDoc()} one or more times
      * until it successfully obtains the current Doc object. The print service proxy
      * will then obtain the current doc's print data, not proceeding until all the
      * print data is obtained or an unrecoverable error occurs. If it is able to
      * continue, the print service proxy will then call {@link #next()
    - * next()} one or more times until it successfully obtains either
    + * next()} one or more times until it successfully obtains either
      * the next MultiDoc object or an indication that there are no more. An
      * implementation of interface MultiDoc can assume the print service proxy will
      * follow this interleaved pattern; for any other pattern of usage, the MultiDoc
    diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/print/attribute/standard/Finishings.java
    --- a/jdk/src/share/classes/javax/print/attribute/standard/Finishings.java	Mon Oct 14 14:28:50 2013 +0200
    +++ b/jdk/src/share/classes/javax/print/attribute/standard/Finishings.java	Mon Oct 14 09:52:36 2013 -0700
    @@ -42,16 +42,16 @@
      * Standard Finishings values are:
      * 
  • KeyValue TypePrincipal Constants"Default" (use platform default)
    {@link #WEIGHT}NumberWEIGHT_REGULAR, WEIGHT_BOLDWIDTH_CONDENSED, WIDTH_REGULAR,
    WIDTH_EXTENDED
    WIDTH_REGULAR
    {@link #POSTURE}NumberPOSTURE_REGULAR, POSTURE_OBLIQUEnone12.0
    {@link #TRANSFORM}{@link TransformAttribute}See TransformAttribute {@link TransformAttribute#IDENTITY IDENTITY}SUPERSCRIPT_SUPER, SUPERSCRIPT_SUB0 (use the standard glyphs and metrics)
    {@link #FONT}{@link java.awt.Font}nonenonenull (draw text using font glyphs)
    {@link #FOREGROUND}{@link java.awt.Paint}nonenonenull (do not render background)
    {@link #UNDERLINE}IntegerUNDERLINE_ONSTRIKETHROUGH_ONfalse (do not render strikethrough)
    {@link #RUN_DIRECTION}BooleanRUN_DIRECTION_LTR
    RUN_DIRECTION_RTL
    none0 (use base line direction)
    {@link #JUSTIFICATION}NumberJUSTIFICATION_FULL(see class)null (do not apply input highlighting)
    {@link #INPUT_METHOD_UNDERLINE}IntegerUNDERLINE_LOW_ONE_PIXEL,
    UNDERLINE_LOW_TWO_PIXEL
    SWAP_COLORS_ONfalse (do not swap colors)
    {@link #NUMERIC_SHAPING}{@link java.awt.font.NumericShaper}noneKERNING_ON0 (do not request kerning)
    {@link #LIGATURES}IntegerLIGATURES_ON
    * - * - * - * - * * @@ -78,70 +78,70 @@ * corner or an edge as if the document were a portrait document: *
    + * *   * + * * {@link #NONE NONE} * + * * {@link #STAPLE STAPLE} * + * * {@link #EDGE_STITCH EDGE_STITCH} *
    * - * - * - * - * - * * * - * - * - * - * - * * * - * - * - * - * - * * * - * - * - * - * - * * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/print/attribute/standard/JobStateReasons.java --- a/jdk/src/share/classes/javax/print/attribute/standard/JobStateReasons.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/print/attribute/standard/JobStateReasons.java Mon Oct 14 09:52:36 2013 -0700 @@ -110,7 +110,7 @@ * The underlying hash set's initial capacity and load factor are as * specified in the superclass constructor {@link * java.util.HashSet#HashSet(java.util.Collection) - * HashSet(Collection)}. + * HashSet(Collection)}. * * @param collection Collection to copy. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/print/attribute/standard/MediaPrintableArea.java --- a/jdk/src/share/classes/javax/print/attribute/standard/MediaPrintableArea.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/print/attribute/standard/MediaPrintableArea.java Mon Oct 14 09:52:36 2013 -0700 @@ -56,7 +56,7 @@ * any specified finishings. * PrintService provides the method to query the supported * values of an attribute in a suitable context : - * See {@link javax.print.PrintService#getSupportedAttributeValues(Class,DocFlavor, AttributeSet) PrintService.getSupportedAttributeValues()} + * See {@link javax.print.PrintService#getSupportedAttributeValues(Class,DocFlavor, AttributeSet) PrintService.getSupportedAttributeValues()} *

    * The rectangular printable area is defined thus: * The (x,y) origin is positioned at the top-left of the paper in portrait @@ -153,8 +153,8 @@ * Get the printable area as an array of 4 values in the order * x, y, w, h. The values returned are in the given units. * @param units - * Unit conversion factor, e.g. {@link #INCH INCH} or - * {@link #MM MM}. + * Unit conversion factor, e.g. {@link #INCH INCH} or + * {@link #MM MM}. * * @return printable area as array of x, y, w, h in the specified units. * @@ -170,8 +170,8 @@ * Get the x location of the origin of the printable area in the * specified units. * @param units - * Unit conversion factor, e.g. {@link #INCH INCH} or - * {@link #MM MM}. + * Unit conversion factor, e.g. {@link #INCH INCH} or + * {@link #MM MM}. * * @return x location of the origin of the printable area in the * specified units. @@ -187,8 +187,8 @@ * Get the y location of the origin of the printable area in the * specified units. * @param units - * Unit conversion factor, e.g. {@link #INCH INCH} or - * {@link #MM MM}. + * Unit conversion factor, e.g. {@link #INCH INCH} or + * {@link #MM MM}. * * @return y location of the origin of the printable area in the * specified units. @@ -203,8 +203,8 @@ /** * Get the width of the printable area in the specified units. * @param units - * Unit conversion factor, e.g. {@link #INCH INCH} or - * {@link #MM MM}. + * Unit conversion factor, e.g. {@link #INCH INCH} or + * {@link #MM MM}. * * @return width of the printable area in the specified units. * @@ -218,8 +218,8 @@ /** * Get the height of the printable area in the specified units. * @param units - * Unit conversion factor, e.g. {@link #INCH INCH} or - * {@link #MM MM}. + * Unit conversion factor, e.g. {@link #INCH INCH} or + * {@link #MM MM}. * * @return height of the printable area in the specified units. * @@ -292,8 +292,8 @@ * given units. * * @param units - * Unit conversion factor, e.g. {@link #INCH INCH} or - * {@link #MM MM}. + * Unit conversion factor, e.g. {@link #INCH INCH} or + * {@link #MM MM}. * @param unitsName * Units name string, e.g. "in" or "mm". If * null, no units name is appended to the result. diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/print/attribute/standard/MultipleDocumentHandling.java --- a/jdk/src/share/classes/javax/print/attribute/standard/MultipleDocumentHandling.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/print/attribute/standard/MultipleDocumentHandling.java Mon Oct 14 09:52:36 2013 -0700 @@ -71,7 +71,7 @@ *

      *
    • * {@link #SINGLE_DOCUMENT - * SINGLE_DOCUMENT}. If a print job has multiple + * SINGLE_DOCUMENT}. If a print job has multiple * documents -- say, the document data is called a and * b -- then the result of processing all the document data * (a and then b) must be treated as a single sequence @@ -86,7 +86,7 @@ *

      *

    • * {@link #SEPARATE_DOCUMENTS_UNCOLLATED_COPIES - * SEPARATE_DOCUMENTS_UNCOLLATED_COPIES}. If a print job + * SEPARATE_DOCUMENTS_UNCOLLATED_COPIES}. If a print job * has multiple documents -- say, the document data is called a and * b -- then the result of processing the data in each document * instance must be treated as a single sequence of media sheets for finishing @@ -99,7 +99,7 @@ *

      *

    • * {@link #SEPARATE_DOCUMENTS_COLLATED_COPIES - * SEPARATE_DOCUMENTS_COLLATED_COPIES}. If a print job + * SEPARATE_DOCUMENTS_COLLATED_COPIES}. If a print job * has multiple documents -- say, the document data is called a and * b -- then the result of processing the data in each document * instance must be treated as a single sequence of media sheets for finishing @@ -112,7 +112,7 @@ *

      *

    • * {@link #SINGLE_DOCUMENT_NEW_SHEET - * SINGLE_DOCUMENT_NEW_SHEET}. Same as SINGLE_DOCUMENT, + * SINGLE_DOCUMENT_NEW_SHEET}. Same as SINGLE_DOCUMENT, * except that the printer must ensure that the first impression of each * document instance in the job is placed on a new media sheet. This value * allows multiple documents to be stapled together with a single staple where @@ -127,7 +127,7 @@ * next document or document copy on to a new sheet. *

      * In addition, if a {@link Finishings Finishings} attribute of - * {@link Finishings#STAPLE STAPLE} is specified, then: + * {@link Finishings#STAPLE STAPLE} is specified, then: *

        *
      • * With SINGLE_DOCUMENT, documents a and b are diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/print/attribute/standard/PrinterStateReasons.java --- a/jdk/src/share/classes/javax/print/attribute/standard/PrinterStateReasons.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/print/attribute/standard/PrinterStateReasons.java Mon Oct 14 09:52:36 2013 -0700 @@ -129,7 +129,7 @@ * Severity} mappings as the given map. The underlying hash map's initial * capacity and load factor are as specified in the superclass constructor * {@link java.util.HashMap#HashMap(java.util.Map) - * HashMap(Map)}. + * HashMap(Map)}. * * @param map Map to copy. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/print/attribute/standard/Sides.java --- a/jdk/src/share/classes/javax/print/attribute/standard/Sides.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/print/attribute/standard/Sides.java Mon Oct 14 09:52:36 2013 -0700 @@ -134,7 +134,7 @@ * sides of consecutive media sheets, such that the orientation of each * pair of print-stream pages on the medium would be correct for the * reader as if for binding on the long edge. This imposition is also - * known as "duplex" (see {@link #DUPLEX DUPLEX}). + * known as "duplex" (see {@link #DUPLEX DUPLEX}). */ public static final Sides TWO_SIDED_LONG_EDGE = new Sides(1); @@ -143,19 +143,19 @@ * sides of consecutive media sheets, such that the orientation of each * pair of print-stream pages on the medium would be correct for the * reader as if for binding on the short edge. This imposition is also - * known as "tumble" (see {@link #TUMBLE TUMBLE}). + * known as "tumble" (see {@link #TUMBLE TUMBLE}). */ public static final Sides TWO_SIDED_SHORT_EDGE = new Sides(2); /** * An alias for "two sided long edge" (see {@link #TWO_SIDED_LONG_EDGE - * TWO_SIDED_LONG_EDGE}). + * TWO_SIDED_LONG_EDGE}). */ public static final Sides DUPLEX = TWO_SIDED_LONG_EDGE; /** * An alias for "two sided short edge" (see {@link #TWO_SIDED_SHORT_EDGE - * TWO_SIDED_SHORT_EDGE}). + * TWO_SIDED_SHORT_EDGE}). */ public static final Sides TUMBLE = TWO_SIDED_SHORT_EDGE; diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/AbstractAction.java --- a/jdk/src/share/classes/javax/swing/AbstractAction.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/AbstractAction.java Mon Oct 14 09:52:36 2013 -0700 @@ -49,7 +49,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/AbstractButton.java --- a/jdk/src/share/classes/javax/swing/AbstractButton.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/AbstractButton.java Mon Oct 14 09:52:36 2013 -0700 @@ -53,12 +53,12 @@ * configuring a button. Refer to * Swing Components Supporting Action for more * details, and you can find more information in How + * href="http://docs.oracle.com/javase/tutorial/uiswing/misc/action.html">How * to Use Actions, a section in The Java Tutorial. *

        * For further information see * How to Use Buttons, Check Boxes, and Radio Buttons, + href="http://docs.oracle.com/javase/tutorial/uiswing/components/button.html">How to Use Buttons, Check Boxes, and Radio Buttons, * a section in The Java Tutorial. *

        * Warning: @@ -66,7 +66,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -1973,7 +1973,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ @@ -2379,7 +2379,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @since 1.4 diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/AbstractCellEditor.java --- a/jdk/src/share/classes/javax/swing/AbstractCellEditor.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/AbstractCellEditor.java Mon Oct 14 09:52:36 2013 -0700 @@ -43,7 +43,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/AbstractListModel.java --- a/jdk/src/share/classes/javax/swing/AbstractListModel.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/AbstractListModel.java Mon Oct 14 09:52:36 2013 -0700 @@ -38,7 +38,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/BorderFactory.java --- a/jdk/src/share/classes/javax/swing/BorderFactory.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/BorderFactory.java Mon Oct 14 09:52:36 2013 -0700 @@ -35,7 +35,7 @@ * possible, this factory will hand out references to shared * Border instances. * For further information and examples see - * How + * How to Use Borders, * a section in The Java Tutorial. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/BoundedRangeModel.java --- a/jdk/src/share/classes/javax/swing/BoundedRangeModel.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/BoundedRangeModel.java Mon Oct 14 09:52:36 2013 -0700 @@ -71,8 +71,8 @@ * * For an example of specifying custom bounded range models used by sliders, * see The Anatomy of a Swing-Based Program - * in The Java Tutorial. + href="http://www.oracle.com/technetwork/java/architecture-142923.html#separable">Separable model architecture + * in A Swing Architecture Overview. * * @author Hans Muller * @see DefaultBoundedRangeModel diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/Box.java --- a/jdk/src/share/classes/javax/swing/Box.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/Box.java Mon Oct 14 09:52:36 2013 -0700 @@ -60,7 +60,7 @@ * If you are implementing a BoxLayout you * can find further information and examples in * How to Use BoxLayout, + href="http://docs.oracle.com/javase/tutorial/uiswing/layout/box.html">How to Use BoxLayout, * a section in The Java Tutorial. *

        * Warning: @@ -68,7 +68,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -298,7 +298,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/BoxLayout.java --- a/jdk/src/share/classes/javax/swing/BoxLayout.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/BoxLayout.java Mon Oct 14 09:52:36 2013 -0700 @@ -36,12 +36,12 @@ * vertically or horizontally. The components will not wrap so, for * example, a vertical arrangement of components will stay vertically * arranged when the frame is resized. - *

    + * *   * + * * {@link #STAPLE_TOP_LEFT STAPLE_TOP_LEFT} * + * * {@link #EDGE_STITCH_LEFT EDGE_STITCH_LEFT} * + * * {@link #STAPLE_DUAL_LEFT STAPLE_DUAL_LEFT} * + * *   *
    + * *   * + * * {@link #STAPLE_BOTTOM_LEFT STAPLE_BOTTOM_LEFT} * + * * {@link #EDGE_STITCH_TOP EDGE_STITCH_TOP} * + * * {@link #STAPLE_DUAL_TOP STAPLE_DUAL_TOP} * + * *   *
    + * *   * + * * {@link #STAPLE_TOP_RIGHT STAPLE_TOP_RIGHT} * + * * {@link #EDGE_STITCH_RIGHT EDGE_STITCH_RIGHT} * + * * {@link #STAPLE_DUAL_RIGHT STAPLE_DUAL_RIGHT} * + * *   *
    + * *   * + * * {@link #STAPLE_BOTTOM_RIGHT STAPLE_BOTTOM_RIGHT} * + * * {@link #EDGE_STITCH_BOTTOM EDGE_STITCH_BOTTOM} * + * * {@link #STAPLE_DUAL_BOTTOM STAPLE_DUAL_BOTTOM} * + * *   *
    + *
    * * * *
    - *

    The following text describes this graphic. + * WIDTH="191" HEIGHT="201" STYLE="FLOAT:BOTTOM; BORDER:0"> *

    @@ -116,7 +116,7 @@ *

    * For further information and examples see * How to Use BoxLayout, + href="http://docs.oracle.com/javase/tutorial/uiswing/layout/box.html">How to Use BoxLayout, * a section in The Java Tutorial. *

    * Warning: @@ -124,7 +124,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/ButtonGroup.java --- a/jdk/src/share/classes/javax/swing/ButtonGroup.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/ButtonGroup.java Mon Oct 14 09:52:36 2013 -0700 @@ -51,7 +51,7 @@ * Initially, all buttons in the group are unselected. *

    * For examples and further information on using button groups see - * How to Use Radio Buttons, + * How to Use Radio Buttons, * a section in The Java Tutorial. *

    * Warning: @@ -59,7 +59,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/CellRendererPane.java --- a/jdk/src/share/classes/javax/swing/CellRendererPane.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/CellRendererPane.java Mon Oct 14 09:52:36 2013 -0700 @@ -57,7 +57,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/DefaultBoundedRangeModel.java --- a/jdk/src/share/classes/javax/swing/DefaultBoundedRangeModel.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/DefaultBoundedRangeModel.java Mon Oct 14 09:52:36 2013 -0700 @@ -37,7 +37,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/DefaultButtonModel.java --- a/jdk/src/share/classes/javax/swing/DefaultButtonModel.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/DefaultButtonModel.java Mon Oct 14 09:52:36 2013 -0700 @@ -39,7 +39,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/DefaultCellEditor.java --- a/jdk/src/share/classes/javax/swing/DefaultCellEditor.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/DefaultCellEditor.java Mon Oct 14 09:52:36 2013 -0700 @@ -43,7 +43,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/DefaultFocusManager.java --- a/jdk/src/share/classes/javax/swing/DefaultFocusManager.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/DefaultFocusManager.java Mon Oct 14 09:52:36 2013 -0700 @@ -37,7 +37,7 @@ * java.awt.DefaultKeyboardFocusManager instead. *

    * Please see - * + * * How to Use the Focus Subsystem, * a section in The Java Tutorial, and the * Focus Specification diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/DefaultListCellRenderer.java --- a/jdk/src/share/classes/javax/swing/DefaultListCellRenderer.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/DefaultListCellRenderer.java Mon Oct 14 09:52:36 2013 -0700 @@ -63,7 +63,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -337,7 +337,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/DefaultListModel.java --- a/jdk/src/share/classes/javax/swing/DefaultListModel.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/DefaultListModel.java Mon Oct 14 09:52:36 2013 -0700 @@ -44,7 +44,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/DefaultListSelectionModel.java --- a/jdk/src/share/classes/javax/swing/DefaultListSelectionModel.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/DefaultListSelectionModel.java Mon Oct 14 09:52:36 2013 -0700 @@ -41,7 +41,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/DefaultSingleSelectionModel.java --- a/jdk/src/share/classes/javax/swing/DefaultSingleSelectionModel.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/DefaultSingleSelectionModel.java Mon Oct 14 09:52:36 2013 -0700 @@ -37,7 +37,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/FocusManager.java --- a/jdk/src/share/classes/javax/swing/FocusManager.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/FocusManager.java Mon Oct 14 09:52:36 2013 -0700 @@ -34,7 +34,7 @@ * java.awt.DefaultKeyboardFocusManager instead. *

    * Please see - * + * * How to Use the Focus Subsystem, * a section in The Java Tutorial, and the * Focus Specification diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/ImageIcon.java --- a/jdk/src/share/classes/javax/swing/ImageIcon.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/ImageIcon.java Mon Oct 14 09:52:36 2013 -0700 @@ -50,7 +50,7 @@ * *

    * For further information and examples of using image icons, see - * How to Use Icons + * How to Use Icons * in The Java Tutorial. * *

    @@ -59,7 +59,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -555,7 +555,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @since 1.3 diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JApplet.java --- a/jdk/src/share/classes/javax/swing/JApplet.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JApplet.java Mon Oct 14 09:52:36 2013 -0700 @@ -40,7 +40,7 @@ * in The Java Tutorial, * in the section * How to Make Applets. + href="http://docs.oracle.com/javase/tutorial/uiswing/components/applet.html">How to Make Applets. *

    * The JApplet class is slightly incompatible with * java.applet.Applet. JApplet contains a @@ -77,7 +77,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -183,7 +183,7 @@ * are currently typed to {@code JComponent}. *

    * Please see - * + * * How to Use Drag and Drop and Data Transfer, a section in * The Java Tutorial, for more information. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JButton.java --- a/jdk/src/share/classes/javax/swing/JButton.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JButton.java Mon Oct 14 09:52:36 2013 -0700 @@ -48,10 +48,10 @@ * configuring a button. Refer to * Swing Components Supporting Action for more * details, and you can find more information in How + * href="http://docs.oracle.com/javase/tutorial/uiswing/misc/action.html">How * to Use Actions, a section in The Java Tutorial. *

    - * See How to Use Buttons, Check Boxes, and Radio Buttons + * See How to Use Buttons, Check Boxes, and Radio Buttons * in The Java Tutorial * for information and examples of using buttons. *

    @@ -65,7 +65,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -304,7 +304,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JCheckBox.java --- a/jdk/src/share/classes/javax/swing/JCheckBox.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JCheckBox.java Mon Oct 14 09:52:36 2013 -0700 @@ -40,7 +40,7 @@ * An implementation of a check box -- an item that can be selected or * deselected, and which displays its state to the user. * By convention, any number of check boxes in a group can be selected. - * See How to Use Buttons, Check Boxes, and Radio Buttons + * See How to Use Buttons, Check Boxes, and Radio Buttons * in The Java Tutorial * for examples and information on using check boxes. *

    @@ -50,7 +50,7 @@ * configuring a button. Refer to * Swing Components Supporting Action for more * details, and you can find more information in How + * href="http://docs.oracle.com/javase/tutorial/uiswing/misc/action.html">How * to Use Actions, a section in The Java Tutorial. *

    * Warning: Swing is not thread safe. For more @@ -63,7 +63,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -330,7 +330,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JCheckBoxMenuItem.java --- a/jdk/src/share/classes/javax/swing/JCheckBoxMenuItem.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JCheckBoxMenuItem.java Mon Oct 14 09:52:36 2013 -0700 @@ -59,12 +59,12 @@ * configuring a menu item. Refer to * Swing Components Supporting Action for more * details, and you can find more information in How + * href="http://docs.oracle.com/javase/tutorial/uiswing/misc/action.html">How * to Use Actions, a section in The Java Tutorial. *

    * For further information and examples of using check box menu items, * see How to Use Menus, + href="http://docs.oracle.com/javase/tutorial/uiswing/components/menu.html">How to Use Menus, * a section in The Java Tutorial. *

    * Warning: Swing is not thread safe. For more @@ -77,7 +77,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -289,7 +289,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JColorChooser.java --- a/jdk/src/share/classes/javax/swing/JColorChooser.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JColorChooser.java Mon Oct 14 09:52:36 2013 -0700 @@ -42,7 +42,7 @@ * a user to manipulate and select a color. * For information about using color choosers, see * How to Use Color Choosers, + href="http://docs.oracle.com/javase/tutorial/uiswing/components/colorchooser.html">How to Use Color Choosers, * a section in The Java Tutorial. * *

    @@ -69,7 +69,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JComboBox.java --- a/jdk/src/share/classes/javax/swing/JComboBox.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JComboBox.java Mon Oct 14 09:52:36 2013 -0700 @@ -57,13 +57,13 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * *

    - * See How to Use Combo Boxes - * in The Java Tutorial + * See How to Use Combo Boxes + * in The Java Tutorial * for further information. *

    * @see ComboBoxModel @@ -350,9 +350,7 @@ * by the look and feel. Some look and feels always use * heavyweight popups, no matter what the value of this property. *

    - * See the article Mixing Heavy and Light Components - * on - * The Swing Connection + * See the article Mixing Heavy and Light Components * This method fires a property changed event. * * @param aFlag if true, lightweight popups are desired @@ -1610,7 +1608,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JComponent.java --- a/jdk/src/share/classes/javax/swing/JComponent.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JComponent.java Mon Oct 14 09:52:36 2013 -0700 @@ -78,7 +78,7 @@ * that provide a place for other Swing components to paint themselves. * For an explanation of containment hierarchies, see * Swing Components and the Containment Hierarchy, + href="http://docs.oracle.com/javase/tutorial/uiswing/components/toplevel.html">Swing Components and the Containment Hierarchy, * a section in The Java Tutorial. * *

    @@ -92,21 +92,20 @@ * UI delegate -- an object that descends from * {@link javax.swing.plaf.ComponentUI}. * See How + * href="http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html">How * to Set the Look and Feel * in The Java Tutorial * for more information. *

  • Comprehensive keystroke handling. * See the document Keyboard - * Bindings in Swing, - * an article in The Swing Connection, + * href="http://docs.oracle.com/javase/tutorial/uiswing/misc/keybinding.html">How to Use Key Bindings, + * an article in The Java Tutorial, * for more information. *
  • Support for tool tips -- * short descriptions that pop up when the cursor lingers * over a component. * See How + * href="http://docs.oracle.com/javase/tutorial/uiswing/components/tooltip.html">How * to Use Tool Tips * in The Java Tutorial * for more information. @@ -124,15 +123,15 @@ *
  • An infrastructure for painting * that includes double buffering and support for borders. * For more information see Painting and - * How + * href="http://www.oracle.com/technetwork/java/painting-140037.html#swing">Painting and + * How * to Use Borders, * both of which are sections in The Java Tutorial. * * For more information on these subjects, see the * Swing package description * and The Java Tutorial section - * The JComponent Class. + * The JComponent Class. *

    * JComponent and its subclasses document default values * for certain properties. For example, JTable documents the @@ -150,7 +149,7 @@ *

    * In release 1.4, the focus subsystem was rearchitected. * For more information, see - * + * * How to Use the Focus Subsystem, * a section in The Java Tutorial. *

    @@ -164,7 +163,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -1291,7 +1290,7 @@ /** * In release 1.4, the focus subsystem was rearchitected. * For more information, see - * + * * How to Use the Focus Subsystem, * a section in The Java Tutorial. *

    @@ -1353,7 +1352,7 @@ /** * In release 1.4, the focus subsystem was rearchitected. * For more information, see - * + * * How to Use the Focus Subsystem, * a section in The Java Tutorial. *

    @@ -1386,7 +1385,7 @@ /** * In release 1.4, the focus subsystem was rearchitected. * For more information, see - * + * * How to Use the Focus Subsystem, * a section in The Java Tutorial. *

    @@ -1419,7 +1418,7 @@ * all, use the setFocusable method instead. *

    * Please see - * + * * How to Use the Focus Subsystem, * a section in The Java Tutorial, * for more information. @@ -1438,7 +1437,7 @@ * get focus; otherwise returns false. *

    * Please see - * + * * How to Use the Focus Subsystem, * a section in The Java Tutorial, * for more information. @@ -1464,7 +1463,7 @@ * its behavior is platform dependent. Instead we recommend the * use of {@link #requestFocusInWindow() requestFocusInWindow()}. * If you would like more information on focus, see - * + * * How to Use the Focus Subsystem, * a section in The Java Tutorial. * @@ -1487,7 +1486,7 @@ * use of {@link #requestFocusInWindow(boolean) * requestFocusInWindow(boolean)}. * If you would like more information on focus, see - * + * * How to Use the Focus Subsystem, * a section in The Java Tutorial. * @@ -1509,7 +1508,7 @@ * this method. *

    * If you would like more information on focus, see - * + * * How to Use the Focus Subsystem, * a section in The Java Tutorial. * @@ -1530,7 +1529,7 @@ * this method. *

    * If you would like more information on focus, see - * + * * How to Use the Focus Subsystem, * a section in The Java Tutorial. * @@ -2595,7 +2594,7 @@ /** * In release 1.4, the focus subsystem was rearchitected. * For more information, see - * + * * How to Use the Focus Subsystem, * a section in The Java Tutorial. *

    @@ -2986,7 +2985,7 @@ * Registers the text to display in a tool tip. * The text displays when the cursor lingers over the component. *

    - * See How to Use Tool Tips + * See How to Use Tool Tips * in The Java Tutorial * for further documentation. * @@ -3206,7 +3205,7 @@ * default value for the system property is {@code false}. *

    * Please see - * + * * How to Use Drag and Drop and Data Transfer, * a section in The Java Tutorial, for more information. * @@ -3654,7 +3653,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JDesktopPane.java --- a/jdk/src/share/classes/javax/swing/JDesktopPane.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JDesktopPane.java Mon Oct 14 09:52:36 2013 -0700 @@ -63,7 +63,7 @@ * (closing, resizing, etc). *

    * For further documentation and examples see - * How to Use Internal Frames, + * How to Use Internal Frames, * a section in The Java Tutorial. *

    * Warning: Swing is not thread safe. For more @@ -76,7 +76,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -612,7 +612,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JDialog.java --- a/jdk/src/share/classes/javax/swing/JDialog.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JDialog.java Mon Oct 14 09:52:36 2013 -0700 @@ -35,7 +35,7 @@ * For information about creating dialogs, see * The Java Tutorial section * How + href="http://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html">How * to Make Dialogs. * *

    @@ -77,7 +77,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the {@code java.beans} package. * Please see {@link java.beans.XMLEncoder}. * @@ -786,7 +786,7 @@ * are currently typed to {@code JComponent}. *

    * Please see - * + * * How to Use Drag and Drop and Data Transfer, a section in * The Java Tutorial, for more information. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JEditorPane.java --- a/jdk/src/share/classes/javax/swing/JEditorPane.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JEditorPane.java Mon Oct 14 09:52:36 2013 -0700 @@ -43,7 +43,7 @@ /** * A text component to edit various kinds of content. * You can find how-to information and examples of using editor panes in - * Using Text Components, + * Using Text Components, * a section in The Java Tutorial. * *

    @@ -179,7 +179,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -1636,7 +1636,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ @@ -1690,7 +1690,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JFileChooser.java --- a/jdk/src/share/classes/javax/swing/JFileChooser.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JFileChooser.java Mon Oct 14 09:52:36 2013 -0700 @@ -57,7 +57,7 @@ * choose a file. * For information about using JFileChooser, see * How to Use File Choosers, + href="http://docs.oracle.com/javase/tutorial/uiswing/components/filechooser.html">How to Use File Choosers, * a section in The Java Tutorial. * *

    diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JFormattedTextField.java --- a/jdk/src/share/classes/javax/swing/JFormattedTextField.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JFormattedTextField.java Mon Oct 14 09:52:36 2013 -0700 @@ -54,7 +54,7 @@ * configuring what action should be taken when focus is lost. The possible * configurations are: * - * + * *

    Value

    Description

    Value

    Description

    JFormattedTextField.REVERT * Revert the display to match that of getValue, * possibly losing the current edit. @@ -171,7 +171,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JFrame.java --- a/jdk/src/share/classes/javax/swing/JFrame.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JFrame.java Mon Oct 14 09:52:36 2013 -0700 @@ -40,7 +40,7 @@ * You can find task-oriented documentation about using JFrame * in The Java Tutorial, in the section * How to Make Frames. + href="http://docs.oracle.com/javase/tutorial/uiswing/components/frame.html">How to Make Frames. * *

    * The JFrame class is slightly incompatible with Frame. @@ -77,7 +77,7 @@ * For more information on content panes * and other features that root panes provide, * see Using Top-Level Containers in The Java Tutorial. + href="http://docs.oracle.com/javase/tutorial/uiswing/components/toplevel.html">Using Top-Level Containers in The Java Tutorial. *

    * In a multi-screen environment, you can create a JFrame * on a different screen device. See {@link java.awt.Frame} for more @@ -93,7 +93,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -430,7 +430,7 @@ * are currently typed to {@code JComponent}. *

    * Please see - * + * * How to Use Drag and Drop and Data Transfer, a section in * The Java Tutorial, for more information. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JInternalFrame.java --- a/jdk/src/share/classes/javax/swing/JInternalFrame.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JInternalFrame.java Mon Oct 14 09:52:36 2013 -0700 @@ -50,7 +50,7 @@ * resizing, title display, and support for a menu bar. * For task-oriented documentation and examples of using internal frames, * see How to Use Internal Frames, + href="http://docs.oracle.com/javase/tutorial/uiswing/components/internalframe.html" target="_top">How to Use Internal Frames, * a section in The Java Tutorial. * *

    @@ -90,7 +90,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -2029,7 +2029,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ @@ -2144,7 +2144,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -2318,7 +2318,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JLabel.java --- a/jdk/src/share/classes/javax/swing/JLabel.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JLabel.java Mon Oct 14 09:52:36 2013 -0700 @@ -80,7 +80,7 @@ * should appear between the text and the image. * The default is 4 pixels. *

    - * See How to Use Labels + * See How to Use Labels * in The Java Tutorial * for further documentation. *

    @@ -94,7 +94,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -1064,7 +1064,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JLayeredPane.java --- a/jdk/src/share/classes/javax/swing/JLayeredPane.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JLayeredPane.java Mon Oct 14 09:52:36 2013 -0700 @@ -41,15 +41,15 @@ * container, where higher-numbered components sit "on top" of other * components. * For task-oriented documentation and examples of using layered panes see - * How to Use a Layered Pane, + * How to Use a Layered Pane, * a section in The Java Tutorial. *

    - * + *
    * * * *
    - *

    The following text describes this image. + * WIDTH="269" HEIGHT="264" STYLE="FLOAT:BOTTOM; BORDER=0"> *

    @@ -148,7 +148,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -765,7 +765,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JList.java --- a/jdk/src/share/classes/javax/swing/JList.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JList.java Mon Oct 14 09:52:36 2013 -0700 @@ -253,15 +253,13 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. *

    - * See How to Use Lists - * in The Java Tutorial + * See How to Use Lists + * in The Java Tutorial * for further documentation. - * Also see the article Advanced JList Programming - * in The Swing Connection. *

    * @see ListModel * @see AbstractListModel @@ -972,7 +970,7 @@ * * - * + * *

    Value

    Description

    Value

    Description

    VERTICAL * Cells are layed out vertically in a single column. *
    HORIZONTAL_WRAP @@ -2879,7 +2877,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JMenu.java --- a/jdk/src/share/classes/javax/swing/JMenu.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JMenu.java Mon Oct 14 09:52:36 2013 -0700 @@ -76,11 +76,11 @@ * configuring a menu. Refer to * Swing Components Supporting Action for more * details, and you can find more information in How + * href="http://docs.oracle.com/javase/tutorial/uiswing/misc/action.html">How * to Use Actions, a section in The Java Tutorial. *

    * For information and examples of using menus see - * How to Use Menus, + * How to Use Menus, * a section in The Java Tutorial. *

    * Warning: Swing is not thread safe. For more @@ -93,7 +93,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -1149,7 +1149,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ @@ -1386,7 +1386,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JMenuBar.java --- a/jdk/src/share/classes/javax/swing/JMenuBar.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JMenuBar.java Mon Oct 14 09:52:36 2013 -0700 @@ -54,7 +54,7 @@ *

    * For information and examples of using menu bars see * How to Use Menus, + href="http://docs.oracle.com/javase/tutorial/uiswing/components/menu.html">How to Use Menus, * a section in The Java Tutorial. *

    * Warning: Swing is not thread safe. For more @@ -67,7 +67,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. *

    @@ -502,7 +502,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JMenuItem.java --- a/jdk/src/share/classes/javax/swing/JMenuItem.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JMenuItem.java Mon Oct 14 09:52:36 2013 -0700 @@ -54,12 +54,12 @@ * configuring a menu item. Refer to * Swing Components Supporting Action for more * details, and you can find more information in How + * href="http://docs.oracle.com/javase/tutorial/uiswing/misc/action.html">How * to Use Actions, a section in The Java Tutorial. *

    * For further documentation and for examples, see * How to Use Menus + href="http://docs.oracle.com/javase/tutorial/uiswing/components/menu.html">How to Use Menus * in The Java Tutorial. *

    * Warning: Swing is not thread safe. For more @@ -72,7 +72,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -826,7 +826,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JOptionPane.java --- a/jdk/src/share/classes/javax/swing/JOptionPane.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JOptionPane.java Mon Oct 14 09:52:36 2013 -0700 @@ -62,7 +62,7 @@ * prompts users for a value or informs them of something. * For information about using JOptionPane, see * How to Make Dialogs, + href="http://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html">How to Make Dialogs, * a section in The Java Tutorial. * *

    @@ -108,16 +108,16 @@ * the caller until the user's interaction is complete. *

    * - * + *
    * - * - * + * + * * * - * + * * * - * + * * *
    iconmessageiconmessage
    input valueinput value
    option buttonsoption buttons
    * @@ -127,7 +127,7 @@ * ultimately responsible for the final result. In particular, the * look-and-feels will adjust the layout to accommodate the option pane's * ComponentOrientation property. - *
    + *
    *

    * Parameters:
    * The parameters to these methods follow consistent patterns: @@ -298,7 +298,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -2573,7 +2573,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JPanel.java --- a/jdk/src/share/classes/javax/swing/JPanel.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JPanel.java Mon Oct 14 09:52:36 2013 -0700 @@ -39,7 +39,7 @@ * JPanel is a generic lightweight container. * For examples and task-oriented documentation for JPanel, see * How to Use Panels, + href="http://docs.oracle.com/javase/tutorial/uiswing/components/panel.html">How to Use Panels, * a section in The Java Tutorial. *

    * Warning: Swing is not thread safe. For more @@ -52,7 +52,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -229,7 +229,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JPasswordField.java --- a/jdk/src/share/classes/javax/swing/JPasswordField.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JPasswordField.java Mon Oct 14 09:52:36 2013 -0700 @@ -39,7 +39,7 @@ * the editing of a single line of text where the view indicates * something was typed, but does not show the original characters. * You can find further information and examples in - * How to Use Text Fields, + * How to Use Text Fields, * a section in The Java Tutorial. *

    * JPasswordField is intended @@ -64,7 +64,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -399,7 +399,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JPopupMenu.java --- a/jdk/src/share/classes/javax/swing/JPopupMenu.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JPopupMenu.java Mon Oct 14 09:52:36 2013 -0700 @@ -58,7 +58,7 @@ *

    * For information and examples of using popup menus, see * How to Use Menus + href="http://docs.oracle.com/javase/tutorial/uiswing/components/menu.html">How to Use Menus * in The Java Tutorial. *

    * Warning: Swing is not thread safe. For more @@ -71,7 +71,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JProgressBar.java --- a/jdk/src/share/classes/javax/swing/JProgressBar.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JProgressBar.java Mon Oct 14 09:52:36 2013 -0700 @@ -100,7 +100,7 @@ *

    * * For complete examples and further documentation see - * How to Monitor Progress, + * How to Monitor Progress, * a section in The Java Tutorial. * *

    @@ -114,7 +114,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -643,7 +643,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ @@ -910,7 +910,7 @@ *

    * * See - * How to Monitor Progress + * How to Monitor Progress * for examples of using indeterminate progress bars. * * @param newValue true if the progress bar @@ -1031,7 +1031,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JRadioButton.java --- a/jdk/src/share/classes/javax/swing/JRadioButton.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JRadioButton.java Mon Oct 14 09:52:36 2013 -0700 @@ -57,10 +57,10 @@ * configuring a button. Refer to * Swing Components Supporting Action for more * details, and you can find more information in How + * href="http://docs.oracle.com/javase/tutorial/uiswing/misc/action.html">How * to Use Actions, a section in The Java Tutorial. *

    - * See How to Use Buttons, Check Boxes, and Radio Buttons + * See How to Use Buttons, Check Boxes, and Radio Buttons * in The Java Tutorial * for further documentation. *

    @@ -74,7 +74,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -280,7 +280,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JRadioButtonMenuItem.java --- a/jdk/src/share/classes/javax/swing/JRadioButtonMenuItem.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JRadioButtonMenuItem.java Mon Oct 14 09:52:36 2013 -0700 @@ -53,12 +53,12 @@ * configuring a menu item. Refer to * Swing Components Supporting Action for more * details, and you can find more information in How + * href="http://docs.oracle.com/javase/tutorial/uiswing/misc/action.html">How * to Use Actions, a section in The Java Tutorial. *

    * For further documentation and examples see * How to Use Menus, + href="http://docs.oracle.com/javase/tutorial/uiswing/components/menu.html">How to Use Menus, * a section in The Java Tutorial. *

    * Warning: Swing is not thread safe. For more @@ -71,7 +71,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -262,7 +262,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JRootPane.java --- a/jdk/src/share/classes/javax/swing/JRootPane.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JRootPane.java Mon Oct 14 09:52:36 2013 -0700 @@ -43,13 +43,13 @@ * JFrame, JDialog, JWindow, * JApplet, and JInternalFrame. * For task-oriented information on functionality provided by root panes - * see How to Use Root Panes, + * see How to Use Root Panes, * a section in The Java Tutorial. * *

    * The following image shows the relationships between * the classes that use root panes. - *

    The following text describes this graphic.

    * The "heavyweight" components (those that delegate to a peer, or native @@ -69,7 +69,7 @@ * can be used to obtain the JRootPane that contains * a given component. * - * + *
    * *
    * TM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -898,7 +898,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ @@ -1064,7 +1064,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JScrollBar.java --- a/jdk/src/share/classes/javax/swing/JScrollBar.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JScrollBar.java Mon Oct 14 09:52:36 2013 -0700 @@ -67,7 +67,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -838,7 +838,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JScrollPane.java --- a/jdk/src/share/classes/javax/swing/JScrollPane.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JScrollPane.java Mon Oct 14 09:52:36 2013 -0700 @@ -50,16 +50,16 @@ * vertical and horizontal scroll bars, and optional row and * column heading viewports. * You can find task-oriented documentation of JScrollPane in - * How to Use Scroll Panes, + * How to Use Scroll Panes, * a section in The Java Tutorial. Note that * JScrollPane does not support heavyweight components. *

    - * + *
    * * * *
    - *

    The following text describes this image. + * WIDTH="256" HEIGHT="248" STYLE="FLOAT:BOTTOM; BORDER:0px"> *

    @@ -146,7 +146,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -677,7 +677,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -1437,7 +1437,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JSeparator.java --- a/jdk/src/share/classes/javax/swing/JSeparator.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JSeparator.java Mon Oct 14 09:52:36 2013 -0700 @@ -47,7 +47,7 @@ * * For more information and examples see * How to Use Menus, + href="http://docs.oracle.com/javase/tutorial/uiswing/components/menu.html">How to Use Menus, * a section in The Java Tutorial. *

    * Warning: Swing is not thread safe. For more @@ -60,7 +60,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -276,7 +276,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JSlider.java --- a/jdk/src/share/classes/javax/swing/JSlider.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JSlider.java Mon Oct 14 09:52:36 2013 -0700 @@ -55,7 +55,7 @@ *

    * For further information and examples see * How to Use Sliders, + href="http://docs.oracle.com/javase/tutorial/uiswing/components/slider.html">How to Use Sliders, * a section in The Java Tutorial. *

    * Warning: Swing is not thread safe. For more @@ -68,7 +68,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -1425,7 +1425,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JSpinner.java --- a/jdk/src/share/classes/javax/swing/JSpinner.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JSpinner.java Mon Oct 14 09:52:36 2013 -0700 @@ -93,7 +93,7 @@ * *

    * For information and examples of using spinner see - * How to Use Spinners, + * How to Use Spinners, * a section in The Java Tutorial. *

    * Warning: Swing is not thread safe. For more @@ -106,7 +106,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JSplitPane.java --- a/jdk/src/share/classes/javax/swing/JSplitPane.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JSplitPane.java Mon Oct 14 09:52:36 2013 -0700 @@ -49,7 +49,7 @@ * interactively resized by the user. * Information on using JSplitPane is in * How to Use Split Panes in + href="http://docs.oracle.com/javase/tutorial/uiswing/components/splitpane.html">How to Use Split Panes in * The Java Tutorial. *

    * The two Components in a split pane can be aligned @@ -89,7 +89,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -1152,7 +1152,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JTabbedPane.java --- a/jdk/src/share/classes/javax/swing/JTabbedPane.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JTabbedPane.java Mon Oct 14 09:52:36 2013 -0700 @@ -43,7 +43,7 @@ * A component that lets the user switch between a group of components by * clicking on a tab with a given title and/or icon. * For examples and information on using tabbed panes see - * How to Use Tabbed Panes, + * How to Use Tabbed Panes, * a section in The Java Tutorial. *

    * Tabs/components are added to a TabbedPane object by using the @@ -91,7 +91,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -207,7 +207,7 @@ } /** - * Returns the UI object which implements the L&F for this component. + * Returns the UI object which implements the L&F for this component. * * @return a TabbedPaneUI object * @see #setUI @@ -217,7 +217,7 @@ } /** - * Sets the UI object which implements the L&F for this component. + * Sets the UI object which implements the L&F for this component. * * @param ui the new UI object * @see UIDefaults#getUI @@ -250,7 +250,7 @@ /** * Returns the name of the UI class that implements the - * L&F for this component. + * L&F for this component. * * @return the string "TabbedPaneUI" * @see JComponent#getUIClassID @@ -576,7 +576,7 @@ * * @param index the index to be selected * @exception IndexOutOfBoundsException if index is out of range - * (index < -1 || index >= tab count) + * {@code (index < -1 || index >= tab count)} * * @see #getSelectedIndex * @see SingleSelectionModel#setSelectedIndex @@ -924,7 +924,7 @@ * if added to other containers. * @param index the index of the tab to be removed * @exception IndexOutOfBoundsException if index is out of range - * (index < 0 || index >= tab count) + * {@code (index < 0 || index >= tab count)} * * @see #addTab * @see #insertTab @@ -1043,7 +1043,7 @@ * @param index the index of the component to remove from the * tabbedpane * @exception IndexOutOfBoundsException if index is out of range - * (index < 0 || index >= tab count) + * {@code (index < 0 || index >= tab count)} * @see #addTab * @see #removeTabAt */ @@ -1105,7 +1105,7 @@ * @param index the index of the item being queried * @return the title at index * @exception IndexOutOfBoundsException if index is out of range - * (index < 0 || index >= tab count) + * {@code (index < 0 || index >= tab count)} * @see #setTitleAt */ public String getTitleAt(int index) { @@ -1118,7 +1118,7 @@ * @param index the index of the item being queried * @return the icon at index * @exception IndexOutOfBoundsException if index is out of range - * (index < 0 || index >= tab count) + * {@code (index < 0 || index >= tab count)} * * @see #setIconAt */ @@ -1137,7 +1137,7 @@ * @param index the index of the item being queried * @return the icon at index * @exception IndexOutOfBoundsException if index is out of range - * (index < 0 || index >= tab count) + * {@code (index < 0 || index >= tab count)} * * @see #setDisabledIconAt */ @@ -1155,7 +1155,7 @@ * @param index the index of the item being queried * @return a string containing the tool tip text at index * @exception IndexOutOfBoundsException if index is out of range - * (index < 0 || index >= tab count) + * {@code (index < 0 || index >= tab count)} * * @see #setToolTipTextAt * @since 1.3 @@ -1171,7 +1171,7 @@ * @return the Color of the tab background at * index * @exception IndexOutOfBoundsException if index is out of range - * (index < 0 || index >= tab count) + * {@code (index < 0 || index >= tab count)} * * @see #setBackgroundAt */ @@ -1186,7 +1186,7 @@ * @return the Color of the tab foreground at * index * @exception IndexOutOfBoundsException if index is out of range - * (index < 0 || index >= tab count) + * {@code (index < 0 || index >= tab count)} * * @see #setForegroundAt */ @@ -1202,7 +1202,7 @@ * @return true if the tab at index is enabled; * false otherwise * @exception IndexOutOfBoundsException if index is out of range - * (index < 0 || index >= tab count) + * {@code (index < 0 || index >= tab count)} * * @see #setEnabledAt */ @@ -1216,7 +1216,7 @@ * @param index the index of the item being queried * @return the Component at index * @exception IndexOutOfBoundsException if index is out of range - * (index < 0 || index >= tab count) + * {@code (index < 0 || index >= tab count)} * * @see #setComponentAt */ @@ -1281,7 +1281,7 @@ * index is not currently visible in the UI, * or if there is no UI set on this tabbedpane * @exception IndexOutOfBoundsException if index is out of range - * (index < 0 || index >= tab count) + * {@code (index < 0 || index >= tab count)} */ public Rectangle getBoundsAt(int index) { checkIndex(index); @@ -1303,7 +1303,7 @@ * @param index the tab index where the title should be set * @param title the title to be displayed in the tab * @exception IndexOutOfBoundsException if index is out of range - * (index < 0 || index >= tab count) + * {@code (index < 0 || index >= tab count)} * * @see #getTitleAt * @see #setTabComponentAt @@ -1345,7 +1345,7 @@ * @param index the tab index where the icon should be set * @param icon the icon to be displayed in the tab * @exception IndexOutOfBoundsException if index is out of range - * (index < 0 || index >= tab count) + * {@code (index < 0 || index >= tab count)} * * @see #setDisabledIconAt * @see #getIconAt @@ -1389,7 +1389,7 @@ * @param index the tab index where the disabled icon should be set * @param disabledIcon the icon to be displayed in the tab when disabled * @exception IndexOutOfBoundsException if index is out of range - * (index < 0 || index >= tab count) + * {@code (index < 0 || index >= tab count)} * * @see #getDisabledIconAt * @beaninfo @@ -1414,7 +1414,7 @@ * @param index the tab index where the tooltip text should be set * @param toolTipText the tooltip text to be displayed for the tab * @exception IndexOutOfBoundsException if index is out of range - * (index < 0 || index >= tab count) + * {@code (index < 0 || index >= tab count)} * * @see #getToolTipTextAt * @beaninfo @@ -1443,14 +1443,14 @@ * which can be null, in which case the tab's background color * will default to the background color of the tabbedpane. * An internal exception is raised if there is no tab at that index. - *

    + *

    * It is up to the look and feel to honor this property, some may * choose to ignore it. * * @param index the tab index where the background should be set * @param background the color to be displayed in the tab's background * @exception IndexOutOfBoundsException if index is out of range - * (index < 0 || index >= tab count) + * {@code (index < 0 || index >= tab count)} * * @see #getBackgroundAt * @beaninfo @@ -1476,14 +1476,14 @@ * null, in which case the tab's foreground color * will default to the foreground color of this tabbedpane. * An internal exception is raised if there is no tab at that index. - *

    + *

    * It is up to the look and feel to honor this property, some may * choose to ignore it. * * @param index the tab index where the foreground should be set * @param foreground the color to be displayed as the tab's foreground * @exception IndexOutOfBoundsException if index is out of range - * (index < 0 || index >= tab count) + * {@code (index < 0 || index >= tab count)} * * @see #getForegroundAt * @beaninfo @@ -1510,7 +1510,7 @@ * @param index the tab index which should be enabled/disabled * @param enabled whether or not the tab should be enabled * @exception IndexOutOfBoundsException if index is out of range - * (index < 0 || index >= tab count) + * {@code (index < 0 || index >= tab count)} * * @see #isEnabledAt */ @@ -1530,7 +1530,7 @@ * @param index the tab index where this component is being placed * @param component the component for the tab * @exception IndexOutOfBoundsException if index is out of range - * (index < 0 || index >= tab count) + * {@code (index < 0 || index >= tab count)} * * @see #getComponentAt * @beaninfo @@ -1605,8 +1605,8 @@ * @param tabIndex the index of the tab that the mnemonic refers to * @param mnemonicIndex index into the String to underline * @exception IndexOutOfBoundsException if tabIndex is - * out of range (tabIndex < 0 || tabIndex >= tab - * count) + * out of range ({@code tabIndex < 0 || tabIndex >= tab + * count}) * @exception IllegalArgumentException will be thrown if * mnemonicIndex is >= length of the tab * title , or < -1 @@ -1649,7 +1649,7 @@ * @param tabIndex the index of the tab that the mnemonic refers to * @param mnemonic the key code which represents the mnemonic * @exception IndexOutOfBoundsException if tabIndex is out - * of range (tabIndex < 0 || tabIndex >= tab count) + * of range ({@code tabIndex < 0 || tabIndex >= tab count}) * @see #getMnemonicAt(int) * @see #setDisplayedMnemonicIndexAt(int,int) * @@ -1885,7 +1885,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ @@ -2354,7 +2354,7 @@ * @param component the component to render the title for the * specified tab * @exception IndexOutOfBoundsException if index is out of range - * (index < 0 || index >= tab count) + * {@code (index < 0 || index >= tab count)} * @exception IllegalArgumentException if component has already been * added to this JTabbedPane * @@ -2386,7 +2386,7 @@ * @param index the index of the item being queried * @return the tab component at index * @exception IndexOutOfBoundsException if index is out of range - * (index < 0 || index >= tab count) + * {@code (index < 0 || index >= tab count)} * * @see #setTabComponentAt * @since 1.6 diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JTable.java --- a/jdk/src/share/classes/javax/swing/JTable.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JTable.java Mon Oct 14 09:52:36 2013 -0700 @@ -62,7 +62,7 @@ /** * The JTable is used to display and edit regular two-dimensional tables * of cells. - * See How to Use Tables + * See How to Use Tables * in The Java Tutorial * for task-oriented documentation and examples of using JTable. * @@ -200,7 +200,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -2489,7 +2489,7 @@ * The default value of this property is defined by the look * and feel implementation. *

    - * This is a JavaBeans bound property. + * This is a JavaBeans bound property. * * @param selectionForeground the Color to use in the foreground * for selected list items @@ -2527,7 +2527,7 @@ * The default value of this property is defined by the look * and feel implementation. *

    - * This is a JavaBeans bound property. + * This is a JavaBeans bound property. * * @param selectionBackground the Color to use for the background * of selected cells @@ -6575,7 +6575,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JTextArea.java --- a/jdk/src/share/classes/javax/swing/JTextArea.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JTextArea.java Mon Oct 14 09:52:36 2013 -0700 @@ -44,7 +44,7 @@ * compatibility with the java.awt.TextArea class where it can * reasonably do so. * You can find information and examples of using all the text components in - * Using Text Components, + * Using Text Components, * a section in The Java Tutorial. * *

    @@ -112,7 +112,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -783,7 +783,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JTextField.java --- a/jdk/src/share/classes/javax/swing/JTextField.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JTextField.java Mon Oct 14 09:52:36 2013 -0700 @@ -44,7 +44,7 @@ * of a single line of text. * For information on and examples of using text fields, * see - * How to Use Text Fields + * How to Use Text Fields * in The Java Tutorial. * *

    @@ -148,7 +148,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -939,7 +939,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JTextPane.java --- a/jdk/src/share/classes/javax/swing/JTextPane.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JTextPane.java Mon Oct 14 09:52:36 2013 -0700 @@ -39,7 +39,7 @@ * A text component that can be marked up with attributes that are * represented graphically. * You can find how-to information and examples of using text panes in - * Using Text Components, + * Using Text Components, * a section in The Java Tutorial. * *

    @@ -68,7 +68,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JToggleButton.java --- a/jdk/src/share/classes/javax/swing/JToggleButton.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JToggleButton.java Mon Oct 14 09:52:36 2013 -0700 @@ -42,7 +42,7 @@ * are subclasses of this class. * For information on using them see * How to Use Buttons, Check Boxes, and Radio Buttons, + href="http://docs.oracle.com/javase/tutorial/uiswing/components/button.html">How to Use Buttons, Check Boxes, and Radio Buttons, * a section in The Java Tutorial. *

    * Buttons can be configured, and to some degree controlled, by @@ -51,7 +51,7 @@ * configuring a button. Refer to * Swing Components Supporting Action for more * details, and you can find more information in How + * href="http://docs.oracle.com/javase/tutorial/uiswing/misc/action.html">How * to Use Actions, a section in The Java Tutorial. *

    * Warning: Swing is not thread safe. For more @@ -64,7 +64,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -218,7 +218,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ @@ -380,7 +380,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JToolBar.java --- a/jdk/src/share/classes/javax/swing/JToolBar.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JToolBar.java Mon Oct 14 09:52:36 2013 -0700 @@ -52,7 +52,7 @@ * JToolBar provides a component that is useful for * displaying commonly used Actions or controls. * For examples and information on using tool bars see - * How to Use Tool Bars, + * How to Use Tool Bars, * a section in The Java Tutorial. * *

    @@ -74,7 +74,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JToolTip.java --- a/jdk/src/share/classes/javax/swing/JToolTip.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JToolTip.java Mon Oct 14 09:52:36 2013 -0700 @@ -44,7 +44,7 @@ * display can override JComponent's createToolTip * method and use a subclass of this class. *

    - * See How to Use Tool Tips + * See How to Use Tool Tips * in The Java Tutorial * for further documentation. *

    @@ -58,7 +58,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -254,7 +254,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JTree.java --- a/jdk/src/share/classes/javax/swing/JTree.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JTree.java Mon Oct 14 09:52:36 2013 -0700 @@ -44,7 +44,7 @@ * * A control that displays a set of hierarchical data as an outline. * You can find task-oriented documentation and examples of using trees in - * How to Use Trees, + * How to Use Trees, * a section in The Java Tutorial. *

    * A specific node in a tree can be identified either by a @@ -130,7 +130,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. *

    @@ -3238,7 +3238,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ @@ -3360,7 +3360,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ @@ -3861,7 +3861,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ @@ -4093,7 +4093,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JViewport.java --- a/jdk/src/share/classes/javax/swing/JViewport.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JViewport.java Mon Oct 14 09:52:36 2013 -0700 @@ -94,7 +94,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -1292,7 +1292,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ @@ -1761,7 +1761,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/JWindow.java --- a/jdk/src/share/classes/javax/swing/JWindow.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/JWindow.java Mon Oct 14 09:52:36 2013 -0700 @@ -76,7 +76,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -314,7 +314,7 @@ * are currently typed to {@code JComponent}. *

    * Please see - * + * * How to Use Drag and Drop and Data Transfer, a section in * The Java Tutorial, for more information. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/KeyStroke.java --- a/jdk/src/share/classes/javax/swing/KeyStroke.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/KeyStroke.java Mon Oct 14 09:52:36 2013 -0700 @@ -51,7 +51,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/LookAndFeel.java --- a/jdk/src/share/classes/javax/swing/LookAndFeel.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/LookAndFeel.java Mon Oct 14 09:52:36 2013 -0700 @@ -91,7 +91,7 @@ * to provide a specific set of defaults. These are documented in the * classes that require the specific default. * - *

    ComponentUIs and defaults

    + *

    ComponentUIs and defaults

    * * All {@code ComponentUIs} typically need to set various properties * on the {@code JComponent} the {@code ComponentUI} is providing the @@ -590,7 +590,7 @@ * Distinct look and feels should have different names, e.g. * a subclass of MotifLookAndFeel that changes the way a few components * are rendered should be called "CDE/Motif My Way"; something - * that would be useful to a user trying to select a L&F from a list + * that would be useful to a user trying to select a L&F from a list * of names. * * @return short identifier for the look and feel diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/OverlayLayout.java --- a/jdk/src/share/classes/javax/swing/OverlayLayout.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/OverlayLayout.java Mon Oct 14 09:52:36 2013 -0700 @@ -45,7 +45,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/ProgressMonitor.java --- a/jdk/src/share/classes/javax/swing/ProgressMonitor.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/ProgressMonitor.java Mon Oct 14 09:52:36 2013 -0700 @@ -71,7 +71,7 @@ * * For further documentation and examples see * How to Monitor Progress, + href="http://docs.oracle.com/javase/tutorial/uiswing/components/progress.html">How to Monitor Progress, * a section in The Java Tutorial. * * @see ProgressMonitorInputStream diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/ProgressMonitorInputStream.java --- a/jdk/src/share/classes/javax/swing/ProgressMonitorInputStream.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/ProgressMonitorInputStream.java Mon Oct 14 09:52:36 2013 -0700 @@ -54,7 +54,7 @@ *

    * * For further documentation and examples see - * How to Monitor Progress, + * How to Monitor Progress, * a section in The Java Tutorial. * * @see ProgressMonitor diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/ScrollPaneLayout.java --- a/jdk/src/share/classes/javax/swing/ScrollPaneLayout.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/ScrollPaneLayout.java Mon Oct 14 09:52:36 2013 -0700 @@ -48,7 +48,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/SizeRequirements.java --- a/jdk/src/share/classes/javax/swing/SizeRequirements.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/SizeRequirements.java Mon Oct 14 09:52:36 2013 -0700 @@ -81,7 +81,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/Spring.java --- a/jdk/src/share/classes/javax/swing/Spring.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/Spring.java Mon Oct 14 09:52:36 2013 -0700 @@ -109,7 +109,7 @@ * If you are implementing a SpringLayout you * can find further information and examples in * How to Use SpringLayout, + href="http://docs.oracle.com/javase/tutorial/uiswing/layout/spring.html">How to Use SpringLayout, * a section in The Java Tutorial. *

    * Warning: @@ -117,7 +117,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/SpringLayout.java --- a/jdk/src/share/classes/javax/swing/SpringLayout.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/SpringLayout.java Mon Oct 14 09:52:36 2013 -0700 @@ -36,7 +36,7 @@ /** * A SpringLayout lays out the children of its associated container * according to a set of constraints. - * See How to Use SpringLayout + * See How to Use SpringLayout * in The Java Tutorial for examples of using * SpringLayout. * @@ -172,7 +172,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/SwingUtilities.java --- a/jdk/src/share/classes/javax/swing/SwingUtilities.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/SwingUtilities.java Mon Oct 14 09:52:36 2013 -0700 @@ -1280,7 +1280,7 @@ *

    * Additional documentation and examples for this method can be * found in - * Concurrency in Swing. + * Concurrency in Swing. *

    * As of 1.3 this method is just a cover for java.awt.EventQueue.invokeLater(). *

    @@ -1331,7 +1331,7 @@ *

    * Additional documentation and examples for this method can be * found in - * Concurrency in Swing. + * Concurrency in Swing. *

    * As of 1.3 this method is just a cover for * java.awt.EventQueue.invokeAndWait(). diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/SwingWorker.java --- a/jdk/src/share/classes/javax/swing/SwingWorker.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/SwingWorker.java Mon Oct 14 09:52:36 2013 -0700 @@ -50,7 +50,7 @@ * When writing a multi-threaded application using Swing, there are * two constraints to keep in mind: * (refer to - * + * * Concurrency in Swing * for more details): *

      diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/Timer.java --- a/jdk/src/share/classes/javax/swing/Timer.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/Timer.java Mon Oct 14 09:52:36 2013 -0700 @@ -121,7 +121,7 @@ *

      * You can find further documentation * and several examples of using timers by visiting - * How to Use Timers, * a section in The Java Tutorial. * For more examples and help in choosing between @@ -137,7 +137,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/TransferHandler.java --- a/jdk/src/share/classes/javax/swing/TransferHandler.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/TransferHandler.java Mon Oct 14 09:52:36 2013 -0700 @@ -75,7 +75,7 @@ * of the transfer, and setForeground for the target of a transfer. *

      * Please see - * + * * How to Use Drag and Drop and Data Transfer, * a section in The Java Tutorial, for more information. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/UIDefaults.java --- a/jdk/src/share/classes/javax/swing/UIDefaults.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/UIDefaults.java Mon Oct 14 09:52:36 2013 -0700 @@ -64,7 +64,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/UIManager.java --- a/jdk/src/share/classes/javax/swing/UIManager.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/UIManager.java Mon Oct 14 09:52:36 2013 -0700 @@ -167,7 +167,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/UnsupportedLookAndFeelException.java --- a/jdk/src/share/classes/javax/swing/UnsupportedLookAndFeelException.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/UnsupportedLookAndFeelException.java Mon Oct 14 09:52:36 2013 -0700 @@ -33,7 +33,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/ViewportLayout.java --- a/jdk/src/share/classes/javax/swing/ViewportLayout.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/ViewportLayout.java Mon Oct 14 09:52:36 2013 -0700 @@ -50,7 +50,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/WindowConstants.java --- a/jdk/src/share/classes/javax/swing/WindowConstants.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/WindowConstants.java Mon Oct 14 09:52:36 2013 -0700 @@ -36,7 +36,7 @@ * use these constants. * For examples of setting the default window-closing operation, see * Responding to Window-Closing Events, + href="http://docs.oracle.com/javase/tutorial/uiswing/components/frame.html#windowevents">Responding to Window-Closing Events, * a section in The Java Tutorial. * @see JFrame#setDefaultCloseOperation(int) * @see JDialog#setDefaultCloseOperation(int) diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/border/AbstractBorder.java --- a/jdk/src/share/classes/javax/swing/border/AbstractBorder.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/border/AbstractBorder.java Mon Oct 14 09:52:36 2013 -0700 @@ -40,7 +40,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/border/BevelBorder.java --- a/jdk/src/share/classes/javax/swing/border/BevelBorder.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/border/BevelBorder.java Mon Oct 14 09:52:36 2013 -0700 @@ -38,7 +38,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/border/Border.java --- a/jdk/src/share/classes/javax/swing/border/Border.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/border/Border.java Mon Oct 14 09:52:36 2013 -0700 @@ -33,7 +33,7 @@ * Interface describing an object capable of rendering a border * around the edges of a swing component. * For examples of using borders see - * How to Use Borders, + * How to Use Borders, * a section in The Java Tutorial. *

      * In the Swing component set, borders supercede Insets as the diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/border/CompoundBorder.java --- a/jdk/src/share/classes/javax/swing/border/CompoundBorder.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/border/CompoundBorder.java Mon Oct 14 09:52:36 2013 -0700 @@ -37,18 +37,18 @@ * For example, this class may be used to add blank margin space * to a component with an existing decorative border: *

      - *

      + * 
        *    Border border = comp.getBorder();
        *    Border margin = new EmptyBorder(10,10,10,10);
        *    comp.setBorder(new CompoundBorder(border, margin));
      - * 
      + *
      *

      * Warning: * Serialized objects of this class will not be compatible with * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/border/EmptyBorder.java --- a/jdk/src/share/classes/javax/swing/border/EmptyBorder.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/border/EmptyBorder.java Mon Oct 14 09:52:36 2013 -0700 @@ -40,7 +40,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/border/EtchedBorder.java --- a/jdk/src/share/classes/javax/swing/border/EtchedBorder.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/border/EtchedBorder.java Mon Oct 14 09:52:36 2013 -0700 @@ -44,7 +44,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/border/LineBorder.java --- a/jdk/src/share/classes/javax/swing/border/LineBorder.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/border/LineBorder.java Mon Oct 14 09:52:36 2013 -0700 @@ -44,7 +44,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/border/MatteBorder.java --- a/jdk/src/share/classes/javax/swing/border/MatteBorder.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/border/MatteBorder.java Mon Oct 14 09:52:36 2013 -0700 @@ -40,7 +40,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/border/SoftBevelBorder.java --- a/jdk/src/share/classes/javax/swing/border/SoftBevelBorder.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/border/SoftBevelBorder.java Mon Oct 14 09:52:36 2013 -0700 @@ -40,7 +40,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/border/TitledBorder.java --- a/jdk/src/share/classes/javax/swing/border/TitledBorder.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/border/TitledBorder.java Mon Oct 14 09:52:36 2013 -0700 @@ -60,7 +60,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/colorchooser/AbstractColorChooserPanel.java --- a/jdk/src/share/classes/javax/swing/colorchooser/AbstractColorChooserPanel.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/colorchooser/AbstractColorChooserPanel.java Mon Oct 14 09:52:36 2013 -0700 @@ -40,7 +40,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -85,7 +85,7 @@ /** * Provides a hint to the look and feel as to the * KeyEvent.VK constant that can be used as a mnemonic to - * access the panel. A return value <= 0 indicates there is no mnemonic. + * access the panel. A return value <= 0 indicates there is no mnemonic. *

      * The return value here is a hint, it is ultimately up to the look * and feel to honor the return value in some meaningful way. @@ -94,7 +94,7 @@ * AbstractColorChooserPanel does not support a mnemonic, * subclasses wishing a mnemonic will need to override this. * - * @return KeyEvent.VK constant identifying the mnemonic; <= 0 for no + * @return KeyEvent.VK constant identifying the mnemonic; <= 0 for no * mnemonic * @see #getDisplayedMnemonicIndex * @since 1.4 @@ -107,7 +107,7 @@ * Provides a hint to the look and feel as to the index of the character in * getDisplayName that should be visually identified as the * mnemonic. The look and feel should only use this if - * getMnemonic returns a value > 0. + * getMnemonic returns a value > 0. *

      * The return value here is a hint, it is ultimately up to the look * and feel to honor the return value in some meaningful way. For example, diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/colorchooser/ColorChooserComponentFactory.java --- a/jdk/src/share/classes/javax/swing/colorchooser/ColorChooserComponentFactory.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/colorchooser/ColorChooserComponentFactory.java Mon Oct 14 09:52:36 2013 -0700 @@ -37,7 +37,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/colorchooser/DefaultPreviewPanel.java --- a/jdk/src/share/classes/javax/swing/colorchooser/DefaultPreviewPanel.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/colorchooser/DefaultPreviewPanel.java Mon Oct 14 09:52:36 2013 -0700 @@ -46,7 +46,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/colorchooser/DefaultSwatchChooserPanel.java --- a/jdk/src/share/classes/javax/swing/colorchooser/DefaultSwatchChooserPanel.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/colorchooser/DefaultSwatchChooserPanel.java Mon Oct 14 09:52:36 2013 -0700 @@ -45,7 +45,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/event/AncestorEvent.java --- a/jdk/src/share/classes/javax/swing/event/AncestorEvent.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/event/AncestorEvent.java Mon Oct 14 09:52:36 2013 -0700 @@ -37,7 +37,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/event/CaretEvent.java --- a/jdk/src/share/classes/javax/swing/event/CaretEvent.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/event/CaretEvent.java Mon Oct 14 09:52:36 2013 -0700 @@ -36,7 +36,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -56,7 +56,7 @@ /** * Fetches the location of the caret. * - * @return the dot >= 0 + * @return the dot >= 0 */ public abstract int getDot(); @@ -65,7 +65,7 @@ * selection. If there is no selection, this * will be the same as dot. * - * @return the mark >= 0 + * @return the mark >= 0 */ public abstract int getMark(); } diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/event/ChangeEvent.java --- a/jdk/src/share/classes/javax/swing/event/ChangeEvent.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/event/ChangeEvent.java Mon Oct 14 09:52:36 2013 -0700 @@ -36,7 +36,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/event/DocumentEvent.java --- a/jdk/src/share/classes/javax/swing/event/DocumentEvent.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/event/DocumentEvent.java Mon Oct 14 09:52:36 2013 -0700 @@ -45,14 +45,14 @@ * Returns the offset within the document of the start * of the change. * - * @return the offset >= 0 + * @return the offset >= 0 */ public int getOffset(); /** * Returns the length of the change. * - * @return the length >= 0 + * @return the length >= 0 */ public int getLength(); @@ -155,7 +155,7 @@ * This is the location that children were added * and/or removed. * - * @return the index >= 0 + * @return the index >= 0 */ public int getIndex(); diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/event/EventListenerList.java --- a/jdk/src/share/classes/javax/swing/event/EventListenerList.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/event/EventListenerList.java Mon Oct 14 09:52:36 2013 -0700 @@ -69,7 +69,7 @@ * Object[] listeners = listenerList.getListenerList(); * // Process the listeners last to first, notifying * // those that are interested in this event - * for (int i = listeners.length-2; i>=0; i-=2) { + * for (int i = listeners.length-2; i>=0; i-=2) { * if (listeners[i]==FooListener.class) { * // Lazily create the event: * if (fooEvent == null) @@ -88,7 +88,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/event/HyperlinkEvent.java --- a/jdk/src/share/classes/javax/swing/event/HyperlinkEvent.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/event/HyperlinkEvent.java Mon Oct 14 09:52:36 2013 -0700 @@ -39,7 +39,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/event/InternalFrameAdapter.java --- a/jdk/src/share/classes/javax/swing/event/InternalFrameAdapter.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/event/InternalFrameAdapter.java Mon Oct 14 09:52:36 2013 -0700 @@ -31,7 +31,7 @@ * convenience for creating listener objects, and is functionally * equivalent to the WindowAdapter class in the AWT. *

      - * See How to Write an Internal Frame Listener + * See How to Write an Internal Frame Listener * in The Java Tutorial * * @see InternalFrameEvent diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/event/InternalFrameEvent.java --- a/jdk/src/share/classes/javax/swing/event/InternalFrameEvent.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/event/InternalFrameEvent.java Mon Oct 14 09:52:36 2013 -0700 @@ -34,7 +34,7 @@ * although different IDs are used. * Help on handling internal frame events * is in - * How to Write an Internal Frame Listener, + * How to Write an Internal Frame Listener, * a section in The Java Tutorial. *

      * Warning: @@ -42,7 +42,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/event/InternalFrameListener.java --- a/jdk/src/share/classes/javax/swing/event/InternalFrameListener.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/event/InternalFrameListener.java Mon Oct 14 09:52:36 2013 -0700 @@ -32,7 +32,7 @@ * This class is functionally equivalent to the WindowListener class * in the AWT. *

      - * See How to Write an Internal Frame Listener + * See How to Write an Internal Frame Listener * in The Java Tutorial for further documentation. * * @see java.awt.event.WindowListener diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/event/ListDataEvent.java --- a/jdk/src/share/classes/javax/swing/event/ListDataEvent.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/event/ListDataEvent.java Mon Oct 14 09:52:36 2013 -0700 @@ -36,7 +36,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -85,9 +85,9 @@ public int getIndex1() { return index1; } /** - * Constructs a ListDataEvent object. If index0 is > + * Constructs a ListDataEvent object. If index0 is > * index1, index0 and index1 will be swapped such that - * index0 will always be <= index1. + * index0 will always be <= index1. * * @param source the source Object (typically this) * @param type an int specifying {@link #CONTENTS_CHANGED}, diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/event/ListSelectionEvent.java --- a/jdk/src/share/classes/javax/swing/event/ListSelectionEvent.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/event/ListSelectionEvent.java Mon Oct 14 09:52:36 2013 -0700 @@ -42,7 +42,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/event/MenuDragMouseEvent.java --- a/jdk/src/share/classes/javax/swing/event/MenuDragMouseEvent.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/event/MenuDragMouseEvent.java Mon Oct 14 09:52:36 2013 -0700 @@ -41,7 +41,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/event/MenuEvent.java --- a/jdk/src/share/classes/javax/swing/event/MenuEvent.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/event/MenuEvent.java Mon Oct 14 09:52:36 2013 -0700 @@ -37,7 +37,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/event/MenuKeyEvent.java --- a/jdk/src/share/classes/javax/swing/event/MenuKeyEvent.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/event/MenuKeyEvent.java Mon Oct 14 09:52:36 2013 -0700 @@ -41,7 +41,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/event/PopupMenuEvent.java --- a/jdk/src/share/classes/javax/swing/event/PopupMenuEvent.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/event/PopupMenuEvent.java Mon Oct 14 09:52:36 2013 -0700 @@ -35,7 +35,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/event/TableColumnModelEvent.java --- a/jdk/src/share/classes/javax/swing/event/TableColumnModelEvent.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/event/TableColumnModelEvent.java Mon Oct 14 09:52:36 2013 -0700 @@ -38,7 +38,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/event/TableModelEvent.java --- a/jdk/src/share/classes/javax/swing/event/TableModelEvent.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/event/TableModelEvent.java Mon Oct 14 09:52:36 2013 -0700 @@ -57,7 +57,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/event/TreeExpansionEvent.java --- a/jdk/src/share/classes/javax/swing/event/TreeExpansionEvent.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/event/TreeExpansionEvent.java Mon Oct 14 09:52:36 2013 -0700 @@ -34,15 +34,15 @@ *

      * For further documentation and examples see * the following sections in The Java Tutorial: - * How to Write a Tree Expansion Listener and - * How to Write a Tree-Will-Expand Listener. + * How to Write a Tree Expansion Listener and + * How to Write a Tree-Will-Expand Listener. *

      * Warning: * Serialized objects of this class will not be compatible with * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/event/TreeExpansionListener.java --- a/jdk/src/share/classes/javax/swing/event/TreeExpansionListener.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/event/TreeExpansionListener.java Mon Oct 14 09:52:36 2013 -0700 @@ -32,7 +32,7 @@ * a node. * For further documentation and examples see * How to Write a Tree Expansion Listener, + href="http://docs.oracle.com/javase/tutorial/uiswing/events/treeexpansionlistener.html">How to Write a Tree Expansion Listener, * a section in The Java Tutorial. * * @author Scott Violet diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/event/TreeModelEvent.java --- a/jdk/src/share/classes/javax/swing/event/TreeModelEvent.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/event/TreeModelEvent.java Mon Oct 14 09:52:36 2013 -0700 @@ -34,7 +34,7 @@ * used to notify tree model listeners of the change. * For more information and examples see * How to Write a Tree Model Listener, + href="http://docs.oracle.com/javase/tutorial/uiswing/events/treemodellistener.html">How to Write a Tree Model Listener, * a section in The Java Tutorial. *

      * Warning: @@ -42,7 +42,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -101,14 +101,14 @@ * of initial-positions, you then need to convert the Vector of Integer * objects to an array of int to create the event. *

      - * Notes:

        + * Notes:
          *
        • Like the insertNodeInto method in the * DefaultTreeModel class, insertElementAt * appends to the Vector when the index matches the size * of the vector. So you can use insertElementAt(Integer, 0) - * even when the vector is empty. - *
            To create a node changed event for the root node, specify the parent - * and the child indices as null. + * even when the vector is empty. + *
          • To create a node changed event for the root node, specify the parent + * and the child indices as null.
          • *
          * * @param source the Object responsible for generating the event (typically diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/event/TreeModelListener.java --- a/jdk/src/share/classes/javax/swing/event/TreeModelListener.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/event/TreeModelListener.java Mon Oct 14 09:52:36 2013 -0700 @@ -32,7 +32,7 @@ * to changes in a TreeModel. * For further information and examples see * How to Write a Tree Model Listener, + href="http://docs.oracle.com/javase/tutorial/uiswing/events/treemodellistener.html">How to Write a Tree Model Listener, * a section in The Java Tutorial. * * @author Rob Davis diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/event/TreeSelectionEvent.java --- a/jdk/src/share/classes/javax/swing/event/TreeSelectionEvent.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/event/TreeSelectionEvent.java Mon Oct 14 09:52:36 2013 -0700 @@ -40,7 +40,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/event/TreeSelectionListener.java --- a/jdk/src/share/classes/javax/swing/event/TreeSelectionListener.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/event/TreeSelectionListener.java Mon Oct 14 09:52:36 2013 -0700 @@ -32,7 +32,7 @@ * changes. * For more information and examples see * How to Write a Tree Selection Listener, + href="http://docs.oracle.com/javase/tutorial/uiswing/events/treeselectionlistener.html">How to Write a Tree Selection Listener, * a section in The Java Tutorial. * * @see javax.swing.tree.TreeSelectionModel diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/event/TreeWillExpandListener.java --- a/jdk/src/share/classes/javax/swing/event/TreeWillExpandListener.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/event/TreeWillExpandListener.java Mon Oct 14 09:52:36 2013 -0700 @@ -32,7 +32,7 @@ * The listener that's notified when a tree expands or collapses * a node. * For further information and examples see - * How to Write a Tree-Will-Expand Listener, + * How to Write a Tree-Will-Expand Listener, * a section in The Java Tutorial. * * @author Scott Violet diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/event/UndoableEditEvent.java --- a/jdk/src/share/classes/javax/swing/event/UndoableEditEvent.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/event/UndoableEditEvent.java Mon Oct 14 09:52:36 2013 -0700 @@ -35,7 +35,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/filechooser/FileFilter.java --- a/jdk/src/share/classes/javax/swing/filechooser/FileFilter.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/filechooser/FileFilter.java Mon Oct 14 09:52:36 2013 -0700 @@ -39,7 +39,7 @@ * For an example implementation of a simple file filter, see * yourJDK/demo/jfc/FileChooserDemo/ExampleFileFilter.java. * For more information and examples see - * How to Use File Choosers, + * How to Use File Choosers, * a section in The Java Tutorial. * * @see FileNameExtensionFilter diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/filechooser/FileView.java --- a/jdk/src/share/classes/javax/swing/filechooser/FileView.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/filechooser/FileView.java Mon Oct 14 09:52:36 2013 -0700 @@ -31,9 +31,9 @@ /** * FileView defines an abstract class that can be implemented * to provide the filechooser with UI information for a File. - * Each L&F JFileChooserUI object implements this + * Each L&F JFileChooserUI object implements this * class to pass back the correct icons and type descriptions specific to - * that L&F. For example, the Microsoft Windows L&F returns the + * that L&F. For example, the Microsoft Windows L&F returns the * generic Windows icons for directories and generic files. * Additionally, you may want to provide your own FileView to * JFileChooser to return different icons or additional @@ -44,7 +44,7 @@ * JFileChooser first looks to see if there is a user defined * FileView, if there is, it gets type information from * there first. If FileView returns null for - * any method, JFileChooser then uses the L&F specific + * any method, JFileChooser then uses the L&F specific * view to get the information. * So, for example, if you provide a FileView class that * returns an Icon for JPG files, and returns null @@ -57,7 +57,7 @@ * yourJDK/demo/jfc/FileChooserDemo/ExampleFileView.java. * For more information and examples see * How to Use File Choosers, + href="http://docs.oracle.com/javase/tutorial/uiswing/components/filechooser.html">How to Use File Choosers, * a section in The Java Tutorial. * * @see javax.swing.JFileChooser diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/BorderUIResource.java --- a/jdk/src/share/classes/javax/swing/plaf/BorderUIResource.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/BorderUIResource.java Mon Oct 14 09:52:36 2013 -0700 @@ -51,7 +51,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/ColorUIResource.java --- a/jdk/src/share/classes/javax/swing/plaf/ColorUIResource.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/ColorUIResource.java Mon Oct 14 09:52:36 2013 -0700 @@ -37,7 +37,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/DimensionUIResource.java --- a/jdk/src/share/classes/javax/swing/plaf/DimensionUIResource.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/DimensionUIResource.java Mon Oct 14 09:52:36 2013 -0700 @@ -40,7 +40,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/FontUIResource.java --- a/jdk/src/share/classes/javax/swing/plaf/FontUIResource.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/FontUIResource.java Mon Oct 14 09:52:36 2013 -0700 @@ -39,7 +39,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/IconUIResource.java --- a/jdk/src/share/classes/javax/swing/plaf/IconUIResource.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/IconUIResource.java Mon Oct 14 09:52:36 2013 -0700 @@ -44,7 +44,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/InsetsUIResource.java --- a/jdk/src/share/classes/javax/swing/plaf/InsetsUIResource.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/InsetsUIResource.java Mon Oct 14 09:52:36 2013 -0700 @@ -39,7 +39,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/basic/BasicArrowButton.java --- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicArrowButton.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicArrowButton.java Mon Oct 14 09:52:36 2013 -0700 @@ -39,7 +39,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/basic/BasicCheckBoxUI.java --- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicCheckBoxUI.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicCheckBoxUI.java Mon Oct 14 09:52:36 2013 -0700 @@ -43,7 +43,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/basic/BasicComboBoxEditor.java --- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicComboBoxEditor.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicComboBoxEditor.java Mon Oct 14 09:52:36 2013 -0700 @@ -160,7 +160,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/basic/BasicComboBoxRenderer.java --- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicComboBoxRenderer.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicComboBoxRenderer.java Mon Oct 14 09:52:36 2013 -0700 @@ -41,7 +41,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -135,7 +135,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/basic/BasicComboBoxUI.java --- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicComboBoxUI.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicComboBoxUI.java Mon Oct 14 09:52:36 2013 -0700 @@ -54,8 +54,7 @@ *

          * For adding specific actions, * overide installKeyboardActions to add actions in response to - * KeyStroke bindings. See the article Keyboard Bindings in Swing - * at The Swing Connection. + * KeyStroke bindings. See the article How to Use Key Bindings * * @author Arnaud Weber * @author Tom Santos diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/basic/BasicComboPopup.java --- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicComboPopup.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicComboPopup.java Mon Oct 14 09:52:36 2013 -0700 @@ -53,7 +53,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/basic/BasicEditorPaneUI.java --- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicEditorPaneUI.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicEditorPaneUI.java Mon Oct 14 09:52:36 2013 -0700 @@ -44,7 +44,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/basic/BasicIconFactory.java --- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicIconFactory.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicIconFactory.java Mon Oct 14 09:52:36 2013 -0700 @@ -42,7 +42,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java --- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java Mon Oct 14 09:52:36 2013 -0700 @@ -50,7 +50,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/basic/BasicListUI.java --- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicListUI.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicListUI.java Mon Oct 14 09:52:36 2013 -0700 @@ -1488,7 +1488,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -1592,7 +1592,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -1650,7 +1650,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -1717,7 +1717,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/basic/BasicLookAndFeel.java --- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicLookAndFeel.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicLookAndFeel.java Mon Oct 14 09:52:36 2013 -0700 @@ -96,7 +96,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/basic/BasicSplitPaneDivider.java --- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicSplitPaneDivider.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicSplitPaneDivider.java Mon Oct 14 09:52:36 2013 -0700 @@ -53,7 +53,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -671,7 +671,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/basic/BasicTextAreaUI.java --- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicTextAreaUI.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicTextAreaUI.java Mon Oct 14 09:52:36 2013 -0700 @@ -43,7 +43,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/basic/BasicTextFieldUI.java --- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicTextFieldUI.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicTextFieldUI.java Mon Oct 14 09:52:36 2013 -0700 @@ -45,7 +45,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/basic/BasicTextPaneUI.java --- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicTextPaneUI.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicTextPaneUI.java Mon Oct 14 09:52:36 2013 -0700 @@ -41,7 +41,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/basic/BasicTextUI.java --- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicTextUI.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicTextUI.java Mon Oct 14 09:52:36 2013 -0700 @@ -93,7 +93,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/basic/ComboPopup.java --- a/jdk/src/share/classes/javax/swing/plaf/basic/ComboPopup.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/basic/ComboPopup.java Mon Oct 14 09:52:36 2013 -0700 @@ -40,7 +40,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/metal/DefaultMetalTheme.java --- a/jdk/src/share/classes/javax/swing/plaf/metal/DefaultMetalTheme.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/metal/DefaultMetalTheme.java Mon Oct 14 09:52:36 2013 -0700 @@ -79,7 +79,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/metal/MetalButtonUI.java --- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalButtonUI.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalButtonUI.java Mon Oct 14 09:52:36 2013 -0700 @@ -44,7 +44,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/metal/MetalCheckBoxIcon.java --- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalCheckBoxIcon.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalCheckBoxIcon.java Mon Oct 14 09:52:36 2013 -0700 @@ -40,7 +40,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/metal/MetalCheckBoxUI.java --- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalCheckBoxUI.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalCheckBoxUI.java Mon Oct 14 09:52:36 2013 -0700 @@ -44,7 +44,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/metal/MetalComboBoxButton.java --- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalComboBoxButton.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalComboBoxButton.java Mon Oct 14 09:52:36 2013 -0700 @@ -41,7 +41,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/metal/MetalComboBoxEditor.java --- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalComboBoxEditor.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalComboBoxEditor.java Mon Oct 14 09:52:36 2013 -0700 @@ -41,7 +41,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -129,7 +129,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/metal/MetalComboBoxUI.java --- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalComboBoxUI.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalComboBoxUI.java Mon Oct 14 09:52:36 2013 -0700 @@ -43,7 +43,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/metal/MetalIconFactory.java --- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalIconFactory.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalIconFactory.java Mon Oct 14 09:52:36 2013 -0700 @@ -36,7 +36,7 @@ /** * Factory object that vends Icons for - * the JavaTM look and feel (Metal). + * the Java™ look and feel (Metal). * These icons are used extensively in Metal via the defaults mechanism. * While other look and feels often use GIFs for icons, creating icons * in code facilitates switching to other themes. @@ -52,7 +52,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -1550,7 +1550,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ @@ -1632,7 +1632,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ @@ -1651,7 +1651,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ @@ -1736,7 +1736,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/metal/MetalLookAndFeel.java --- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalLookAndFeel.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalLookAndFeel.java Mon Oct 14 09:52:36 2013 -0700 @@ -72,7 +72,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -293,8 +293,8 @@ * * - * *
          Key - * Value + * Key + * Value *
          "desktop" * {@code theme.getDesktopColor()} @@ -2361,7 +2361,7 @@ } // From the JLF Design Guidelines: - // http://java.sun.com/products/jlf/ed2/book/HIG.Visual2.html + // http://www.oracle.com/technetwork/java/jlf-135985.html private static class MetalLayoutStyle extends DefaultLayoutStyle { private static MetalLayoutStyle INSTANCE = new MetalLayoutStyle(); diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/metal/MetalProgressBarUI.java --- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalProgressBarUI.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalProgressBarUI.java Mon Oct 14 09:52:36 2013 -0700 @@ -38,7 +38,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/metal/MetalRadioButtonUI.java --- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalRadioButtonUI.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalRadioButtonUI.java Mon Oct 14 09:52:36 2013 -0700 @@ -46,7 +46,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/metal/MetalRootPaneUI.java --- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalRootPaneUI.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalRootPaneUI.java Mon Oct 14 09:52:36 2013 -0700 @@ -56,7 +56,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/metal/MetalScrollButton.java --- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalScrollButton.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalScrollButton.java Mon Oct 14 09:52:36 2013 -0700 @@ -43,7 +43,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/metal/MetalScrollPaneUI.java --- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalScrollPaneUI.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalScrollPaneUI.java Mon Oct 14 09:52:36 2013 -0700 @@ -44,7 +44,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/metal/MetalSeparatorUI.java --- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalSeparatorUI.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalSeparatorUI.java Mon Oct 14 09:52:36 2013 -0700 @@ -44,7 +44,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/metal/MetalSliderUI.java --- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalSliderUI.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalSliderUI.java Mon Oct 14 09:52:36 2013 -0700 @@ -44,7 +44,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/metal/MetalSplitPaneDivider.java --- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalSplitPaneDivider.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalSplitPaneDivider.java Mon Oct 14 09:52:36 2013 -0700 @@ -39,7 +39,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/metal/MetalSplitPaneUI.java --- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalSplitPaneUI.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalSplitPaneUI.java Mon Oct 14 09:52:36 2013 -0700 @@ -37,7 +37,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/metal/MetalTabbedPaneUI.java --- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalTabbedPaneUI.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalTabbedPaneUI.java Mon Oct 14 09:52:36 2013 -0700 @@ -41,7 +41,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/metal/MetalTextFieldUI.java --- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalTextFieldUI.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalTextFieldUI.java Mon Oct 14 09:52:36 2013 -0700 @@ -41,7 +41,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/metal/MetalToggleButtonUI.java --- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalToggleButtonUI.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalToggleButtonUI.java Mon Oct 14 09:52:36 2013 -0700 @@ -49,7 +49,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/metal/MetalToolTipUI.java --- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalToolTipUI.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalToolTipUI.java Mon Oct 14 09:52:36 2013 -0700 @@ -45,7 +45,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/metal/MetalTreeUI.java --- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalTreeUI.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalTreeUI.java Mon Oct 14 09:52:36 2013 -0700 @@ -46,7 +46,7 @@ * * * - * + * * * * - * + * * * * - * + * * * *

          Angled

          Angled

          A line is drawn connecting the child to the parent. For handling * of the root node refer to * {@link javax.swing.JTree#setRootVisible} and @@ -54,11 +54,11 @@ *

          Horizontal

          Horizontal

          A horizontal line is drawn dividing the children of the root node.

          None

          None

          Do not draw any visual indication between nodes.
          diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/multi/MultiLookAndFeel.java --- a/jdk/src/share/classes/javax/swing/plaf/multi/MultiLookAndFeel.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/multi/MultiLookAndFeel.java Mon Oct 14 09:52:36 2013 -0700 @@ -47,7 +47,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/synth/SynthTextAreaUI.java --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthTextAreaUI.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthTextAreaUI.java Mon Oct 14 09:52:36 2013 -0700 @@ -44,7 +44,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/synth/SynthTextFieldUI.java --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthTextFieldUI.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthTextFieldUI.java Mon Oct 14 09:52:36 2013 -0700 @@ -43,7 +43,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/plaf/synth/SynthTextPaneUI.java --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthTextPaneUI.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthTextPaneUI.java Mon Oct 14 09:52:36 2013 -0700 @@ -40,7 +40,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/table/AbstractTableModel.java --- a/jdk/src/share/classes/javax/swing/table/AbstractTableModel.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/table/AbstractTableModel.java Mon Oct 14 09:52:36 2013 -0700 @@ -50,7 +50,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/table/DefaultTableCellRenderer.java --- a/jdk/src/share/classes/javax/swing/table/DefaultTableCellRenderer.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/table/DefaultTableCellRenderer.java Mon Oct 14 09:52:36 2013 -0700 @@ -75,7 +75,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -150,7 +150,7 @@ /** * Notification from the UIManager that the look and feel - * [L&F] has changed. + * [L&F] has changed. * Replaces the current UI object with the latest version from the * UIManager. * @@ -387,7 +387,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/table/DefaultTableColumnModel.java --- a/jdk/src/share/classes/javax/swing/table/DefaultTableColumnModel.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/table/DefaultTableColumnModel.java Mon Oct 14 09:52:36 2013 -0700 @@ -44,7 +44,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/table/DefaultTableModel.java --- a/jdk/src/share/classes/javax/swing/table/DefaultTableModel.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/table/DefaultTableModel.java Mon Oct 14 09:52:36 2013 -0700 @@ -50,7 +50,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -418,15 +418,14 @@ * *
                *  Examples of moves:
          -     *  

          + * * 1. moveRow(1,3,5); * a|B|C|D|e|f|g|h|i|j|k - before * a|e|f|g|h|B|C|D|i|j|k - after - *

          + * * 2. moveRow(6,7,1); * a|b|c|d|e|f|G|H|i|j|k - before * a|G|H|b|c|d|e|f|i|j|k - after - *

          *

          * * @param start the starting row index to be moved diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/table/JTableHeader.java --- a/jdk/src/share/classes/javax/swing/table/JTableHeader.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/table/JTableHeader.java Mon Oct 14 09:52:36 2013 -0700 @@ -52,7 +52,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -437,7 +437,7 @@ // /** - * Returns the look and feel (L&F) object that renders this component. + * Returns the look and feel (L&F) object that renders this component. * * @return the TableHeaderUI object that renders this component */ @@ -446,9 +446,9 @@ } /** - * Sets the look and feel (L&F) object that renders this component. + * Sets the look and feel (L&F) object that renders this component. * - * @param ui the TableHeaderUI L&F object + * @param ui the TableHeaderUI L&F object * @see UIDefaults#getUI */ public void setUI(TableHeaderUI ui){ @@ -460,7 +460,7 @@ /** * Notification from the UIManager that the look and feel - * (L&F) has changed. + * (L&F) has changed. * Replaces the current UI object with the latest version from the * UIManager. * @@ -478,7 +478,7 @@ /** * Returns the suffix used to construct the name of the look and feel - * (L&F) class used to render this component. + * (L&F) class used to render this component. * @return the string "TableHeaderUI" * * @return "TableHeaderUI" @@ -776,7 +776,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/table/TableCellRenderer.java --- a/jdk/src/share/classes/javax/swing/table/TableCellRenderer.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/table/TableCellRenderer.java Mon Oct 14 09:52:36 2013 -0700 @@ -49,10 +49,10 @@ *
                *     JTable.DropLocation dropLocation = table.getDropLocation();
                *     if (dropLocation != null
          -     *             && !dropLocation.isInsertRow()
          -     *             && !dropLocation.isInsertColumn()
          -     *             && dropLocation.getRow() == row
          -     *             && dropLocation.getColumn() == column) {
          +     *             && !dropLocation.isInsertRow()
          +     *             && !dropLocation.isInsertColumn()
          +     *             && dropLocation.getRow() == row
          +     *             && dropLocation.getColumn() == column) {
                *
                *         // this cell represents the current drop location
                *         // so render it specially, perhaps with a different color
          diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/table/TableColumn.java
          --- a/jdk/src/share/classes/javax/swing/table/TableColumn.java	Mon Oct 14 14:28:50 2013 +0200
          +++ b/jdk/src/share/classes/javax/swing/table/TableColumn.java	Mon Oct 14 09:52:36 2013 -0700
          @@ -67,7 +67,7 @@
            * future Swing releases. The current serialization support is
            * appropriate for short term storage or RMI between applications running
            * the same version of Swing.  As of 1.4, support for long term storage
          - * of all JavaBeansTM
          + * of all JavaBeans™
            * has been added to the java.beans package.
            * Please see {@link java.beans.XMLEncoder}.
            *
          diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/table/TableModel.java
          --- a/jdk/src/share/classes/javax/swing/table/TableModel.java	Mon Oct 14 14:28:50 2013 +0200
          +++ b/jdk/src/share/classes/javax/swing/table/TableModel.java	Mon Oct 14 09:52:36 2013 -0700
          @@ -40,7 +40,7 @@
            *      JTable table = new JTable(myData);
            *  

          * - * For further documentation, see Creating a Table Model + * For further documentation, see Creating a Table Model * in The Java Tutorial. *

          * @author Philip Milne diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/text/AbstractDocument.java --- a/jdk/src/share/classes/javax/swing/text/AbstractDocument.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/text/AbstractDocument.java Mon Oct 14 09:52:36 2013 -0700 @@ -90,7 +90,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -408,7 +408,7 @@ *

          * This method is thread safe, although most Swing methods * are not. Please see - * Concurrency + * Concurrency * in Swing for more information. * * @param r the renderer to execute @@ -426,7 +426,7 @@ * Returns the length of the data. This is the number of * characters of content that represents the users data. * - * @return the length >= 0 + * @return the length >= 0 * @see Document#getLength */ public int getLength() { @@ -569,11 +569,11 @@ *

          * This method is thread safe, although most Swing methods * are not. Please see - * Concurrency + * Concurrency * in Swing for more information. * - * @param offs the starting offset >= 0 - * @param len the number of characters to remove >= 0 + * @param offs the starting offset >= 0 + * @param len the number of characters to remove >= 0 * @exception BadLocationException the given remove position is not a valid * position within the document * @see Document#remove @@ -682,10 +682,10 @@ *

          * This method is thread safe, although most Swing methods * are not. Please see - * Concurrency + * Concurrency * in Swing for more information. * - * @param offs the starting offset >= 0 + * @param offs the starting offset >= 0 * @param str the string to insert; does nothing with null/empty strings * @param a the attributes for the inserted content * @exception BadLocationException the given insert position is not a valid @@ -777,8 +777,8 @@ /** * Gets a sequence of text from the document. * - * @param offset the starting offset >= 0 - * @param length the number of characters to retrieve >= 0 + * @param offset the starting offset >= 0 + * @param length the number of characters to retrieve >= 0 * @return the text * @exception BadLocationException the range given includes a position * that is not a valid position within the document @@ -810,7 +810,7 @@ *   Segment text = new Segment(); *   int offs = 0; *   text.setPartialReturn(true); - *   while (nleft > 0) { + *   while (nleft > 0) { *   doc.getText(offs, nleft, text); *   // do something with text *   nleft -= text.count; @@ -818,8 +818,8 @@ *   } * * - * @param offset the starting offset >= 0 - * @param length the number of characters to retrieve >= 0 + * @param offset the starting offset >= 0 + * @param length the number of characters to retrieve >= 0 * @param txt the Segment object to retrieve the text into * @exception BadLocationException the range given includes a position * that is not a valid position within the document @@ -837,10 +837,10 @@ *

          * This method is thread safe, although most Swing methods * are not. Please see - * Concurrency + * Concurrency * in Swing for more information. * - * @param offs the position in the model >= 0 + * @param offs the position in the model >= 0 * @return the position * @exception BadLocationException if the given position does not * represent a valid location in the associated document @@ -956,7 +956,7 @@ * should keep in mind however that a paragraph should at least be the * unit of text over which to run the Unicode bidirectional algorithm. * - * @param pos the starting offset >= 0 + * @param pos the starting offset >= 0 * @return the element */ public abstract Element getParagraphElement(int pos); @@ -1288,8 +1288,8 @@ * * @param parent the parent element * @param a the attributes for the element - * @param p0 the beginning of the range >= 0 - * @param p1 the end of the range >= p0 + * @param p0 the beginning of the range >= 0 + * @param p1 the end of the range >= p0 * @return the new element */ protected Element createLeafElement(Element parent, AttributeSet a, int p0, int p1) { @@ -1610,7 +1610,7 @@ * Creates a position within the content that will * track change as the content is mutated. * - * @param offset the offset in the content >= 0 + * @param offset the offset in the content >= 0 * @return a Position * @exception BadLocationException for an invalid offset */ @@ -1619,14 +1619,14 @@ /** * Current length of the sequence of character content. * - * @return the length >= 0 + * @return the length >= 0 */ public int length(); /** * Inserts a string of characters into the sequence. * - * @param where offset into the sequence to make the insertion >= 0 + * @param where offset into the sequence to make the insertion >= 0 * @param str string to insert * @return if the implementation supports a history mechanism, * a reference to an Edit implementation will be returned, @@ -1640,8 +1640,8 @@ * Removes some portion of the sequence. * * @param where The offset into the sequence to make the - * insertion >= 0. - * @param nitems The number of items in the sequence to remove >= 0. + * insertion >= 0. + * @param nitems The number of items in the sequence to remove >= 0. * @return If the implementation supports a history mechansim, * a reference to an Edit implementation will be returned, * otherwise null. @@ -1653,8 +1653,8 @@ /** * Fetches a string of characters contained in the sequence. * - * @param where Offset into the sequence to fetch >= 0. - * @param len number of characters to copy >= 0. + * @param where Offset into the sequence to fetch >= 0. + * @param len number of characters to copy >= 0. * @return the string * @exception BadLocationException Thrown if the area covered by * the arguments is not contained in the character sequence. @@ -1664,8 +1664,8 @@ /** * Gets a sequence of characters and copies them into a Segment. * - * @param where the starting offset >= 0 - * @param len the number of characters >= 0 + * @param where the starting offset >= 0 + * @param len the number of characters >= 0 * @param txt the target location to copy into * @exception BadLocationException Thrown if the area covered by * the arguments is not contained in the character sequence. @@ -1778,7 +1778,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ @@ -1809,7 +1809,7 @@ * Dumps a debugging representation of the element hierarchy. * * @param psOut the output stream - * @param indentAmount the indentation level >= 0 + * @param indentAmount the indentation level >= 0 */ public void dump(PrintStream psOut, int indentAmount) { PrintWriter out; @@ -1867,7 +1867,7 @@ /** * Gets the number of attributes that are defined. * - * @return the number of attributes >= 0 + * @return the number of attributes >= 0 * @see AttributeSet#getAttributeCount */ public int getAttributeCount() { @@ -2116,21 +2116,21 @@ /** * Gets the starting offset in the model for the element. * - * @return the offset >= 0 + * @return the offset >= 0 */ public abstract int getStartOffset(); /** * Gets the ending offset in the model for the element. * - * @return the offset >= 0 + * @return the offset >= 0 */ public abstract int getEndOffset(); /** * Gets a child element. * - * @param index the child index, >= 0 && < getElementCount() + * @param index the child index, >= 0 && < getElementCount() * @return the child element */ public abstract Element getElement(int index); @@ -2138,15 +2138,15 @@ /** * Gets the number of children for the element. * - * @return the number of children >= 0 + * @return the number of children >= 0 */ public abstract int getElementCount(); /** * Gets the child element index closest to the given model offset. * - * @param offset the offset >= 0 - * @return the element index >= 0 + * @param offset the offset >= 0 + * @return the element index >= 0 */ public abstract int getElementIndex(int offset); @@ -2247,7 +2247,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ @@ -2272,7 +2272,7 @@ * Gets the child element that contains * the given model position. * - * @param pos the position >= 0 + * @param pos the position >= 0 * @return the element, null if none */ public Element positionToElement(int pos) { @@ -2289,8 +2289,8 @@ /** * Replaces content with a new set of elements. * - * @param offset the starting offset >= 0 - * @param length the length to replace >= 0 + * @param offset the starting offset >= 0 + * @param length the length to replace >= 0 * @param elems the new elements */ public void replace(int offset, int length, Element[] elems) { @@ -2342,7 +2342,7 @@ /** * Gets the starting offset in the model for the element. * - * @return the offset >= 0 + * @return the offset >= 0 */ public int getStartOffset() { return children[0].getStartOffset(); @@ -2352,7 +2352,7 @@ * Gets the ending offset in the model for the element. * @throws NullPointerException if this element has no children * - * @return the offset >= 0 + * @return the offset >= 0 */ public int getEndOffset() { Element child = @@ -2363,7 +2363,7 @@ /** * Gets a child element. * - * @param index the child index, >= 0 && < getElementCount() + * @param index the child index, >= 0 && < getElementCount() * @return the child element, null if none */ public Element getElement(int index) { @@ -2376,7 +2376,7 @@ /** * Gets the number of children for the element. * - * @return the number of children >= 0 + * @return the number of children >= 0 */ public int getElementCount() { return nchildren; @@ -2385,8 +2385,8 @@ /** * Gets the child element index closest to the given model offset. * - * @param offset the offset >= 0 - * @return the element index >= 0 + * @param offset the offset >= 0 + * @return the element index >= 0 */ public int getElementIndex(int offset) { int index; @@ -2501,7 +2501,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -2515,8 +2515,8 @@ * * @param parent The parent element * @param a The element attributes - * @param offs0 The start offset >= 0 - * @param offs1 The end offset >= offs0 + * @param offs0 The start offset >= 0 + * @param offs1 The end offset >= offs0 * @since 1.4 */ public LeafElement(Element parent, AttributeSet a, int offs0, int offs1) { @@ -2545,7 +2545,7 @@ /** * Gets the starting offset in the model for the element. * - * @return the offset >= 0 + * @return the offset >= 0 */ public int getStartOffset() { return p0.getOffset(); @@ -2554,7 +2554,7 @@ /** * Gets the ending offset in the model for the element. * - * @return the offset >= 0 + * @return the offset >= 0 */ public int getEndOffset() { return p1.getOffset(); @@ -2576,8 +2576,8 @@ /** * Gets the child element index closest to the given model offset. * - * @param pos the offset >= 0 - * @return the element index >= 0 + * @param pos the offset >= 0 + * @return the element index >= 0 */ public int getElementIndex(int pos) { return -1; @@ -2586,7 +2586,7 @@ /** * Gets a child element. * - * @param index the child index, >= 0 && < getElementCount() + * @param index the child index, >= 0 && < getElementCount() * @return the child element */ public Element getElement(int index) { @@ -2596,7 +2596,7 @@ /** * Returns the number of child elements. * - * @return the number of children >= 0 + * @return the number of children >= 0 */ public int getElementCount() { return 0; @@ -2731,8 +2731,8 @@ /** * Constructs a change record. * - * @param offs the offset into the document of the change >= 0 - * @param len the length of the change >= 0 + * @param offs the offset into the document of the change >= 0 + * @param len the length of the change >= 0 * @param type the type of event (DocumentEvent.EventType) * @since 1.4 */ @@ -2901,7 +2901,7 @@ /** * Returns the offset within the document of the start of the change. * - * @return the offset >= 0 + * @return the offset >= 0 * @see DocumentEvent#getOffset */ public int getOffset() { @@ -2911,7 +2911,7 @@ /** * Returns the length of the change. * - * @return the length >= 0 + * @return the length >= 0 * @see DocumentEvent#getLength */ public int getLength() { @@ -3024,7 +3024,7 @@ * current model state for views that just attached to a model. * * @param e the element - * @param index the index into the model >= 0 + * @param index the index into the model >= 0 * @param removed a set of elements that were removed * @param added a set of elements that were added */ @@ -3048,7 +3048,7 @@ /** * Returns the index into the list of elements. * - * @return the index >= 0 + * @return the index >= 0 */ public int getIndex() { return index; diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/text/AbstractWriter.java --- a/jdk/src/share/classes/javax/swing/text/AbstractWriter.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/text/AbstractWriter.java Mon Oct 14 09:52:36 2013 -0700 @@ -417,7 +417,7 @@ /** * Increments the indent level. If indenting would cause - * getIndentSpace() *getIndentLevel() to be > + * getIndentSpace() *getIndentLevel() to be > * than getLineLength() this will not cause an indent. */ protected void incrIndent() { @@ -663,7 +663,7 @@ } /** - * Writes out the set of attributes as " =" + * Writes out the set of attributes as " <name>=<value>" * pairs. It throws an IOException when encountered. * * @param attr an AttributeSet. diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/text/AsyncBoxView.java --- a/jdk/src/share/classes/javax/swing/text/AsyncBoxView.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/text/AsyncBoxView.java Mon Oct 14 09:52:36 2013 -0700 @@ -193,7 +193,7 @@ * of the child at the given index. * * @param index the child index. This should be a - * value >= 0 and < getViewCount(). + * value >= 0 and < getViewCount(). */ protected ChildState getChildState(int index) { synchronized(stats) { @@ -350,8 +350,8 @@ * thread will not happen (i.e. the layout thread * acquires a read lock before doing anything). * - * @param offset the starting offset into the child views >= 0 - * @param length the number of existing views to replace >= 0 + * @param offset the starting offset into the child views >= 0 + * @param length the number of existing views to replace >= 0 * @param views the child views to insert */ public void replace(int offset, int length, View[] views) { @@ -417,7 +417,7 @@ * the model. This is implemented to fetch the view in the case * where there is a child view for each child element. * - * @param pos the position >= 0 + * @param pos the position >= 0 * @return index of the view representing the given position, or * -1 if no view represents that position */ @@ -525,8 +525,8 @@ * axis. Since the minor axis is flexible, work is queued to resize * the children if the minor span changes. * - * @param width the width >= 0 - * @param height the height >= 0 + * @param width the width >= 0 + * @param height the height >= 0 */ public void setSize(float width, float height) { setSpanOnAxis(X_AXIS, width); @@ -618,7 +618,7 @@ * axis. * * @param axis may be either View.X_AXIS or View.Y_AXIS - * @return the span the view would like to be rendered into >= 0. + * @return the span the view would like to be rendered into >= 0. * Typically the view is told to render into the span * that is returned, although there is no guarantee. * The parent may choose to resize or break the view. @@ -643,7 +643,7 @@ * axis. * * @param axis may be either View.X_AXIS or View.Y_AXIS - * @return the span the view would like to be rendered into >= 0. + * @return the span the view would like to be rendered into >= 0. * Typically the view is told to render into the span * that is returned, although there is no guarantee. * The parent may choose to resize or break the view. @@ -671,7 +671,7 @@ * axis. * * @param axis may be either View.X_AXIS or View.Y_AXIS - * @return the span the view would like to be rendered into >= 0. + * @return the span the view would like to be rendered into >= 0. * Typically the view is told to render into the span * that is returned, although there is no guarantee. * The parent may choose to resize or break the view. @@ -690,7 +690,7 @@ * the default is to not be a composite view this * returns 0. * - * @return the number of views >= 0 + * @return the number of views >= 0 * @see View#getViewCount */ public int getViewCount() { @@ -703,7 +703,7 @@ * Gets the nth child view. Since there are no * children by default, this returns null. * - * @param n the number of the view to get, >= 0 && < getViewCount() + * @param n the number of the view to get, >= 0 && < getViewCount() * @return the view */ public View getView(int n) { @@ -721,7 +721,7 @@ * their location. This returns null since the * default is to not have any child views. * - * @param index the index of the child, >= 0 && < getViewCount() + * @param index the index of the child, >= 0 && < getViewCount() * @param a the allocation to this view. * @return the allocation to the child */ @@ -736,7 +736,7 @@ * to return -1 to indicate there is no valid child index for any * position. * - * @param pos the position >= 0 + * @param pos the position >= 0 * @return index of the view representing the given position, or * -1 if no view represents that position * @since 1.3 @@ -749,7 +749,7 @@ * Provides a mapping from the document model coordinate space * to the coordinate space of the view mapped to it. * - * @param pos the position to convert >= 0 + * @param pos the position to convert >= 0 * @param a the allocated region to render into * @param b the bias toward the previous character or the * next character represented by the offset, in case the @@ -788,11 +788,11 @@ * on the child view with a lock on the ChildState object * to avoid interaction with the layout thread. * - * @param x the X coordinate >= 0 - * @param y the Y coordinate >= 0 + * @param x the X coordinate >= 0 + * @param y the Y coordinate >= 0 * @param a the allocated region to render into * @return the location within the model that best represents the - * given point in the view >= 0. The biasReturn argument will be + * given point in the view >= 0. The biasReturn argument will be * filled in to indicate that the point given is closer to the next * character in the model or the previous character in the model. */ @@ -828,16 +828,16 @@ * they might not be in the same order found in the model, or they just * might not allow access to some of the locations in the model. * - * @param pos the position to convert >= 0 + * @param pos the position to convert >= 0 * @param a the allocated region to render into * @param direction the direction from the current position that can * be thought of as the arrow keys typically found on a keyboard; * this may be one of the following: - *

            - * SwingConstants.WEST - * SwingConstants.EAST - * SwingConstants.NORTH - * SwingConstants.SOUTH + *
              + *
            • SwingConstants.WEST
            • + *
            • SwingConstants.EAST
            • + *
            • SwingConstants.NORTH
            • + *
            • SwingConstants.SOUTH
            • *
            * @param biasRet an array contain the bias that was checked * @return the location within the model that best represents the next @@ -1007,8 +1007,8 @@ * with one or more calls to getChildAllocation that * should also be in the synchronized block. * - * @param x the X coordinate >= 0 - * @param y the Y coordinate >= 0 + * @param x the X coordinate >= 0 + * @param y the Y coordinate >= 0 * @param a the allocation to the View * @return the nearest child index */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/text/AttributeSet.java --- a/jdk/src/share/classes/javax/swing/text/AttributeSet.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/text/AttributeSet.java Mon Oct 14 09:52:36 2013 -0700 @@ -89,7 +89,7 @@ * Returns the number of attributes that are defined locally in this set. * Attributes that are defined in the parent set are not included. * - * @return the number of attributes >= 0 + * @return the number of attributes >= 0 */ public int getAttributeCount(); diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/text/BadLocationException.java --- a/jdk/src/share/classes/javax/swing/text/BadLocationException.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/text/BadLocationException.java Mon Oct 14 09:52:36 2013 -0700 @@ -33,7 +33,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/text/DateFormatter.java --- a/jdk/src/share/classes/javax/swing/text/DateFormatter.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/text/DateFormatter.java Mon Oct 14 09:52:36 2013 -0700 @@ -39,7 +39,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/text/DefaultCaret.java --- a/jdk/src/share/classes/javax/swing/text/DefaultCaret.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/text/DefaultCaret.java Mon Oct 14 09:52:36 2013 -0700 @@ -98,7 +98,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -237,7 +237,7 @@ *

            * This method is thread safe, although most Swing methods * are not. Please see - * Concurrency + * Concurrency * in Swing for more information. */ protected final synchronized void repaint() { diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/text/DefaultEditorKit.java --- a/jdk/src/share/classes/javax/swing/text/DefaultEditorKit.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/text/DefaultEditorKit.java Mon Oct 14 09:52:36 2013 -0700 @@ -840,7 +840,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -899,7 +899,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -947,7 +947,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -989,7 +989,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -1265,7 +1265,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -1301,7 +1301,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -1338,7 +1338,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -1373,7 +1373,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/text/DefaultFormatter.java --- a/jdk/src/share/classes/javax/swing/text/DefaultFormatter.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/text/DefaultFormatter.java Mon Oct 14 09:52:36 2013 -0700 @@ -50,7 +50,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/text/DefaultFormatterFactory.java --- a/jdk/src/share/classes/javax/swing/text/DefaultFormatterFactory.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/text/DefaultFormatterFactory.java Mon Oct 14 09:52:36 2013 -0700 @@ -64,7 +64,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/text/DefaultStyledDocument.java --- a/jdk/src/share/classes/javax/swing/text/DefaultStyledDocument.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/text/DefaultStyledDocument.java Mon Oct 14 09:52:36 2013 -0700 @@ -61,7 +61,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -173,7 +173,7 @@ *

            * This method is thread safe, although most Swing methods * are not. Please see - * Concurrency + * Concurrency * in Swing for more information. * * @param offset the starting offset >= 0 @@ -426,7 +426,7 @@ *

            * This method is thread safe, although most Swing methods * are not. Please see - * Concurrency + * Concurrency * in Swing for more information. * * @param pos the offset from the start of the document >= 0 @@ -483,7 +483,7 @@ *

            * This method is thread safe, although most Swing methods * are not. Please see - * Concurrency + * Concurrency * in Swing for more information. * * @param offset the offset in the document >= 0 @@ -536,7 +536,7 @@ *

            * This method is thread safe, although most Swing methods * are not. Please see - * Concurrency + * Concurrency * in Swing for more information. * * @param offset the offset into the paragraph >= 0 @@ -1124,7 +1124,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ @@ -1155,7 +1155,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ @@ -1390,7 +1390,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/text/Document.java --- a/jdk/src/share/classes/javax/swing/text/Document.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/text/Document.java Mon Oct 14 09:52:36 2013 -0700 @@ -46,7 +46,7 @@ * used are the location between two characters. As the diagram * below shows, a location in a text document can be referred to * as a position, or an offset. This position is zero-based. - *

            The following text describes this graphic. *

            * In the example, if the content of a document is the @@ -69,7 +69,7 @@ * Exactly what structure is modeled is up to a particular Document * implementation. It might be as simple as no structure (i.e. a * simple text field), or it might be something like diagram below. - *

            Diagram shows Book->Chapter->Paragraph *

            * The unit of structure (i.e. a node of the tree) is referred to @@ -122,7 +122,7 @@ * generated since that edit is actually the source of the change * rather than a mutation to the Document made through its * api. - *

            The preceeding text describes this graphic. *

            * Referring to the above diagram, suppose that the component shown @@ -187,7 +187,7 @@ * Returns number of characters of content currently * in the document. * - * @return number of characters >= 0 + * @return number of characters >= 0 */ public int getLength(); @@ -267,7 +267,7 @@ * For a removal, the end of the removal range is collapsed * down to the start of the range, and any marks in the removal * range are collapsed down to the start of the range. - *

            Diagram shows removal of 'quick' from 'The quick brown fox.' *

            * If the Document structure changed as result of the removal, @@ -280,8 +280,8 @@ * If the Document supports undo/redo, an UndoableEditEvent will * also be generated. * - * @param offs the offset from the beginning >= 0 - * @param len the number of characters to remove >= 0 + * @param offs the offset from the beginning >= 0 + * @param len the number of characters to remove >= 0 * @exception BadLocationException some portion of the removal range * was not a valid part of the document. The location in the exception * is the first bad position encountered. @@ -300,7 +300,7 @@ * insertUpdate method on the DocumentListener. * The offset and length of the generated DocumentEvent * will indicate what change was actually made to the Document. - *

            Diagram shows insertion of 'quick' in 'The quick brown fox' *

            * If the Document structure changed as result of the insertion, @@ -313,7 +313,7 @@ * If the Document supports undo/redo, an UndoableEditEvent will * also be generated. * - * @param offset the offset into the document to insert the content >= 0. + * @param offset the offset into the document to insert the content >= 0. * All positions that track change at or after the given location * will move. * @param str the string to insert @@ -333,9 +333,9 @@ * of the document. * * @param offset the offset into the document representing the desired - * start of the text >= 0 - * @param length the length of the desired string >= 0 - * @return the text, in a String of length >= 0 + * start of the text >= 0 + * @param length the length of the desired string >= 0 + * @return the text, in a String of length >= 0 * @exception BadLocationException some portion of the given range * was not a valid part of the document. The location in the exception * is the first bad position encountered. @@ -361,7 +361,7 @@ *   Segment text = new Segment(); *   int offs = 0; *   text.setPartialReturn(true); - *   while (nleft > 0) { + *   while (nleft > 0) { *   doc.getText(offs, nleft, text); *   // do someting with text *   nleft -= text.count; @@ -371,8 +371,8 @@ * * * @param offset the offset into the document representing the desired - * start of the text >= 0 - * @param length the length of the desired string >= 0 + * start of the text >= 0 + * @param length the length of the desired string >= 0 * @param txt the Segment object to return the text in * * @exception BadLocationException Some portion of the given range @@ -409,7 +409,7 @@ * insertion is forced to a position that follows the * original position. * - * @param offs the offset from the start of the document >= 0 + * @param offs the offset from the start of the document >= 0 * @return the position * @exception BadLocationException if the given position does not * represent a valid location in the associated document diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/text/Element.java --- a/jdk/src/share/classes/javax/swing/text/Element.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/text/Element.java Mon Oct 14 09:52:36 2013 -0700 @@ -69,7 +69,7 @@ * children, this will be the offset of the first child. * As a document position, there is an implied forward bias. * - * @return the starting offset >= 0 and < getEndOffset(); + * @return the starting offset >= 0 and < getEndOffset(); * @see Document * @see AbstractDocument */ @@ -87,8 +87,8 @@ * the document. As a result of this, it is possible for this to * return a value greater than the length of the document. * - * @return the ending offset > getStartOffset() and - * <= getDocument().getLength() + 1 + * @return the ending offset > getStartOffset() and + * <= getDocument().getLength() + 1 * @see Document * @see AbstractDocument */ @@ -105,8 +105,8 @@ * getElementCount() - 1 if the location is * greater than or equal to the end offset. * - * @param offset the specified offset >= 0 - * @return the element index >= 0 + * @param offset the specified offset >= 0 + * @return the element index >= 0 */ public int getElementIndex(int offset); @@ -114,14 +114,14 @@ * Gets the number of child elements contained by this element. * If this element is a leaf, a count of zero is returned. * - * @return the number of child elements >= 0 + * @return the number of child elements >= 0 */ public int getElementCount(); /** * Fetches the child element at the given index. * - * @param index the specified index >= 0 + * @param index the specified index >= 0 * @return the child element */ public Element getElement(int index); diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/text/InternationalFormatter.java --- a/jdk/src/share/classes/javax/swing/text/InternationalFormatter.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/text/InternationalFormatter.java Mon Oct 14 09:52:36 2013 -0700 @@ -83,7 +83,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/text/JTextComponent.java --- a/jdk/src/share/classes/javax/swing/text/JTextComponent.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/text/JTextComponent.java Mon Oct 14 09:52:36 2013 -0700 @@ -84,7 +84,7 @@ * support). * You can find information on how to use the functionality * this class provides in - * General Rules for Using Text Components, + * General Rules for Using Text Components, * a section in The Java Tutorial. * *

            @@ -281,7 +281,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -1122,7 +1122,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ @@ -2215,7 +2215,7 @@ *

            * This method is thread-safe, although most Swing methods are not. Please * see + * HREF="http://docs.oracle.com/javase/tutorial/uiswing/concurrency/index.html"> * Concurrency in Swing for more information. * *

            @@ -2473,7 +2473,7 @@ *

            * This method is thread-safe, although most Swing methods are not. Please * see + * HREF="http://docs.oracle.com/javase/tutorial/uiswing/concurrency/index.html"> * Concurrency in Swing for more information. * *

            @@ -2539,7 +2539,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/text/MaskFormatter.java --- a/jdk/src/share/classes/javax/swing/text/MaskFormatter.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/text/MaskFormatter.java Mon Oct 14 09:52:36 2013 -0700 @@ -40,7 +40,7 @@ * * * - * + * * * * @@ -143,7 +143,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/text/NumberFormatter.java --- a/jdk/src/share/classes/javax/swing/text/NumberFormatter.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/text/NumberFormatter.java Mon Oct 14 09:52:36 2013 -0700 @@ -83,7 +83,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/text/PlainDocument.java --- a/jdk/src/share/classes/javax/swing/text/PlainDocument.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/text/PlainDocument.java Mon Oct 14 09:52:36 2013 -0700 @@ -48,7 +48,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -100,7 +100,7 @@ *

            * This method is thread safe, although most Swing methods * are not. Please see - * Concurrency + * Concurrency * in Swing for more information. * * @param offs the starting offset >= 0 diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/text/SimpleAttributeSet.java --- a/jdk/src/share/classes/javax/swing/text/SimpleAttributeSet.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/text/SimpleAttributeSet.java Mon Oct 14 09:52:36 2013 -0700 @@ -41,7 +41,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/text/StringContent.java --- a/jdk/src/share/classes/javax/swing/text/StringContent.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/text/StringContent.java Mon Oct 14 09:52:36 2013 -0700 @@ -44,7 +44,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/text/StyleContext.java --- a/jdk/src/share/classes/javax/swing/text/StyleContext.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/text/StyleContext.java Mon Oct 14 09:52:36 2013 -0700 @@ -56,7 +56,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * @@ -292,7 +292,7 @@ *

            * This method is thread safe, although most Swing methods * are not. Please see - * Concurrency + * Concurrency * in Swing for more information. * * @param old the old attribute set @@ -321,7 +321,7 @@ *

            * This method is thread safe, although most Swing methods * are not. Please see - * Concurrency + * Concurrency * in Swing for more information. * * @param old the old attribute set @@ -349,7 +349,7 @@ *

            * This method is thread safe, although most Swing methods * are not. Please see - * Concurrency + * Concurrency * in Swing for more information. * * @param old the old set of attributes @@ -377,7 +377,7 @@ *

            * This method is thread safe, although most Swing methods * are not. Please see - * Concurrency + * Concurrency * in Swing for more information. * * @param old the old attribute set @@ -405,7 +405,7 @@ *

            * This method is thread safe, although most Swing methods * are not. Please see - * Concurrency + * Concurrency * in Swing for more information. * * @param old the old attribute set @@ -445,7 +445,7 @@ *

            * This method is thread safe, although most Swing methods * are not. Please see - * Concurrency + * Concurrency * in Swing for more information. * * @param a the set to reclaim @@ -1240,7 +1240,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/text/StyledEditorKit.java --- a/jdk/src/share/classes/javax/swing/text/StyledEditorKit.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/text/StyledEditorKit.java Mon Oct 14 09:52:36 2013 -0700 @@ -371,7 +371,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ @@ -490,7 +490,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ @@ -546,7 +546,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ @@ -613,7 +613,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ @@ -679,7 +679,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ @@ -729,7 +729,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ @@ -768,7 +768,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ @@ -807,7 +807,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/text/TabSet.java --- a/jdk/src/share/classes/javax/swing/text/TabSet.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/text/TabSet.java Mon Oct 14 09:52:36 2013 -0700 @@ -37,7 +37,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/text/TabStop.java --- a/jdk/src/share/classes/javax/swing/text/TabStop.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/text/TabStop.java Mon Oct 14 09:52:36 2013 -0700 @@ -37,7 +37,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/text/TextAction.java --- a/jdk/src/share/classes/javax/swing/text/TextAction.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/text/TextAction.java Mon Oct 14 09:52:36 2013 -0700 @@ -52,7 +52,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/text/View.java --- a/jdk/src/share/classes/javax/swing/text/View.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/text/View.java Mon Oct 14 09:52:36 2013 -0700 @@ -68,7 +68,7 @@ implementation, the minimum span will be <= the preferred span which in turn will be <= the maximum span.

            -

            The above text describes this graphic.

            The minimum set of methods for layout are:

              @@ -95,7 +95,7 @@ This allows parent View implementations to cache the child requirements if desired. The calling sequence looks something like the following:

              -

              +

              Sample calling sequence between parent view and child view:
        setSize, getMinimum, getPreferred, getMaximum, getAlignment, setSize @@ -293,7 +293,7 @@ /** * Determines the desired alignment for this view along an * axis. The desired alignment is returned. This should be - * a value >= 0.0 and <= 1.0, where 0 indicates alignment at + * a value >= 0.0 and <= 1.0, where 0 indicates alignment at * the origin and 1.0 indicates alignment to the full span * away from the origin. An alignment of 0.5 would be the * center of the view. @@ -351,7 +351,7 @@ * the default is to not be a composite view this * returns 0. * - * @return the number of views >= 0 + * @return the number of views >= 0 * @see View#getViewCount */ public int getViewCount() { @@ -362,7 +362,7 @@ * Gets the nth child view. Since there are no * children by default, this returns null. * - * @param n the number of the view to get, >= 0 && < getViewCount() + * @param n the number of the view to get, >= 0 && < getViewCount() * @return the view */ public View getView(int n) { @@ -393,7 +393,7 @@ * Inserts a single child view. This is a convenience * call to replace. * - * @param offs the offset of the view to insert before >= 0 + * @param offs the offset of the view to insert before >= 0 * @param v the view * @see #replace * @since 1.3 @@ -428,9 +428,9 @@ * a view has no children. * * @param offset the starting index into the child views to insert - * the new views. This should be a value >= 0 and <= getViewCount + * the new views. This should be a value >= 0 and <= getViewCount * @param length the number of existing child views to remove - * This should be a value >= 0 and <= (getViewCount() - offset). + * This should be a value >= 0 and <= (getViewCount() - offset). * @param views the child views to add. This value can be * null to indicate no children are being added * (useful to remove). @@ -445,7 +445,7 @@ * to return -1 to indicate there is no valid child index for any * position. * - * @param pos the position >= 0 + * @param pos the position >= 0 * @return index of the view representing the given position, or * -1 if no view represents that position * @since 1.3 @@ -461,7 +461,7 @@ * their location. This returns null since the * default is to not have any child views. * - * @param index the index of the child, >= 0 && < + * @param index the index of the child, >= 0 && < * getViewCount() * @param a the allocation to this view * @return the allocation to the child @@ -477,7 +477,7 @@ * they might not be in the same order found in the model, or they just * might not allow access to some of the locations in the model. * - * @param pos the position to convert >= 0 + * @param pos the position to convert >= 0 * @param a the allocated region in which to render * @param direction the direction from the current position that can * be thought of as the arrow keys typically found on a keyboard. @@ -566,7 +566,7 @@ * from the document model coordinate space * to the view coordinate space. * - * @param pos the position of the desired character (>=0) + * @param pos the position of the desired character (>=0) * @param a the area of the view, which encompasses the requested character * @param b the bias toward the previous character or the * next character represented by the offset, in case the @@ -592,17 +592,17 @@ * to the view coordinate space. The specified region is * created as a union of the first and last character positions. * - * @param p0 the position of the first character (>=0) + * @param p0 the position of the first character (>=0) * @param b0 the bias of the first character position, * toward the previous character or the * next character represented by the offset, in case the * position is a boundary of two views; b0 will have one * of these values: - *

                + *
                  *
                • Position.Bias.Forward *
                • Position.Bias.Backward *
                - * @param p1 the position of the last character (>=0) + * @param p1 the position of the last character (>=0) * @param b1 the bias for the second character position, defined * one of the legal values shown above * @param a the area of the view, which encompasses the requested region @@ -656,11 +656,11 @@ * closer to the next character in the model or the previous * character in the model. * - * @param x the X coordinate >= 0 - * @param y the Y coordinate >= 0 + * @param x the X coordinate >= 0 + * @param y the Y coordinate >= 0 * @param a the allocated region in which to render * @return the location within the model that best represents the - * given point in the view >= 0. The biasReturn + * given point in the view >= 0. The biasReturn * argument will be * filled in to indicate that the point given is closer to the next * character in the model or the previous character in the model. @@ -804,7 +804,7 @@ * Fetches the portion of the model for which this view is * responsible. * - * @return the starting offset into the model >= 0 + * @return the starting offset into the model >= 0 * @see View#getStartOffset */ public int getStartOffset() { @@ -815,7 +815,7 @@ * Fetches the portion of the model for which this view is * responsible. * - * @return the ending offset into the model >= 0 + * @return the ending offset into the model >= 0 * @see View#getEndOffset */ public int getEndOffset() { @@ -884,14 +884,14 @@ * @param axis may be either View.X_AXIS or * View.Y_AXIS * @param offset the location in the document model - * that a broken fragment would occupy >= 0. This + * that a broken fragment would occupy >= 0. This * would be the starting offset of the fragment * returned * @param pos the position along the axis that the - * broken view would occupy >= 0. This may be useful for + * broken view would occupy >= 0. This may be useful for * things like tab calculations * @param len specifies the distance along the axis - * where a potential break is desired >= 0 + * where a potential break is desired >= 0 * @return the fragment of the view that represents the * given span, if the view can be broken. If the view * doesn't support breaking behavior, the view itself is @@ -909,10 +909,10 @@ * the view doesn't support fragmenting (the default), it * should return itself. * - * @param p0 the starting offset >= 0. This should be a value + * @param p0 the starting offset >= 0. This should be a value * greater or equal to the element starting offset and * less than the element ending offset. - * @param p1 the ending offset > p0. This should be a value + * @param p1 the ending offset > p0. This should be a value * less than or equal to the elements end offset and * greater than the elements starting offset. * @return the view fragment, or itself if the view doesn't @@ -949,10 +949,10 @@ * @param axis may be either View.X_AXIS or * View.Y_AXIS * @param pos the potential location of the start of the - * broken view >= 0. This may be useful for calculating tab + * broken view >= 0. This may be useful for calculating tab * positions * @param len specifies the relative length from pos - * where a potential break is desired >= 0 + * where a potential break is desired >= 0 * @return the weight, which should be a value between * ForcedBreakWeight and BadBreakWeight * @see LabelView @@ -986,8 +986,8 @@ * layout of the view along the given axis, if it * has any layout duties. * - * @param width the width >= 0 - * @param height the height >= 0 + * @param width the width >= 0 + * @param height the height >= 0 */ public void setSize(float width, float height) { } @@ -1314,7 +1314,7 @@ * implemented to default the bias to Position.Bias.Forward * which was previously implied. * - * @param pos the position to convert >= 0 + * @param pos the position to convert >= 0 * @param a the allocated region in which to render * @return the bounding box of the given position is returned * @exception BadLocationException if the given position does @@ -1332,11 +1332,11 @@ * Provides a mapping from the view coordinate space to the logical * coordinate space of the model. * - * @param x the X coordinate >= 0 - * @param y the Y coordinate >= 0 + * @param x the X coordinate >= 0 + * @param y the Y coordinate >= 0 * @param a the allocated region in which to render * @return the location within the model that best represents the - * given point in the view >= 0 + * given point in the view >= 0 * @see View#viewToModel * @deprecated */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/text/html/HTMLDocument.java --- a/jdk/src/share/classes/javax/swing/text/html/HTMLDocument.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/text/html/HTMLDocument.java Mon Oct 14 09:52:36 2013 -0700 @@ -195,14 +195,14 @@ *
            * * - * * - * * - * * - * * - * * - * * - *
            Character 

            Description

            Description

            #setOuterHTML
            + * *
            *

            Paragraph 1

            *

            Paragraph 2

            *
            *
            + * *
            *
              *
            • List Item
            • @@ -212,7 +212,7 @@ *
            *
            + * *
            *

            Paragraph 1

            *

            Paragraph 2

            @@ -222,7 +222,7 @@ *
            *
            + * *
              *
            • List Item
            • *
            @@ -232,7 +232,7 @@ * *
            + * *
            *

            Paragraph 1

            *

            Paragraph 2

            @@ -242,7 +242,7 @@ * *
            + * *
            *
              *
            • List Item
            • @@ -250,7 +250,7 @@ *
            *
            + * *
              *
            • List Item
            • *
            @@ -475,7 +475,7 @@ *

            * This method is thread safe, although most Swing methods * are not. Please see - * Concurrency + * Concurrency * in Swing for more information. * * @param offset the offset into the paragraph (must be at least 0) diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/text/html/Option.java --- a/jdk/src/share/classes/javax/swing/text/html/Option.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/text/html/Option.java Mon Oct 14 09:52:36 2013 -0700 @@ -38,7 +38,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/tree/AbstractLayoutCache.java --- a/jdk/src/share/classes/javax/swing/tree/AbstractLayoutCache.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/tree/AbstractLayoutCache.java Mon Oct 14 09:52:36 2013 -0700 @@ -36,7 +36,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/tree/DefaultMutableTreeNode.java --- a/jdk/src/share/classes/javax/swing/tree/DefaultMutableTreeNode.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/tree/DefaultMutableTreeNode.java Mon Oct 14 09:52:36 2013 -0700 @@ -35,7 +35,7 @@ * structure. * For examples of using default mutable tree nodes, see * How to Use Trees + href="http://docs.oracle.com/javase/tutorial/uiswing/components/tree.html">How to Use Trees * in The Java Tutorial. * *

            @@ -76,7 +76,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/tree/DefaultTreeCellEditor.java --- a/jdk/src/share/classes/javax/swing/tree/DefaultTreeCellEditor.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/tree/DefaultTreeCellEditor.java Mon Oct 14 09:52:36 2013 -0700 @@ -52,7 +52,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/tree/DefaultTreeCellRenderer.java --- a/jdk/src/share/classes/javax/swing/tree/DefaultTreeCellRenderer.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/tree/DefaultTreeCellRenderer.java Mon Oct 14 09:52:36 2013 -0700 @@ -49,7 +49,7 @@ * DefaultTreeCellRenderer is not opaque and * unless you subclass paint you should not change this. * See How to Use Trees + href="http://docs.oracle.com/javase/tutorial/uiswing/components/tree.html">How to Use Trees * in The Java Tutorial * for examples of customizing node display using this class. *

            @@ -95,7 +95,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/tree/DefaultTreeModel.java --- a/jdk/src/share/classes/javax/swing/tree/DefaultTreeModel.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/tree/DefaultTreeModel.java Mon Oct 14 09:52:36 2013 -0700 @@ -33,7 +33,7 @@ /** * A simple tree data model that uses TreeNodes. * For further information and examples that use DefaultTreeModel, - * see How to Use Trees + * see How to Use Trees * in The Java Tutorial. *

            * Warning: @@ -41,7 +41,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java --- a/jdk/src/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java Mon Oct 14 09:52:36 2013 -0700 @@ -53,7 +53,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/tree/ExpandVetoException.java --- a/jdk/src/share/classes/javax/swing/tree/ExpandVetoException.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/tree/ExpandVetoException.java Mon Oct 14 09:52:36 2013 -0700 @@ -30,7 +30,7 @@ /** * Exception used to stop and expand/collapse from happening. * See How to Write a Tree-Will-Expand Listener + href="http://docs.oracle.com/javase/tutorial/uiswing/events/treewillexpandlistener.html">How to Write a Tree-Will-Expand Listener * in The Java Tutorial * for further information and examples. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/tree/FixedHeightLayoutCache.java --- a/jdk/src/share/classes/javax/swing/tree/FixedHeightLayoutCache.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/tree/FixedHeightLayoutCache.java Mon Oct 14 09:52:36 2013 -0700 @@ -42,7 +42,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/tree/TreeCellRenderer.java --- a/jdk/src/share/classes/javax/swing/tree/TreeCellRenderer.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/tree/TreeCellRenderer.java Mon Oct 14 09:52:36 2013 -0700 @@ -30,7 +30,7 @@ /** * Defines the requirements for an object that displays a tree node. * See How to Use Trees + href="http://docs.oracle.com/javase/tutorial/uiswing/components/tree.html">How to Use Trees * in The Java Tutorial * for an example of implementing a tree cell renderer * that displays custom icons. diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/tree/TreeModel.java --- a/jdk/src/share/classes/javax/swing/tree/TreeModel.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/tree/TreeModel.java Mon Oct 14 09:52:36 2013 -0700 @@ -50,7 +50,7 @@ * For further information on tree models, * including an example of a custom implementation, * see How to Use Trees + href="http://docs.oracle.com/javase/tutorial/uiswing/components/tree.html">How to Use Trees * in The Java Tutorial. * * @see TreePath diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/tree/TreeNode.java --- a/jdk/src/share/classes/javax/swing/tree/TreeNode.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/tree/TreeNode.java Mon Oct 14 09:52:36 2013 -0700 @@ -37,7 +37,7 @@ * * For further information and examples of using tree nodes, * see How to Use Tree Nodes + href="http://docs.oracle.com/javase/tutorial/uiswing/components/tree.html">How to Use Tree Nodes * in The Java Tutorial. * * @author Rob Davis diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/tree/TreePath.java --- a/jdk/src/share/classes/javax/swing/tree/TreePath.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/tree/TreePath.java Mon Oct 14 09:52:36 2013 -0700 @@ -66,7 +66,7 @@ *

            * For further information and examples of using tree paths, * see How to Use Trees + href="http://docs.oracle.com/javase/tutorial/uiswing/components/tree.html">How to Use Trees * in The Java Tutorial. *

            * Warning: @@ -74,7 +74,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/tree/TreeSelectionModel.java --- a/jdk/src/share/classes/javax/swing/tree/TreeSelectionModel.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/tree/TreeSelectionModel.java Mon Oct 14 09:52:36 2013 -0700 @@ -32,7 +32,7 @@ * This interface represents the current state of the selection for * the tree component. * For information and examples of using tree selection models, - * see How to Use Trees + * see How to Use Trees * in The Java Tutorial. * *

            diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/tree/VariableHeightLayoutCache.java --- a/jdk/src/share/classes/javax/swing/tree/VariableHeightLayoutCache.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/tree/VariableHeightLayoutCache.java Mon Oct 14 09:52:36 2013 -0700 @@ -43,7 +43,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/undo/CannotRedoException.java --- a/jdk/src/share/classes/javax/swing/undo/CannotRedoException.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/undo/CannotRedoException.java Mon Oct 14 09:52:36 2013 -0700 @@ -32,7 +32,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/undo/CannotUndoException.java --- a/jdk/src/share/classes/javax/swing/undo/CannotUndoException.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/undo/CannotUndoException.java Mon Oct 14 09:52:36 2013 -0700 @@ -33,7 +33,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/javax/swing/undo/UndoManager.java --- a/jdk/src/share/classes/javax/swing/undo/UndoManager.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/javax/swing/undo/UndoManager.java Mon Oct 14 09:52:36 2013 -0700 @@ -126,7 +126,7 @@ * future Swing releases. The current serialization support is * appropriate for short term storage or RMI between applications running * the same version of Swing. As of 1.4, support for long term storage - * of all JavaBeansTM + * of all JavaBeans™ * has been added to the java.beans package. * Please see {@link java.beans.XMLEncoder}. * diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/sun/awt/NullComponentPeer.java --- a/jdk/src/share/classes/sun/awt/NullComponentPeer.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/sun/awt/NullComponentPeer.java Mon Oct 14 09:52:36 2013 -0700 @@ -141,10 +141,6 @@ return new Dimension(1,1); } - public java.awt.Toolkit getToolkit() { - return null; - } - public ColorModel getColorModel() { return null; } diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/sun/awt/datatransfer/DataTransferer.java --- a/jdk/src/share/classes/sun/awt/datatransfer/DataTransferer.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/sun/awt/datatransfer/DataTransferer.java Mon Oct 14 09:52:36 2013 -0700 @@ -1793,8 +1793,17 @@ } catch (Exception e) { throw new IOException(e.getMessage()); } + // Target data is Image + } else if (DataFlavor.imageFlavor.equals(flavor)) { + if (!isImageFormat(format)) { + throw new IOException("data translation failed"); + } + theObject = platformImageBytesToImage(inputStreamToByteArray(str), format); } + if (theObject == null) { + throw new IOException("data translation failed"); + } return theObject; diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/sun/font/FreetypeFontScaler.java --- a/jdk/src/share/classes/sun/font/FreetypeFontScaler.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/sun/font/FreetypeFontScaler.java Mon Oct 14 09:52:36 2013 -0700 @@ -169,7 +169,7 @@ public synchronized void dispose() { if (nativeScaler != 0L) { - disposeNativeScaler(nativeScaler); + disposeNativeScaler(font.get(), nativeScaler); nativeScaler = 0L; } } @@ -190,7 +190,7 @@ synchronized int getGlyphCode(char charCode) throws FontScalerException { if (nativeScaler != 0L) { - return getGlyphCodeNative(nativeScaler, charCode); + return getGlyphCodeNative(font.get(), nativeScaler, charCode); } return FontScaler.getNullScaler().getGlyphCode(charCode); } @@ -245,9 +245,9 @@ private native long getLayoutTableCacheNative(long pScaler); - private native void disposeNativeScaler(long pScaler); + private native void disposeNativeScaler(Font2D font2D, long pScaler); - private native int getGlyphCodeNative(long pScaler, char charCode); + private native int getGlyphCodeNative(Font2D font, long pScaler, char charCode); private native int getNumGlyphsNative(long pScaler); private native int getMissingGlyphCodeNative(long pScaler); diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/sun/java2d/SunGraphicsEnvironment.java --- a/jdk/src/share/classes/sun/java2d/SunGraphicsEnvironment.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/sun/java2d/SunGraphicsEnvironment.java Mon Oct 14 09:52:36 2013 -0700 @@ -25,6 +25,7 @@ package sun.java2d; +import java.awt.AWTError; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; @@ -165,7 +166,11 @@ * Returns the default screen graphics device. */ public GraphicsDevice getDefaultScreenDevice() { - return getScreenDevices()[0]; + GraphicsDevice[] screens = getScreenDevices(); + if (screens.length == 0) { + throw new AWTError("no screen devices"); + } + return screens[0]; } /** diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/sun/swing/PrintingStatus.java --- a/jdk/src/share/classes/sun/swing/PrintingStatus.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/sun/swing/PrintingStatus.java Mon Oct 14 09:52:36 2013 -0700 @@ -43,7 +43,7 @@ *

            * Methods of these class are thread safe, although most Swing methods * are not. Please see - * Concurrency + * Concurrency * in Swing for more information. * * @author Alexander Potochkin diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/classes/sun/text/normalizer/UCharacter.java --- a/jdk/src/share/classes/sun/text/normalizer/UCharacter.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/classes/sun/text/normalizer/UCharacter.java Mon Oct 14 09:52:36 2013 -0700 @@ -42,7 +42,7 @@ /** *

            * The UCharacter class provides extensions to the - * + * * java.lang.Character class. These extensions provide support for * more Unicode properties and together with the UTF16 * class, provide support for supplementary characters (those with code diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/demo/jfc/FileChooserDemo/FileChooserDemo.java --- a/jdk/src/share/demo/jfc/FileChooserDemo/FileChooserDemo.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/demo/jfc/FileChooserDemo/FileChooserDemo.java Mon Oct 14 09:52:36 2013 -0700 @@ -800,7 +800,7 @@ * NOTE: By default, the look and feel will be set to the * Cross Platform Look and Feel (which is currently Metal). * The following code tries to set the Look and Feel to Nimbus. - * http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/nimbus.html + * http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/nimbus.html */ try { for (LookAndFeelInfo info : UIManager. diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/native/sun/font/freetypeScaler.c --- a/jdk/src/share/native/sun/font/freetypeScaler.c Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/native/sun/font/freetypeScaler.c Mon Oct 14 09:52:36 2013 -0700 @@ -252,7 +252,6 @@ JNIEnv *env, jobject scaler, jobject font2D, jint type, jint indexInCollection, jboolean supportsCJK, jint filesize) { FTScalerInfo* scalerInfo = NULL; - FT_Stream ftstream; FT_Open_Args ft_open_args; int error; jobject bBuffer; @@ -309,34 +308,36 @@ } } else { /* Truetype */ scalerInfo->fontData = (unsigned char*) malloc(FILEDATACACHESIZE); - ftstream = (FT_Stream) calloc(1, sizeof(FT_StreamRec)); - if (ftstream != NULL && scalerInfo->fontData != NULL) { - scalerInfo->directBuffer = (*env)->NewDirectByteBuffer(env, - scalerInfo->fontData, - FILEDATACACHESIZE); - if (scalerInfo->directBuffer != NULL) { - scalerInfo->directBuffer = (*env)->NewGlobalRef(env, - scalerInfo->directBuffer); - ftstream->base = NULL; - ftstream->size = filesize; - ftstream->pos = 0; - ftstream->read = (FT_Stream_IoFunc) ReadTTFontFileFunc; - ftstream->close = (FT_Stream_CloseFunc) CloseTTFontFileFunc; - ftstream->pathname.pointer = (void *) scalerInfo; + if (scalerInfo->fontData != NULL) { + FT_Stream ftstream = (FT_Stream) calloc(1, sizeof(FT_StreamRec)); + if (ftstream != NULL) { + scalerInfo->directBuffer = (*env)->NewDirectByteBuffer(env, + scalerInfo->fontData, + FILEDATACACHESIZE); + if (scalerInfo->directBuffer != NULL) { + scalerInfo->directBuffer = (*env)->NewGlobalRef(env, + scalerInfo->directBuffer); + ftstream->base = NULL; + ftstream->size = filesize; + ftstream->pos = 0; + ftstream->read = (FT_Stream_IoFunc) ReadTTFontFileFunc; + ftstream->close = (FT_Stream_CloseFunc) CloseTTFontFileFunc; + ftstream->pathname.pointer = (void *) scalerInfo; - memset(&ft_open_args, 0, sizeof(FT_Open_Args)); - ft_open_args.flags = FT_OPEN_STREAM; - ft_open_args.stream = ftstream; + memset(&ft_open_args, 0, sizeof(FT_Open_Args)); + ft_open_args.flags = FT_OPEN_STREAM; + ft_open_args.stream = ftstream; - error = FT_Open_Face(scalerInfo->library, - &ft_open_args, - indexInCollection, - &scalerInfo->face); - } - if (error || scalerInfo->directBuffer == NULL) { - free(ftstream); - } + error = FT_Open_Face(scalerInfo->library, + &ft_open_args, + indexInCollection, + &scalerInfo->face); + } + if (error || scalerInfo->directBuffer == NULL) { + free(ftstream); + } + } } } @@ -902,13 +903,13 @@ */ JNIEXPORT void JNICALL Java_sun_font_FreetypeFontScaler_disposeNativeScaler( - JNIEnv *env, jobject scaler, jlong pScaler) { + JNIEnv *env, jobject scaler, jobject font2D, jlong pScaler) { FTScalerInfo* scalerInfo = (FTScalerInfo *) jlong_to_ptr(pScaler); /* Freetype functions *may* cause callback to java that can use cached values. Make sure our cache is up to date. NB: scaler context is not important at this point, can use NULL. */ - int errCode = setupFTContext(env, scaler, scalerInfo, NULL); + int errCode = setupFTContext(env, font2D, scalerInfo, NULL); if (errCode) { return; } @@ -957,7 +958,8 @@ */ JNIEXPORT jint JNICALL Java_sun_font_FreetypeFontScaler_getGlyphCodeNative( - JNIEnv *env, jobject scaler, jlong pScaler, jchar charCode) { + JNIEnv *env, jobject scaler, + jobject font2D, jlong pScaler, jchar charCode) { FTScalerInfo* scalerInfo = (FTScalerInfo *) jlong_to_ptr(pScaler); int errCode; @@ -970,7 +972,7 @@ /* Freetype functions *may* cause callback to java that can use cached values. Make sure our cache is up to date. Scaler context is not important here, can use NULL. */ - errCode = setupFTContext(env, scaler, scalerInfo, NULL); + errCode = setupFTContext(env, font2D, scalerInfo, NULL); if (errCode) { return 0; } diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/native/sun/java2d/Disposer.c --- a/jdk/src/share/native/sun/java2d/Disposer.c Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/native/sun/java2d/Disposer.c Mon Oct 14 09:52:36 2013 -0700 @@ -38,10 +38,9 @@ { addRecordMID = (*env)->GetStaticMethodID(env, disposerClass, "addRecord", "(Ljava/lang/Object;JJ)V"); - if (addRecordMID == 0) { - JNU_ThrowNoSuchMethodError(env, "Disposer.addRecord"); + if (addRecordMID != 0) { + dispClass = (*env)->NewGlobalRef(env, disposerClass); } - dispClass = (*env)->NewGlobalRef(env, disposerClass); } JNIEXPORT void JNICALL @@ -50,6 +49,10 @@ if (dispClass == NULL) { /* Needed to initialize the Disposer class as it may be not yet referenced */ jclass clazz = (*env)->FindClass(env, "sun/java2d/Disposer"); + if ((*env)->ExceptionCheck(env)) { + // If there's exception pending, we'll just return. + return; + } } (*env)->CallStaticVoidMethod(env, dispClass, addRecordMID, diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/native/sun/java2d/SurfaceData.c --- a/jdk/src/share/native/sun/java2d/SurfaceData.c Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/native/sun/java2d/SurfaceData.c Mon Oct 14 09:52:36 2013 -0700 @@ -237,7 +237,9 @@ SurfaceData_SetOps(env, sData, ops); if (ops != NULL) { memset(ops, 0, opsSize); - ops->sdObject = (*env)->NewWeakGlobalRef(env, sData); + if (!(*env)->ExceptionCheck(env)) { + ops->sdObject = (*env)->NewWeakGlobalRef(env, sData); + } } return ops; } diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/native/sun/java2d/loops/Blit.c --- a/jdk/src/share/native/sun/java2d/loops/Blit.c Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/native/sun/java2d/loops/Blit.c Mon Oct 14 09:52:36 2013 -0700 @@ -60,8 +60,11 @@ } srcOps = SurfaceData_GetOps(env, srcData); + if (srcOps == 0) { + return; + } dstOps = SurfaceData_GetOps(env, dstData); - if (srcOps == 0 || dstOps == 0) { + if (dstOps == 0) { return; } diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/native/sun/java2d/loops/BlitBg.c --- a/jdk/src/share/native/sun/java2d/loops/BlitBg.c Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/native/sun/java2d/loops/BlitBg.c Mon Oct 14 09:52:36 2013 -0700 @@ -60,8 +60,11 @@ } srcOps = SurfaceData_GetOps(env, srcData); + if (srcOps == 0) { + return; + } dstOps = SurfaceData_GetOps(env, dstData); - if (srcOps == 0 || dstOps == 0) { + if (dstOps == 0) { return; } diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/native/sun/java2d/loops/DrawPath.c --- a/jdk/src/share/native/sun/java2d/loops/DrawPath.c Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/native/sun/java2d/loops/DrawPath.c Mon Oct 14 09:52:36 2013 -0700 @@ -75,7 +75,8 @@ CompositeInfo compInfo; jint ret; NativePrimitive *pPrim = GetNativePrim(env, self); - jint stroke = (*env)->GetIntField(env, sg2d, sg2dStrokeHintID); + jint stroke; + jboolean throwExc = JNI_FALSE; if (pPrim == NULL) { return; @@ -84,6 +85,8 @@ GrPrim_Sg2dGetCompInfo(env, sg2d, pPrim, &compInfo); } + stroke = (*env)->GetIntField(env, sg2d, sg2dStrokeHintID); + sdOps = SurfaceData_GetOps(env, sData); if (sdOps == 0) { return; @@ -112,6 +115,10 @@ maxCoords = (*env)->GetArrayLength(env, coordsArray); coords = (jfloat*)(*env)->GetPrimitiveArrayCritical( env, coordsArray, NULL); + if (coords == NULL) { + SurfaceData_InvokeUnlock(env, sdOps, &rasInfo); + return; + } if (ret == SD_SLOWLOCK) { GrPrim_RefineBounds(&rasInfo.bounds, transX, transY, @@ -157,22 +164,29 @@ drawHandler.yMax = rasInfo.bounds.y2; drawHandler.pData = &dHData; - if (!doDrawPath(&drawHandler, NULL, transX, transY, - coords, maxCoords, types, numTypes, - (stroke == sunHints_INTVAL_STROKE_PURE)? - PH_STROKE_PURE : PH_STROKE_DEFAULT)) - { - JNU_ThrowArrayIndexOutOfBoundsException(env, - "coords array"); + if (types != NULL) { + if (!doDrawPath(&drawHandler, NULL, transX, transY, + coords, maxCoords, types, numTypes, + (stroke == sunHints_INTVAL_STROKE_PURE)? + PH_STROKE_PURE : PH_STROKE_DEFAULT)) + { + throwExc = JNI_TRUE; + } + + (*env)->ReleasePrimitiveArrayCritical(env, typesArray, types, + JNI_ABORT); } - - (*env)->ReleasePrimitiveArrayCritical(env, typesArray, types, - JNI_ABORT); } } SurfaceData_InvokeRelease(env, sdOps, &rasInfo); } (*env)->ReleasePrimitiveArrayCritical(env, coordsArray, coords, JNI_ABORT); + + if (throwExc) { + JNU_ThrowArrayIndexOutOfBoundsException(env, + "coords array"); + } + SurfaceData_InvokeUnlock(env, sdOps, &rasInfo); } diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/native/sun/java2d/loops/DrawPolygons.c --- a/jdk/src/share/native/sun/java2d/loops/DrawPolygons.c Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/native/sun/java2d/loops/DrawPolygons.c Mon Oct 14 09:52:36 2013 -0700 @@ -186,10 +186,15 @@ } xPointsPtr = (*env)->GetPrimitiveArrayCritical(env, xPointsArray, NULL); - yPointsPtr = (*env)->GetPrimitiveArrayCritical(env, yPointsArray, NULL); - if (!xPointsPtr || !yPointsPtr) { + if (!xPointsPtr) { ok = JNI_FALSE; } + if (ok) { + yPointsPtr = (*env)->GetPrimitiveArrayCritical(env, yPointsArray, NULL); + if (!yPointsPtr) { + ok = JNI_FALSE; + } + } } if (ok) { diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/native/sun/java2d/loops/FillPath.c --- a/jdk/src/share/native/sun/java2d/loops/FillPath.c Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/native/sun/java2d/loops/FillPath.c Mon Oct 14 09:52:36 2013 -0700 @@ -64,7 +64,8 @@ CompositeInfo compInfo; jint ret; NativePrimitive *pPrim = GetNativePrim(env, self); - jint stroke = (*env)->GetIntField(env, sg2d, sg2dStrokeHintID); + jint stroke; + jboolean throwExc = JNI_FALSE; if (pPrim == NULL) { return; @@ -73,6 +74,8 @@ GrPrim_Sg2dGetCompInfo(env, sg2d, pPrim, &compInfo); } + stroke = (*env)->GetIntField(env, sg2d, sg2dStrokeHintID); + sdOps = SurfaceData_GetOps(env, sData); if (sdOps == 0) { return; @@ -102,6 +105,10 @@ maxCoords = (*env)->GetArrayLength(env, coordsArray); coords = (jfloat*)(*env)->GetPrimitiveArrayCritical( env, coordsArray, NULL); + if (coords == NULL) { + SurfaceData_InvokeUnlock(env, sdOps, &rasInfo); + return; + } if (ret == SD_SLOWLOCK) { GrPrim_RefineBounds(&rasInfo.bounds, transX, transY, @@ -146,24 +153,31 @@ drawHandler.yMax = rasInfo.bounds.y2; drawHandler.pData = &dHData; - if (!doFillPath(&drawHandler, - transX, transY, coords, - maxCoords, types, numTypes, - (stroke == sunHints_INTVAL_STROKE_PURE)? - PH_STROKE_PURE : PH_STROKE_DEFAULT, - fillRule)) - { - JNU_ThrowArrayIndexOutOfBoundsException(env, - "coords array"); + if (types != NULL) { + if (!doFillPath(&drawHandler, + transX, transY, coords, + maxCoords, types, numTypes, + (stroke == sunHints_INTVAL_STROKE_PURE)? + PH_STROKE_PURE : PH_STROKE_DEFAULT, + fillRule)) + { + throwExc = JNI_TRUE; + } + + (*env)->ReleasePrimitiveArrayCritical(env, typesArray, types, + JNI_ABORT); } - - (*env)->ReleasePrimitiveArrayCritical(env, typesArray, types, - JNI_ABORT); } } SurfaceData_InvokeRelease(env, sdOps, &rasInfo); } (*env)->ReleasePrimitiveArrayCritical(env, coordsArray, coords, JNI_ABORT); + + if (throwExc) { + JNU_ThrowArrayIndexOutOfBoundsException(env, + "coords array"); + } + SurfaceData_InvokeUnlock(env, sdOps, &rasInfo); } diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.c --- a/jdk/src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.c Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.c Mon Oct 14 09:52:36 2013 -0700 @@ -205,33 +205,36 @@ RegisterFunc RegisterFourByteAbgr; RegisterFunc RegisterFourByteAbgrPre; - RegisterAnyByte(env); - RegisterByteBinary1Bit(env); - RegisterByteBinary2Bit(env); - RegisterByteBinary4Bit(env); - RegisterByteIndexed(env); - RegisterByteGray(env); - RegisterIndex8Gray(env); - RegisterIndex12Gray(env); - RegisterAnyShort(env); - RegisterUshort555Rgb(env); - RegisterUshort565Rgb(env); - RegisterUshort4444Argb(env); - RegisterUshort555Rgbx(env); - RegisterUshortGray(env); - RegisterUshortIndexed(env); - RegisterAny3Byte(env); - RegisterThreeByteBgr(env); - RegisterAnyInt(env); - RegisterIntArgb(env); - RegisterIntArgbPre(env); - RegisterIntArgbBm(env); - RegisterIntRgb(env); - RegisterIntBgr(env); - RegisterIntRgbx(env); - RegisterAny4Byte(env); - RegisterFourByteAbgr(env); - RegisterFourByteAbgrPre(env); + if (!RegisterAnyByte(env) || + !RegisterByteBinary1Bit(env) || + !RegisterByteBinary2Bit(env) || + !RegisterByteBinary4Bit(env) || + !RegisterByteIndexed(env) || + !RegisterByteGray(env) || + !RegisterIndex8Gray(env) || + !RegisterIndex12Gray(env) || + !RegisterAnyShort(env) || + !RegisterUshort555Rgb(env) || + !RegisterUshort565Rgb(env) || + !RegisterUshort4444Argb(env) || + !RegisterUshort555Rgbx(env) || + !RegisterUshortGray(env) || + !RegisterUshortIndexed(env) || + !RegisterAny3Byte(env) || + !RegisterThreeByteBgr(env) || + !RegisterAnyInt(env) || + !RegisterIntArgb(env) || + !RegisterIntArgbPre(env) || + !RegisterIntArgbBm(env) || + !RegisterIntRgb(env) || + !RegisterIntBgr(env) || + !RegisterIntRgbx(env) || + !RegisterAny4Byte(env) || + !RegisterFourByteAbgr(env) || + !RegisterFourByteAbgrPre(env)) + { + return; + } } #define _StartOf(T) ((T *) (&T##s)) diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/native/sun/java2d/loops/MaskBlit.c --- a/jdk/src/share/native/sun/java2d/loops/MaskBlit.c Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/native/sun/java2d/loops/MaskBlit.c Mon Oct 14 09:52:36 2013 -0700 @@ -60,8 +60,11 @@ } srcOps = SurfaceData_GetOps(env, srcData); + if (srcOps == 0) { + return; + } dstOps = SurfaceData_GetOps(env, dstData); - if (srcOps == 0 || dstOps == 0) { + if (dstOps == 0) { return; } @@ -98,6 +101,13 @@ : 0); jint savesx = srcInfo.bounds.x1; jint savedx = dstInfo.bounds.x1; + if (maskArray != NULL && pMask == NULL) { + SurfaceData_InvokeRelease(env, dstOps, &dstInfo); + SurfaceData_InvokeRelease(env, srcOps, &srcInfo); + SurfaceData_InvokeUnlock(env, dstOps, &dstInfo); + SurfaceData_InvokeUnlock(env, srcOps, &srcInfo); + return; + } Region_StartIteration(env, &clipInfo); while (Region_NextIteration(&clipInfo, &span)) { void *pSrc = PtrCoord(srcInfo.rasBase, diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/native/sun/java2d/loops/MaskFill.c --- a/jdk/src/share/native/sun/java2d/loops/MaskFill.c Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/native/sun/java2d/loops/MaskFill.c Mon Oct 14 09:52:36 2013 -0700 @@ -84,6 +84,11 @@ (maskArray ? (*env)->GetPrimitiveArrayCritical(env, maskArray, 0) : 0); + if (maskArray != NULL && pMask == NULL) { + SurfaceData_InvokeRelease(env, sdOps, &rasInfo); + SurfaceData_InvokeUnlock(env, sdOps, &rasInfo); + return; + } maskoff += ((rasInfo.bounds.y1 - y) * maskscan + (rasInfo.bounds.x1 - x)); (*pPrim->funcs.maskfill)(pDst, diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/native/sun/java2d/loops/ScaledBlit.c --- a/jdk/src/share/native/sun/java2d/loops/ScaledBlit.c Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/native/sun/java2d/loops/ScaledBlit.c Mon Oct 14 09:52:36 2013 -0700 @@ -296,8 +296,11 @@ } srcOps = SurfaceData_GetOps(env, srcData); + if (srcOps == 0) { + return; + } dstOps = SurfaceData_GetOps(env, dstData); - if (srcOps == 0 || dstOps == 0) { + if (dstOps == 0) { return; } diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/native/sun/java2d/loops/TransformHelper.c --- a/jdk/src/share/native/sun/java2d/loops/TransformHelper.c Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/native/sun/java2d/loops/TransformHelper.c Mon Oct 14 09:52:36 2013 -0700 @@ -326,8 +326,11 @@ } srcOps = SurfaceData_GetOps(env, srcData); + if (srcOps == 0) { + return; + } dstOps = SurfaceData_GetOps(env, dstData); - if (srcOps == 0 || dstOps == 0) { + if (dstOps == 0) { return; } @@ -411,7 +414,7 @@ } if (pEdges == NULL) { - if (numedges > 0) { + if (!(*env)->ExceptionCheck(env) && numedges > 0) { JNU_ThrowInternalError(env, "Unable to allocate edge list"); } SurfaceData_InvokeUnlock(env, dstOps, &dstInfo); diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/native/sun/java2d/pipe/BufferedRenderPipe.c --- a/jdk/src/share/native/sun/java2d/pipe/BufferedRenderPipe.c Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/native/sun/java2d/pipe/BufferedRenderPipe.c Mon Oct 14 09:52:36 2013 -0700 @@ -53,6 +53,7 @@ unsigned char *bbuf; jint *ibuf; jint ipos; + jboolean hasException; J2dTraceLn2(J2D_TRACE_INFO, "BufferedRenderPipe_fillSpans: bpos=%d limit=%d", @@ -104,7 +105,10 @@ ibuf[1] = spanCount; // flush the queue - JNU_CallMethodByName(env, NULL, rq, "flushNow", "(I)V", bpos); + JNU_CallMethodByName(env, &hasException, rq, "flushNow", "(I)V", bpos); + if (hasException) { + break; + } // now start a new operation ibuf = (jint *)bbuf; diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/native/sun/java2d/pipe/Region.c --- a/jdk/src/share/native/sun/java2d/pipe/Region.c Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/native/sun/java2d/pipe/Region.c Mon Oct 14 09:52:36 2013 -0700 @@ -260,6 +260,10 @@ /* return; REMIND: What to do here? */ } Region_StartIteration(env, &clipInfo); + if ((*env)->ExceptionCheck(env)) { + return 0; + } + numrects = Region_CountIterationRects(&clipInfo); if ((unsigned long)numrects > initialBufferSize) { *pRect = (RECT_T *) SAFE_SIZE_ARRAY_ALLOC(malloc, numrects, sizeof(RECT_T)); diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/native/sun/java2d/pipe/ShapeSpanIterator.c --- a/jdk/src/share/native/sun/java2d/pipe/ShapeSpanIterator.c Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/native/sun/java2d/pipe/ShapeSpanIterator.c Mon Oct 14 09:52:36 2013 -0700 @@ -653,12 +653,15 @@ pd->curx = x; pd->cury = y; } + (*env)->ReleasePrimitiveArrayCritical(env, yArray, + yPoints, JNI_ABORT); } - (*env)->ReleasePrimitiveArrayCritical(env, yArray, - yPoints, JNI_ABORT); + (*env)->ReleasePrimitiveArrayCritical(env, xArray, + xPoints, JNI_ABORT); } - (*env)->ReleasePrimitiveArrayCritical(env, xArray, - xPoints, JNI_ABORT); + if (xPoints == NULL || yPoints == NULL) { + return; + } } if (!oom) { HANDLEENDPATH(pd, {oom = JNI_TRUE;}); diff -r c0864e216d36 -r c142f19c7181 jdk/src/share/native/sun/java2d/pipe/SpanClipRenderer.c --- a/jdk/src/share/native/sun/java2d/pipe/SpanClipRenderer.c Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/share/native/sun/java2d/pipe/SpanClipRenderer.c Mon Oct 14 09:52:36 2013 -0700 @@ -44,21 +44,27 @@ { /* Region fields */ pBandsArrayID = (*env)->GetFieldID(env, rc, "bands", "[I"); + if (pBandsArrayID == NULL) { + return; + } pEndIndexID = (*env)->GetFieldID(env, rc, "endIndex", "I"); + if (pEndIndexID == NULL) { + return; + } /* RegionIterator fields */ pRegionID = (*env)->GetFieldID(env, ric, "region", "Lsun/java2d/pipe/Region;"); + if (pRegionID == NULL) { + return; + } pCurIndexID = (*env)->GetFieldID(env, ric, "curIndex", "I"); + if (pCurIndexID == NULL) { + return; + } pNumXbandsID = (*env)->GetFieldID(env, ric, "numXbands", "I"); - - if((pBandsArrayID == NULL) - || (pEndIndexID == NULL) - || (pRegionID == NULL) - || (pCurIndexID == NULL) - || (pNumXbandsID == NULL)) - { - JNU_ThrowInternalError(env, "NULL field ID"); + if (pNumXbandsID == NULL) { + return; } } @@ -129,10 +135,14 @@ if ((*env)->GetArrayLength(env, boxArray) < 4) { JNU_ThrowArrayIndexOutOfBoundsException(env, "band array"); + return; } alphalen = (*env)->GetArrayLength(env, alphaTile); box = (*env)->GetPrimitiveArrayCritical(env, boxArray, 0); + if (box == NULL) { + return; + } w = box[2] - box[0]; h = box[3] - box[1]; @@ -140,9 +150,14 @@ if (alphalen < offset || (alphalen - offset) / tsize < h) { (*env)->ReleasePrimitiveArrayCritical(env, boxArray, box, 0); JNU_ThrowArrayIndexOutOfBoundsException(env, "alpha tile array"); + return; } alpha = (*env)->GetPrimitiveArrayCritical(env, alphaTile, 0); + if (alpha == NULL) { + (*env)->ReleasePrimitiveArrayCritical(env, boxArray, box, 0); + return; + } fill(alpha, offset, tsize, 0, 0, w, h, (jbyte) 0xff); @@ -182,6 +197,7 @@ if ((*env)->GetArrayLength(env, boxArray) < 4) { JNU_ThrowArrayIndexOutOfBoundsException(env, "band array"); + return; } alphalen = (*env)->GetArrayLength(env, alphaTile); @@ -196,6 +212,9 @@ } box = (*env)->GetPrimitiveArrayCritical(env, boxArray, 0); + if (box == NULL) { + return; + } lox = box[0]; loy = box[1]; @@ -207,10 +226,20 @@ (alphalen - offset - (hix-lox)) / tsize < (hiy - loy - 1)) { (*env)->ReleasePrimitiveArrayCritical(env, boxArray, box, 0); JNU_ThrowArrayIndexOutOfBoundsException(env, "alpha tile array"); + return; } bands = (*env)->GetPrimitiveArrayCritical(env, bandsArray, 0); + if (bands == NULL) { + (*env)->ReleasePrimitiveArrayCritical(env, boxArray, box, 0); + return; + } alpha = (*env)->GetPrimitiveArrayCritical(env, alphaTile, 0); + if (alpha == NULL) { + (*env)->ReleasePrimitiveArrayCritical(env, bandsArray, bands, 0); + (*env)->ReleasePrimitiveArrayCritical(env, boxArray, box, 0); + return; + } curIndex = saveCurIndex; numXbands = saveNumXbands; diff -r c0864e216d36 -r c142f19c7181 jdk/src/solaris/classes/sun/awt/X11/XBaseMenuWindow.java --- a/jdk/src/solaris/classes/sun/awt/X11/XBaseMenuWindow.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/solaris/classes/sun/awt/X11/XBaseMenuWindow.java Mon Oct 14 09:52:36 2013 -0700 @@ -116,6 +116,8 @@ protected Point grabInputPoint = null; protected boolean hasPointerMoved = false; + private AppContext disposeAppContext; + /************************************************ * * Mapping data @@ -174,6 +176,8 @@ XBaseMenuWindow() { super(new XCreateWindowParams(new Object[] { DELAYED, Boolean.TRUE})); + + disposeAppContext = AppContext.getAppContext(); } /************************************************ @@ -904,12 +908,12 @@ */ public void dispose() { setDisposed(true); - InvocationEvent ev = new InvocationEvent(target, new Runnable() { + + SunToolkit.invokeLaterOnAppContext(disposeAppContext, new Runnable() { public void run() { doDispose(); } }); - super.postEvent(ev); } /** @@ -923,7 +927,6 @@ if (oldData != null) { oldData.invalidate(); } - XToolkit.targetDisposedPeer(target, this); destroy(); } diff -r c0864e216d36 -r c142f19c7181 jdk/src/solaris/classes/sun/awt/X11/XComponentPeer.java --- a/jdk/src/solaris/classes/sun/awt/X11/XComponentPeer.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/solaris/classes/sun/awt/X11/XComponentPeer.java Mon Oct 14 09:52:36 2013 -0700 @@ -607,10 +607,6 @@ public void layout() {} - public java.awt.Toolkit getToolkit() { - return Toolkit.getDefaultToolkit(); - } - void updateMotifColors(Color bg) { int red = bg.getRed(); int green = bg.getGreen(); @@ -745,11 +741,11 @@ } public boolean prepareImage(Image img, int w, int h, ImageObserver o) { - return getToolkit().prepareImage(img, w, h, o); + return Toolkit.getDefaultToolkit().prepareImage(img, w, h, o); } public int checkImage(Image img, int w, int h, ImageObserver o) { - return getToolkit().checkImage(img, w, h, o); + return Toolkit.getDefaultToolkit().checkImage(img, w, h, o); } public Dimension preferredSize() { diff -r c0864e216d36 -r c142f19c7181 jdk/src/solaris/classes/sun/awt/X11/XSelection.java --- a/jdk/src/solaris/classes/sun/awt/X11/XSelection.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/solaris/classes/sun/awt/X11/XSelection.java Mon Oct 14 09:52:36 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -375,7 +375,7 @@ XToolkit.awtUnlock(); } - validateDataGetter(dataGetter); + validateDataGetter(incrDataGetter); if (incrDataGetter.getActualFormat() != 8) { throw new IOException("Unsupported data format: " + diff -r c0864e216d36 -r c142f19c7181 jdk/src/solaris/classes/sun/awt/X11/XTextAreaPeer.java --- a/jdk/src/solaris/classes/sun/awt/X11/XTextAreaPeer.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/solaris/classes/sun/awt/X11/XTextAreaPeer.java Mon Oct 14 09:52:36 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -64,41 +64,20 @@ import sun.awt.SunToolkit; -class XTextAreaPeer extends XComponentPeer implements TextAreaPeer { - boolean editable; - - AWTTextPane textPane; - AWTTextArea jtext; - - boolean firstChangeSkipped; - - private final JavaMouseEventHandler javaMouseEventHandler - = new JavaMouseEventHandler( this ); - - /* FIXME */ +final class XTextAreaPeer extends XComponentPeer implements TextAreaPeer { - public long filterEvents(long mask) { - Thread.dumpStack(); - return 0; - } + private final AWTTextPane textPane; + private final AWTTextArea jtext; + private final boolean firstChangeSkipped; - /* FIXME */ - public Rectangle getCharacterBounds(int i) { - Thread.dumpStack(); - return null; - } - - public int getIndexAtPoint(int x, int y) { - Thread.dumpStack(); - return 0; - } - + private final JavaMouseEventHandler javaMouseEventHandler = + new JavaMouseEventHandler(this); /** * Create a Text area. */ XTextAreaPeer(TextArea target) { - super( target ); + super(target); // some initializations require that target be set even // though init(target) has not been called @@ -106,8 +85,7 @@ //ComponentAccessor.enableEvents(target,AWTEvent.MOUSE_WHEEL_EVENT_MASK); - firstChangeSkipped = false; - String text = ((TextArea)target).getText(); + String text = target.getText(); jtext = new AWTTextArea(text, this); jtext.setWrapStyleWord(true); jtext.getDocument().addDocumentListener(jtext); @@ -143,29 +121,27 @@ setFont(font); + // set the text of this object to the text of its target + setTextImpl(target.getText()); //?? should this be setText + int start = target.getSelectionStart(); int end = target.getSelectionEnd(); - - if (end > start) { - select(start, end); - } // Fix for 5100200 // Restoring Motif behaviour // Since the end position of the selected text can be greater then the length of the text, // so we should set caret to max position of the text - int caretPosition = Math.min(end, text.length()); - setCaretPosition(caretPosition); - + setCaretPosition(Math.min(end, text.length())); + if (end > start) { + // Should be called after setText() and setCaretPosition() + select(start, end); + } setEditable(target.isEditable()); - setScrollBarVisibility(); - // set the text of this object to the text of its target - setTextImpl(target.getText()); //?? should this be setText - // After this line we should not change the component's text firstChangeSkipped = true; } + @Override public void dispose() { XToolkit.specialPeerMap.remove(jtext); // visible caret has a timer thread which must be stopped @@ -175,7 +151,6 @@ super.dispose(); } - /* * The method overrides one from XComponentPeer * If ignoreSubComponents=={@code true} it calls super. @@ -201,7 +176,7 @@ javaMouseEventHandler.setCursor(); } - void setScrollBarVisibility() { + private void setScrollBarVisibility() { int visibility = ((TextArea)target).getScrollbarVisibility(); jtext.setLineWrap(false); @@ -229,10 +204,12 @@ /** * Compute minimum size. */ + @Override public Dimension getMinimumSize() { return getMinimumSize(10, 60); } + @Override public Dimension getPreferredSize(int rows, int cols) { return getMinimumSize(rows, cols); } @@ -240,7 +217,7 @@ /** * @see java.awt.peer.TextAreaPeer */ - + @Override public Dimension getMinimumSize(int rows, int cols) { /* Dimension d = null; if (jtext != null) { @@ -269,10 +246,12 @@ fm.getHeight() * rows + /*2*YMARGIN +*/ hsbheight); } + @Override public boolean isFocusable() { return true; } + @Override public void setVisible(boolean b) { super.setVisible(b); if (textPane != null) @@ -283,27 +262,30 @@ jtext.repaintNow(); } + @Override public void focusGained(FocusEvent e) { super.focusGained(e); jtext.forwardFocusGained(e); } + @Override public void focusLost(FocusEvent e) { super.focusLost(e); jtext.forwardFocusLost(e); } - /** * Paint the component * this method is called when the repaint instruction has been used */ + @Override public void repaint() { if (textPane != null) { //textPane.validate(); textPane.repaint(); } } + @Override void paintPeer(final Graphics g) { if (textPane != null) { @@ -311,6 +293,7 @@ } } + @Override public void setBounds(int x, int y, int width, int height, int op) { super.setBounds(x, y, width, height, op); if (textPane != null) { @@ -337,21 +320,26 @@ } } + @Override void handleJavaKeyEvent(KeyEvent e) { AWTAccessor.getComponentAccessor().processEvent(jtext,e); } + @Override public boolean handlesWheelScrolling() { return true; } + @Override void handleJavaMouseWheelEvent(MouseWheelEvent e) { - AWTAccessor.getComponentAccessor().processEvent(textPane,e); + AWTAccessor.getComponentAccessor().processEvent(textPane, e); } + @Override public void handleJavaMouseEvent( MouseEvent e ) { super.handleJavaMouseEvent( e ); javaMouseEventHandler.handle( e ); } + @Override void handleJavaInputMethodEvent(InputMethodEvent e) { if (jtext != null) jtext.processInputMethodEventPublic((InputMethodEvent)e); @@ -360,13 +348,15 @@ /** * @see java.awt.peer.TextComponentPeer */ + @Override public void select(int s, int e) { - jtext.select(s,e); + jtext.select(s, e); // Fixed 5100806 // We must take care that Swing components repainted correctly jtext.repaint(); } + @Override public void setBackground(Color c) { super.setBackground(c); // synchronized (getStateLock()) { @@ -379,6 +369,7 @@ // repaintText(); } + @Override public void setForeground(Color c) { super.setForeground(c); // synchronized (getStateLock()) { @@ -392,6 +383,7 @@ // repaintText(); } + @Override public void setFont(Font f) { super.setFont(f); // synchronized (getStateLock()) { @@ -403,12 +395,11 @@ textPane.validate(); } - /** * @see java.awt.peer.TextComponentPeer */ + @Override public void setEditable(boolean editable) { - this.editable = editable; if (jtext != null) jtext.setEditable(editable); repaintText(); } @@ -416,6 +407,7 @@ /** * @see java.awt.peer.ComponentPeer */ + @Override public void setEnabled(boolean enabled) { super.setEnabled(enabled); if (jtext != null) { @@ -427,6 +419,7 @@ /** * @see java.awt.peer.TextComponentPeer */ + @Override public InputMethodRequests getInputMethodRequests() { if (jtext != null) return jtext.getInputMethodRequests(); else return null; @@ -435,6 +428,7 @@ /** * @see java.awt.peer.TextComponentPeer */ + @Override public int getSelectionStart() { return jtext.getSelectionStart(); } @@ -442,6 +436,7 @@ /** * @see java.awt.peer.TextComponentPeer */ + @Override public int getSelectionEnd() { return jtext.getSelectionEnd(); } @@ -449,6 +444,7 @@ /** * @see java.awt.peer.TextComponentPeer */ + @Override public String getText() { return jtext.getText(); } @@ -456,12 +452,13 @@ /** * @see java.awt.peer.TextComponentPeer */ - public void setText(String txt) { - setTextImpl(txt); + @Override + public void setText(String text) { + setTextImpl(text); repaintText(); } - protected boolean setTextImpl(String txt) { + private void setTextImpl(String txt) { if (jtext != null) { // JTextArea.setText() posts two different events (remove & insert). // Since we make no differences between text events, @@ -474,13 +471,13 @@ } jtext.getDocument().addDocumentListener(jtext); } - return true; } /** * insert the text "txt on position "pos" in the array lines * @see java.awt.peer.TextAreaPeer */ + @Override public void insert(String txt, int p) { if (jtext != null) { boolean doScroll = (p >= jtext.getDocument().getLength() && jtext.getDocument().getLength() != 0); @@ -499,6 +496,7 @@ * replace the text between the position "s" and "e" with "txt" * @see java.awt.peer.TextAreaPeer */ + @Override public void replaceRange(String txt, int s, int e) { if (jtext != null) { // JTextArea.replaceRange() posts two different events. @@ -516,6 +514,7 @@ * to be implemented. * @see java.awt.peer.TextComponentPeer */ + @Override public void setCaretPosition(int position) { jtext.setCaretPosition(position); } @@ -524,54 +523,19 @@ * to be implemented. * @see java.awt.peer.TextComponentPeer */ + @Override public int getCaretPosition() { return jtext.getCaretPosition(); } - /** - * DEPRECATED - * @see java.awt.peer.TextAreaPeer - */ - public void insertText(String txt, int pos) { - insert(txt, pos); - } - - /** - * DEPRECATED - * @see java.awt.peer.TextAreaPeer - */ - public void replaceText(String txt, int start, int end) { - replaceRange(txt, start, end); - } + final class AWTTextAreaUI extends MotifTextAreaUI { - /** - * DEPRECATED - * @see java.awt.peer.TextAreaPeer - */ - public Dimension minimumSize(int rows, int cols) { - return getMinimumSize(rows, cols); - } + private JTextArea jta; - /** - * DEPRECATED - * @see java.awt.peer.TextAreaPeer - */ - public Dimension preferredSize(int rows, int cols) { - return getPreferredSize(rows, cols); - } - - - class AWTTextAreaUI extends MotifTextAreaUI { - /** - * Creates a UI for a JTextArea. - * - * @param c the text field - * @return the UI - */ - JTextArea jta; - + @Override protected String getPropertyPrefix() { return "TextArea"; } + @Override public void installUI(JComponent c) { super.installUI(c); @@ -627,6 +591,7 @@ } } + @Override protected void installKeyboardActions() { super.installKeyboardActions(); @@ -644,13 +609,15 @@ } } + @Override protected Caret createCaret() { return new XAWTCaret(); } } - static class XAWTCaret extends DefaultCaret { + static final class XAWTCaret extends DefaultCaret { + @Override public void focusGained(FocusEvent e) { super.focusGained(e); if (getComponent().isEnabled()){ @@ -660,6 +627,7 @@ getComponent().repaint(); } + @Override public void focusLost(FocusEvent e) { super.focusLost(e); getComponent().repaint(); @@ -668,6 +636,7 @@ // Fix for 5100950: textarea.getSelectedText() returns the de-selected text, on XToolkit // Restoring Motif behaviour // If the text is unhighlighted then we should sets the selection range to zero + @Override public void setSelectionVisible(boolean vis) { if (vis){ super.setSelectionVisible(vis); @@ -678,16 +647,14 @@ } } + final class XAWTScrollBarButton extends BasicArrowButton { - class XAWTScrollBarButton extends BasicArrowButton - { - UIDefaults uidefaults = XToolkit.getUIDefaults(); + private UIDefaults uidefaults = XToolkit.getUIDefaults(); private Color darkShadow = SystemColor.controlShadow; private Color lightShadow = SystemColor.controlLtHighlight; private Color buttonBack = uidefaults.getColor("ScrollBar.track"); - public XAWTScrollBarButton(int direction) - { + XAWTScrollBarButton(int direction) { super(direction); switch (direction) { @@ -707,6 +674,7 @@ setForeground(uidefaults.getColor("ScrollBar.foreground")); } + @Override public Dimension getPreferredSize() { switch (direction) { case NORTH: @@ -719,18 +687,22 @@ } } + @Override public Dimension getMinimumSize() { return getPreferredSize(); } + @Override public Dimension getMaximumSize() { return getPreferredSize(); } + @Override public boolean isFocusTraversable() { return false; } + @Override public void paint(Graphics g) { int w = getWidth(); @@ -846,19 +818,16 @@ } } + final class XAWTScrollBarUI extends BasicScrollBarUI { - class XAWTScrollBarUI extends BasicScrollBarUI - { - public XAWTScrollBarUI() { - super(); - } - + @Override protected void installDefaults() { super.installDefaults(); scrollbar.setBorder(new BevelBorder(false,SystemColor.controlDkShadow,SystemColor.controlLtHighlight) ); } + @Override protected void configureScrollBarColors() { UIDefaults uidefaults = XToolkit.getUIDefaults(); Color bg = scrollbar.getBackground(); @@ -881,12 +850,14 @@ } + @Override protected JButton createDecreaseButton(int orientation) { JButton b = new XAWTScrollBarButton(orientation); return b; } + @Override protected JButton createIncreaseButton(int orientation) { JButton b = new XAWTScrollBarButton(orientation); return b; @@ -900,12 +871,14 @@ return incrButton; } + @Override public void paint(Graphics g, JComponent c) { paintTrack(g, c, getTrackBounds()); Rectangle thumbBounds = getThumbBounds(); paintThumb(g, c, thumbBounds); } + @Override public void paintThumb(Graphics g, JComponent c, Rectangle thumbBounds) { if(!scrollbar.isEnabled()) { @@ -934,17 +907,18 @@ } } + final class AWTTextArea extends JTextArea implements DocumentListener { - class AWTTextArea extends JTextArea implements DocumentListener { - boolean isFocused = false; - XTextAreaPeer peer; + private boolean isFocused = false; + private final XTextAreaPeer peer; - public AWTTextArea(String text, XTextAreaPeer peer) { + AWTTextArea(String text, XTextAreaPeer peer) { super(text); setFocusable(false); this.peer = peer; } + @Override public void insertUpdate(DocumentEvent e) { if (peer != null) { peer.postEvent(new TextEvent(peer.target, @@ -952,6 +926,7 @@ } } + @Override public void removeUpdate(DocumentEvent e) { if (peer != null) { peer.postEvent(new TextEvent(peer.target, @@ -959,6 +934,7 @@ } } + @Override public void changedUpdate(DocumentEvent e) { if (peer != null) { peer.postEvent(new TextEvent(peer.target, @@ -979,6 +955,7 @@ super.processFocusEvent(fe); } + @Override public boolean hasFocus() { return isFocused; } @@ -999,6 +976,7 @@ processInputMethodEvent(e); } + @Override public void updateUI() { ComponentUI ui = new AWTTextAreaUI(); setUI(ui); @@ -1006,6 +984,7 @@ // Fix for 4915454 - override the default implementation to avoid // loading SystemFlavorMap and associated classes. + @Override public void setTransferHandler(TransferHandler newHandler) { TransferHandler oldHandler = (TransferHandler) getClientProperty(AWTAccessor.getClientPropertyKeyAccessor() @@ -1018,9 +997,8 @@ } } + final class XAWTScrollPaneUI extends BasicScrollPaneUI { - class XAWTScrollPaneUI extends BasicScrollPaneUI - { private final Border vsbMarginBorderR = new EmptyBorder(0, 2, 0, 0); private final Border vsbMarginBorderL = new EmptyBorder(0, 0, 0, 2); private final Border hsbMarginBorder = new EmptyBorder(2, 0, 0, 0); @@ -1030,12 +1008,14 @@ private PropertyChangeListener propertyChangeHandler; + @Override protected void installListeners(JScrollPane scrollPane) { super.installListeners(scrollPane); propertyChangeHandler = createPropertyChangeHandler(); scrollPane.addPropertyChangeListener(propertyChangeHandler); } + @Override public void paint(Graphics g, JComponent c) { Border vpBorder = scrollpane.getViewportBorder(); if (vpBorder != null) { @@ -1051,6 +1031,7 @@ private PropertyChangeListener createPropertyChangeHandler() { return new PropertyChangeListener() { + @Override public void propertyChange(PropertyChangeEvent e) { String propertyName = e.getPropertyName(); @@ -1075,7 +1056,7 @@ return c.getComponentOrientation().isLeftToRight(); } - + @Override protected void installDefaults(JScrollPane scrollpane) { Border b = scrollpane.getBorder(); UIDefaults uidefaults = XToolkit.getUIDefaults(); @@ -1102,6 +1083,7 @@ } } + @Override protected void uninstallDefaults(JScrollPane c) { super.uninstallDefaults(c); @@ -1123,15 +1105,15 @@ } } + private class AWTTextPane extends JScrollPane implements FocusListener { - private class AWTTextPane extends JScrollPane implements FocusListener { - JTextArea jtext; - XWindow xwin; + private final JTextArea jtext; + private final XWindow xwin; - Color control = SystemColor.control; - Color focus = SystemColor.activeCaptionBorder; + private final Color control = SystemColor.control; + private final Color focus = SystemColor.activeCaptionBorder; - public AWTTextPane(JTextArea jt, XWindow xwin, Container parent) { + AWTTextPane(JTextArea jt, XWindow xwin, Container parent) { super(jt); this.xwin = xwin; setDoubleBuffered(true); @@ -1156,6 +1138,7 @@ } } + @Override public void focusGained(FocusEvent e) { Graphics g = getGraphics(); Rectangle r = getViewportBorderBounds(); @@ -1164,6 +1147,7 @@ g.dispose(); } + @Override public void focusLost(FocusEvent e) { Graphics g = getGraphics(); Rectangle r = getViewportBorderBounds(); @@ -1176,19 +1160,23 @@ return (Window) xwin.target; } + @Override public ComponentPeer getPeer() { return (ComponentPeer) (xwin); } + @Override public void updateUI() { ComponentUI ui = new XAWTScrollPaneUI(); setUI(ui); } + @Override public JScrollBar createVerticalScrollBar() { return new XAWTScrollBar(JScrollBar.VERTICAL); } + @Override public JScrollBar createHorizontalScrollBar() { return new XAWTScrollBar(JScrollBar.HORIZONTAL); } @@ -1197,18 +1185,19 @@ return this.jtext; } + @Override public Graphics getGraphics() { return xwin.getGraphics(); } + final class XAWTScrollBar extends ScrollBar { - class XAWTScrollBar extends ScrollBar { - - public XAWTScrollBar(int i) { + XAWTScrollBar(int i) { super(i); setFocusable(false); } + @Override public void updateUI() { ComponentUI ui = new XAWTScrollBarUI(); setUI(ui); @@ -1222,12 +1211,13 @@ private Color control = SystemColor.controlShadow; private boolean isRaised; - public BevelBorder(boolean isRaised, Color darkShadow, Color lightShadow) { + BevelBorder(boolean isRaised, Color darkShadow, Color lightShadow) { this.isRaised = isRaised; this.darkShadow = darkShadow; this.lightShadow = lightShadow; } + @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { g.setColor((isRaised) ? lightShadow : darkShadow); g.drawLine(x, y, x+w-1, y); // top @@ -1246,10 +1236,12 @@ g.drawLine(x+w-2, y+h-2, x+w-2, y+1); // right } + @Override public Insets getBorderInsets(Component c) { return getBorderInsets(c, new Insets(0,0,0,0)); } + @Override public Insets getBorderInsets(Component c, Insets insets) { insets.top = insets.left = insets.bottom = insets.right = 2; return insets; diff -r c0864e216d36 -r c142f19c7181 jdk/src/solaris/classes/sun/awt/X11/XTextFieldPeer.java --- a/jdk/src/solaris/classes/sun/awt/X11/XTextFieldPeer.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/solaris/classes/sun/awt/X11/XTextFieldPeer.java Mon Oct 14 09:52:36 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -57,51 +57,47 @@ import sun.awt.CausedFocusEvent; import sun.awt.AWTAccessor; -public class XTextFieldPeer extends XComponentPeer implements TextFieldPeer { +final class XTextFieldPeer extends XComponentPeer implements TextFieldPeer { private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XTextField"); - String text; - XAWTTextField xtext; - - boolean firstChangeSkipped; + private String text; + private final XAWTTextField xtext; + private final boolean firstChangeSkipped; - public XTextFieldPeer(TextField target) { + XTextFieldPeer(TextField target) { super(target); - int start, end; - firstChangeSkipped = false; text = target.getText(); xtext = new XAWTTextField(text,this, target.getParent()); xtext.getDocument().addDocumentListener(xtext); xtext.setCursor(target.getCursor()); XToolkit.specialPeerMap.put(xtext,this); - TextField txt = (TextField) target; initTextField(); - setText(txt.getText()); - if (txt.echoCharIsSet()) { - setEchoChar(txt.getEchoChar()); + setText(target.getText()); + if (target.echoCharIsSet()) { + setEchoChar(target.getEchoChar()); } else setEchoChar((char)0); - start = txt.getSelectionStart(); - end = txt.getSelectionEnd(); - - if (end > start) { - select(start, end); - } + int start = target.getSelectionStart(); + int end = target.getSelectionEnd(); // Fix for 5100200 // Restoring Motif behaviour // Since the end position of the selected text can be greater then the length of the text, // so we should set caret to max position of the text - int caretPosition = Math.min(end, text.length()); - setCaretPosition(caretPosition); + setCaretPosition(Math.min(end, text.length())); + if (end > start) { + // Should be called after setText() and setCaretPosition() + select(start, end); + } - setEditable(txt.isEditable()); + setEditable(target.isEditable()); // After this line we should not change the component's text firstChangeSkipped = true; } + @Override public void dispose() { XToolkit.specialPeerMap.remove(xtext); // visible caret has a timer thread which must be stopped @@ -141,10 +137,10 @@ setFont(font); } - /** * @see java.awt.peer.TextComponentPeer */ + @Override public void setEditable(boolean editable) { if (xtext != null) { xtext.setEditable(editable); @@ -155,6 +151,7 @@ /** * @see java.awt.peer.ComponentPeer */ + @Override public void setEnabled(boolean enabled) { super.setEnabled(enabled); if (xtext != null) { @@ -166,22 +163,23 @@ /** * @see java.awt.peer.TextComponentPeer */ - + @Override public InputMethodRequests getInputMethodRequests() { if (xtext != null) return xtext.getInputMethodRequests(); else return null; } + @Override void handleJavaInputMethodEvent(InputMethodEvent e) { if (xtext != null) xtext.processInputMethodEventImpl(e); } - /** * @see java.awt.peer.TextFieldPeer */ + @Override public void setEchoChar(char c) { if (xtext != null) { xtext.setEchoChar(c); @@ -193,6 +191,7 @@ /** * @see java.awt.peer.TextComponentPeer */ + @Override public int getSelectionStart() { return xtext.getSelectionStart(); } @@ -200,6 +199,7 @@ /** * @see java.awt.peer.TextComponentPeer */ + @Override public int getSelectionEnd() { return xtext.getSelectionEnd(); } @@ -207,6 +207,7 @@ /** * @see java.awt.peer.TextComponentPeer */ + @Override public String getText() { return xtext.getText(); } @@ -214,12 +215,13 @@ /** * @see java.awt.peer.TextComponentPeer */ - public void setText(String txt) { - setXAWTTextField(txt); + @Override + public void setText(String text) { + setXAWTTextField(text); repaint(); } - protected boolean setXAWTTextField(String txt) { + private void setXAWTTextField(String txt) { text = txt; if (xtext != null) { // JTextField.setText() posts two different events (remove & insert). @@ -234,29 +236,22 @@ xtext.getDocument().addDocumentListener(xtext); xtext.setCaretPosition(0); } - return true; } /** * to be implemented. * @see java.awt.peer.TextComponentPeer */ + @Override public void setCaretPosition(int position) { if (xtext != null) xtext.setCaretPosition(position); } - /** - * DEPRECATED - * @see java.awt.peer.TextFieldPeer - */ - public void setEchoCharacter(char c) { - setEchoChar(c); - } - void repaintText() { xtext.repaintNow(); } + @Override public void setBackground(Color c) { if (log.isLoggable(PlatformLogger.Level.FINE)) { log.fine("target="+ target + ", old=" + background + ", new=" + c); @@ -269,6 +264,7 @@ repaintText(); } + @Override public void setForeground(Color c) { foreground = c; if (xtext != null) { @@ -279,6 +275,7 @@ repaintText(); } + @Override public void setFont(Font f) { synchronized (getStateLock()) { font = f; @@ -290,14 +287,6 @@ } /** - * DEPRECATED - * @see java.awt.peer.TextFieldPeer - */ - public Dimension preferredSize(int cols) { - return getPreferredSize(cols); - } - - /** * Deselects the the highlighted text. */ public void deselect() { @@ -308,20 +297,19 @@ } } - /** * to be implemented. * @see java.awt.peer.TextComponentPeer */ + @Override public int getCaretPosition() { return xtext.getCaretPosition(); } - - /** * @see java.awt.peer.TextComponentPeer */ + @Override public void select(int s, int e) { xtext.select(s,e); // Fixed 5100806 @@ -329,29 +317,32 @@ xtext.repaint(); } - + @Override public Dimension getMinimumSize() { return xtext.getMinimumSize(); } + @Override public Dimension getPreferredSize() { return xtext.getPreferredSize(); } + @Override public Dimension getPreferredSize(int cols) { return getMinimumSize(cols); } private static final int PADDING = 16; + @Override public Dimension getMinimumSize(int cols) { Font f = xtext.getFont(); FontMetrics fm = xtext.getFontMetrics(f); return new Dimension(fm.charWidth('0') * cols + 10, fm.getMaxDescent() + fm.getMaxAscent() + PADDING); - } + @Override public boolean isFocusable() { return true; } @@ -364,11 +355,10 @@ modifiers)); } - protected void disposeImpl() { } - + @Override public void repaint() { if (xtext != null) xtext.repaint(); } @@ -377,27 +367,32 @@ if (xtext != null) xtext.paint(g); } + @Override public void print(Graphics g) { if (xtext != null) { xtext.print(g); } } + @Override public void focusLost(FocusEvent e) { super.focusLost(e); xtext.forwardFocusLost(e); } + @Override public void focusGained(FocusEvent e) { super.focusGained(e); xtext.forwardFocusGained(e); } + @Override void handleJavaKeyEvent(KeyEvent e) { AWTAccessor.getComponentAccessor().processEvent(xtext,e); } + @Override public void handleJavaMouseEvent( MouseEvent mouseEvent ) { super.handleJavaMouseEvent(mouseEvent); if (xtext != null) { @@ -410,26 +405,21 @@ } } - /** * DEPRECATED */ + @Override public Dimension minimumSize() { return getMinimumSize(); } - /** - * DEPRECATED - */ - public Dimension minimumSize(int cols) { - return getMinimumSize(cols); - } - + @Override public void setVisible(boolean b) { super.setVisible(b); if (xtext != null) xtext.setVisible(b); } + @Override public void setBounds(int x, int y, int width, int height, int op) { super.setBounds(x, y, width, height, op); if (xtext != null) { @@ -456,47 +446,11 @@ } } - - // - // Accessibility support - // - - // stub functions: to be fully implemented in a future release - public int getIndexAtPoint(int x, int y) { return -1; } - public Rectangle getCharacterBounds(int i) { return null; } - public long filterEvents(long mask) { return 0; } - - - /* To be fully implemented in a future release - - int oldSelectionStart; - int oldSelectionEnd; - - public native int getIndexAtPoint(int x, int y); - public native Rectangle getCharacterBounds(int i); - public native long filterEvents(long mask); + final class AWTTextFieldUI extends MotifPasswordFieldUI { - /** - * Handle a change in the text selection endpoints - * (Note: could be simply a change in the caret location) - * - public void selectionValuesChanged(int start, int end) { - return; // Need to write implemetation of this. - } - */ - + private JTextField jtf; - class AWTTextFieldUI extends MotifPasswordFieldUI { - - /** - * Creates a UI for a JTextField. - * - * @param c the text field - * @return the UI - */ - JTextField jtf; - - + @Override protected String getPropertyPrefix() { JTextComponent comp = getComponent(); if (comp instanceof JPasswordField && ((JPasswordField)comp).echoCharIsSet()) { @@ -506,6 +460,7 @@ } } + @Override public void installUI(JComponent c) { super.installUI(c); @@ -562,6 +517,7 @@ } } + @Override protected void installKeyboardActions() { super.installKeyboardActions(); @@ -579,21 +535,19 @@ } } + @Override protected Caret createCaret() { return new XTextAreaPeer.XAWTCaret(); } } - class XAWTTextField extends JPasswordField - implements ActionListener, - DocumentListener - { + final class XAWTTextField extends JPasswordField + implements ActionListener, DocumentListener { - boolean isFocused = false; + private boolean isFocused = false; + private final XComponentPeer peer; - XComponentPeer peer; - - public XAWTTextField(String text, XComponentPeer peer, Container parent) { + XAWTTextField(String text, XComponentPeer peer, Container parent) { super(text); this.peer = peer; setDoubleBuffered(true); @@ -608,6 +562,7 @@ } + @Override public void actionPerformed( ActionEvent actionEvent ) { peer.postEvent(new ActionEvent(peer.target, ActionEvent.ACTION_PERFORMED, @@ -617,6 +572,7 @@ } + @Override public void insertUpdate(DocumentEvent e) { if (peer != null) { peer.postEvent(new TextEvent(peer.target, @@ -624,6 +580,7 @@ } } + @Override public void removeUpdate(DocumentEvent e) { if (peer != null) { peer.postEvent(new TextEvent(peer.target, @@ -631,6 +588,7 @@ } } + @Override public void changedUpdate(DocumentEvent e) { if (peer != null) { peer.postEvent(new TextEvent(peer.target, @@ -638,33 +596,32 @@ } } + @Override public ComponentPeer getPeer() { return (ComponentPeer) peer; } - public void repaintNow() { paintImmediately(getBounds()); } + @Override public Graphics getGraphics() { return peer.getGraphics(); } + @Override public void updateUI() { ComponentUI ui = new AWTTextFieldUI(); setUI(ui); } - void forwardFocusGained( FocusEvent e) { isFocused = true; FocusEvent fe = CausedFocusEvent.retarget(e, this); super.processFocusEvent(fe); - } - void forwardFocusLost( FocusEvent e) { isFocused = false; FocusEvent fe = CausedFocusEvent.retarget(e, this); @@ -672,11 +629,11 @@ } + @Override public boolean hasFocus() { return isFocused; } - public void processInputMethodEventImpl(InputMethodEvent e) { processInputMethodEvent(e); } @@ -691,6 +648,7 @@ // Fix for 4915454 - override the default implementation to avoid // loading SystemFlavorMap and associated classes. + @Override public void setTransferHandler(TransferHandler newHandler) { TransferHandler oldHandler = (TransferHandler) getClientProperty(AWTAccessor.getClientPropertyKeyAccessor() @@ -702,6 +660,7 @@ firePropertyChange("transferHandler", oldHandler, newHandler); } + @Override public void setEchoChar(char c) { super.setEchoChar(c); ((AWTTextFieldUI)ui).installKeyboardActions(); diff -r c0864e216d36 -r c142f19c7181 jdk/src/solaris/classes/sun/awt/X11/XToolkit.java --- a/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java Mon Oct 14 09:52:36 2013 -0700 @@ -240,9 +240,14 @@ @Override public void dispatchEvent(XEvent ev) { if (ev.get_type() == XConstants.ConfigureNotify) { - ((X11GraphicsEnvironment)GraphicsEnvironment. - getLocalGraphicsEnvironment()). - displayChanged(); + awtUnlock(); + try { + ((X11GraphicsEnvironment)GraphicsEnvironment. + getLocalGraphicsEnvironment()). + displayChanged(); + } finally { + awtLock(); + } } } }); diff -r c0864e216d36 -r c142f19c7181 jdk/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java --- a/jdk/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java Mon Oct 14 09:52:36 2013 -0700 @@ -25,8 +25,8 @@ package sun.awt; +import java.awt.AWTError; import java.awt.GraphicsDevice; - import java.awt.Point; import java.awt.Rectangle; import java.io.BufferedReader; @@ -96,6 +96,7 @@ // Now check for XRender system property boolean xRenderRequested = true; + boolean xRenderIgnoreLinuxVersion = false; String xProp = System.getProperty("sun.java2d.xrender"); if (xProp != null) { if (xProp.equals("false") || xProp.equals("f")) { @@ -104,6 +105,10 @@ xRenderRequested = true; xRenderVerbose = true; } + + if(xProp.equalsIgnoreCase("t") || xProp.equalsIgnoreCase("true")) { + xRenderIgnoreLinuxVersion = true; + } } // initialize the X11 display connection @@ -121,7 +126,7 @@ // only attempt to initialize Xrender if it was requested if (xRenderRequested) { - xRenderAvailable = initXRender(xRenderVerbose); + xRenderAvailable = initXRender(xRenderVerbose, xRenderIgnoreLinuxVersion); if (xRenderVerbose && !xRenderAvailable) { System.out.println( "Could not enable XRender pipeline"); @@ -159,7 +164,7 @@ private static boolean xRenderVerbose; private static boolean xRenderAvailable; - private static native boolean initXRender(boolean verbose); + private static native boolean initXRender(boolean verbose, boolean ignoreLinuxVersion); public static boolean isXRenderAvailable() { return xRenderAvailable; } @@ -200,7 +205,12 @@ * Returns the default screen graphics device. */ public GraphicsDevice getDefaultScreenDevice() { - return getScreenDevices()[getDefaultScreenNum()]; + GraphicsDevice[] screens = getScreenDevices(); + if (screens.length == 0) { + throw new AWTError("no screen devices"); + } + int index = getDefaultScreenNum(); + return screens[0 < index && index < screens.length ? index : 0]; } public boolean isDisplayLocal() { diff -r c0864e216d36 -r c142f19c7181 jdk/src/solaris/classes/sun/java2d/xr/GrowableRectArray.java --- a/jdk/src/solaris/classes/sun/java2d/xr/GrowableRectArray.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/solaris/classes/sun/java2d/xr/GrowableRectArray.java Mon Oct 14 09:52:36 2013 -0700 @@ -38,6 +38,20 @@ super(RECT_SIZE, initialSize); } + public final void pushRectValues(int x, int y, int width, int height) { + int currSize = size; + size += RECT_SIZE; + + if (size >= array.length) { + growArray(); + } + + array[currSize] = x; + array[currSize + 1] = y; + array[currSize + 2] = width; + array[currSize + 3] = height; + } + public final void setX(int index, int x) { array[getCellIndex(index)] = x; } diff -r c0864e216d36 -r c142f19c7181 jdk/src/solaris/classes/sun/java2d/xr/MaskTile.java --- a/jdk/src/solaris/classes/sun/java2d/xr/MaskTile.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/solaris/classes/sun/java2d/xr/MaskTile.java Mon Oct 14 09:52:36 2013 -0700 @@ -41,98 +41,6 @@ dirtyArea = new DirtyRegion(); } - public void addRect(int x, int y, int width, int height) { - int index = rects.getNextIndex(); - rects.setX(index, x); - rects.setY(index, y); - rects.setWidth(index, width); - rects.setHeight(index, height); - } - - public void addLine(int x1, int y1, int x2, int y2) { - /* - * EXA is not able to accalerate diagonal lines, we try to "guide" it a - * bit to avoid excessive migration See project documentation for an - * detailed explanation - */ - DirtyRegion region = new DirtyRegion(); - region.setDirtyLineRegion(x1, y1, x2, y2); - int xDiff = region.x2 - region.x; - int yDiff = region.y2 - region.y; - - if (xDiff == 0 || yDiff == 0) { - addRect(region.x, region.y, - region.x2 - region.x + 1, region.y2 - region.y + 1); - } else if (xDiff == 1 && yDiff == 1) { - addRect(x1, y1, 1, 1); - addRect(x2, y2, 1, 1); - } else { - lineToRects(x1, y1, x2, y2); - } - } - - private void lineToRects(int xstart, int ystart, int xend, int yend) { - int x, y, t, dx, dy, incx, incy, pdx, pdy, ddx, ddy, es, el, err; - - /* Entfernung in beiden Dimensionen berechnen */ - dx = xend - xstart; - dy = yend - ystart; - - /* Vorzeichen des Inkrements bestimmen */ - incx = dx > 0 ? 1 : (dx < 0) ? -1 : 0; - incy = dy > 0 ? 1 : (dy < 0) ? -1 : 0; - if (dx < 0) - dx = -dx; - if (dy < 0) - dy = -dy; - - /* feststellen, welche Entfernung groesser ist */ - if (dx > dy) { - /* x ist schnelle Richtung */ - pdx = incx; - pdy = 0; /* pd. ist Parallelschritt */ - ddx = incx; - ddy = incy; /* dd. ist Diagonalschritt */ - es = dy; - el = dx; /* Fehlerschritte schnell, langsam */ - } else { - /* y ist schnelle Richtung */ - pdx = 0; - pdy = incy; /* pd. ist Parallelschritt */ - ddx = incx; - ddy = incy; /* dd. ist Diagonalschritt */ - es = dx; - el = dy; /* Fehlerschritte schnell, langsam */ - } - - /* Initialisierungen vor Schleifenbeginn */ - x = xstart; - y = ystart; - err = el / 2; - addRect(x, y, 1, 1); - - /* Pixel berechnen */ - for (t = 0; t < el; ++t) /* t zaehlt die Pixel, el ist auch Anzahl */ - { - /* Aktualisierung Fehlerterm */ - err -= es; - if (err < 0) { - /* Fehlerterm wieder positiv (>=0) machen */ - err += el; - /* Schritt in langsame Richtung, Diagonalschritt */ - x += ddx; - y += ddy; - } else { - /* Schritt in schnelle Richtung, Parallelschritt */ - x += pdx; - y += pdy; - } - addRect(x, y, 1, 1); - // SetPixel(x,y); - // System.out.println(x+":"+y); - } - } - public void calculateDirtyAreas() { for (int i=0; i < rects.getSize(); i++) { diff -r c0864e216d36 -r c142f19c7181 jdk/src/solaris/classes/sun/java2d/xr/MaskTileManager.java --- a/jdk/src/solaris/classes/sun/java2d/xr/MaskTileManager.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/solaris/classes/sun/java2d/xr/MaskTileManager.java Mon Oct 14 09:52:36 2013 -0700 @@ -54,10 +54,6 @@ int maskPixmap; int maskPicture; long maskGC; - int lineMaskPixmap; - int lineMaskPicture; - long drawLineGC; - long clearLineGC; public MaskTileManager(XRCompositeManager xrMgr, int parentXid) { tileList = new ArrayList(); @@ -71,34 +67,6 @@ 0, 0, MASK_SIZE, MASK_SIZE); maskGC = con.createGC(maskPixmap); con.setGCExposures(maskGC, false); - - lineMaskPixmap = con.createPixmap(parentXid, 8, MASK_SIZE, MASK_SIZE); - lineMaskPicture = - con.createPicture(lineMaskPixmap, XRUtils.PictStandardA8); - con.renderRectangle(lineMaskPicture, XRUtils.PictOpClear, - new XRColor(Color.black), 0, 0, MASK_SIZE, MASK_SIZE); - - drawLineGC = con.createGC(lineMaskPixmap); - con.setGCExposures(drawLineGC, false); - con.setGCForeground(drawLineGC, 255); - - clearLineGC = con.createGC(lineMaskPixmap); - con.setGCExposures(clearLineGC, false); - con.setGCForeground(clearLineGC, 0); - } - - /** - * Adds a rectangle to the mask. - */ - public void addRect(int x, int y, int width, int height) { - mainTile.addRect(x, y, width, height); - } - - /** - * Adds a line to the mask. - */ - public void addLine(int x1, int y1, int x2, int y2) { - mainTile.addLine(x1, y1, x2, y2); } /** @@ -324,4 +292,11 @@ rects.setY(index, 0); } } + + /** + * @return MainTile to which rectangles are added before composition. + */ + public MaskTile getMainTile() { + return mainTile; + } } diff -r c0864e216d36 -r c142f19c7181 jdk/src/solaris/classes/sun/java2d/xr/XRDrawLine.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/src/solaris/classes/sun/java2d/xr/XRDrawLine.java Mon Oct 14 09:52:36 2013 -0700 @@ -0,0 +1,425 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + + + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/** + * Bresenham line-drawing implementation decomposing line segments + * into a series of rectangles. + * This is required, because xrender doesn't support line primitives directly. + * The code here is an almost 1:1 port of the existing C-source contained in + * sun/java2d/loop/DrawLine.c and sun/java2d/loop/LoopMacros.h + */ +package sun.java2d.xr; + +public class XRDrawLine { + static final int BIG_MAX = ((1 << 29) - 1); + static final int BIG_MIN = (-(1 << 29)); + + static final int OUTCODE_TOP = 1; + static final int OUTCODE_BOTTOM = 2; + static final int OUTCODE_LEFT = 4; + static final int OUTCODE_RIGHT = 8; + + int x1, y1, x2, y2; + int ucX1, ucY1, ucX2, ucY2; + + DirtyRegion region = new DirtyRegion(); + + protected void rasterizeLine(GrowableRectArray rectBuffer, int _x1, + int _y1, int _x2, int _y2, int cxmin, int cymin, int cxmax, + int cymax, boolean clip, boolean overflowCheck) { + float diagF; + int error; + int steps; + int errminor, errmajor; + boolean xmajor; + int dx, dy, ax, ay; + + initCoordinates(_x1, _y1, _x2, _y2, overflowCheck); + + dx = x2 - x1; + dy = y2 - y1; + ax = Math.abs(dx); + ay = Math.abs(dy); + xmajor = (ax >= ay); + diagF = ((float) ax) / ay; + + if (clip + && !clipCoordinates(cxmin, cymin, cxmax, cymax, xmajor, dx, dy, + ax, ay)) { + // whole line was clipped away + return; + } + + region.setDirtyLineRegion(x1, y1, x2, y2); + int xDiff = region.x2 - region.x; + int yDiff = region.y2 - region.y; + + if (xDiff == 0 || yDiff == 0) { + // horizontal / diagonal lines can be represented by a single + // rectangle + rectBuffer.pushRectValues(region.x, region.y, region.x2 - region.x + + 1, region.y2 - region.y + 1); + return; + } + + // Setup bresenham + if (xmajor) { + errmajor = ay * 2; + errminor = ax * 2; + ax = -ax; /* For clipping adjustment below */ + steps = x2 - x1; + } else { + errmajor = ax * 2; + errminor = ay * 2; + ay = -ay; /* For clipping adjustment below */ + steps = y2 - y1; + } + + if ((steps = (Math.abs(steps) + 1)) == 0) { + return; + } + + error = -(errminor / 2); + + if (y1 != ucY1) { + int ysteps = y1 - ucY1; + if (ysteps < 0) { + ysteps = -ysteps; + } + error += ysteps * ax * 2; + } + + if (x1 != ucX1) { + int xsteps = x1 - ucX1; + if (xsteps < 0) { + xsteps = -xsteps; + } + error += xsteps * ay * 2; + } + error += errmajor; + errminor -= errmajor; + + int xStep = (dx > 0 ? 1 : -1); + int yStep = (dy > 0 ? 1 : -1); + int orthogonalXStep = xmajor ? xStep : 0; + int orthogonalYStep = !xmajor ? yStep : 0; + + /* + * For lines which proceed in one direction faster, we try to generate + * rectangles instead of points. Otherwise we try to avoid the extra + * work... + */ + if (diagF <= 0.9 || diagF >= 1.1) { + lineToRects(rectBuffer, steps, error, errmajor, errminor, xStep, + yStep, orthogonalXStep, orthogonalYStep); + } else { + lineToPoints(rectBuffer, steps, error, errmajor, errminor, xStep, + yStep, orthogonalXStep, orthogonalYStep); + } + } + + private void lineToPoints(GrowableRectArray rectBuffer, int steps, + int error, int errmajor, int errminor, int xStep, int yStep, + int orthogonalXStep, int orthogonalYStep) { + int x = x1, y = y1; + + do { + rectBuffer.pushRectValues(x, y, 1, 1); + + // "Traditional" Bresenham line drawing + if (error < 0) { + error += errmajor; + x += orthogonalXStep; + y += orthogonalYStep; + } else { + error -= errminor; + x += xStep; + y += yStep; + } + } while (--steps > 0); + } + + private void lineToRects(GrowableRectArray rectBuffer, int steps, + int error, int errmajor, int errminor, int xStep, int yStep, + int orthogonalXStep, int orthogonalYStep) { + int x = x1, y = y1; + int rectX = Integer.MIN_VALUE, rectY = 0; + int rectW = 0, rectH = 0; + + do { + // Combine the resulting rectangles + // for steps performed in a single direction. + if (y == rectY) { + if (x == (rectX + rectW)) { + rectW++; + } else if (x == (rectX - 1)) { + rectX--; + rectW++; + } + } else if (x == rectX) { + if (y == (rectY + rectH)) { + rectH++; + } else if (y == (rectY - 1)) { + rectY--; + rectH++; + } + } else { + // Diagonal step: add the previous rectangle to the list, + // iff it was "real" (= not initialized before the first + // iteration) + if (rectX != Integer.MIN_VALUE) { + rectBuffer.pushRectValues(rectX, rectY, rectW, rectH); + } + rectX = x; + rectY = y; + rectW = rectH = 1; + } + + // "Traditional" Bresenham line drawing + if (error < 0) { + error += errmajor; + x += orthogonalXStep; + y += orthogonalYStep; + } else { + error -= errminor; + x += xStep; + y += yStep; + } + } while (--steps > 0); + + // Add last rectangle which isn't handled by the combination-code + // anymore + rectBuffer.pushRectValues(rectX, rectY, rectW, rectH); + } + + private boolean clipCoordinates(int cxmin, int cymin, int cxmax, int cymax, + boolean xmajor, int dx, int dy, int ax, int ay) { + int outcode1, outcode2; + + outcode1 = outcode(x1, y1, cxmin, cymin, cxmax, cymax); + outcode2 = outcode(x2, y2, cxmin, cymin, cxmax, cymax); + + while ((outcode1 | outcode2) != 0) { + int xsteps = 0, ysteps = 0; + + if ((outcode1 & outcode2) != 0) { + return false; + } + + if (outcode1 != 0) { + if ((outcode1 & (OUTCODE_TOP | OUTCODE_BOTTOM)) != 0) { + if ((outcode1 & OUTCODE_TOP) != 0) { + y1 = cymin; + } else { + y1 = cymax; + } + ysteps = y1 - ucY1; + if (ysteps < 0) { + ysteps = -ysteps; + } + xsteps = 2 * ysteps * ax + ay; + if (xmajor) { + xsteps += ay - ax - 1; + } + xsteps = xsteps / (2 * ay); + if (dx < 0) { + xsteps = -xsteps; + } + x1 = ucX1 + (int) xsteps; + } else if ((outcode1 & (OUTCODE_LEFT | OUTCODE_RIGHT)) != 0) { + if ((outcode1 & OUTCODE_LEFT) != 0) { + x1 = cxmin; + } else { + x1 = cxmax; + } + xsteps = x1 - ucX1; + if (xsteps < 0) { + xsteps = -xsteps; + } + ysteps = 2 * xsteps * ay + ax; + if (!xmajor) { + ysteps += ax - ay - 1; + } + ysteps = ysteps / (2 * ax); + if (dy < 0) { + ysteps = -ysteps; + } + y1 = ucY1 + (int) ysteps; + } + outcode1 = outcode(x1, y1, cxmin, cymin, cxmax, cymax); + } else { + if ((outcode2 & (OUTCODE_TOP | OUTCODE_BOTTOM)) != 0) { + if ((outcode2 & OUTCODE_TOP) != 0) { + y2 = cymin; + } else { + y2 = cymax; + } + ysteps = y2 - ucY2; + if (ysteps < 0) { + ysteps = -ysteps; + } + xsteps = 2 * ysteps * ax + ay; + if (xmajor) { + xsteps += ay - ax; + } else { + xsteps -= 1; + } + xsteps = xsteps / (2 * ay); + if (dx > 0) { + xsteps = -xsteps; + } + x2 = ucX2 + (int) xsteps; + } else if ((outcode2 & (OUTCODE_LEFT | OUTCODE_RIGHT)) != 0) { + if ((outcode2 & OUTCODE_LEFT) != 0) { + x2 = cxmin; + } else { + x2 = cxmax; + } + xsteps = x2 - ucX2; + if (xsteps < 0) { + xsteps = -xsteps; + } + ysteps = 2 * xsteps * ay + ax; + if (xmajor) { + ysteps -= 1; + } else { + ysteps += ax - ay; + } + ysteps = ysteps / (2 * ax); + if (dy > 0) { + ysteps = -ysteps; + } + y2 = ucY2 + (int) ysteps; + } + outcode2 = outcode(x2, y2, cxmin, cymin, cxmax, cymax); + } + } + + return true; + } + + private void initCoordinates(int x1, int y1, int x2, int y2, + boolean checkOverflow) { + /* + * Part of calculating the Bresenham parameters for line stepping + * involves being able to store numbers that are twice the magnitude of + * the biggest absolute difference in coordinates. Since we want the + * stepping parameters to be stored in jints, we then need to avoid any + * absolute differences more than 30 bits. Thus, we need to preprocess + * the coordinates to reduce their range to 30 bits regardless of + * clipping. We need to cut their range back before we do the clipping + * because the Bresenham stepping values need to be calculated based on + * the "unclipped" coordinates. + * + * Thus, first we perform a "pre-clipping" stage to bring the + * coordinates within the 30-bit range and then we proceed to the + * regular clipping procedure, pretending that these were the original + * coordinates all along. Since this operation occurs based on a + * constant "pre-clip" rectangle of +/- 30 bits without any + * consideration for the final clip, the rounding errors that occur here + * will depend only on the line coordinates and be invariant with + * respect to the particular device/user clip rectangles in effect at + * the time. Thus, rendering a given large-range line will be consistent + * under a variety of clipping conditions. + */ + if (checkOverflow + && (OverflowsBig(x1) || OverflowsBig(y1) || OverflowsBig(x2) || OverflowsBig(y2))) { + /* + * Use doubles to get us into range for "Big" arithmetic. + * + * The math of adjusting an endpoint for clipping can involve an + * intermediate result with twice the number of bits as the original + * coordinate range. Since we want to maintain as much as 30 bits of + * precision in the resulting coordinates, we will get roundoff here + * even using IEEE double-precision arithmetic which cannot carry 60 + * bits of mantissa. Since the rounding errors will be consistent + * for a given set of input coordinates the potential roundoff error + * should not affect the consistency of our rendering. + */ + double x1d = x1; + double y1d = y1; + double x2d = x2; + double y2d = y2; + double dxd = x2d - x1d; + double dyd = y2d - y1d; + + if (x1 < BIG_MIN) { + y1d = y1 + (BIG_MIN - x1) * dyd / dxd; + x1d = BIG_MIN; + } else if (x1 > BIG_MAX) { + y1d = y1 - (x1 - BIG_MAX) * dyd / dxd; + x1d = BIG_MAX; + } + /* Use Y1d instead of _y1 for testing now as we may have modified it */ + if (y1d < BIG_MIN) { + x1d = x1 + (BIG_MIN - y1) * dxd / dyd; + y1d = BIG_MIN; + } else if (y1d > BIG_MAX) { + x1d = x1 - (y1 - BIG_MAX) * dxd / dyd; + y1d = BIG_MAX; + } + if (x2 < BIG_MIN) { + y2d = y2 + (BIG_MIN - x2) * dyd / dxd; + x2d = BIG_MIN; + } else if (x2 > BIG_MAX) { + y2d = y2 - (x2 - BIG_MAX) * dyd / dxd; + x2d = BIG_MAX; + } + /* Use Y2d instead of _y2 for testing now as we may have modified it */ + if (y2d < BIG_MIN) { + x2d = x2 + (BIG_MIN - y2) * dxd / dyd; + y2d = BIG_MIN; + } else if (y2d > BIG_MAX) { + x2d = x2 - (y2 - BIG_MAX) * dxd / dyd; + y2d = BIG_MAX; + } + + x1 = (int) x1d; + y1 = (int) y1d; + x2 = (int) x2d; + y2 = (int) y2d; + } + + this.x1 = ucX1 = x1; + this.y1 = ucY1 = y1; + this.x2 = ucX2 = x2; + this.y2 = ucY2 = y2; + } + + private boolean OverflowsBig(int v) { + return ((v) != (((v) << 2) >> 2)); + } + + private int out(int v, int vmin, int vmax, int cmin, int cmax) { + return ((v < vmin) ? cmin : ((v > vmax) ? cmax : 0)); + } + + private int outcode(int x, int y, int xmin, int ymin, int xmax, int ymax) { + return out(y, ymin, ymax, OUTCODE_TOP, OUTCODE_BOTTOM) + | out(x, xmin, xmax, OUTCODE_LEFT, OUTCODE_RIGHT); + } +} diff -r c0864e216d36 -r c142f19c7181 jdk/src/solaris/classes/sun/java2d/xr/XRRenderer.java --- a/jdk/src/solaris/classes/sun/java2d/xr/XRRenderer.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/solaris/classes/sun/java2d/xr/XRRenderer.java Mon Oct 14 09:52:36 2013 -0700 @@ -53,10 +53,15 @@ public class XRRenderer implements PixelDrawPipe, PixelFillPipe, ShapeDrawPipe { XRDrawHandler drawHandler; MaskTileManager tileManager; + XRDrawLine lineGen; + GrowableRectArray rectBuffer; public XRRenderer(MaskTileManager tileManager) { this.tileManager = tileManager; + this.rectBuffer = tileManager.getMainTile().getRects(); + this.drawHandler = new XRDrawHandler(); + this.lineGen = new XRDrawLine(); } /** @@ -77,19 +82,15 @@ int transX2 = Region.clipAdd(x2, sg2d.transX); int transY2 = Region.clipAdd(y2, sg2d.transY); - // Non clipped fast path - if (compClip.contains(transX1, transY1) - && compClip.contains(transX2, transY2)) { - SunToolkit.awtLock(); - try { - validateSurface(sg2d); - tileManager.addLine(transX1, transY1, transX2, transY2); - tileManager.fillMask((XRSurfaceData) sg2d.surfaceData); - } finally { - SunToolkit.awtUnlock(); - } - } else { - draw(sg2d, new Line2D.Float(x1, y1, x2, y2)); + SunToolkit.awtLock(); + try { + validateSurface(sg2d); + lineGen.rasterizeLine(rectBuffer, transX1, transY1, + transX2, transY2, compClip.getLoX(), compClip.getLoY(), + compClip.getHiX(), compClip.getHiY(), true, true); + tileManager.fillMask((XRSurfaceData) sg2d.surfaceData); + } finally { + SunToolkit.awtUnlock(); } } @@ -148,7 +149,7 @@ SunToolkit.awtLock(); try { validateSurface(sg2d); - tileManager.addRect(x, y, width, height); + rectBuffer.pushRectValues(x, y, width, height); tileManager.fillMask((XRSurfaceData) sg2d.surfaceData); } finally { SunToolkit.awtUnlock(); @@ -199,11 +200,13 @@ } private class XRDrawHandler extends ProcessPath.DrawHandler { + DirtyRegion region; XRDrawHandler() { // these are bogus values; the caller will use validate() // to ensure that they are set properly prior to each usage super(0, 0, 0, 0); + this.region = new DirtyRegion(); } /** @@ -218,15 +221,32 @@ } public void drawLine(int x1, int y1, int x2, int y2) { - tileManager.addLine(x1, y1, x2, y2); + region.setDirtyLineRegion(x1, y1, x2, y2); + int xDiff = region.x2 - region.x; + int yDiff = region.y2 - region.y; + + if (xDiff == 0 || yDiff == 0) { + // horizontal / diagonal lines can be represented by a single + // rectangle + rectBuffer.pushRectValues(region.x, region.y, region.x2 - region.x + + 1, region.y2 - region.y + 1); + } else if (xDiff == 1 && yDiff == 1) { + // fast path for pattern commonly generated by + // ProcessPath.DrawHandler + rectBuffer.pushRectValues(x1, y1, 1, 1); + rectBuffer.pushRectValues(x2, y2, 1, 1); + } else { + lineGen.rasterizeLine(rectBuffer, x1, y1, x2, y2, 0, 0, + 0, 0, false, false); + } } public void drawPixel(int x, int y) { - tileManager.addRect(x, y, 1, 1); + rectBuffer.pushRectValues(x, y, 1, 1); } public void drawScanline(int x1, int x2, int y) { - tileManager.addRect(x1, y, x2 - x1 + 1, 1); + rectBuffer.pushRectValues(x1, y, x2 - x1 + 1, 1); } } @@ -263,7 +283,7 @@ validateSurface(sg2d); int[] spanBox = new int[4]; while (si.nextSpan(spanBox)) { - tileManager.addRect(spanBox[0] + transx, + rectBuffer.pushRectValues(spanBox[0] + transx, spanBox[1] + transy, spanBox[2] - spanBox[0], spanBox[3] - spanBox[1]); diff -r c0864e216d36 -r c142f19c7181 jdk/src/solaris/classes/sun/java2d/xr/XRSurfaceData.java --- a/jdk/src/solaris/classes/sun/java2d/xr/XRSurfaceData.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/solaris/classes/sun/java2d/xr/XRSurfaceData.java Mon Oct 14 09:52:36 2013 -0700 @@ -457,15 +457,15 @@ if (sg2d != null && sg2d.compositeState == SunGraphics2D.COMP_XOR) { if (validatedXorComp != sg2d.getComposite()) { validatedXorComp = (XORComposite) sg2d.getComposite(); - int xorpixelmod = validatedXorComp.getXorPixel(); renderQueue.setGCMode(xgc, false); + } - // validate pixel - int pixel = sg2d.pixel; - if (validatedGCForegroundPixel != pixel) { - renderQueue.setGCForeground(xgc, pixel ^ xorpixelmod); - validatedGCForegroundPixel = pixel; - } + // validate pixel + int pixel = sg2d.pixel; + if (validatedGCForegroundPixel != pixel) { + int xorpixelmod = validatedXorComp.getXorPixel(); + renderQueue.setGCForeground(xgc, pixel ^ xorpixelmod); + validatedGCForegroundPixel = pixel; } if (updateGCClip) { diff -r c0864e216d36 -r c142f19c7181 jdk/src/solaris/native/sun/awt/awt_LoadLibrary.c --- a/jdk/src/solaris/native/sun/awt/awt_LoadLibrary.c Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/solaris/native/sun/awt/awt_LoadLibrary.c Mon Oct 14 09:52:36 2013 -0700 @@ -79,10 +79,8 @@ #ifdef MACOSX - #define XAWT_PATH "/libawt_xawt.dylib" #define LWAWT_PATH "/libawt_lwawt.dylib" #define DEFAULT_PATH LWAWT_PATH - #define HEADLESS_PATH "/libawt_headless.dylib" #else #define XAWT_PATH "/libawt_xawt.so" #define DEFAULT_PATH XAWT_PATH @@ -100,11 +98,6 @@ struct utsname name; JNIEnv *env = (JNIEnv *)JNU_GetEnv(vm, JNI_VERSION_1_2); void *v; - char *envvar; - int xt_before_xm = 0; - int XAWT = 0; - jstring toolkit = NULL; - jstring propname = NULL; jstring fmanager = NULL; jstring fmProp = NULL; @@ -124,56 +117,32 @@ /* * The code below is responsible for: * 1. Loading appropriate awt library, i.e. libawt_xawt or libawt_headless - * 2. Setting "awt.toolkit" system property to use the appropriate Java toolkit class, - * (if user has specified the toolkit in env varialble) + * 2. Set the "sun.font.fontmanager" system property. */ - propname = (*env)->NewStringUTF(env, "awt.toolkit"); fmProp = (*env)->NewStringUTF(env, "sun.font.fontmanager"); - tk = DEFAULT_PATH; /* default value, may be changed below */ - - /* Check if toolkit is specified in env variable */ - envvar = getenv("AWT_TOOLKIT"); - if (envvar && (strstr(envvar, "XToolkit"))) { - toolkit = (*env)->NewStringUTF(env, "sun.awt.X11.XToolkit"); - tk = XAWT_PATH; - fmanager = (*env)->NewStringUTF(env, "sun.awt.X11FontManager"); #ifdef MACOSX - } else { fmanager = (*env)->NewStringUTF(env, "sun.font.CFontManager"); tk = LWAWT_PATH; +#else + fmanager = (*env)->NewStringUTF(env, "sun.awt.X11FontManager"); + tk = XAWT_PATH; #endif - } - /* If user specified toolkit then set java system property */ - if (toolkit && propname) { - JNU_CallStaticMethodByName (env, - NULL, - "java/lang/System", - "setProperty", - "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;", - propname,toolkit); - } if (fmanager && fmProp) { - JNU_CallStaticMethodByName (env, - NULL, - "java/lang/System", - "setProperty", - "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;", - fmProp, fmanager); + JNU_CallStaticMethodByName(env, NULL, "java/lang/System", "setProperty", + "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;", + fmProp, fmanager); } - /* Calculate library name to load */ +#ifndef MACOSX if (AWTIsHeadless()) { tk = HEADLESS_PATH; } +#endif + + /* Calculate library name to load */ strncpy(p, tk, MAXPATHLEN-len-1); - if (toolkit) { - (*env)->DeleteLocalRef(env, toolkit); - } - if (propname) { - (*env)->DeleteLocalRef(env, propname); - } if (fmProp) { (*env)->DeleteLocalRef(env, fmProp); } diff -r c0864e216d36 -r c142f19c7181 jdk/src/solaris/native/sun/java2d/x11/X11Renderer.c --- a/jdk/src/solaris/native/sun/java2d/x11/X11Renderer.c Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/solaris/native/sun/java2d/x11/X11Renderer.c Mon Oct 14 09:52:36 2013 -0700 @@ -465,9 +465,7 @@ points = transformPoints(env, xcoordsArray, ycoordsArray, transx, transy, pTmp, (int *)&npoints, isclosed); - if (points == 0) { - JNU_ThrowOutOfMemoryError(env, "translated coordinate array"); - } else { + if (points != 0) { if (npoints == 2) { /* * Some X11 implementations fail to draw anything for @@ -588,6 +586,7 @@ NULL }; PHStroke stroke; + jboolean ok = JNI_TRUE; if (xsdo == NULL) { return; @@ -625,8 +624,6 @@ types = (jbyte*) (*env)->GetPrimitiveArrayCritical(env, typesArray, NULL); if (types != NULL) { - jboolean ok; - if (isFill) { drawHandler.pDrawScanline = &drawScanline; ok = doFillPath(&drawHandler, @@ -643,14 +640,14 @@ types, numTypes, stroke); } - if (!ok) { - JNU_ThrowArrayIndexOutOfBoundsException(env, "coords array"); - } (*env)->ReleasePrimitiveArrayCritical(env, typesArray, types, JNI_ABORT); } (*env)->ReleasePrimitiveArrayCritical(env, coordsArray, coords, JNI_ABORT); + if (!ok) { + JNU_ThrowArrayIndexOutOfBoundsException(env, "coords array"); + } } XDHD_FREE_POINTS(&dHData); @@ -893,9 +890,7 @@ points = transformPoints(env, xcoordsArray, ycoordsArray, transx, transy, pTmp, (int *)&npoints, JNI_FALSE); - if (points == 0) { - JNU_ThrowOutOfMemoryError(env, "translated coordinate array"); - } else { + if (points != 0) { if (npoints > 2) { XFillPolygon(awt_display, xsdo->drawable, (GC) xgc, points, npoints, Complex, CoordModeOrigin); diff -r c0864e216d36 -r c142f19c7181 jdk/src/solaris/native/sun/java2d/x11/X11SurfaceData.c --- a/jdk/src/solaris/native/sun/java2d/x11/X11SurfaceData.c Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/solaris/native/sun/java2d/x11/X11SurfaceData.c Mon Oct 14 09:52:36 2013 -0700 @@ -227,7 +227,7 @@ #if defined(HEADLESS) || !defined(MITSHM) return JNI_FALSE; #else - return useMitShmPixmaps; + return (jboolean)useMitShmPixmaps; #endif /* HEADLESS, MITSHM */ } @@ -258,6 +258,7 @@ { #ifndef HEADLESS X11SDOps *xsdo = (X11SDOps*)SurfaceData_InitOps(env, xsd, sizeof(X11SDOps)); + jboolean hasException; if (xsdo == NULL) { JNU_ThrowOutOfMemoryError(env, "Initialization of SurfaceData failed."); return; @@ -270,7 +271,10 @@ xsdo->ReleasePixmapWithBg = X11SD_ReleasePixmapWithBg; xsdo->widget = NULL; if (peer != NULL) { - xsdo->drawable = JNU_CallMethodByName(env, NULL, peer, "getWindow", "()J").j; + xsdo->drawable = JNU_CallMethodByName(env, &hasException, peer, "getWindow", "()J").j; + if (hasException) { + return; + } } else { xsdo->drawable = 0; } diff -r c0864e216d36 -r c142f19c7181 jdk/src/solaris/native/sun/java2d/x11/XRBackendNative.c --- a/jdk/src/solaris/native/sun/java2d/x11/XRBackendNative.c Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/solaris/native/sun/java2d/x11/XRBackendNative.c Mon Oct 14 09:52:36 2013 -0700 @@ -31,6 +31,10 @@ #include +#ifdef __linux__ + #include +#endif + /* On Solaris 10 updates 8, 9, the render.h file defines these * protocol values but does not define the structs in Xrender.h. * Thus in order to get these always defined on Solaris 10 @@ -131,7 +135,7 @@ #define MAX_PAYLOAD (262140u - 36u) #define MAXUINT (0xffffffffu) -static jboolean IsXRenderAvailable(jboolean verbose) { +static jboolean IsXRenderAvailable(jboolean verbose, jboolean ignoreLinuxVersion) { void *xrenderlib; @@ -253,6 +257,31 @@ } #endif +#ifdef __linux__ + /* + * Check for Linux >= 3.5 (Ubuntu 12.04.02 LTS) to avoid hitting + * https://bugs.freedesktop.org/show_bug.cgi?id=48045 + */ + struct utsname utsbuf; + if(uname(&utsbuf) >= 0) { + int major, minor, revision; + if(sscanf(utsbuf.release, "%i.%i.%i", &major, &minor, &revision) == 3) { + if(major < 3 || (major == 3 && minor < 5)) { + if(!ignoreLinuxVersion) { + available = JNI_FALSE; + } + else if(verbose) { + printf("WARNING: Linux < 3.5 detected.\n" + "The pipeline will be enabled, but graphical " + "artifacts can occur with old graphic drivers.\n" + "See the release notes for more details.\n"); + fflush(stdout); + } + } + } + } +#endif // __linux__ + return available; } /* @@ -262,7 +291,7 @@ */ JNIEXPORT jboolean JNICALL Java_sun_awt_X11GraphicsEnvironment_initXRender -(JNIEnv *env, jclass x11ge, jboolean verbose) +(JNIEnv *env, jclass x11ge, jboolean verbose, jboolean ignoreLinuxVersion) { #ifndef HEADLESS static jboolean xrenderAvailable = JNI_FALSE; @@ -277,7 +306,7 @@ } #endif AWT_LOCK(); - xrenderAvailable = IsXRenderAvailable(verbose); + xrenderAvailable = IsXRenderAvailable(verbose, ignoreLinuxVersion); AWT_UNLOCK(); firstTime = JNI_FALSE; } @@ -297,7 +326,13 @@ jlong fmt32; jfieldID a8ID = (*env)->GetStaticFieldID(env, cls, "FMTPTR_A8", "J"); + if (a8ID == NULL) { + return; + } jfieldID argb32ID = (*env)->GetStaticFieldID(env, cls, "FMTPTR_ARGB32", "J"); + if (argb32ID == NULL) { + return; + } if (awt_display == (Display *)NULL) { return; @@ -317,6 +352,10 @@ defaultImg = XCreateImage(awt_display, NULL, 8, ZPixmap, 0, maskData, 32, 32, 8, 0); defaultImg->data = maskData; //required? maskImgID = (*env)->GetStaticFieldID(env, cls, "MASK_XIMG", "J"); + if (maskImgID == NULL) { + return; + } + (*env)->SetStaticLongField(env, cls, maskImgID, ptr_to_jlong(defaultImg)); } diff -r c0864e216d36 -r c142f19c7181 jdk/src/solaris/native/sun/java2d/x11/XRSurfaceData.c --- a/jdk/src/solaris/native/sun/java2d/x11/XRSurfaceData.c Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/solaris/native/sun/java2d/x11/XRSurfaceData.c Mon Oct 14 09:52:36 2013 -0700 @@ -88,7 +88,13 @@ J2dTraceLn(J2D_TRACE_INFO, "in XRSurfaceData_initIDs"); pictID = (*env)->GetFieldID(env, xsd, "picture", "I"); + if (pictID == NULL) { + return; + } xidID = (*env)->GetFieldID(env, xsd, "xid", "I"); + if (xidID == NULL) { + return; + } XShared_initIDs(env, JNI_FALSE); #endif /* !HEADLESS */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java --- a/jdk/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java Mon Oct 14 09:52:36 2013 -0700 @@ -25,6 +25,7 @@ package sun.awt; +import java.awt.AWTError; import java.awt.GraphicsConfiguration; import java.awt.GraphicsDevice; import java.awt.GraphicsEnvironment; @@ -93,7 +94,12 @@ protected native int getDefaultScreen(); public GraphicsDevice getDefaultScreenDevice() { - return getScreenDevices()[getDefaultScreen()]; + GraphicsDevice[] screens = getScreenDevices(); + if (screens.length == 0) { + throw new AWTError("no screen devices"); + } + int index = getDefaultScreen(); + return screens[0 < index && index < screens.length ? index : 0]; } /** diff -r c0864e216d36 -r c142f19c7181 jdk/src/windows/classes/sun/awt/windows/WButtonPeer.java --- a/jdk/src/windows/classes/sun/awt/windows/WButtonPeer.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/windows/classes/sun/awt/windows/WButtonPeer.java Mon Oct 14 09:52:36 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -29,7 +29,7 @@ import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; -class WButtonPeer extends WComponentPeer implements ButtonPeer { +final class WButtonPeer extends WComponentPeer implements ButtonPeer { static { initIDs(); @@ -84,13 +84,6 @@ } /** - * DEPRECATED - */ - public Dimension minimumSize() { - return getMinimumSize(); - } - - /** * Initialize JNI field and method IDs */ private static native void initIDs(); diff -r c0864e216d36 -r c142f19c7181 jdk/src/windows/classes/sun/awt/windows/WCheckboxPeer.java --- a/jdk/src/windows/classes/sun/awt/windows/WCheckboxPeer.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/windows/classes/sun/awt/windows/WCheckboxPeer.java Mon Oct 14 09:52:36 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -28,7 +28,7 @@ import java.awt.peer.*; import java.awt.event.ItemEvent; -public class WCheckboxPeer extends WComponentPeer implements CheckboxPeer { +final class WCheckboxPeer extends WComponentPeer implements CheckboxPeer { // CheckboxPeer implementation @@ -100,12 +100,4 @@ } }); } - - /** - * DEPRECATED - */ - public Dimension minimumSize() { - return getMinimumSize(); - } - } diff -r c0864e216d36 -r c142f19c7181 jdk/src/windows/classes/sun/awt/windows/WChoicePeer.java --- a/jdk/src/windows/classes/sun/awt/windows/WChoicePeer.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/windows/classes/sun/awt/windows/WChoicePeer.java Mon Oct 14 09:52:36 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -32,7 +32,7 @@ import java.awt.event.WindowAdapter; import sun.awt.SunToolkit; -class WChoicePeer extends WComponentPeer implements ChoicePeer { +final class WChoicePeer extends WComponentPeer implements ChoicePeer { // WComponentPeer overrides @@ -151,12 +151,5 @@ return fm.getHeight() * maxItems; } - /** - * DEPRECATED - */ - public Dimension minimumSize() { - return getMinimumSize(); - } - native void closeList(); } diff -r c0864e216d36 -r c142f19c7181 jdk/src/windows/classes/sun/awt/windows/WComponentPeer.java --- a/jdk/src/windows/classes/sun/awt/windows/WComponentPeer.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/windows/classes/sun/awt/windows/WComponentPeer.java Mon Oct 14 09:52:36 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -50,7 +50,6 @@ import sun.java2d.d3d.D3DSurfaceData; import sun.java2d.opengl.OGLSurfaceData; import sun.java2d.pipe.Region; -import sun.awt.DisplayChangedListener; import sun.awt.PaintEventDispatcher; import sun.awt.SunToolkit; import sun.awt.event.IgnorePaintEvent; @@ -546,9 +545,6 @@ return null; } } - public java.awt.Toolkit getToolkit() { - return Toolkit.getDefaultToolkit(); - } // fallback default font object final static Font defaultFont = new Font(Font.DIALOG, Font.PLAIN, 12); @@ -739,11 +735,11 @@ } public boolean prepareImage(Image img, int w, int h, ImageObserver o) { - return getToolkit().prepareImage(img, w, h, o); + return Toolkit.getDefaultToolkit().prepareImage(img, w, h, o); } public int checkImage(Image img, int w, int h, ImageObserver o) { - return getToolkit().checkImage(img, w, h, o); + return Toolkit.getDefaultToolkit().checkImage(img, w, h, o); } // Object overrides @@ -887,13 +883,6 @@ /** * DEPRECATED */ - public Dimension minimumSize() { - return getMinimumSize(); - } - - /** - * DEPRECATED - */ public Dimension preferredSize() { return getPreferredSize(); } diff -r c0864e216d36 -r c142f19c7181 jdk/src/windows/classes/sun/awt/windows/WLabelPeer.java --- a/jdk/src/windows/classes/sun/awt/windows/WLabelPeer.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/windows/classes/sun/awt/windows/WLabelPeer.java Mon Oct 14 09:52:36 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -27,7 +27,7 @@ import java.awt.*; import java.awt.peer.*; -class WLabelPeer extends WComponentPeer implements LabelPeer { +final class WLabelPeer extends WComponentPeer implements LabelPeer { // ComponentPeer overrides @@ -82,12 +82,4 @@ super.initialize(); } - - /** - * DEPRECATED - */ - public Dimension minimumSize() { - return getMinimumSize(); - } - } diff -r c0864e216d36 -r c142f19c7181 jdk/src/windows/classes/sun/awt/windows/WListPeer.java --- a/jdk/src/windows/classes/sun/awt/windows/WListPeer.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/windows/classes/sun/awt/windows/WListPeer.java Mon Oct 14 09:52:36 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -29,13 +29,8 @@ import java.awt.event.ActionEvent; import java.awt.event.ItemEvent; -class WListPeer extends WComponentPeer implements ListPeer { - - // ComponentPeer overrides +final class WListPeer extends WComponentPeer implements ListPeer { - public Dimension minimumSize() { - return minimumSize(4); - } public boolean isFocusable() { return true; } diff -r c0864e216d36 -r c142f19c7181 jdk/src/windows/classes/sun/awt/windows/WPrinterJob.java --- a/jdk/src/windows/classes/sun/awt/windows/WPrinterJob.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/windows/classes/sun/awt/windows/WPrinterJob.java Mon Oct 14 09:52:36 2013 -0700 @@ -96,7 +96,6 @@ import javax.print.attribute.standard.JobMediaSheetsSupported; import javax.print.attribute.standard.PageRanges; import javax.print.attribute.Size2DSyntax; -import javax.print.StreamPrintService; import sun.awt.Win32FontManager; @@ -440,7 +439,7 @@ throw new HeadlessException(); } - if (getPrintService() instanceof StreamPrintService) { + if (!(getPrintService() instanceof Win32PrintService)) { return super.pageDialog(page); } @@ -586,7 +585,7 @@ attributes = new HashPrintRequestAttributeSet(); } - if (getPrintService() instanceof StreamPrintService) { + if (!(getPrintService() instanceof Win32PrintService)) { return super.printDialog(attributes); } @@ -611,7 +610,7 @@ public void setPrintService(PrintService service) throws PrinterException { super.setPrintService(service); - if (service instanceof StreamPrintService) { + if (!(service instanceof Win32PrintService)) { return; } driverDoesMultipleCopies = false; @@ -648,7 +647,7 @@ } myService = PrintServiceLookup.lookupDefaultPrintService(); - if (myService != null) { + if (myService instanceof Win32PrintService) { try { setNativePrintServiceIfNeeded(myService.getName()); } catch (Exception e) { diff -r c0864e216d36 -r c142f19c7181 jdk/src/windows/classes/sun/awt/windows/WScrollbarPeer.java --- a/jdk/src/windows/classes/sun/awt/windows/WScrollbarPeer.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/windows/classes/sun/awt/windows/WScrollbarPeer.java Mon Oct 14 09:52:36 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -28,8 +28,7 @@ import java.awt.peer.*; import java.awt.event.AdjustmentEvent; -class WScrollbarPeer extends WComponentPeer implements ScrollbarPeer { - +final class WScrollbarPeer extends WComponentPeer implements ScrollbarPeer { // Returns width for vertial scrollbar as SM_CXHSCROLL, // height for horizontal scrollbar as SM_CYVSCROLL @@ -140,12 +139,4 @@ public boolean shouldClearRectBeforePaint() { return false; } - - /** - * DEPRECATED - */ - public Dimension minimumSize() { - return getMinimumSize(); - } - } diff -r c0864e216d36 -r c142f19c7181 jdk/src/windows/classes/sun/awt/windows/WTextAreaPeer.java --- a/jdk/src/windows/classes/sun/awt/windows/WTextAreaPeer.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/windows/classes/sun/awt/windows/WTextAreaPeer.java Mon Oct 14 09:52:36 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -30,34 +30,36 @@ import java.awt.im.InputMethodRequests; -class WTextAreaPeer extends WTextComponentPeer implements TextAreaPeer { +final class WTextAreaPeer extends WTextComponentPeer implements TextAreaPeer { // WComponentPeer overrides + @Override public Dimension getMinimumSize() { return getMinimumSize(10, 60); } // TextAreaPeer implementation - /* This should eventually be a direct native method. */ - public void insert(String txt, int pos) { - insertText(txt, pos); + @Override + public void insert(String text, int pos) { + replaceRange(text, pos, pos); } - /* This should eventually be a direct native method. */ - public void replaceRange(String txt, int start, int end) { - replaceText(txt, start, end); - } + @Override + public native void replaceRange(String text, int start, int end); + @Override public Dimension getPreferredSize(int rows, int cols) { return getMinimumSize(rows, cols); } + @Override public Dimension getMinimumSize(int rows, int cols) { FontMetrics fm = getFontMetrics(((TextArea)target).getFont()); return new Dimension(fm.charWidth('0') * cols + 20, fm.getHeight() * rows + 20); } + @Override public InputMethodRequests getInputMethodRequests() { return null; } @@ -68,42 +70,6 @@ super(target); } + @Override native void create(WComponentPeer parent); - - // native callbacks - - - // deprecated methods - - /** - * DEPRECATED but, for now, still called by insert(String, int). - */ - public native void insertText(String txt, int pos); - - /** - * DEPRECATED but, for now, still called by replaceRange(String, int, int). - */ - public native void replaceText(String txt, int start, int end); - - /** - * DEPRECATED - */ - public Dimension minimumSize() { - return getMinimumSize(); - } - - /** - * DEPRECATED - */ - public Dimension minimumSize(int rows, int cols) { - return getMinimumSize(rows, cols); - } - - /** - * DEPRECATED - */ - public Dimension preferredSize(int rows, int cols) { - return getPreferredSize(rows, cols); - } - } diff -r c0864e216d36 -r c142f19c7181 jdk/src/windows/classes/sun/awt/windows/WTextComponentPeer.java --- a/jdk/src/windows/classes/sun/awt/windows/WTextComponentPeer.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/windows/classes/sun/awt/windows/WTextComponentPeer.java Mon Oct 14 09:52:36 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -38,14 +38,20 @@ // TextComponentPeer implementation + @Override public void setEditable(boolean editable) { enableEditing(editable); setBackground(((TextComponent)target).getBackground()); } + @Override public native String getText(); - public native void setText(String txt); + @Override + public native void setText(String text); + @Override public native int getSelectionStart(); + @Override public native int getSelectionEnd(); + @Override public native void select(int selStart, int selEnd); // Toolkit & peer internals @@ -54,6 +60,7 @@ super(target); } + @Override void initialize() { TextComponent tc = (TextComponent)target; String text = tc.getText(); @@ -64,14 +71,12 @@ select(tc.getSelectionStart(), tc.getSelectionEnd()); setEditable(tc.isEditable()); -// oldSelectionStart = -1; // accessibility support -// oldSelectionEnd = -1; // accessibility support - super.initialize(); } native void enableEditing(boolean e); + @Override public boolean isFocusable() { return true; } @@ -81,6 +86,7 @@ * unfortunately resets the selection, but seems to be the * only way to get this to work. */ + @Override public void setCaretPosition(int pos) { select(pos,pos); } @@ -89,6 +95,7 @@ * Get the caret position by looking up the end of the current * selection. */ + @Override public int getCaretPosition() { return getSelectionStart(); } @@ -105,34 +112,8 @@ */ private static native void initIDs(); - // stub functions: to be fully implemented in a future release - public int getIndexAtPoint(int x, int y) { return -1; } - public Rectangle getCharacterBounds(int i) { return null; } - public long filterEvents(long mask) { return 0; } - + @Override public boolean shouldClearRectBeforePaint() { return false; } - -// -// Accessibility support -// - -/* To be fully implemented in a future release - - int oldSelectionStart; - int oldSelectionEnd; - - public native int getIndexAtPoint(int x, int y); - public native Rectangle getCharacterBounds(int i); - public native long filterEvents(long mask); - - /** - * Handle a change in the text selection endpoints - * (Note: could be simply a change in the caret location) - * - public void selectionValuesChanged(int start, int end) { - return; // Need to write implementation of this. - } -*/ } diff -r c0864e216d36 -r c142f19c7181 jdk/src/windows/classes/sun/awt/windows/WTextFieldPeer.java --- a/jdk/src/windows/classes/sun/awt/windows/WTextFieldPeer.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/windows/classes/sun/awt/windows/WTextFieldPeer.java Mon Oct 14 09:52:36 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -31,16 +31,18 @@ import java.awt.event.KeyEvent; import java.awt.im.InputMethodRequests; -class WTextFieldPeer extends WTextComponentPeer implements TextFieldPeer { +final class WTextFieldPeer extends WTextComponentPeer implements TextFieldPeer { // WComponentPeer overrides + @Override public Dimension getMinimumSize() { FontMetrics fm = getFontMetrics(((TextField)target).getFont()); return new Dimension(fm.stringWidth(getText()) + 24, fm.getHeight() + 8); } + @Override public boolean handleJavaKeyEvent(KeyEvent e) { switch (e.getID()) { case KeyEvent.KEY_TYPED: @@ -56,35 +58,35 @@ // TextFieldPeer implementation + @Override + public native void setEchoChar(char echoChar); - /* This should eventually be a direct native method. */ - public void setEchoChar(char c) { - setEchoCharacter(c); - } - + @Override public Dimension getPreferredSize(int cols) { return getMinimumSize(cols); } + @Override public Dimension getMinimumSize(int cols) { FontMetrics fm = getFontMetrics(((TextField)target).getFont()); return new Dimension(fm.charWidth('0') * cols + 24, fm.getHeight() + 8); } + @Override public InputMethodRequests getInputMethodRequests() { - return null; + return null; } - - // Toolkit & peer internals WTextFieldPeer(TextField target) { super(target); } + @Override native void create(WComponentPeer parent); + @Override void initialize() { TextField tf = (TextField)target; if (tf.echoCharIsSet()) { @@ -92,33 +94,4 @@ } super.initialize(); } - - // deprecated methods - - /** - * DEPRECATED but, for now, called by setEchoChar(char). - */ - public native void setEchoCharacter(char c); - - /** - * DEPRECATED - */ - public Dimension minimumSize() { - return getMinimumSize(); - } - - /** - * DEPRECATED - */ - public Dimension minimumSize(int cols) { - return getMinimumSize(cols); - } - - /** - * DEPRECATED - */ - public Dimension preferredSize(int cols) { - return getPreferredSize(cols); - } - } diff -r c0864e216d36 -r c142f19c7181 jdk/src/windows/native/sun/windows/awt_TextArea.cpp --- a/jdk/src/windows/native/sun/windows/awt_TextArea.cpp Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/windows/native/sun/windows/awt_TextArea.cpp Mon Oct 14 09:52:36 2013 -0700 @@ -767,11 +767,11 @@ /* * Class: sun_awt_windows_WTextAreaPeer - * Method: replaceText + * Method: replaceRange * Signature: (Ljava/lang/String;II)V */ JNIEXPORT void JNICALL -Java_sun_awt_windows_WTextAreaPeer_replaceText(JNIEnv *env, jobject self, +Java_sun_awt_windows_WTextAreaPeer_replaceRange(JNIEnv *env, jobject self, jstring text, jint start, jint end) { @@ -791,19 +791,4 @@ CATCH_BAD_ALLOC; } - -/* - * Class: sun_awt_windows_WTextAreaPeer - * Method: insertText - * Signature: (Ljava/lang/String;I)V - */ -JNIEXPORT void JNICALL -Java_sun_awt_windows_WTextAreaPeer_insertText(JNIEnv *env, jobject self, - jstring text, jint pos) -{ - Java_sun_awt_windows_WTextAreaPeer_replaceText(env, self, text, pos, pos); -} - } /* extern "C" */ - - diff -r c0864e216d36 -r c142f19c7181 jdk/src/windows/native/sun/windows/awt_TextComponent.cpp --- a/jdk/src/windows/native/sun/windows/awt_TextComponent.cpp Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/windows/native/sun/windows/awt_TextComponent.cpp Mon Oct 14 09:52:36 2013 -0700 @@ -987,30 +987,6 @@ // Accessibility support // -/* To be fully implemented in a future release - * - * Class: sun_awt_windows_WTextComponentPeer - * Method: getIndexAtPoint - * Signature: (II)I - * -JNIEXPORT jlong JNICALL -Java_sun_awt_windows_WTextComponentPeer_filterEvents(JNIEnv *env, jobject self, jlong mask) -{ - TRY; - - PDATA pData; - JNI_CHECK_PEER_RETURN_NULL(self); - AwtTextComponent* c = (AwtTextComponent*)pData; - - jlong oldMask = c->javaEventsMask; - c->javaEventsMask = mask; - - return oldMask; - - CATCH_BAD_ALLOC_RET(0); -} -*/ - // [[[FIXME]]] need to switch to rich edit field; look for EN_SELCHANGE event instead /* * Handle WmKeyDown to catch keystrokes which may move the caret, @@ -1051,112 +1027,4 @@ return AwtComponent::WmKeyDown(wkey, repCnt, flags, system); } */ - -/* To be fully implemented in a future release - * - * Class: sun_awt_windows_WTextComponentPeer - * Method: getIndexAtPoint - * Signature: (II)I - * -JNIEXPORT jint JNICALL -Java_sun_awt_windows_WTextComponentPeer_getIndexAtPoint(JNIEnv *env, jobject self, jint x, jint y) -{ - TRY; - - PDATA pData; -// JNI_CHECK_PEER_RETURN_VAL(self, -1); [[[FIXME]]] Peter Korn -> should return -1 here - JNI_CHECK_PEER_RETURN_NULL(self); - AwtTextComponent* c = (AwtTextComponent*)pData; - int indicies = c->SendMessage(EM_CHARFROMPOS, (WPARAM) 0, (LPARAM) MAKELPARAM(x, y)); - int index = LOWORD(indicies); // index into the line the (x,y) coord is on - int lineIndex = c->SendMessage(EM_LINEINDEX, HIWORD(indicies)); // index of start of line - return (index + lineIndex); - - CATCH_BAD_ALLOC_RET(-1); -} -*/ - -/* To be fully implemented in a future release - * - * Class: sun_awt_windows_WTextComponentPeer - * Method: getCharacterBounds - * Signature: (I)Ljava/awt/Rectangle; - * -JNIEXPORT jobject JNICALL -Java_sun_awt_windows_WTextComponentPeer_getCharacterBounds(JNIEnv *env, jobject self, jint i) -{ - - // loop through lines with EM_LINELENGTH? e.g.: - // line = 0; ttl = 0; // index is passed in as 'i' above - // while (ttl < index) { - // ttl += SendMessage(EM_LINELENGTH, line++); - // } - // line-- (decrement back again) - // alternately, we could use EM_LINEINDEX to the same effect; perhaps slightly cleaner: - // computedIndex = 0; line = 0; - // while (computedIndex < index) { - // computedIndex = SendMessage(EM_LINEINDEX, 1 + line++); - // } - // line--; - - // EM_POSFROMCHAR - convert char index into a Point - // wParam = (LPPOINT) lpPoint; // address of structure - // receiving character position - // lParam = (LPARAM) wCharIndex; // zero-based index of character - // - // still need to turn the above into a Rect somehow... - // (use font metrics on font info for letter to get height? use - // getLineHeight type of message?). - - // WM_GETFONT - get the font struct for the window control - // wParam = lParam = 0 - // returns an HFONT - // -or- - // GetTextMetrics(hDC) to get the text info for the font selected - // into the hDC of the control (tmHeight is what we want in the - // TEXTMETRIC struct). - // also GetCharWidth32() with the char at the index in question to get - // the width of that char - // *** Can't use GetTextMetrics/GetCharWidth32, as we don't have an hDC!! *** - - TRY; - - PDATA pData; - JNI_CHECK_PEER_RETURN_NULL(self); - AwtComponent* c = (AwtComponent*)pData; -/* - int line = 0; - int lineIndex = 0; - while (lineIndex < i) { - lineIndex = c->SendMessage(EM_LINEINDEX, 1 + line++); - } - line--; // line is now the line which contains our character at position 'i' - int offsetIndex = i - lineIndex; // offsetIndex is now distance in on the line -* / - POINT p; - - c->SendMessage(EM_POSFROMCHAR, (WPARAM) &p, (LPARAM) i); // x coord is meaningful; y may not be - - // need to calculate charWidth, charHeight, and set p.y to something meangful - - jint charWidth; - jint charHeight; - -/* - HFONT font = c->SendMessage(WM_GETFONT); - if (GetCharWidth32(c->hdc, i, i, &charWidth) != 0) { // [[[FIXME]]] need to get hDC! - - JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2); - jobject rect = JNU_NewObjectByName(env, "java/awt/Rectangle", "(IIII)V", - (jint) p.x, (jint) p.y, charWidth, charHeight); - - return rect; - } -* / - return (jobject) 0; - - CATCH_BAD_ALLOC_RET(0); -} -*/ - } /* extern "C" */ diff -r c0864e216d36 -r c142f19c7181 jdk/src/windows/native/sun/windows/awt_TextField.cpp --- a/jdk/src/windows/native/sun/windows/awt_TextField.cpp Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/windows/native/sun/windows/awt_TextField.cpp Mon Oct 14 09:52:36 2013 -0700 @@ -316,12 +316,12 @@ /* * Class: sun_awt_windows_WTextFieldPeer - * Method: setEchoCharacter + * Method: setEchoChar * Signature: (C)V */ JNIEXPORT void JNICALL -Java_sun_awt_windows_WTextFieldPeer_setEchoCharacter(JNIEnv *env, jobject self, - jchar ch) +Java_sun_awt_windows_WTextFieldPeer_setEchoChar(JNIEnv *env, jobject self, + jchar ch) { TRY; diff -r c0864e216d36 -r c142f19c7181 jdk/src/windows/native/sun/windows/awt_Toolkit.cpp --- a/jdk/src/windows/native/sun/windows/awt_Toolkit.cpp Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/src/windows/native/sun/windows/awt_Toolkit.cpp Mon Oct 14 09:52:36 2013 -0700 @@ -1516,10 +1516,19 @@ * the mouse, not the Component with the input focus. */ - if (msg.message == WM_MOUSEWHEEL && - AwtToolkit::MainThread() == ::GetWindowThreadProcessId(hWndForWheel, NULL)) { + if (msg.message == WM_MOUSEWHEEL) { //i.e. mouse is over client area for this window - msg.hwnd = hWndForWheel; + DWORD hWndForWheelProcess; + DWORD hWndForWheelThread = ::GetWindowThreadProcessId(hWndForWheel, &hWndForWheelProcess); + if (::GetCurrentProcessId() == hWndForWheelProcess) { + if (AwtToolkit::MainThread() == hWndForWheelThread) { + msg.hwnd = hWndForWheel; + } else { + // Interop mode, redispatch the event to another toolkit. + ::SendMessage(hWndForWheel, msg.message, mouseWParam, mouseLParam); + return TRUE; + } + } } /* diff -r c0864e216d36 -r c142f19c7181 jdk/test/java/awt/Frame/MaximizedToMaximized/MaximizedToMaximized.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/java/awt/Frame/MaximizedToMaximized/MaximizedToMaximized.java Mon Oct 14 09:52:36 2013 -0700 @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +import java.awt.Dimension; +import java.awt.Frame; +import java.awt.GraphicsDevice; +import java.awt.GraphicsEnvironment; +import java.awt.Insets; +import java.awt.Rectangle; +import java.awt.Toolkit; +import sun.awt.SunToolkit; + +/** + * @test + * @bug 8007219 + * @author Alexander Scherbatiy + * @summary Frame size reverts meaning of maximized attribute + * @run main MaximizedToMaximized + */ +public class MaximizedToMaximized { + + public static void main(String[] args) throws Exception { + + Frame frame = new Frame(); + final Toolkit toolkit = Toolkit.getDefaultToolkit(); + final GraphicsEnvironment graphicsEnvironment = + GraphicsEnvironment.getLocalGraphicsEnvironment(); + final GraphicsDevice graphicsDevice = + graphicsEnvironment.getDefaultScreenDevice(); + + final Dimension screenSize = toolkit.getScreenSize(); + final Insets screenInsets = toolkit.getScreenInsets( + graphicsDevice.getDefaultConfiguration()); + + final Rectangle availableScreenBounds = new Rectangle(screenSize); + + availableScreenBounds.x += screenInsets.left; + availableScreenBounds.y += screenInsets.top; + availableScreenBounds.width -= (screenInsets.left + screenInsets.right); + availableScreenBounds.height -= (screenInsets.top + screenInsets.bottom); + + frame.setBounds(availableScreenBounds.x, availableScreenBounds.y, + availableScreenBounds.width, availableScreenBounds.height); + frame.setVisible(true); + + Rectangle frameBounds = frame.getBounds(); + frame.setExtendedState(Frame.MAXIMIZED_BOTH); + ((SunToolkit) toolkit).realSync(); + + Rectangle maximizedFrameBounds = frame.getBounds(); + if (maximizedFrameBounds.width < frameBounds.width + || maximizedFrameBounds.height < frameBounds.height) { + throw new RuntimeException("Maximized frame is smaller than non maximized"); + } + } +} diff -r c0864e216d36 -r c142f19c7181 jdk/test/java/awt/Graphics/LineClipTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/java/awt/Graphics/LineClipTest.java Mon Oct 14 09:52:36 2013 -0700 @@ -0,0 +1,504 @@ +/* + * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/** + * @test + * @bug 4780022 4862193 7179526 + * @summary Tests that clipped lines are drawn over the same pixels + * as unclipped lines (within the clip bounds) + * @run main/timeout=600/othervm -Dsun.java2d.ddforcevram=true LineClipTest + * @run main/timeout=600/othervm LineClipTest + */ + + +/** + * This app tests whether we are drawing clipped lines the same + * as unclipped lines. The problem occurred when we started + * clipping d3d lines using simple integer clipping, which did not + * account for sub-pixel precision and ended up drawing very different + * pixels than the same line drawn unclipped. A supposed fix + * to that problem used floating-point clipping instead, but there + * was some problem with very limited precision inside of d3d + * (presumably in hardware) that caused some variation in pixels. + * We decided that whatever the fix was, we needed a serious + * line check test to make sure that all kinds of different + * lines would be drawn exactly the same inside the clip area, + * regardless of whether clipping was enabled. This test should + * check all kinds of different cases, such as lines that fall + * completely outside, completely inside, start outside and + * end inside, etc., and lines should end and originate in + * all quadrants of the space divided up by the clip box. + * + * The test works as follows: + * We create nine quadrants using the spaces bisected by the + * edges of the clip bounds (note that only one of these + * quadrants is actually visible when clipping is enabled). + * We create several points in each of these quadrants + * (three in each of the invisible quadrants, nine in the + * center/visible quadrant). Our resulting grid looks like + * this: + * + * x x|x x x|x x + * | | + * | | + * | | + * | | + * | | + * x | | x + * ----------------------------------- + * x |x x x| x + * | | + * | | + * x |x x x| x + * | | + * | | + * x |x x x| x + * ----------------------------------- + * x | | x + * | | + * | | + * | | + * | | + * | | + * x x|x x x|x x + * + * The test then draws lines from every point to every other + * point. First, we draw unclipped lines in blue and + * then we draw clipped lines in red. + * At certain times (after every point during the default + * test, after every quadrant of lines if you run with the -quick + * option), we check for errors and draw the current image + * to the screen. Error checking consists of copying the + * VolatileImage to a BufferedImage (because we need access + * to the pixels directly) and checking every pixel in the + * image. The check is simple: everything outside the + * clip bounds should be blue (or the background color) and + * everything inside the clip bounds should be red (or the + * background color). So any blue pixel inside or red + * pixel outside means that there was a drawing error and + * the test fails. + * There are 4 modes that the test can run in (dynamic mode is + * exclusive to the other modes, but the other modes are combinable): + * + * (default): the clip is set + * to a default size (100x100) and the test is run. + * + * -quick: The error + * check is run only after every quadrant of lines is + * drawn. This speeds up the test considerably with + * some less accuracy in error checking (because pixels + * from some lines may overdrawn pixels from other lines + * before we have verified the correctness of those + * pixels). + * + * -dynamic: There is no error checking, but this version + * of the test automatically resizes the clip bounds and + * reruns the test over and over. Nothing besides the + * visual check verifies that the test is running correctly. + * + * -rect: Instead of drawing lines, the test draws rectangles + * to/from all points in all quadrants. This tests similar + * clipping functionality for drawRect(). + * + * n (where "n" is a number): sets the clip size to the + * given value. Just like the default test except that + * the clip size is as specified. + * + * Note: this test must be run with the -Dsun.java2d.ddforcevram=true + * option to force the test image to stay in VRAM. We currently + * punt VRAM images to system memory when we detect lots of + * reads. Since we read the whole buffer on every error check + * to copy it to the BufferedImage), this causes us to punt the + * buffer. A system memory surface will have no d3d capabilities, + * thus we are not testing the d3d line quality when this happens. + * By using the ddforcevram flag, we make sure the buffer + * stays put in VRAM and d3d is used to draw the lines. + */ + +import javax.swing.*; +import java.awt.*; +import java.awt.image.*; + + +public class LineClipTest extends Component implements Runnable { + + int clipBumpVal = 5; + static int clipSize = 100; + int clipX1; + int clipY1; + static final int NUM_QUADS = 9; + Point quadrants[][] = new Point[NUM_QUADS][]; + static boolean dynamic = false; + BufferedImage imageChecker = null; + Color unclippedColor = Color.blue; + Color clippedColor = Color.red; + int testW = -1, testH = -1; + VolatileImage testImage = null; + static boolean keepRunning = false; + static boolean quickTest = false; + static boolean rectTest = false; + static boolean runTestDone = false; + static Frame f = null; + + /** + * Check for errors in the grid. This error check consists of + * copying the buffer into a BufferedImage and reading all pixels + * in that image. No pixel outside the clip bounds should be + * of the color clippedColor and no pixel inside should be + * of the color unclippedColor. Any wrong color returns an error. + */ + boolean gridError(Graphics g) { + boolean error = false; + if (imageChecker == null || (imageChecker.getWidth() != testW) || + (imageChecker.getHeight() != testH)) + { + // Recreate BufferedImage as necessary + GraphicsConfiguration gc = getGraphicsConfiguration(); + ColorModel cm = gc.getColorModel(); + WritableRaster wr = + cm.createCompatibleWritableRaster(getWidth(), getHeight()); + imageChecker = + new BufferedImage(cm, wr, + cm.isAlphaPremultiplied(), null); + } + // Copy buffer to BufferedImage + Graphics gChecker = imageChecker.getGraphics(); + gChecker.drawImage(testImage, 0, 0, this); + + // Set up pixel colors to check against + int clippedPixelColor = clippedColor.getRGB(); + int unclippedPixelColor = unclippedColor.getRGB(); + int wrongPixelColor = clippedPixelColor; + boolean insideClip = false; + for (int row = 0; row < getHeight(); ++row) { + for (int col = 0; col < getWidth(); ++col) { + if (row >= clipY1 && row < (clipY1 + clipSize) && + col >= clipX1 && col < (clipX1 + clipSize)) + { + // Inside clip bounds - should not see unclipped color + wrongPixelColor = unclippedPixelColor; + } else { + // Outside clip - should not see clipped color + wrongPixelColor = clippedPixelColor; + } + int pixel = imageChecker.getRGB(col, row); + if (pixel == wrongPixelColor) { + System.out.println("FAILED: pixel = " + + Integer.toHexString(pixel) + + " at (x, y) = " + col + ", " + row); + // Draw magenta rectangle around problem pixel in buffer + // for visual feedback to user + g.setColor(Color.magenta); + g.drawRect(col - 1, row - 1, 2, 2); + error = true; + } + } + } + return error; + } + + /** + * Draw all test lines and check for errors (unless running + * with -dynamic option) + */ + void drawLineGrid(Graphics screenGraphics, Graphics g) { + // Fill buffer with background color + g.setColor(Color.white); + g.fillRect(0, 0, getWidth(), getHeight()); + + // Now, iterate through all quadrants + for (int srcQuad = 0; srcQuad < NUM_QUADS; ++srcQuad) { + // Draw lines to all other quadrants + for (int dstQuad = 0; dstQuad < NUM_QUADS; ++dstQuad) { + for (int srcPoint = 0; + srcPoint < quadrants[srcQuad].length; + ++srcPoint) + { + // For every point in the source quadrant + int sx = quadrants[srcQuad][srcPoint].x; + int sy = quadrants[srcQuad][srcPoint].y; + for (int dstPoint = 0; + dstPoint < quadrants[dstQuad].length; + ++dstPoint) + { + int dx = quadrants[dstQuad][dstPoint].x; + int dy = quadrants[dstQuad][dstPoint].y; + if (!rectTest) { + // Draw unclipped/clipped lines to every + // point in the dst quadrant + g.setColor(unclippedColor); + g.drawLine(sx, sy, dx, dy); + g.setClip(clipX1, clipY1, clipSize, clipSize); + g.setColor(clippedColor); + g.drawLine(sx,sy, dx, dy); + } else { + // Draw unclipped/clipped rectangles to every + // point in the dst quadrant + g.setColor(unclippedColor); + int w = dx - sx; + int h = dy - sy; + g.drawRect(sx, sy, w, h); + g.setClip(clipX1, clipY1, clipSize, clipSize); + g.setColor(clippedColor); + g.drawRect(sx, sy, w, h); + } + g.setClip(null); + } + if (!dynamic) { + // Draw screen update for visual feedback + screenGraphics.drawImage(testImage, 0, 0, this); + // On default test, check for errors after every + // src point + if (!quickTest && gridError(g)) { + throw new java.lang.RuntimeException("Failed"); + } + } + } + } + if (!dynamic && quickTest && gridError(g)) { + // On quick test, check for errors only after every + // src quadrant + throw new java.lang.RuntimeException("Failed"); + //return; + } + } + if (!dynamic) { + System.out.println("PASSED"); + if (!keepRunning) { + f.dispose(); + } + } + } + + /** + * If we have not yet run the test, or if the window size has + * changed, or if we are running the test in -dynamic mode, + * run the test. Then draw the test buffer to the screen + */ + public void paint(Graphics g) { + if (dynamic || testImage == null || + getWidth() != testW || getHeight() != testH) + { + runTest(g); + } + if (testImage != null) { + g.drawImage(testImage, 0, 0, this); + } + } + + /* + * Create the quadrant of points and run the test to draw all the lines + */ + public void runTest(Graphics screenGraphics) { + if (getWidth() == 0 || getHeight() == 0) { + // May get here before window is really ready + return; + } + clipX1 = (getWidth() - clipSize) / 2; + clipY1 = (getHeight() - clipSize) / 2; + int clipX2 = clipX1 + clipSize; + int clipY2 = clipY1 + clipSize; + int centerX = getWidth()/2; + int centerY = getHeight()/2; + int leftX = 0; + int topY = 0; + int rightX = getWidth() - 1; + int bottomY = getHeight() - 1; + int quadIndex = 0; + // Offsets are used to force diagonal (versus hor/vert) lines + int xOffset = 0; + int yOffset = 0; + + if (quadrants[0] == null) { + for (int i = 0; i < 9; ++i) { + int numPoints = (i == 4) ? 9 : 3; + quadrants[i] = new Point[numPoints]; + } + } + // Upper-left + quadrants[quadIndex] = new Point[] { + new Point(leftX + xOffset, clipY1 - 1 - yOffset), + new Point(leftX + xOffset, topY + yOffset), + new Point(clipX1 - 1 - xOffset, topY + yOffset), + }; + + quadIndex++; + yOffset++; + // Upper-middle + quadrants[quadIndex] = new Point[] { + new Point(clipX1 + 1 + xOffset, topY + yOffset), + new Point(centerX + xOffset, topY + yOffset), + new Point(clipX2 - 1 - xOffset, topY + yOffset), + }; + + quadIndex++; + ++yOffset; + // Upper-right + quadrants[quadIndex] = new Point[] { + new Point(clipX2 + 1 + xOffset, topY + yOffset), + new Point(rightX - xOffset, topY + yOffset), + new Point(rightX - xOffset, clipY1 - 1 - yOffset), + }; + + quadIndex++; + yOffset = 0; + ++xOffset; + // Middle-left + quadrants[quadIndex] = new Point[] { + new Point(leftX + xOffset, clipY1 + 1 + yOffset), + new Point(leftX + xOffset, centerY + yOffset), + new Point(leftX + xOffset, clipY2 - 1 - yOffset), + }; + + quadIndex++; + ++yOffset; + // Middle-middle + quadrants[quadIndex] = new Point[] { + new Point(clipX1 + 1 + xOffset, clipY1 + 1 + yOffset), + new Point(centerX + xOffset, clipY1 + 1 + yOffset), + new Point(clipX2 - 1 - xOffset, clipY1 + 1 + yOffset), + new Point(clipX1 + 1 + xOffset, centerY + yOffset), + new Point(centerX + xOffset, centerY + yOffset), + new Point(clipX2 - 1 - xOffset, centerY + yOffset), + new Point(clipX1 + 1 + xOffset, clipY2 - 1 - yOffset), + new Point(centerX + xOffset, clipY2 - 1 - yOffset), + new Point(clipX2 - 1 - xOffset, clipY2 - 1 - yOffset), + }; + + quadIndex++; + ++yOffset; + // Middle-right + quadrants[quadIndex] = new Point[] { + new Point(rightX - xOffset, clipY1 + 1 + yOffset), + new Point(rightX - xOffset, centerY + yOffset), + new Point(rightX - xOffset, clipY2 - 1 - yOffset), + }; + + quadIndex++; + yOffset = 0; + ++xOffset; + // Lower-left + quadrants[quadIndex] = new Point[] { + new Point(leftX + xOffset, clipY2 + 1 + yOffset), + new Point(leftX + xOffset, bottomY - yOffset), + new Point(clipX1 - 1 - xOffset, bottomY - yOffset), + }; + + quadIndex++; + ++yOffset; + // Lower-middle + quadrants[quadIndex] = new Point[] { + new Point(clipX1 + 1 + xOffset, bottomY - yOffset), + new Point(centerX + xOffset, bottomY - yOffset), + new Point(clipX2 - 1 - xOffset, bottomY - yOffset), + }; + + quadIndex++; + ++yOffset; + // Lower-right + quadrants[quadIndex] = new Point[] { + new Point(clipX2 + 1 + xOffset, bottomY - yOffset), + new Point(rightX - xOffset, bottomY - yOffset), + new Point(rightX - xOffset, clipY2 + 1 + yOffset), + }; + + + if (testImage != null) { + testImage.flush(); + } + testW = getWidth(); + testH = getHeight(); + testImage = createVolatileImage(testW, testH); + Graphics g = testImage.getGraphics(); + do { + int valCode = testImage.validate(getGraphicsConfiguration()); + if (valCode == VolatileImage.IMAGE_INCOMPATIBLE) { + testImage.flush(); + testImage = createVolatileImage(testW, testH); + g = testImage.getGraphics(); + } + drawLineGrid(screenGraphics, g); + } while (testImage.contentsLost()); + if (dynamic) { + // Draw clip box if dynamic + g.setClip(null); + g.setColor(Color.black); + g.drawRect(clipX1, clipY1, clipSize, clipSize); + screenGraphics.drawImage(testImage, 0, 0, this); + } + runTestDone = true; + } + + /** + * When running -dynamic, resize the clip bounds and run the test + * over and over + */ + public void run() { + while (true) { + clipSize += clipBumpVal; + if (clipSize > getWidth() || clipSize < 0) { + clipBumpVal = -clipBumpVal; + clipSize += clipBumpVal; + } + update(getGraphics()); + try { + Thread.sleep(50); + } catch (Exception e) {} + } + } + + public static void main(String args[]) { + for (int i = 0; i < args.length; ++i) { + if (args[i].equals("-dynamic")) { + dynamic = true; + } else if (args[i].equals("-rect")) { + rectTest = true; + } else if (args[i].equals("-quick")) { + quickTest = true; + } else if (args[i].equals("-keep")) { + keepRunning = true; + } else { + // could be clipSize + try { + clipSize = Integer.parseInt(args[i]); + } catch (Exception e) {} + } + } + f = new Frame(); + f.setSize(500, 500); + LineClipTest test = new LineClipTest(); + f.add(test); + if (dynamic) { + Thread t = new Thread(test); + t.start(); + } + f.setVisible(true); + while (!runTestDone) { + // need to make sure jtreg doesn't exit before the + // test is done... + try { + Thread.sleep(50); + } catch (Exception e) {} + } + } +} diff -r c0864e216d36 -r c142f19c7181 jdk/test/java/awt/InputMethods/InputMethodsTest/InputMethodsTest.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/java/awt/InputMethods/InputMethodsTest/InputMethodsTest.html Mon Oct 14 09:52:36 2013 -0700 @@ -0,0 +1,17 @@ + + + InputMethodsTest + + + + +This test is for Linux only. For other platforms please simply push "Pass". + +Test run requires some Japanese input method to be installed. + +To test JDK-7146572 fix please perform the following steps: +1. Switch on input method and type Japanese in the above text fields. +2. Push "Disable Input Methods" button. +3. Try to type Japanese again. If it can be done then the test is failed; otherwise passed. + + diff -r c0864e216d36 -r c142f19c7181 jdk/test/java/awt/InputMethods/InputMethodsTest/InputMethodsTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/java/awt/InputMethods/InputMethodsTest/InputMethodsTest.java Mon Oct 14 09:52:36 2013 -0700 @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + + +/* + @test + @bug 7146572 8024122 + @summary Check if 'enableInputMethods' works properly for TextArea and TextField on Linux platform + @author a.stepanov + @run applet/manual=yesno InputMethodsTest.html +*/ + + +import java.applet.Applet; +import java.awt.*; +import javax.swing.*; +import java.awt.event.*; + + +public class InputMethodsTest extends Applet { + + TextArea txtArea = null; + TextField txtField = null; + JButton btnIM = null; + boolean inputMethodsEnabled = true; + + public void init() { + this.setLayout(new BorderLayout()); + } + + public void start() { + + setSize(350, 200); + + JPanel panel = new JPanel(); + panel.setLayout(new GridLayout(2, 1)); + + txtArea = new TextArea(); + panel.add(txtArea); + + txtField = new TextField(); + panel.add(txtField); + + add(panel, BorderLayout.CENTER); + + btnIM = new JButton(); + setBtnText(); + + btnIM.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + inputMethodsEnabled = !inputMethodsEnabled; + setBtnText(); + txtArea.enableInputMethods(inputMethodsEnabled); + txtField.enableInputMethods(inputMethodsEnabled); + } + }); + + add(btnIM, BorderLayout.SOUTH); + + validate(); + setVisible(true); + } + + private void setBtnText() { + String s = inputMethodsEnabled ? "Disable" : "Enable"; + btnIM.setText(s + " Input Methods"); + } +} + diff -r c0864e216d36 -r c142f19c7181 jdk/test/java/awt/List/NofocusListDblClickTest/NofocusListDblClickTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/java/awt/List/NofocusListDblClickTest/NofocusListDblClickTest.java Mon Oct 14 09:52:36 2013 -0700 @@ -0,0 +1,129 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +/* + @test + @bug 6240202 + @summary Tests that non-focusable List in a Window generates ActionEvent. + @author anton.tarasov@sun.com: area=awt-list + @run main NofocusListDblClickTest +*/ + +import java.awt.*; +import java.awt.event.*; +import java.util.concurrent.atomic.AtomicInteger; +import javax.swing.SwingUtilities; +import sun.awt.SunToolkit; + +public class NofocusListDblClickTest { + static final int EXPECTED_ACTION_COUNT = 2; + static Robot robot; + static final AtomicInteger actionPerformed = new AtomicInteger(0); + static List lst; + private static final SunToolkit toolkit = (SunToolkit) Toolkit.getDefaultToolkit(); + + public static void main(String[] args) throws Exception { + SwingUtilities.invokeAndWait(new Runnable() { + public void run() { + createAndShowGUI(); + } + }); + toolkit.realSync(); + Thread.sleep(1000); + + robot = new Robot(); + robot.setAutoDelay(50); + // ACTION_PERFORMED event happens only on even clicks + clickTwiceOn(lst); + Thread.sleep(500); + clickTwiceOn(lst); + toolkit.realSync(); + Thread.sleep(1000); + + synchronized (actionPerformed) { + if (actionPerformed.get() != EXPECTED_ACTION_COUNT) { + try { + actionPerformed.wait(3000); + } catch (InterruptedException e) { + System.out.println("Interrupted unexpectedly!"); + throw new RuntimeException(e); + } + } + } + + if (actionPerformed.get() != EXPECTED_ACTION_COUNT) { + System.out.println("No ActionEvent was generated. " + actionPerformed.get()); + throw new RuntimeException("Test failed!"); + } + + System.out.println("Test passed."); + } + + public static void createAndShowGUI() { + Frame f = new Frame("Owner"); + Window w = new Window(f); + lst = new List(3, true); + //this.setLayout (new BorderLayout ()); + f.setBounds(800, 0, 100, 100); + w.setLocation(800, 150); + + lst.add("item 0"); + lst.add("item 1"); + lst.add("item 2"); + + lst.setFocusable(false); + + lst.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + System.out.println(e.toString()); + synchronized (actionPerformed) { + if (EXPECTED_ACTION_COUNT == actionPerformed.incrementAndGet()) { + actionPerformed.notifyAll(); + } + } + } + }); + + w.add(lst); + w.pack(); + + f.setVisible(true); + w.setVisible(true); + } + + static void clickTwiceOn(Component c) throws Exception { + Point p = c.getLocationOnScreen(); + Dimension d = c.getSize(); + + if (c instanceof Frame) { + robot.mouseMove(p.x + (int)(d.getWidth()/2), p.y + ((Frame)c).getInsets().top/2); + } else { + robot.mouseMove(p.x + (int)(d.getWidth()/2), p.y + (int)(d.getHeight()/2)); + } + + robot.mousePress(InputEvent.BUTTON1_MASK); + robot.mouseRelease(InputEvent.BUTTON1_MASK); + Thread.sleep(20); + robot.mousePress(InputEvent.BUTTON1_MASK); + robot.mouseRelease(InputEvent.BUTTON1_MASK); + } +} diff -r c0864e216d36 -r c142f19c7181 jdk/test/java/awt/TextArea/SelectionVisible/SelectionVisible.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/java/awt/TextArea/SelectionVisible/SelectionVisible.html Mon Oct 14 09:52:36 2013 -0700 @@ -0,0 +1,42 @@ + + + + + + SelectionVisible + + + +

            SelectionVisible
            Bugid: 4082144

            + + + + diff -r c0864e216d36 -r c142f19c7181 jdk/test/java/awt/TextArea/SelectionVisible/SelectionVisible.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/java/awt/TextArea/SelectionVisible/SelectionVisible.java Mon Oct 14 09:52:36 2013 -0700 @@ -0,0 +1,62 @@ +/* + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + + +import java.applet.Applet; +import java.awt.BorderLayout; +import java.awt.Dimension; +import java.awt.FlowLayout; +import java.awt.Panel; +import java.awt.TextArea; + +public final class SelectionVisible extends Applet { + + TextArea tf; + + @Override + public void init() { + tf = new TextArea(3, 20); + tf.setText("0123456789"); + tf.select(0, 6); + + final TextArea ta = new TextArea("INSTRUCTIONS:\n" + + "The text 012345 should be selected in the TextArea.\n" + + "If this is what you observe, then the test passes.\n" + + "Otherwise, the test fails.", 40, 5, + TextArea.SCROLLBARS_NONE); + ta.setEditable(false); + ta.setPreferredSize(new Dimension(300, 70)); + final Panel panel = new Panel(); + panel.setLayout(new FlowLayout()); + panel.add(tf); + setLayout(new BorderLayout()); + add(ta, BorderLayout.CENTER); + add(panel, BorderLayout.PAGE_END); + } + + @Override + public void start() { + setVisible(true); + tf.requestFocus(); + } +} diff -r c0864e216d36 -r c142f19c7181 jdk/test/java/awt/TextField/SelectionVisible/SelectionVisible.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/java/awt/TextField/SelectionVisible/SelectionVisible.html Mon Oct 14 09:52:36 2013 -0700 @@ -0,0 +1,42 @@ + + + + + + SelectionVisible + + + +

            SelectionVisible
            Bugid: 4082144

            + + + + diff -r c0864e216d36 -r c142f19c7181 jdk/test/java/awt/TextField/SelectionVisible/SelectionVisible.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/java/awt/TextField/SelectionVisible/SelectionVisible.java Mon Oct 14 09:52:36 2013 -0700 @@ -0,0 +1,63 @@ +/* + * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + + +import java.applet.Applet; +import java.awt.BorderLayout; +import java.awt.Dimension; +import java.awt.FlowLayout; +import java.awt.Panel; +import java.awt.TextArea; +import java.awt.TextField; + +public final class SelectionVisible extends Applet { + + TextField tf; + + @Override + public void init() { + tf = new TextField(20); + tf.setText("0123456789"); + tf.select(0, 6); + + final TextArea ta = new TextArea("INSTRUCTIONS:\n" + + "The text 012345 should be selected in the TextField.\n" + + "If this is what you observe, then the test passes.\n" + + "Otherwise, the test fails.", 40, 5, + TextArea.SCROLLBARS_NONE); + ta.setEditable(false); + ta.setPreferredSize(new Dimension(300, 70)); + final Panel panel = new Panel(); + panel.setLayout(new FlowLayout()); + panel.add(tf); + setLayout(new BorderLayout()); + add(ta, BorderLayout.CENTER); + add(panel, BorderLayout.PAGE_END); + } + + @Override + public void start() { + setVisible(true); + tf.requestFocus(); + } +} diff -r c0864e216d36 -r c142f19c7181 jdk/test/java/awt/Window/AlwaysOnTop/AlwaysOnTopFieldTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/java/awt/Window/AlwaysOnTop/AlwaysOnTopFieldTest.java Mon Oct 14 09:52:36 2013 -0700 @@ -0,0 +1,91 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +import java.awt.Dialog; +import java.awt.Frame; +import java.awt.Toolkit; +import java.awt.Window; +import sun.awt.SunToolkit; +/** + * @test + * @bug 7081594 + * @author Alexander Scherbatiy + * @summary Windows owned by an always-on-top window DO NOT automatically become always-on-top + * @run main AlwaysOnTopFieldTest + */ +public class AlwaysOnTopFieldTest { + + public static void main(String[] args) { + SunToolkit toolkit = (SunToolkit) Toolkit.getDefaultToolkit(); + + Window window = new Frame("Window 1"); + window.setSize(200, 200); + window.setAlwaysOnTop(true); + window.setVisible(true); + toolkit.realSync(); + + Dialog dialog = new Dialog(window, "Owned dialog 1"); + dialog.setSize(200, 200); + dialog.setLocation(100, 100); + dialog.setVisible(true); + toolkit.realSync(); + + try { + if (!window.isAlwaysOnTop()) { + throw new RuntimeException("Window has wrong isAlwaysOnTop value"); + } + if (!dialog.isAlwaysOnTop()) { + throw new RuntimeException("Dialog has wrong isAlwaysOnTop value"); + } + } finally { + window.dispose(); + dialog.dispose(); + } + + window = new Frame("Window 2"); + window.setSize(200, 200); + window.setVisible(true); + toolkit.realSync(); + + + dialog = new Dialog(window, "Owned dialog 2"); + dialog.setSize(200, 200); + dialog.setLocation(100, 100); + dialog.setVisible(true); + toolkit.realSync(); + + window.setAlwaysOnTop(true); + toolkit.realSync(); + + try { + if (!window.isAlwaysOnTop()) { + throw new RuntimeException("Window has wrong isAlwaysOnTop value"); + } + if (!dialog.isAlwaysOnTop()) { + throw new RuntimeException("Dialog has wrong isAlwaysOnTop value"); + } + } finally { + window.dispose(); + dialog.dispose(); + } + } +} diff -r c0864e216d36 -r c142f19c7181 jdk/test/java/awt/Window/LocationByPlatform/LocationByPlatformTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/java/awt/Window/LocationByPlatform/LocationByPlatformTest.java Mon Oct 14 09:52:36 2013 -0700 @@ -0,0 +1,75 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/** + * @test + * @bug 7092283 + * @author Alexander Scherbatiy + * @summary Property Window.locationByPlatform is not cleared by calling + * setVisible(false) + * @run main LocationByPlatformTest + */ +import java.awt.Window; + +public class LocationByPlatformTest { + + public static void main(String[] args) { + + Window window = new Window(null); + window.setSize(100, 100); + window.setLocationByPlatform(true); + + if (!window.isLocationByPlatform()) { + throw new RuntimeException("Location by platform is not set"); + } + + window.setLocation(10, 10); + + if (window.isLocationByPlatform()) { + throw new RuntimeException("Location by platform is not cleared"); + } + + window.setLocationByPlatform(true); + window.setBounds(20, 20, 50, 50); + + if (window.isLocationByPlatform()) { + throw new RuntimeException("Location by platform is not cleared"); + } + + window.setLocationByPlatform(true); + window.setVisible(false); + + if (window.isLocationByPlatform()) { + throw new RuntimeException("Location by platform is not cleared"); + } + + window.setLocationByPlatform(true); + window.setVisible(true); + + if (window.isLocationByPlatform()) { + throw new RuntimeException("Location by platform is not cleared"); + } + + window.dispose(); + } +} diff -r c0864e216d36 -r c142f19c7181 jdk/test/java/awt/Window/WindowsLeak/WindowsLeak.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/java/awt/Window/WindowsLeak/WindowsLeak.java Mon Oct 14 09:52:36 2013 -0700 @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 8013563 + * @summary Tests that windows are removed from windows list + * @run main/othervm -Xms32M -Xmx32M WindowsLeak +*/ + +import java.awt.*; +import sun.awt.AppContext; + +import java.lang.ref.WeakReference; + +import java.util.Vector; + +public class WindowsLeak { + + public static void main(String[] args) { + for (int i = 0; i < 100; i++) + { + Frame f = new Frame(); + f.pack(); + f.dispose(); + } + + Vector garbage = new Vector(); + while (true) + { + try + { + garbage.add(new byte[1000]); + } + catch (OutOfMemoryError e) + { + break; + } + } + garbage = null; + + Vector> windowList = + (Vector>) AppContext.getAppContext().get(Window.class); + + if (windowList != null && !windowList.isEmpty()) { + throw new RuntimeException("Test FAILED: Window list is not empty: " + windowList.size()); + } + + System.out.println("Test PASSED"); + } +} diff -r c0864e216d36 -r c142f19c7181 jdk/test/java/awt/dnd/DropTargetEnterExitTest/ExtraDragEnterTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/java/awt/dnd/DropTargetEnterExitTest/ExtraDragEnterTest.java Mon Oct 14 09:52:36 2013 -0700 @@ -0,0 +1,133 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/** + * @test + * @bug 8024163 + * @summary Checks the dragEnter event is correctly generated + * @library ../../regtesthelpers + * @build Util + * @compile ExtraDragEnterTest.java + * @run main/othervm ExtraDragEnterTest + * @author Petr Pchelko + */ + +import test.java.awt.regtesthelpers.Util; + +import javax.swing.*; +import java.awt.*; +import java.awt.datatransfer.StringSelection; +import java.awt.dnd.DnDConstants; +import java.awt.dnd.DragGestureEvent; +import java.awt.dnd.DragGestureListener; +import java.awt.dnd.DragSource; +import java.awt.dnd.DropTarget; +import java.awt.dnd.DropTargetAdapter; +import java.awt.dnd.DropTargetDragEvent; +import java.awt.dnd.DropTargetDropEvent; +import java.awt.event.InputEvent; +import java.util.concurrent.atomic.AtomicInteger; + +public class ExtraDragEnterTest { + + private static final int FRAME_SIZE = 100; + private static final int FRAME_LOCATION = 100; + + private static AtomicInteger dragEnterCalled = new AtomicInteger(0); + + private static volatile Panel mainPanel; + private static volatile Frame f; + + private static void initAndShowUI() { + f = new Frame("Test frame"); + f.setBounds(FRAME_LOCATION,FRAME_LOCATION,FRAME_SIZE,FRAME_SIZE); + mainPanel = new Panel(); + mainPanel.setBounds(0, 0, FRAME_SIZE, FRAME_SIZE); + mainPanel.setBackground(Color.black); + mainPanel.setLayout(new GridLayout(2, 1)); + + final DraggablePanel dragSource = new DraggablePanel(); + dragSource.setBackground(Color.yellow); + dragSource.setDropTarget(null); + mainPanel.add(dragSource); + + Panel dropTarget = new Panel(); + dropTarget.setBackground(Color.red); + DropTarget dt = new DropTarget(dropTarget, new DropTargetAdapter() { + @Override public void drop(DropTargetDropEvent dtde) { } + + @Override + public void dragEnter(DropTargetDragEvent dtde) { + dragEnterCalled.incrementAndGet(); + } + }); + dropTarget.setDropTarget(dt); + mainPanel.add(dropTarget); + + f.add(mainPanel); + f.setVisible(true); + } + + public static void main(String[] args) throws Throwable { + try { + + SwingUtilities.invokeAndWait(new Runnable() { + @Override + public void run() { + initAndShowUI(); + } + }); + + Robot r = new Robot(); + Util.waitForIdle(r); + Point leftCorner = new Point(mainPanel.getLocationOnScreen()); + leftCorner.translate(5, 5); + Point rightCorner = new Point(mainPanel.getLocationOnScreen()); + rightCorner.translate(mainPanel.getWidth(), mainPanel.getHeight()); + rightCorner.translate(-5, -5); + Util.drag(r, leftCorner, rightCorner, InputEvent.BUTTON1_MASK); + Util.waitForIdle(r); + + int called = dragEnterCalled.get(); + if (called != 1) { + throw new RuntimeException("Failed. Drag enter called " + called + " times. Expected 1" ); + } + } finally { + if (f != null) { + f.dispose(); + } + } + } + + private static class DraggablePanel extends Panel implements DragGestureListener { + + public DraggablePanel() { + (new DragSource()).createDefaultDragGestureRecognizer(this, DnDConstants.ACTION_COPY, this); + } + + @Override + public void dragGestureRecognized(DragGestureEvent dge) { + dge.startDrag(Cursor.getDefaultCursor(), new StringSelection("test")); + } + } +} diff -r c0864e216d36 -r c142f19c7181 jdk/test/java/awt/dnd/DropTargetEnterExitTest/MissedDragExitTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/java/awt/dnd/DropTargetEnterExitTest/MissedDragExitTest.java Mon Oct 14 09:52:36 2013 -0700 @@ -0,0 +1,128 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/** + * @test + * @bug 8024163 + * @summary Checks that dragExit is generated when the new DropTarget is created under the drag + * @library ../../regtesthelpers + * @build Util + * @compile MissedDragExitTest.java + * @run main/othervm MissedDragExitTest + * @author Petr Pchelko + */ + +import test.java.awt.regtesthelpers.Util; + +import javax.swing.*; +import java.awt.*; +import java.awt.datatransfer.StringSelection; +import java.awt.dnd.DnDConstants; +import java.awt.dnd.DragGestureEvent; +import java.awt.dnd.DragGestureListener; +import java.awt.dnd.DragSource; +import java.awt.dnd.DropTarget; +import java.awt.dnd.DropTargetAdapter; +import java.awt.dnd.DropTargetDragEvent; +import java.awt.dnd.DropTargetDropEvent; +import java.awt.dnd.DropTargetEvent; +import java.awt.event.InputEvent; + +public class MissedDragExitTest { + + private static final int FRAME_SIZE = 100; + private static final int FRAME_LOCATION = 100; + + private static volatile boolean dragExitCalled = false; + + private static volatile Frame f; + + private static void initAndShowUI() { + f = new Frame("Test frame"); + f.setBounds(FRAME_LOCATION,FRAME_LOCATION,FRAME_SIZE,FRAME_SIZE); + + final DraggablePanel dragSource = new DraggablePanel(); + dragSource.setBackground(Color.yellow); + DropTarget dt = new DropTarget(dragSource, new DropTargetAdapter() { + @Override public void drop(DropTargetDropEvent dtde) { } + + @Override + public void dragExit(DropTargetEvent dte) { + dragExitCalled = true; + } + + @Override + public void dragOver(DropTargetDragEvent dtde) { + Panel newDropTarget = new Panel(); + newDropTarget.setDropTarget(new DropTarget()); + newDropTarget.setBackground(Color.red); + newDropTarget.setBounds(0, 0, FRAME_SIZE, FRAME_SIZE); + dragSource.add(newDropTarget); + } + }); + dragSource.setDropTarget(dt); + f.add(dragSource); + + f.setVisible(true); + } + + public static void main(String[] args) throws Throwable { + try { + + SwingUtilities.invokeAndWait(new Runnable() { + @Override + public void run() { + initAndShowUI(); + } + }); + + Robot r = new Robot(); + Util.waitForIdle(r); + Util.drag(r, + new Point(FRAME_LOCATION + FRAME_SIZE / 3, FRAME_LOCATION + FRAME_SIZE / 3), + new Point(FRAME_LOCATION + FRAME_SIZE / 3 * 2, FRAME_LOCATION + FRAME_SIZE / 3 * 2), + InputEvent.BUTTON1_MASK); + Util.waitForIdle(r); + + if (!dragExitCalled) { + throw new RuntimeException("Failed. Drag exit was not called" ); + } + } finally { + if (f != null) { + f.dispose(); + } + } + } + + private static class DraggablePanel extends Panel implements DragGestureListener { + + public DraggablePanel() { + (new DragSource()).createDefaultDragGestureRecognizer(this, DnDConstants.ACTION_COPY, this); + } + + @Override + public void dragGestureRecognized(DragGestureEvent dge) { + dge.startDrag(Cursor.getDefaultCursor(), new StringSelection("test")); + } + } +} diff -r c0864e216d36 -r c142f19c7181 jdk/test/java/awt/print/PrinterJob/CustomPrintService/PrintDialog.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/java/awt/print/PrinterJob/CustomPrintService/PrintDialog.java Mon Oct 14 09:52:36 2013 -0700 @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +import java.awt.*; +import java.awt.print.PrinterJob; +import javax.print.PrintServiceLookup; + +/** + * @test + * @bug 6870661 + * @summary Verify that no native dialog is opened for a custom PrintService + * @run main/manual PrintDialog + * @author reinhapa + */ +public class PrintDialog { + + private static final String instructions = + "This test shows a non native print dialog having a 'test' print service\n" + + "selected. No other options are selectable on the General tab. The other\n" + + "tabs are as follows:\n" + + "Page Setup: Media & Margins enabled, Orientation disabled\n" + + "Appearance: All parts disabled\n\n" + + "Test passes if the dialog is shown as described above."; + + public static void main(String[] args) throws Exception { + // instruction dialog + Frame instruction = new Frame("Verify that no native print dialog is showed"); + instruction.add(new TextArea(instructions)); + instruction.pack(); + instruction.show(); + // test begin + PrintServiceStub service = new PrintServiceStub("test"); + PrintServiceLookup.registerService(service); + PrinterJob job = PrinterJob.getPrinterJob(); + job.setPrintService(service); + job.printDialog(); + System.out.println("test passed"); + } +} diff -r c0864e216d36 -r c142f19c7181 jdk/test/java/awt/print/PrinterJob/CustomPrintService/PrintServiceStub.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/java/awt/print/PrinterJob/CustomPrintService/PrintServiceStub.java Mon Oct 14 09:52:36 2013 -0700 @@ -0,0 +1,160 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +import javax.print.DocFlavor; +import javax.print.DocPrintJob; +import javax.print.PrintService; +import javax.print.ServiceUIFactory; +import javax.print.attribute.Attribute; +import javax.print.attribute.AttributeSet; +import javax.print.attribute.HashPrintServiceAttributeSet; +import javax.print.attribute.PrintServiceAttribute; +import javax.print.attribute.PrintServiceAttributeSet; +import javax.print.attribute.standard.Media; +import javax.print.attribute.standard.MediaSizeName; +import javax.print.attribute.standard.PrinterInfo; +import javax.print.attribute.standard.PrinterIsAcceptingJobs; +import javax.print.attribute.standard.PrinterMakeAndModel; +import javax.print.attribute.standard.PrinterName; +import javax.print.attribute.standard.PrinterState; +import javax.print.event.PrintServiceAttributeListener; + +/** + * Stub implementation of a custom {@link PrintService}. + * + * @author reinhapa + */ +public class PrintServiceStub implements PrintService { + private final String _name; + private final Set _flavors; + private final Map, Object> _attributes; + + public PrintServiceStub(String name) { + _name = name; + _flavors = new HashSet(); + _flavors.add(DocFlavor.SERVICE_FORMATTED.PAGEABLE); + _flavors.add(DocFlavor.SERVICE_FORMATTED.PRINTABLE); + _attributes = new HashMap<>(); + _attributes.put(PrinterName.class, new PrinterName(name, null)); + _attributes.put(PrinterState.class, PrinterState.IDLE); + _attributes.put(PrinterInfo.class, new PrinterInfo("Custom location", + null)); + _attributes.put(PrinterIsAcceptingJobs.class, + PrinterIsAcceptingJobs.ACCEPTING_JOBS); + _attributes.put(PrinterMakeAndModel.class, new PrinterMakeAndModel( + "Custom printer", null)); + _attributes.put(Media.class, new Media[] { MediaSizeName.ISO_A4 }); + } + + @Override + public String getName() { + return _name; + } + + @Override + public boolean isDocFlavorSupported(DocFlavor flavor) { + return _flavors.contains(flavor); + } + + @Override + public Object getSupportedAttributeValues( + Class category, DocFlavor flavor, + AttributeSet attributes) { + return _attributes.get(category); + } + + @Override + public boolean isAttributeCategorySupported( + Class category) { + return _attributes.containsKey(category); + } + + @Override + public T getAttribute(Class category) { + return category.cast(_attributes.get(category)); + } + + @Override + public PrintServiceAttributeSet getAttributes() { + return new HashPrintServiceAttributeSet(_attributes.values().toArray( + new PrintServiceAttribute[_attributes.size()])); + } + + @Override + public DocFlavor[] getSupportedDocFlavors() { + return _flavors.toArray(new DocFlavor[_flavors.size()]); + } + + // not implemented methods + + @Override + public DocPrintJob createPrintJob() { + return null; + } + + @Override + public void addPrintServiceAttributeListener( + PrintServiceAttributeListener listener) { + + } + + @Override + public void removePrintServiceAttributeListener( + PrintServiceAttributeListener listener) { + + } + + @Override + public Class[] getSupportedAttributeCategories() { + return null; + } + + @Override + public Object getDefaultAttributeValue(Class category) { + return null; + } + + @Override + public boolean isAttributeValueSupported(Attribute attrval, + DocFlavor flavor, AttributeSet attributes) { + return false; + } + + @Override + public AttributeSet getUnsupportedAttributes(DocFlavor flavor, + AttributeSet attributes) { + return null; + } + + @Override + public ServiceUIFactory getServiceUIFactory() { + return null; + } +} diff -r c0864e216d36 -r c142f19c7181 jdk/test/java/awt/print/PrinterJob/CustomPrintService/SetPrintServiceTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/java/awt/print/PrinterJob/CustomPrintService/SetPrintServiceTest.java Mon Oct 14 09:52:36 2013 -0700 @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +import java.awt.print.PrinterException; +import java.awt.print.PrinterJob; + +/** + * @test + * @bug 6870661 + * @summary tests setPrintService() with a custom implementation + * @author reinhapa + */ +public class SetPrintServiceTest { + + public static void main(String[] args) { + PrintServiceStub service = new PrintServiceStub("CustomPrintService"); + PrinterJob printerJob = PrinterJob.getPrinterJob(); + try { + printerJob.setPrintService(service); + System.out.println("Test Passed"); + } catch (PrinterException e) { + throw new RuntimeException("Test FAILED", e); + } + } + +} diff -r c0864e216d36 -r c142f19c7181 jdk/test/javax/imageio/plugins/wbmp/StreamResetTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/javax/imageio/plugins/wbmp/StreamResetTest.java Mon Oct 14 09:52:36 2013 -0700 @@ -0,0 +1,97 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/** + * @test + * @bug 8022632 + * @summary Test verifies that SPI of WBMP image reader + * restores the stream position if an IOException + * occurs during processing of image header. + * @run main StreamResetTest + */ + + +import java.io.IOException; +import javax.imageio.ImageIO; +import javax.imageio.ImageReader; +import javax.imageio.spi.ImageReaderSpi; +import javax.imageio.stream.ImageInputStreamImpl; + +public class StreamResetTest { + + public static void main(String[] args) { + IOException expectedException = null; + TestStream iis = new TestStream(); + + ImageReader wbmp = ImageIO.getImageReadersByFormatName("WBMP").next(); + if (wbmp == null) { + System.out.println("No WBMP reader: skip the test"); + return; + } + + ImageReaderSpi spi = wbmp.getOriginatingProvider(); + + iis.checkPosition(); + + try { + spi.canDecodeInput(iis); + } catch (IOException e) { + expectedException = e; + } + + if (expectedException == null) { + throw new RuntimeException("Test FAILED: stream was not used"); + } + + iis.checkPosition(); + + System.out.println("Test PASSED"); + + } + + private static class TestStream extends ImageInputStreamImpl { + private final int errorPos = 1; + + @Override + public int read() throws IOException { + if (streamPos == errorPos) { + throw new IOException("Test exception"); + } + streamPos++; + + return 0x03; + } + + @Override + public int read(byte[] b, int off, int len) throws IOException { + streamPos += len; + return len; + } + + public void checkPosition() { + if (streamPos != 0) { + throw new RuntimeException("Test FAILED"); + } + } + } +} diff -r c0864e216d36 -r c142f19c7181 jdk/test/javax/swing/JInternalFrame/Test6505027.java --- a/jdk/test/javax/swing/JInternalFrame/Test6505027.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/test/javax/swing/JInternalFrame/Test6505027.java Mon Oct 14 09:52:36 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -96,8 +96,10 @@ SwingUtilities.convertPointToScreen(point, this.table); Robot robot = new Robot(); + robot.setAutoDelay(50); robot.mouseMove(point.x + 1, point.y + 1); robot.mousePress(InputEvent.BUTTON1_MASK); + robot.mouseRelease(InputEvent.BUTTON1_MASK); } public static void validate() { diff -r c0864e216d36 -r c142f19c7181 jdk/test/javax/swing/JScrollBar/bug4202954/bug4202954.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/javax/swing/JScrollBar/bug4202954/bug4202954.java Mon Oct 14 09:52:36 2013 -0700 @@ -0,0 +1,151 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +/* @test + @bug 4202954 + @library ../../regtesthelpers + @build Util + @author Michael C. Albers + @run main bug4202954 +*/ + +import java.awt.*; +import java.awt.event.InputEvent; +import javax.swing.*; +import sun.awt.*; + +public class bug4202954 { + static JScrollPane buttonScrollPane; + private static final SunToolkit toolkit = (SunToolkit) Toolkit.getDefaultToolkit(); + static Robot robot; + public static void main(String[] args) throws Exception { + if (OSInfo.getOSType() == OSInfo.OSType.MACOSX) { + UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); + } + + SwingUtilities.invokeAndWait(new Runnable() { + public void run() { + createAndShowGUI(); + } + }); + Point centerOfScrollPane = Util.getCenterPoint(buttonScrollPane); + JButton rightScrollButton = findJButton(buttonScrollPane.getHorizontalScrollBar(), centerOfScrollPane.x, centerOfScrollPane.y); + JButton bottomScrollButton = findJButton(buttonScrollPane.getVerticalScrollBar(), centerOfScrollPane.x, centerOfScrollPane.y); + + if (rightScrollButton == null || bottomScrollButton == null) { + String errMessage = "Test can't be executed: "; + errMessage = errMessage + rightScrollButton == null ? "can't find right button for horizontal scroll bar; " : "" + + bottomScrollButton == null ? "can't find bottom scroll button for vertical scroll bar" : ""; + throw new RuntimeException(errMessage); + } + + robot = new Robot(); + robot.setAutoDelay(50); + + // test right, left and middle mouse buttons for horizontal scroll bar + if (!doTest(rightScrollButton, InputEvent.BUTTON1_DOWN_MASK, true)) { + throw new RuntimeException("Test failed: right arrow button didn't respond on left mouse button."); + } + if (!doTest(rightScrollButton, InputEvent.BUTTON2_DOWN_MASK, false)) { + throw new RuntimeException("Test failed: right arrow button respond on right mouse button."); + } + if (!doTest(rightScrollButton, InputEvent.BUTTON3_DOWN_MASK, false)) { + throw new RuntimeException("Test failed: right arrow button respond on middle mouse button."); + } + + // test right, left and middle mouse buttons for vertical scroll bar + if (!doTest(bottomScrollButton, InputEvent.BUTTON1_DOWN_MASK, true)) { + throw new RuntimeException("Test failed: bottom arrow button didn't respond on left mouse button."); + } + if (!doTest(bottomScrollButton, InputEvent.BUTTON2_DOWN_MASK, false)) { + throw new RuntimeException("Test failed: bottom arrow button respond on right mouse button."); + } + if (!doTest(bottomScrollButton, InputEvent.BUTTON3_DOWN_MASK, false)) { + throw new RuntimeException("Test failed: bottom arrow button respond on middle mouse button."); + } + } + public static void createAndShowGUI() { + JPanel buttonPanel = new JPanel(); + buttonPanel.setLayout(new GridLayout(5,5, 15,15)); + int buttonCount = 1; + while (buttonCount <= 25) { + buttonPanel.add(new JButton("Button #"+buttonCount)); + buttonCount++; + } + buttonScrollPane = new JScrollPane(); + buttonScrollPane.setViewportView(buttonPanel); + + JFrame testFrame = new JFrame("bug4202954"); + testFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + testFrame.setLayout(new BorderLayout()); + testFrame.add(BorderLayout.CENTER, buttonScrollPane); + testFrame.setSize(450, 100); + testFrame.setVisible(true); + } + public static JButton findJButton(final JScrollBar scrollBar, final int minX, final int minY) throws Exception { + JButton button = Util.invokeOnEDT(new java.util.concurrent.Callable() { + @Override + public JButton call() throws Exception { + for (Component c: scrollBar.getComponents()) { + if (c instanceof JButton) { + Point p = c.getLocationOnScreen(); + if (p.x > minX && p.y > minY) { + return (JButton) c; + } + } + } + return null; + } + }); + return button; + } + public static void clickMouseOnComponent(Component c, int buttons) throws Exception { + Point p = Util.getCenterPoint(c); + robot.mouseMove(p.x, p.y); + robot.mousePress(buttons); + robot.mouseRelease(buttons); + } + public static boolean doTest(JButton scrollButton, int buttons, boolean expectScroll) throws Exception { + java.util.concurrent.Callable horizontalValue = new java.util.concurrent.Callable() { + @Override + public Integer call() throws Exception { + return buttonScrollPane.getHorizontalScrollBar().getValue(); + } + }; + java.util.concurrent.Callable verticalValue = new java.util.concurrent.Callable() { + @Override + public Integer call() throws Exception { + return buttonScrollPane.getVerticalScrollBar().getValue(); + } + }; + Integer oldHValue = Util.invokeOnEDT(horizontalValue); + Integer oldVValue = Util.invokeOnEDT(verticalValue); + + clickMouseOnComponent(scrollButton, buttons); + toolkit.realSync(); + + int newHValue = Util.invokeOnEDT(horizontalValue); + int newVValue = Util.invokeOnEDT(verticalValue); + + return (oldHValue != newHValue || oldVValue != newVValue) == expectScroll; + } +} diff -r c0864e216d36 -r c142f19c7181 jdk/test/javax/swing/JSpinner/4973721/bug4973721.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/javax/swing/JSpinner/4973721/bug4973721.java Mon Oct 14 09:52:36 2013 -0700 @@ -0,0 +1,120 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +/* @test + @bug 4973721 + @summary Up and Down Arrow key buttons are not working for the JSpinner in Synth LAF + @library ../../regtesthelpers + @build Util + @author Oleg Mokhovikov + @run main bug4973721 +*/ + +import java.awt.Robot; +import java.awt.Toolkit; +import javax.swing.event.ChangeListener; +import javax.swing.event.ChangeEvent; +import java.awt.event.KeyEvent; +import java.awt.event.FocusListener; +import java.awt.event.FocusEvent; +import javax.swing.*; +import sun.awt.SunToolkit; + +public class bug4973721 implements ChangeListener, FocusListener { + static volatile boolean bStateChanged = false; + static volatile boolean bFocusGained = false; + static JSpinner spinner; + static final Object listener = new bug4973721(); + private static final SunToolkit toolkit = (SunToolkit) Toolkit.getDefaultToolkit(); + + public void focusLost(FocusEvent e) {} + + public synchronized void focusGained(FocusEvent e) { + System.out.println("focusGained"); + bFocusGained = true; + notifyAll(); + } + + public synchronized void stateChanged(ChangeEvent e) { + System.out.println("stateChanged"); + bStateChanged = true; + notifyAll(); + } + + public static void main(String[] args) throws Exception { + UIManager.setLookAndFeel("javax.swing.plaf.synth.SynthLookAndFeel"); + + SwingUtilities.invokeAndWait(new Runnable() { + public void run() { + final JFrame frame = new JFrame(); + spinner = new JSpinner(); + frame.getContentPane().add(spinner); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + + frame.pack(); + frame.setVisible(true); + spinner.addChangeListener((ChangeListener)listener); + spinner.addFocusListener((FocusListener)listener); + spinner.requestFocus(); + + } + }); + + synchronized(listener) { + if (!bFocusGained) { + System.out.println("waiting focusGained..."); + try { listener.wait(5000); } catch (InterruptedException e) {} + } + } + + boolean hasFocus = Util.invokeOnEDT(new java.util.concurrent.Callable() { + @Override + public Boolean call() throws Exception { + return spinner.hasFocus(); + } + }); + + if (!bFocusGained && !hasFocus) { + throw new RuntimeException("Couldn't request focus for spinner"); + } + Robot robot = new Robot(); + robot.setAutoDelay(50); + + Util.hitKeys(robot, KeyEvent.VK_UP); + toolkit.realSync(); + Thread.sleep(1000); + + if (!bStateChanged) { + throw new RuntimeException("Up arrow key button doesn't work for a spinner in Synth L&F"); + } + + bStateChanged = false; + + Util.hitKeys(robot, KeyEvent.VK_DOWN); + toolkit.realSync(); + Thread.sleep(1000); + + if (!bStateChanged) { + throw new RuntimeException("Down arrow key button doesn't work for a spinner in Synth L&F"); + } + } +} diff -r c0864e216d36 -r c142f19c7181 jdk/test/javax/swing/JSplitPane/4514858/bug4514858.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/javax/swing/JSplitPane/4514858/bug4514858.java Mon Oct 14 09:52:36 2013 -0700 @@ -0,0 +1,210 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +/* @test + @bug 4514858 4164779 + @summary F6, F8 Ctrl-TAB and Ctrl-Shift-TAB in JSplitPane + @author Andrey Pikalev + @run main/manual bug4514858 +*/ + +import javax.swing.*; +import javax.swing.border.TitledBorder; +import java.awt.*; +import java.awt.event.*; + + +public class bug4514858 implements ActionListener { + + static String intructions = "Test the F6, F8, Ctrl-TAB and Ctrl-Shift-TAB keybinding functionality in JSplitPane\n" + + "with different LookAndFeels (switch LookAndFeel with the buttoms at the bottom of the\n" + + "frame \"Test\"):\n\n" + + "1. Move focus to the button \"Button 1\" in the frame \"Test\". Then press F6 several times.\n" + + "The focus should cycle between five buttons in order from 1 to 5.\n\n" + + "2. Move focus to the button \"Button 2\" in the frame \"Test\". Then press F8 three times.\n" + + "The splitters of the splitpanes should be highlited in order:\n" + + "\"JSplitPane 3\", \"JSplitPane 2\", \"JSplitPane 1\".\n\n" + + "3. Move focus to the button \"Button 2\" in the frame \"Test\". Press Ctrl-TAB.\n" + + "The focus should go to the \"Button 4\". Then press Ctrl-TAB again.\n" + + "The focus should go to the first enabled button at the bottom of frame.\n\n" + + "4. Move focus to the button \"Button 4\" in the frame \"Test\". Press Ctrl-Shift-TAB three times.\n" + + "The focus should go through the button \"Button 3\", then \"Button 1\", then to the last\n" + + "enabled button at the bottom of frame."; + static Test test = new Test(); + JFrame fr; + public static void main(String[] argv) throws Exception { + UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); + SwingUtilities.invokeAndWait(new Runnable() { + public void run() { + new bug4514858().createAndShowGUI(); + } + }); + test.waitTestResult(); + } + public void createAndShowGUI() { + fr = new JFrame("Test"); + + //------------------------------------------------------------- + JButton left2 = new JButton("Button 1"); + + JButton left3 = new JButton("Button 2"); + JButton right3 = new JButton("Button 3"); + + JSplitPane right2 = new JSplitPane(JSplitPane.VERTICAL_SPLIT, left3, right3); + right2.setBorder(new TitledBorder("JSplitPane 3")); + + JSplitPane left1 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, left2, right2); + left1.setBorder(new TitledBorder("JSplitPane 2")); + + JButton left4 = new JButton("Button 4"); + JButton right4 = new JButton("Button 5"); + + JSplitPane right1 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, left4, right4); + right1.setBorder(new TitledBorder("JSplitPane 4")); + + JSplitPane sp = new JSplitPane(JSplitPane.VERTICAL_SPLIT, left1, right1); + sp.setBorder(new TitledBorder("JSplitPane 1")); + fr.getContentPane().add(sp); + + //------------------------------------------------------------- + JPanel p = new JPanel(); + + JButton metal = new JButton("Metal"); + metal.setActionCommand("Metal"); + metal.setEnabled(isSupportedLAF("javax.swing.plaf.metal.MetalLookAndFeel")); + metal.addActionListener(this); + p.add(metal); + + JButton motif = new JButton("Motif"); + motif.setActionCommand("Motif"); + motif.setEnabled(isSupportedLAF("com.sun.java.swing.plaf.motif.MotifLookAndFeel")); + motif.addActionListener(this); + p.add(motif); + + JButton windows = new JButton("Windows"); + windows.setActionCommand("Windows"); + windows.setEnabled(isSupportedLAF("com.sun.java.swing.plaf.windows.WindowsLookAndFeel")); + windows.addActionListener(this); + p.add(windows); + + fr.getContentPane().add(p, BorderLayout.SOUTH); + + fr.pack(); + fr.setVisible(true); + + JFrame instrFrame = test.createTestFrame("bug4514858 instructions", null, intructions, 250); + instrFrame.setBounds(fr.getWidth() + 50, fr.getHeight(), 600, 400); + instrFrame.setVisible(true); + } + + private boolean isSupportedLAF(String str) { + try { + Class c = Class.forName(str); + LookAndFeel laf = (LookAndFeel)c.newInstance(); + return laf.isSupportedLookAndFeel(); + } catch (Exception e) { + return false; + } + } + + public void actionPerformed(ActionEvent e) { + String s = e.getActionCommand(); + if (s.equals("Metal")) { + s = "javax.swing.plaf.metal.MetalLookAndFeel"; + } else if (s.equals("Motif")) { + s = "com.sun.java.swing.plaf.motif.MotifLookAndFeel"; + } else { + s = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"; + } + try { + UIManager.setLookAndFeel(s); + SwingUtilities.updateComponentTreeUI(fr); + fr.pack(); + } catch(Exception ex) { + ex.printStackTrace(); + throw new RuntimeException(ex); + } + } + static class Test { + private boolean pass; + JFrame createTestFrame(String name, Component topComponent, String instructions, int instrHeight) { + final String PASS = "Pass"; + final String FAIL = "Fail"; + JFrame frame = new JFrame(name); + frame.setLayout(new BorderLayout()); + + JPanel testButtonsPanel = new JPanel(); + testButtonsPanel.setMaximumSize(new Dimension(Integer.MAX_VALUE, 20)); + + ActionListener btnAL = new ActionListener() { + public void actionPerformed(ActionEvent event) { + switch (event.getActionCommand()) { + case PASS: + pass(); + break; + default: + throw new RuntimeException("Test failed."); + } + } + }; + JButton passBtn = new JButton(PASS); + passBtn.addActionListener(btnAL); + passBtn.setActionCommand(PASS); + + JButton failBtn = new JButton(FAIL); + failBtn.addActionListener(btnAL); + failBtn.setActionCommand(FAIL); + + testButtonsPanel.add(BorderLayout.WEST, passBtn); + testButtonsPanel.add(BorderLayout.EAST, failBtn); + + JTextArea instrText = new JTextArea(); + instrText.setLineWrap(true); + instrText.setEditable(false); + JScrollPane instrScrollPane = new JScrollPane(instrText); + instrScrollPane.setMaximumSize(new Dimension(Integer.MAX_VALUE, instrHeight)); + instrText.append(instructions); + + JPanel servicePanel = new JPanel(); + servicePanel.setLayout(new BorderLayout()); + if (topComponent == null) { + frame.add(BorderLayout.CENTER, instrScrollPane); + } else { + servicePanel.add(BorderLayout.CENTER, instrScrollPane); + frame.add(BorderLayout.CENTER, topComponent); + } + servicePanel.add(BorderLayout.SOUTH, testButtonsPanel); + + frame.add(BorderLayout.SOUTH, servicePanel); + return frame; + } + synchronized void pass() { + pass = true; + notifyAll(); + } + synchronized void waitTestResult() throws InterruptedException { + while (!pass) { + wait(); + } + } + } +} diff -r c0864e216d36 -r c142f19c7181 jdk/test/javax/swing/PopupFactory/6276087/NonOpaquePopupMenuTest.java --- a/jdk/test/javax/swing/PopupFactory/6276087/NonOpaquePopupMenuTest.java Mon Oct 14 14:28:50 2013 +0200 +++ b/jdk/test/javax/swing/PopupFactory/6276087/NonOpaquePopupMenuTest.java Mon Oct 14 09:52:36 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -70,6 +70,7 @@ Point p = getMenuClickPoint(); robot.mouseMove(p.x, p.y); robot.mousePress(InputEvent.BUTTON1_MASK); + robot.mouseRelease(InputEvent.BUTTON1_MASK); toolkit.realSync(); diff -r c0864e216d36 -r c142f19c7181 jdk/test/javax/swing/plaf/synth/SynthButtonUI/6276188/bug6276188.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/javax/swing/plaf/synth/SynthButtonUI/6276188/bug6276188.java Mon Oct 14 09:52:36 2013 -0700 @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +/** + * @test 1.4 08/08/05 + * @bug 6276188 + * @library ../../../../regtesthelpers + * @build Util + * @author Romain Guy + * @summary Tests PRESSED and MOUSE_OVER and FOCUSED state for buttons with Synth. + * @run main bug6276188 + */ +import java.awt.*; +import java.awt.image.*; +import java.awt.event.*; + +import javax.swing.*; +import javax.swing.plaf.synth.*; +import sun.awt.SunToolkit; + +public class bug6276188 extends JFrame { + + private static JButton button; + private static Point p; + private static final SunToolkit toolkit = (SunToolkit) Toolkit.getDefaultToolkit(); + + public static void main(String[] args) throws Throwable { + SynthLookAndFeel lookAndFeel = new SynthLookAndFeel(); + lookAndFeel.load(bug6276188.class.getResourceAsStream("bug6276188.xml"), bug6276188.class); + + UIManager.setLookAndFeel(lookAndFeel); + SwingUtilities.invokeAndWait(new Runnable() { + public void run() { + JFrame testFrame = new JFrame(); + testFrame.setLayout(new BorderLayout()); + testFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + testFrame.add(BorderLayout.CENTER, button = new JButton()); + + testFrame.setSize(new Dimension(320, 200)); + testFrame.setVisible(true); + } + }); + + p = Util.getCenterPoint(button); + + Robot robot = new Robot(); + robot.setAutoDelay(50); + + robot.mouseMove(p.x , p.y); + robot.mousePress(InputEvent.BUTTON1_MASK); + toolkit.realSync(); + robot.delay(1000); + + Color color = robot.getPixelColor(p.x, p.y); + robot.mouseRelease(InputEvent.BUTTON1_MASK); + boolean red = color.getRed() > 0 && color.getGreen() == 0 && color.getBlue() == 0; + if (!red) { + System.err.println("Red: " + color.getRed() + "; Green: " + color.getGreen() + "; Blue: " + color.getBlue()); + throw new RuntimeException("Synth ButtonUI does not handle PRESSED & MOUSE_OVER state"); + } + } +} diff -r c0864e216d36 -r c142f19c7181 jdk/test/javax/swing/plaf/synth/SynthButtonUI/6276188/bug6276188.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/javax/swing/plaf/synth/SynthButtonUI/6276188/bug6276188.xml Mon Oct 14 09:52:36 2013 -0700 @@ -0,0 +1,19 @@ + + + + + + + + diff -r c0864e216d36 -r c142f19c7181 jdk/test/javax/swing/plaf/synth/SynthButtonUI/6276188/red.gif Binary file jdk/test/javax/swing/plaf/synth/SynthButtonUI/6276188/red.gif has changed diff -r c0864e216d36 -r c142f19c7181 jdk/test/sun/java2d/AcceleratedXORModeTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/sun/java2d/AcceleratedXORModeTest.java Mon Oct 14 09:52:36 2013 -0700 @@ -0,0 +1,143 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* +* @test +* @bug 8024343 +* @summary Test verifies that accelerated pipelines +* correctly draws primitives in XOR mode. +* @run main/othervm -Dsun.java2d.xrender=True AcceleratedXORModeTest +*/ + +import java.awt.Color; +import java.awt.Graphics2D; +import java.awt.GraphicsConfiguration; +import java.awt.GraphicsEnvironment; +import java.awt.image.BufferedImage; +import java.awt.image.VolatileImage; +import java.io.File; +import java.io.IOException; +import javax.imageio.ImageIO; + +public class AcceleratedXORModeTest { + public static void main(String argv[]) { + String fileName = argv.length > 0 ? argv[0] : null; + new AcceleratedXORModeTest(fileName).test(); + } + + static final Color backColor = Color.red; + static final Color color1 = Color.green; + static final Color color2 = Color.yellow; + static final Color xorColor1 = Color.blue; + static final Color xorColor2 = Color.white; + + static final int width = 700, height = 300; + + VolatileImage vImg = null; + String fileName; + + public AcceleratedXORModeTest(String fileName) { + this.fileName = fileName; + } + + void draw(Graphics2D g) { + g.setColor(backColor); + g.fillRect(0, 0, width, height); + g.setXORMode(xorColor1); + drawPattern(g, 100); + g.setXORMode(xorColor2); + drawPattern(g, 400); + g.dispose(); + } + + void test(BufferedImage bi) { + comparePattern(bi, 150, xorColor1.getRGB()); + comparePattern(bi, 450, xorColor2.getRGB()); + } + + void comparePattern(BufferedImage bi, int startX, int xorColor) { + int[] expectedColors = { + backColor.getRGB() ^ color1.getRGB() ^ xorColor, + backColor.getRGB() ^ color1.getRGB() ^ xorColor ^ + color2.getRGB() ^ xorColor, + backColor.getRGB() ^ color2.getRGB() ^ xorColor + }; + for (int i = 0; i < 3; i++) { + int x = startX + 100 * i; + int rgb = bi.getRGB(x, 150); + if (rgb != expectedColors[i]) { + String msg = "Colors mismatch: x = " + x + + ", got " + new Color(rgb) + ", expected " + + new Color(expectedColors[i]); + System.err.println(msg); + write(bi); + throw new RuntimeException("FAILED: " + msg); + } + } + } + + void drawPattern(Graphics2D g, int x) { + g.setColor(color1); + g.fillRect(x, 0, 200, 300); + g.setColor(color2); + g.fillRect(x+100, 0, 200, 300); + } + + GraphicsConfiguration getDefaultGC() { + return GraphicsEnvironment.getLocalGraphicsEnvironment(). + getDefaultScreenDevice().getDefaultConfiguration(); + } + + void createVImg() { + if (vImg != null) { + vImg.flush(); + vImg = null; + } + vImg = getDefaultGC().createCompatibleVolatileImage(width, height); + } + + void write(BufferedImage bi) { + if (fileName != null) { + try { + ImageIO.write(bi, "png", new File(fileName)); + } catch (IOException e) { + System.err.println("Can't write image file " + fileName); + } + } + } + + void test() { + createVImg(); + do { + int valCode = vImg.validate(getDefaultGC()); + if (valCode == VolatileImage.IMAGE_INCOMPATIBLE) { + createVImg(); + } + Graphics2D g = vImg.createGraphics(); + draw(g); + BufferedImage bi = vImg.getSnapshot(); + test(bi); + write(bi); + } while (vImg.contentsLost()); + } +}