Merge
authorlana
Wed, 27 Nov 2013 10:42:42 -0800
changeset 21782 d6b4a515c7a3
parent 21756 f5b521ade7a3 (current diff)
parent 21781 12385ca90f4d (diff)
child 21799 fab12f9540d2
Merge
--- a/jdk/src/share/classes/java/awt/Font.java	Wed Jul 05 19:23:42 2017 +0200
+++ b/jdk/src/share/classes/java/awt/Font.java	Wed Nov 27 10:42:42 2013 -0800
@@ -71,7 +71,7 @@
  * and to render sequences of glyphs on <code>Graphics</code> and
  * <code>Component</code> objects.
  *
- * <h4>Characters and Glyphs</h4>
+ * <h3>Characters and Glyphs</h3>
  *
  * A <em>character</em> is a symbol that represents an item such as a letter,
  * a digit, or punctuation in an abstract way. For example, <code>'g'</code>,
@@ -192,7 +192,7 @@
  * not serializable.  See {@link java.awt.im.InputMethodHighlight}.</li>
  * </ul>
  *
- * Clients who create custom subclasses of <code>Paint</code> and
+ * <p>Clients who create custom subclasses of <code>Paint</code> and
  * <code>GraphicAttribute</code> can make them serializable and
  * avoid this problem.  Clients who use input method highlights can
  * convert these to the platform-specific attributes for that
--- a/jdk/src/share/classes/java/awt/Graphics2D.java	Wed Jul 05 19:23:42 2017 +0200
+++ b/jdk/src/share/classes/java/awt/Graphics2D.java	Wed Nov 27 10:42:42 2013 -0800
@@ -78,7 +78,7 @@
  * <p>
  * When creating a <code>Graphics2D</code> object,  the
  * <code>GraphicsConfiguration</code>
- * specifies the <a name="#deftransform">default transform</a> for
+ * specifies the <a name="deftransform">default transform</a> for
  * the target of the <code>Graphics2D</code> (a
  * {@link Component} or {@link Image}).  This default transform maps the
  * user space coordinate system to screen and printer device coordinates
@@ -1103,7 +1103,7 @@
      * method is intended only for restoring the original
      * <code>Graphics2D</code> transform after rendering, as shown in this
      * example:
-     * <pre><blockquote>
+     * <pre>
      * // Get the current transform
      * AffineTransform saveAT = g2.getTransform();
      * // Perform transformation
@@ -1112,7 +1112,7 @@
      * g2d.draw(...);
      * // Restore original transform
      * g2d.setTransform(saveAT);
-     * </blockquote></pre>
+     * </pre>
      *
      * @param Tx the <code>AffineTransform</code> that was retrieved
      *           from the <code>getTransform</code> method
--- a/jdk/src/share/classes/java/awt/GraphicsConfiguration.java	Wed Jul 05 19:23:42 2017 +0200
+++ b/jdk/src/share/classes/java/awt/GraphicsConfiguration.java	Wed Nov 27 10:42:42 2013 -0800
@@ -75,7 +75,7 @@
  * bounds of the virtual device.  The following code sample
  * calculates the bounds of the virtual device.
  *
- * <pre>
+ * <pre>{@code
  *      Rectangle virtualBounds = new Rectangle();
  *      GraphicsEnvironment ge = GraphicsEnvironment.
  *              getLocalGraphicsEnvironment();
@@ -89,7 +89,7 @@
  *              virtualBounds =
  *                  virtualBounds.union(gc[i].getBounds());
  *          }
- *      } </pre>
+ *      } }</pre>
  *
  * @see Window
  * @see Frame
--- a/jdk/src/share/classes/java/awt/GraphicsDevice.java	Wed Jul 05 19:23:42 2017 +0200
+++ b/jdk/src/share/classes/java/awt/GraphicsDevice.java	Wed Nov 27 10:42:42 2013 -0800
@@ -46,7 +46,7 @@
  * following code sample demonstrates how to create a <code>JFrame</code>
  * object for each <code>GraphicsConfiguration</code> on each screen
  * device in the <code>GraphicsEnvironment</code>:
- * <pre>
+ * <pre>{@code
  *   GraphicsEnvironment ge = GraphicsEnvironment.
  *   getLocalGraphicsEnvironment();
  *   GraphicsDevice[] gs = ge.getScreenDevices();
@@ -66,7 +66,7 @@
  *         f.show();
  *      }
  *   }
- * </pre>
+ * }</pre>
  * <p>
  * For more information on full-screen exclusive mode API, see the
  * <a href="http://docs.oracle.com/javase/tutorial/extra/fullscreen/index.html">
--- a/jdk/src/share/classes/java/awt/Image.java	Wed Jul 05 19:23:42 2017 +0200
+++ b/jdk/src/share/classes/java/awt/Image.java	Wed Nov 27 10:42:42 2013 -0800
@@ -124,7 +124,7 @@
      * @param       name   a property name.
      * @param       observer   an object waiting for this image to be loaded.
      * @return      the value of the named property.
-     * @throws      <code>NullPointerException</code> if the property name is null.
+     * @throws      NullPointerException if the property name is null.
      * @see         java.awt.image.ImageObserver
      * @see         java.awt.Image#UndefinedProperty
      */
--- a/jdk/src/share/classes/java/awt/MediaTracker.java	Wed Jul 05 19:23:42 2017 +0200
+++ b/jdk/src/share/classes/java/awt/MediaTracker.java	Wed Nov 27 10:42:42 2013 -0800
@@ -66,7 +66,7 @@
  * <p>
  * Here is an example of using <code>MediaTracker</code>:
  * <p>
- * <hr><blockquote><pre>
+ * <hr><blockquote><pre>{@code
  * import java.applet.Applet;
  * import java.awt.Color;
  * import java.awt.Image;
@@ -160,7 +160,7 @@
  *          }
  *      }
  * }
- * </pre></blockquote><hr>
+ * } </pre></blockquote><hr>
  *
  * @author      Jim Graham
  * @since       JDK1.0
--- a/jdk/src/share/classes/java/awt/PageAttributes.java	Wed Jul 05 19:23:42 2017 +0200
+++ b/jdk/src/share/classes/java/awt/PageAttributes.java	Wed Nov 27 10:42:42 2013 -0800
@@ -187,55 +187,55 @@
         };
 
         /**
-         * The MediaType instance for ISO/DIN & JIS 4A0, 1682 x 2378 mm.
+         * The MediaType instance for ISO/DIN and JIS 4A0, 1682 x 2378 mm.
          */
         public static final MediaType ISO_4A0 = new MediaType(I_ISO_4A0);
         /**
-         * The MediaType instance for ISO/DIN & JIS 2A0, 1189 x 1682 mm.
+         * The MediaType instance for ISO/DIN and JIS 2A0, 1189 x 1682 mm.
          */
         public static final MediaType ISO_2A0 = new MediaType(I_ISO_2A0);
         /**
-         * The MediaType instance for ISO/DIN & JIS A0, 841 x 1189 mm.
+         * The MediaType instance for ISO/DIN and JIS A0, 841 x 1189 mm.
          */
         public static final MediaType ISO_A0 = new MediaType(I_ISO_A0);
         /**
-         * The MediaType instance for ISO/DIN & JIS A1, 594 x 841 mm.
+         * The MediaType instance for ISO/DIN and JIS A1, 594 x 841 mm.
          */
         public static final MediaType ISO_A1 = new MediaType(I_ISO_A1);
         /**
-         * The MediaType instance for ISO/DIN & JIS A2, 420 x 594 mm.
+         * The MediaType instance for ISO/DIN and JIS A2, 420 x 594 mm.
          */
         public static final MediaType ISO_A2 = new MediaType(I_ISO_A2);
         /**
-         * The MediaType instance for ISO/DIN & JIS A3, 297 x 420 mm.
+         * The MediaType instance for ISO/DIN and JIS A3, 297 x 420 mm.
          */
         public static final MediaType ISO_A3 = new MediaType(I_ISO_A3);
         /**
-         * The MediaType instance for ISO/DIN & JIS A4, 210 x 297 mm.
+         * The MediaType instance for ISO/DIN and JIS A4, 210 x 297 mm.
          */
         public static final MediaType ISO_A4 = new MediaType(I_ISO_A4);
         /**
-         * The MediaType instance for ISO/DIN & JIS A5, 148 x 210 mm.
+         * The MediaType instance for ISO/DIN and JIS A5, 148 x 210 mm.
          */
         public static final MediaType ISO_A5 = new MediaType(I_ISO_A5);
         /**
-         * The MediaType instance for ISO/DIN & JIS A6, 105 x 148 mm.
+         * The MediaType instance for ISO/DIN and JIS A6, 105 x 148 mm.
          */
         public static final MediaType ISO_A6 = new MediaType(I_ISO_A6);
         /**
-         * The MediaType instance for ISO/DIN & JIS A7, 74 x 105 mm.
+         * The MediaType instance for ISO/DIN and JIS A7, 74 x 105 mm.
          */
         public static final MediaType ISO_A7 = new MediaType(I_ISO_A7);
         /**
-         * The MediaType instance for ISO/DIN & JIS A8, 52 x 74 mm.
+         * The MediaType instance for ISO/DIN and JIS A8, 52 x 74 mm.
          */
         public static final MediaType ISO_A8 = new MediaType(I_ISO_A8);
         /**
-         * The MediaType instance for ISO/DIN & JIS A9, 37 x 52 mm.
+         * The MediaType instance for ISO/DIN and JIS A9, 37 x 52 mm.
          */
         public static final MediaType ISO_A9 = new MediaType(I_ISO_A9);
         /**
-         * The MediaType instance for ISO/DIN & JIS A10, 26 x 37 mm.
+         * The MediaType instance for ISO/DIN and JIS A10, 26 x 37 mm.
          */
         public static final MediaType ISO_A10 = new MediaType(I_ISO_A10);
         /**
--- a/jdk/src/share/classes/java/awt/Rectangle.java	Wed Jul 05 19:23:42 2017 +0200
+++ b/jdk/src/share/classes/java/awt/Rectangle.java	Wed Nov 27 10:42:42 2013 -0800
@@ -76,19 +76,19 @@
  * negative width and height or it should use the first point in the set
  * to construct the {@code Rectangle}.
  * For example:
- * <pre>
+ * <pre>{@code
  *     Rectangle bounds = new Rectangle(0, 0, -1, -1);
  *     for (int i = 0; i < points.length; i++) {
  *         bounds.add(points[i]);
  *     }
- * </pre>
+ * }</pre>
  * or if we know that the points array contains at least one point:
- * <pre>
+ * <pre>{@code
  *     Rectangle bounds = new Rectangle(points[0]);
  *     for (int i = 1; i < points.length; i++) {
  *         bounds.add(points[i]);
  *     }
- * </pre>
+ * }</pre>
  * <p>
  * This class uses 32-bit integers to store its location and dimensions.
  * Frequently operations may produce a result that exceeds the range of
--- a/jdk/src/share/classes/java/awt/RenderingHints.java	Wed Jul 05 19:23:42 2017 +0200
+++ b/jdk/src/share/classes/java/awt/RenderingHints.java	Wed Nov 27 10:42:42 2013 -0800
@@ -999,15 +999,15 @@
     }
 
     /**
-     * Returns <code>true</code> if this <code>RenderingHints</code>
+     * Returns {@code true} if this {@code RenderingHints}
      *  contains a mapping for the specified key.
      *
      * @param key key whose presence in this
-     * <code>RenderingHints</code> is to be tested.
-     * @return <code>true</code> if this <code>RenderingHints</code>
+     * {@code RenderingHints} is to be tested.
+     * @return {@code true} if this {@code RenderingHints}
      *          contains a mapping for the specified key.
-     * @exception <code>ClassCastException</code> if the key can not
-     *            be cast to <code>RenderingHints.Key</code>
+     * @exception ClassCastException if the key can not
+     *            be cast to {@code RenderingHints.Key}
      */
     public boolean containsKey(Object key) {
         return hintmap.containsKey((Key) key);
@@ -1039,10 +1039,10 @@
      * Returns the value to which the specified key is mapped.
      * @param   key   a rendering hint key
      * @return  the value to which the key is mapped in this object or
-     *          <code>null</code> if the key is not mapped to any value in
+     *          {@code null} if the key is not mapped to any value in
      *          this object.
-     * @exception <code>ClassCastException</code> if the key can not
-     *            be cast to <code>RenderingHints.Key</code>
+     * @exception ClassCastException if the key can not
+     *            be cast to {@code RenderingHints.Key}
      * @see     #put(Object, Object)
      */
     public Object get(Object key) {
@@ -1050,20 +1050,20 @@
     }
 
     /**
-     * Maps the specified <code>key</code> to the specified
-     * <code>value</code> in this <code>RenderingHints</code> object.
-     * Neither the key nor the value can be <code>null</code>.
-     * The value can be retrieved by calling the <code>get</code> method
+     * Maps the specified {@code key} to the specified
+     * {@code value} in this {@code RenderingHints} object.
+     * Neither the key nor the value can be {@code null}.
+     * The value can be retrieved by calling the {@code get} method
      * with a key that is equal to the original key.
      * @param      key     the rendering hint key.
      * @param      value   the rendering hint value.
      * @return     the previous value of the specified key in this object
-     *             or <code>null</code> if it did not have one.
-     * @exception <code>NullPointerException</code> if the key is
-     *            <code>null</code>.
-     * @exception <code>ClassCastException</code> if the key can not
-     *            be cast to <code>RenderingHints.Key</code>
-     * @exception <code>IllegalArgumentException</code> if the
+     *             or {@code null} if it did not have one.
+     * @exception NullPointerException if the key is
+     *            {@code null}.
+     * @exception ClassCastException if the key can not
+     *            be cast to {@code RenderingHints.Key}
+     * @exception IllegalArgumentException if the
      *            {@link Key#isCompatibleValue(java.lang.Object)
      *                   Key.isCompatibleValue()}
      *            method of the specified key returns false for the
@@ -1102,13 +1102,13 @@
 
     /**
      * Removes the key and its corresponding value from this
-     * <code>RenderingHints</code> object. This method does nothing if the
-     * key is not in this <code>RenderingHints</code> object.
+     * {@code RenderingHints} object. This method does nothing if the
+     * key is not in this {@code RenderingHints} object.
      * @param   key   the rendering hints key that needs to be removed
-     * @exception <code>ClassCastException</code> if the key can not
-     *            be cast to <code>RenderingHints.Key</code>
+     * @exception ClassCastException if the key can not
+     *            be cast to {@code RenderingHints.Key}
      * @return  the value to which the key had previously been mapped in this
-     *          <code>RenderingHints</code> object, or <code>null</code>
+     *          {@code RenderingHints} object, or {@code null}
      *          if the key did not have a mapping.
      */
     public Object remove(Object key) {
@@ -1116,18 +1116,18 @@
     }
 
     /**
-     * Copies all of the mappings from the specified <code>Map</code>
-     * to this <code>RenderingHints</code>.  These mappings replace
-     * any mappings that this <code>RenderingHints</code> had for any
-     * of the keys currently in the specified <code>Map</code>.
-     * @param m the specified <code>Map</code>
-     * @exception <code>ClassCastException</code> class of a key or value
-     *          in the specified <code>Map</code> prevents it from being
-     *          stored in this <code>RenderingHints</code>.
-     * @exception <code>IllegalArgumentException</code> some aspect
-     *          of a key or value in the specified <code>Map</code>
+     * Copies all of the mappings from the specified {@code Map}
+     * to this {@code RenderingHints}.  These mappings replace
+     * any mappings that this {@code RenderingHints} had for any
+     * of the keys currently in the specified {@code Map}.
+     * @param m the specified {@code Map}
+     * @exception ClassCastException class of a key or value
+     *          in the specified {@code Map} prevents it from being
+     *          stored in this {@code RenderingHints}.
+     * @exception IllegalArgumentException some aspect
+     *          of a key or value in the specified {@code Map}
      *           prevents it from being stored in
-     *            this <code>RenderingHints</code>.
+     *            this {@code RenderingHints}.
      */
     public void putAll(Map<?,?> m) {
         // ## javac bug?
--- a/jdk/src/share/classes/java/awt/font/NumericShaper.java	Wed Jul 05 19:23:42 2017 +0200
+++ b/jdk/src/share/classes/java/awt/font/NumericShaper.java	Wed Nov 27 10:42:42 2013 -0800
@@ -1212,7 +1212,7 @@
      * For example, to check if a shaper shapes to Arabic, you would use the
      * following:
      * <blockquote>
-     *   <code>if ((shaper.getRanges() &amp; shaper.ARABIC) != 0) { ... </code>
+     *   {@code if ((shaper.getRanges() & shaper.ARABIC) != 0) &#123; ... }
      * </blockquote>
      *
      * <p>Note that this method supports only the bit mask-based
--- a/jdk/src/share/classes/java/awt/font/TextAttribute.java	Wed Jul 05 19:23:42 2017 +0200
+++ b/jdk/src/share/classes/java/awt/font/TextAttribute.java	Wed Nov 27 10:42:42 2013 -0800
@@ -66,7 +66,7 @@
  *   <LI>a description of the effect.
  * </UL>
  * <p>
- * <H4>Values</H4>
+ * <H3>Values</H3>
  * <UL>
  *   <LI>The values of attributes must always be immutable.
  *   <LI>Where value limitations are given, any value outside of that
@@ -96,7 +96,6 @@
  *
  * <h4>Summary of attributes</h4>
  * <p>
- * <font size="-1">
  * <table style="float:center" border="0" cellspacing="0" cellpadding="2" width="%95"
  *     summary="Key, value type, principal constants, and default value
  *     behavior of all TextAttributes">
@@ -110,9 +109,9 @@
  * <td valign="TOP">{@link #FAMILY}</td>
  * <td valign="TOP">String</td>
  * <td valign="TOP">See Font {@link java.awt.Font#DIALOG DIALOG},
-{@link java.awt.Font#DIALOG_INPUT DIALOG_INPUT},<br> {@link java.awt.Font#SERIF SERIF},
-{@link java.awt.Font#SANS_SERIF SANS_SERIF}, and {@link java.awt.Font#MONOSPACED MONOSPACED}.
-</td>
+ * {@link java.awt.Font#DIALOG_INPUT DIALOG_INPUT},<br> {@link java.awt.Font#SERIF SERIF},
+ * {@link java.awt.Font#SANS_SERIF SANS_SERIF}, and {@link java.awt.Font#MONOSPACED MONOSPACED}.
+ * </td>
  * <td valign="TOP">"Default" (use platform default)</td>
  * </tr>
  * <tr style="background-color:#eeeeff">
@@ -248,7 +247,6 @@
  * <td valign="TOP">0 (do not add tracking)</td>
  * </tr>
  * </table>
- * </font>
  *
  * @see java.awt.Font
  * @see java.awt.font.TextLayout
--- a/jdk/src/share/classes/java/awt/geom/FlatteningPathIterator.java	Wed Jul 05 19:23:42 2017 +0200
+++ b/jdk/src/share/classes/java/awt/geom/FlatteningPathIterator.java	Wed Nov 27 10:42:42 2013 -0800
@@ -109,7 +109,7 @@
      * control points and the flattened curve
      * @param limit the maximum number of recursive subdivisions
      * allowed for any curved segment
-     * @exception <code>IllegalArgumentException</code> if
+     * @exception IllegalArgumentException if
      *          <code>flatness</code> or <code>limit</code>
      *          is less than zero
      */
@@ -336,7 +336,7 @@
      * @param coords an array that holds the data returned from
      * this method
      * @return the path segment type of the current path segment.
-     * @exception <code>NoSuchElementException</code> if there
+     * @exception NoSuchElementException if there
      *          are no more elements in the flattening path to be
      *          returned.
      * @see PathIterator#SEG_MOVETO
@@ -371,7 +371,7 @@
      * @param coords an array that holds the data returned from
      * this method
      * @return the path segment type of the current path segment.
-     * @exception <code>NoSuchElementException</code> if there
+     * @exception NoSuchElementException if there
      *          are no more elements in the flattening path to be
      *          returned.
      * @see PathIterator#SEG_MOVETO
--- a/jdk/src/share/classes/java/awt/geom/Path2D.java	Wed Jul 05 19:23:42 2017 +0200
+++ b/jdk/src/share/classes/java/awt/geom/Path2D.java	Wed Nov 27 10:42:42 2013 -0800
@@ -794,7 +794,7 @@
          * ({@link #WIND_EVEN_ODD WIND_EVEN_ODD} or
          *  {@link #WIND_NON_ZERO WIND_NON_ZERO})
          * <li>followed by
-         * NP (or unlimited if NP < 0) sets of values consisting of
+         * {@code NP} (or unlimited if {@code NP < 0}) sets of values consisting of
          * a single byte indicating a path segment type
          * followed by one or more pairs of float or double
          * values representing the coordinates of the path segment
@@ -1520,7 +1520,7 @@
          * ({@link #WIND_EVEN_ODD WIND_EVEN_ODD} or
          *  {@link #WIND_NON_ZERO WIND_NON_ZERO})
          * <li>followed by
-         * NP (or unlimited if NP < 0) sets of values consisting of
+         * {@code NP} (or unlimited if {@code NP < 0}) sets of values consisting of
          * a single byte indicating a path segment type
          * followed by one or more pairs of float or double
          * values representing the coordinates of the path segment
--- a/jdk/src/share/classes/java/awt/image/MultiPixelPackedSampleModel.java	Wed Jul 05 19:23:42 2017 +0200
+++ b/jdk/src/share/classes/java/awt/image/MultiPixelPackedSampleModel.java	Wed Nov 27 10:42:42 2013 -0800
@@ -348,7 +348,7 @@
      *                  data
      * @return the specified band containing the sample of the specified
      * pixel.
-     * @exception ArrayIndexOutOfBoundException if the specified
+     * @exception ArrayIndexOutOfBoundsException if the specified
      *          coordinates are not in bounds.
      * @see #setSample(int, int, int, int, DataBuffer)
      */
--- a/jdk/src/share/classes/java/awt/print/Book.java	Wed Jul 05 19:23:42 2017 +0200
+++ b/jdk/src/share/classes/java/awt/print/Book.java	Wed Nov 27 10:42:42 2013 -0800
@@ -129,7 +129,7 @@
      * @param painter   the <code>Printable</code> instance that
      *                  renders the page
      * @param page      the size and orientation of the page
-     * @throws <code>NullPointerException</code>
+     * @throws NullPointerException
      *          If the <code>painter</code> or <code>page</code>
      *          argument is <code>null</code>
      */
@@ -146,7 +146,7 @@
      * @param page      the size and orientation of the page
      * @param numPages  the number of pages to be added to the
      *                  this <code>Book</code>.
-     * @throws <code>NullPointerException</code>
+     * @throws NullPointerException
      *          If the <code>painter</code> or <code>page</code>
      *          argument is <code>null</code>
      */
--- a/jdk/src/share/classes/java/awt/print/PageFormat.java	Wed Jul 05 19:23:42 2017 +0200
+++ b/jdk/src/share/classes/java/awt/print/PageFormat.java	Wed Nov 27 10:42:42 2013 -0800
@@ -286,7 +286,7 @@
      * <code>PageFormat</code>.
      * @param paper the <code>Paper</code> object to which to set
      * the <code>Paper</code> object for this <code>PageFormat</code>.
-     * @exception <code>NullPointerException</code>
+     * @exception NullPointerException
      *              a null paper instance was passed as a parameter.
      * @see #getPaper
      */
--- a/jdk/src/share/classes/java/awt/print/Printable.java	Wed Jul 05 19:23:42 2017 +0200
+++ b/jdk/src/share/classes/java/awt/print/Printable.java	Wed Nov 27 10:42:42 2013 -0800
@@ -76,7 +76,7 @@
  * <li>With the exception of re-imaging an entire document for multiple
  * collated copies, the increasing page index order means that when
  * page N is requested if a client needs to calculate page break position,
- * it may safely discard any state related to pages < N, and make current
+ * it may safely discard any state related to pages &lt; N, and make current
  * that for page N. "State" usually is just the calculated position in the
  * document that corresponds to the start of the page.
  *
--- a/jdk/src/share/classes/java/awt/print/PrinterJob.java	Wed Jul 05 19:23:42 2017 +0200
+++ b/jdk/src/share/classes/java/awt/print/PrinterJob.java	Wed Nov 27 10:42:42 2013 -0800
@@ -113,7 +113,7 @@
      * A convenience method which locates factories for stream print
      * services which can image 2D graphics.
      * Sample usage :
-     * <pre>
+     * <pre>{@code
      * FileOutputStream outstream;
      * StreamPrintService psPrinter;
      * String psMimeType = "application/postscript";
@@ -131,7 +131,7 @@
      *         e.printStackTrace();
      *     }
      * }
-     * </pre>
+     * }</pre>
      * Services returned from this method may be installed on
      * <code>PrinterJob</code> instances which support print services.
      * Calling this method is equivalent to calling
--- a/jdk/src/solaris/classes/sun/font/XRTextRenderer.java	Wed Jul 05 19:23:42 2017 +0200
+++ b/jdk/src/solaris/classes/sun/font/XRTextRenderer.java	Wed Nov 27 10:42:42 2013 -0800
@@ -36,6 +36,10 @@
  * @author Clemens Eisserer
  */
 public class XRTextRenderer extends GlyphListPipe {
+    // Workarround for a bug in libXrender.
+    // In case the number of glyphs of an ELT is a multiple of 254,
+    // a few garbage bytes are sent to the XServer causing hangs.
+    static final int MAX_ELT_GLYPH_COUNT = 253;
 
     XRGlyphCache glyphCache;
     XRCompositeManager maskBuffer;
@@ -92,8 +96,11 @@
 
                 int posX = 0, posY = 0;
                 if (gl.usePositions()
-                        || (cacheEntry.getXAdvance() != ((float) cacheEntry.getXOff()) || cacheEntry.getYAdvance() != ((float) cacheEntry.getYOff()))
-                        || eltIndex < 0 || glyphSet != activeGlyphSet) {
+                        || cacheEntry.getXAdvance() != ((float) cacheEntry.getXOff())
+                        || cacheEntry.getYAdvance() != ((float) cacheEntry.getYOff())
+                        || glyphSet != activeGlyphSet
+                        || eltIndex < 0
+                        || eltList.getCharCnt(eltIndex) == MAX_ELT_GLYPH_COUNT) {
 
                     eltIndex = eltList.getNextIndex();
                     eltList.setCharCnt(eltIndex, 1);
@@ -101,7 +108,7 @@
                     eltList.setGlyphSet(eltIndex, glyphSet);
 
                     if (gl.usePositions()) {
-                        // /*In this case advX only stores rounding errors*/
+                        // In this case advX only stores rounding errors
                         float x = positions[i * 2] + advX;
                         float y = positions[i * 2 + 1] + advY;
                         posX = (int) Math.floor(x);
@@ -120,16 +127,14 @@
                         posX = (int) Math.floor(advX);
                         posY = (int) Math.floor(advY);
 
-                        // Advance of ELT = difference between stored
-                        // relative
+                        // Advance of ELT = difference between stored relative
                         // positioning information and required float.
                         advX += (cacheEntry.getXAdvance() - cacheEntry.getXOff());
                         advY += (cacheEntry.getYAdvance() - cacheEntry.getYOff());
                     }
-                    /*
-                     * Offset of the current glyph is the difference to the last
-                     * glyph and this one
-                     */
+
+                    // Offset of the current glyph is the difference
+                    // to the last glyph and this one
                     eltList.setXOff(eltIndex, (posX - oldPosX));
                     eltList.setYOff(eltIndex, (posY - oldPosY));
 
--- a/jdk/src/solaris/classes/sun/java2d/xr/XRSurfaceData.java	Wed Jul 05 19:23:42 2017 +0200
+++ b/jdk/src/solaris/classes/sun/java2d/xr/XRSurfaceData.java	Wed Nov 27 10:42:42 2013 -0800
@@ -245,7 +245,17 @@
                                                  ColorModel cm, Image image,
                                                  long drawable,
                                                  int transparency) {
-        int depth = transparency > Transparency.OPAQUE ? 32 : 24;
+        int depth;
+        // If we have a 32 bit color model for the window it needs
+        // alpha to support translucency of the window so we need
+        //  to upgrade what was requested for the surface.
+        if (gc.getColorModel().getPixelSize() == 32) {
+           depth = 32;
+           transparency = Transparency.TRANSLUCENT;
+        } else {
+            depth = transparency > Transparency.OPAQUE ? 32 : 24;
+        }
+
         if (depth == 24) {
             cm = new DirectColorModel(depth,
                                       0x00FF0000, 0x0000FF00, 0x000000FF);
--- a/jdk/src/solaris/classes/sun/print/IPPPrintService.java	Wed Jul 05 19:23:42 2017 +0200
+++ b/jdk/src/solaris/classes/sun/print/IPPPrintService.java	Wed Nov 27 10:42:42 2013 -0800
@@ -44,6 +44,7 @@
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.URL;
+import java.net.URLConnection;
 import java.net.HttpURLConnection;
 import java.io.File;
 import java.io.InputStream;
@@ -1607,14 +1608,16 @@
 
     public static HttpURLConnection getIPPConnection(URL url) {
         HttpURLConnection connection;
+        URLConnection urlc;
         try {
-            connection = (HttpURLConnection)url.openConnection();
+            urlc = url.openConnection();
         } catch (java.io.IOException ioe) {
             return null;
         }
-        if (!(connection instanceof HttpURLConnection)) {
+        if (!(urlc instanceof HttpURLConnection)) {
             return null;
         }
+        connection = (HttpURLConnection)urlc;
         connection.setUseCaches(false);
         connection.setDefaultUseCaches(false);
         connection.setDoInput(true);
--- a/jdk/src/solaris/classes/sun/print/UnixPrintServiceLookup.java	Wed Jul 05 19:23:42 2017 +0200
+++ b/jdk/src/solaris/classes/sun/print/UnixPrintServiceLookup.java	Wed Nov 27 10:42:42 2013 -0800
@@ -620,7 +620,7 @@
             if (CUPSPrinter.isCupsRunning()) {
                 try {
                     PrintService defaultPS;
-                    if (psuri != null) {
+                    if ((psuri != null) && !psuri.startsWith("file")) {
                         defaultPS = new IPPPrintService(defaultPrinter,
                                                         psuri, true);
                     } else {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Graphics2D/DrawString/TextRenderingTest.java	Wed Nov 27 10:42:42 2013 -0800
@@ -0,0 +1,110 @@
+/*
+ * 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.Color;
+import java.awt.Graphics2D;
+import java.awt.GraphicsConfiguration;
+import java.awt.GraphicsEnvironment;
+import java.awt.GradientPaint;
+import java.awt.geom.Point2D;
+
+import java.awt.Font;
+
+import java.awt.image.BufferedImage;
+import java.awt.image.VolatileImage;
+
+
+/*
+ * @test
+ * @bug 7189452 8024767
+ * @summary Check if source offset for text rendering is handled correctly
+ *          (shouldn't see the text on a similarly colored background).
+ * @author a.stepanov
+ * @run main TextRenderingTest
+ */
+
+public class TextRenderingTest {
+
+    private static final int width  = 450;
+    private static final int height = 150;
+
+    public static void main(final String[] args) {
+
+        GraphicsEnvironment ge =
+            GraphicsEnvironment.getLocalGraphicsEnvironment();
+        GraphicsConfiguration gc =
+            ge.getDefaultScreenDevice().getDefaultConfiguration();
+        VolatileImage vi = gc.createCompatibleVolatileImage(width, height);
+
+        while (true) {
+            vi.validate(gc);
+            Graphics2D g2d = vi.createGraphics();
+            g2d.setColor(Color.white);
+            g2d.fillRect(0, 0, width, height);
+
+            g2d.setPaint(new GradientPaint(
+                             new Point2D.Float(0, height / 2), Color.white,
+                             new Point2D.Float(width, height / 2), Color.black));
+            g2d.fillRect(0, 0, width, height);
+
+            String fnt = g2d.getFont().getFamily();
+            g2d.setFont(new Font(fnt, Font.PLAIN, 100));
+            g2d.drawString("IIIIIIIIII", 100, 100); // draw text with offset
+
+            g2d.dispose();
+
+            if (vi.validate(gc) != VolatileImage.IMAGE_OK) {
+                try {
+                    Thread.sleep(100);
+                } catch (InterruptedException e) {}
+                continue;
+            }
+
+            if (vi.contentsLost()) {
+                try {
+                    Thread.sleep(100);
+                } catch (InterruptedException e) {}
+                continue;
+            }
+
+            break;
+        }
+
+        BufferedImage bi = vi.getSnapshot();
+
+        // the text shifted shouldn't be visible onto a painted rectangle!
+        // so the check: color component (blue) must decrease monotonously
+
+        int prev = Integer.MAX_VALUE;
+        for (int x = 0; x < width; ++x) {
+            int color = bi.getRGB(x, height / 2);
+            int b = color & 0xFF;
+
+            if (b > prev) {
+                throw new RuntimeException("test failed: can see the text rendered!");
+            }
+
+            prev = b;
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/awt/Graphics2D/DrawString/XRenderElt254TextTest.java	Wed Nov 27 10:42:42 2013 -0800
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2008, 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.MultipleGradientPaint.*;
+import java.awt.image.*;
+import java.io.*;
+
+import javax.imageio.*;
+import javax.swing.*;
+
+/**
+ * @test
+ * @bug 8028722
+ * @summary tests wether drawString with 254 characters causes the xrender
+ *          pipeline to hang.
+ * @author ceisserer
+ */
+public class XRenderElt254TextTest extends Frame implements Runnable {
+    public volatile boolean success = false;
+
+    public void run() {
+        Image dstImg = getGraphicsConfiguration().createCompatibleVolatileImage(400, 400);
+        Graphics2D g = (Graphics2D) dstImg.getGraphics();
+
+        StringBuilder strBuilder = new StringBuilder(254);
+        for (int c = 0; c < 254; c++) {
+          strBuilder.append('a');
+        }
+
+        for (int i = 0; i < 100; i++) {
+            g.drawString(strBuilder.toString(), 20, 20);
+            Toolkit.getDefaultToolkit().sync();
+        }
+        success = true;
+    }
+
+    public static void main(String[] args) throws Exception {
+        XRenderElt254TextTest test = new XRenderElt254TextTest();
+        new Thread(test).start();
+
+        for (int i = 0; i < 30; i++) {
+            Thread.sleep(1000);
+
+            if (test.success) {
+            return; // Test finished successful
+            }
+        }
+
+        throw new RuntimeException("Test Failed");
+    }
+}
--- a/jdk/test/java/awt/print/PageFormat/PageFormatFromAttributes.java	Wed Jul 05 19:23:42 2017 +0200
+++ b/jdk/test/java/awt/print/PageFormat/PageFormatFromAttributes.java	Wed Nov 27 10:42:42 2013 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 4500750 6848799
+ * @bug 4500750 6848799 8028584
  * @summary Tests creating page format from attributes
  * @run main PageFormatFromAttributes
  */