OpenJDK / jdk-updates / jdk12u
changeset 3109:da7f8bcd9650
Merge
author | yan |
---|---|
date | Wed, 01 Jul 2009 00:23:56 -0700 |
parents | 4c616e2ae07b 06e84124688c |
children | ef4058630603 |
files | jdk/src/share/classes/javax/swing/BufferStrategyPaintManager.java |
diffstat | 21 files changed, 430 insertions(+), 83 deletions(-) [+] |
line wrap: on
line diff
--- a/jdk/make/docs/CORE_PKGS.gmk Wed Jul 01 00:17:02 2009 -0700 +++ b/jdk/make/docs/CORE_PKGS.gmk Wed Jul 01 00:23:56 2009 -0700 @@ -217,6 +217,7 @@ javax.swing.plaf.basic \ javax.swing.plaf.metal \ javax.swing.plaf.multi \ + javax.swing.plaf.nimbus \ javax.swing.plaf.synth \ javax.tools \ javax.transaction \
--- a/jdk/src/share/classes/com/sun/java/swing/SwingUtilities3.java Wed Jul 01 00:17:02 2009 -0700 +++ b/jdk/src/share/classes/com/sun/java/swing/SwingUtilities3.java Wed Jul 01 00:23:56 2009 -0700 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2009 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -27,13 +27,17 @@ import sun.awt.EventQueueDelegate; import sun.awt.AppContext; +import java.util.Collections; import java.util.Map; +import java.util.WeakHashMap; import java.util.concurrent.Callable; import java.awt.AWTEvent; import java.awt.EventQueue; import java.awt.Component; +import java.awt.Container; import javax.swing.JComponent; import javax.swing.RepaintManager; +import javax.swing.SwingUtilities; /** * A collection of utility methods for Swing. @@ -69,6 +73,43 @@ repaintManager); } + private static final Map<Container, Boolean> vsyncedMap = + Collections.synchronizedMap(new WeakHashMap<Container, Boolean>()); + + /** + * Sets vsyncRequested state for the {@code rootContainer}. If + * {@code isRequested} is {@code true} then vsynced + * {@code BufferStrategy} is enabled for this {@code rootContainer}. + * + * Note: requesting vsynced painting does not guarantee one. The outcome + * depends on current RepaintManager's RepaintManager.PaintManager + * and on the capabilities of the graphics hardware/software and what not. + * + * @param rootContainer topmost container. Should be either {@code Window} + * or {@code Applet} + * @param isRequested the value to set vsyncRequested state to + */ + public static void setVsyncRequested(Container rootContainer, + boolean isRequested) { + assert SwingUtilities.getRoot(rootContainer) == rootContainer; + if (isRequested) { + vsyncedMap.put(rootContainer, Boolean.TRUE); + } else { + vsyncedMap.remove(rootContainer); + } + } + + /** + * Checks if vsync painting is requested for {@code rootContainer} + * + * @param rootContainer topmost container. Should be either Window or Applet + * @return {@code true} if vsync painting is requested for {@code rootContainer} + */ + public static boolean isVsyncRequested(Container rootContainer) { + assert SwingUtilities.getRoot(rootContainer) == rootContainer; + return Boolean.TRUE == vsyncedMap.get(rootContainer); + } + /** * Returns delegate {@code RepaintManager} for {@code component} hierarchy. */
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java Wed Jul 01 00:17:02 2009 -0700 +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java Wed Jul 01 00:23:56 2009 -0700 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2009 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -139,7 +139,7 @@ }); isSunDesktop = val.booleanValue(); } - if (isSunDesktop) { + if (isSunDesktop && !sun.java2d.SunGraphicsEnvironment.isOpenSolaris) { isSunCJK = true; } }
--- a/jdk/src/share/classes/java/beans/MetaData.java Wed Jul 01 00:17:02 2009 -0700 +++ b/jdk/src/share/classes/java/beans/MetaData.java Wed Jul 01 00:23:56 2009 -0700 @@ -93,7 +93,7 @@ protected Expression instantiate(Object oldInstance, Encoder out) { Enum e = (Enum) oldInstance; - return new Expression(e, Enum.class, "valueOf", new Object[]{e.getClass(), e.name()}); + return new Expression(e, Enum.class, "valueOf", new Object[]{e.getDeclaringClass(), e.name()}); } }
--- a/jdk/src/share/classes/java/text/SimpleDateFormat.java Wed Jul 01 00:17:02 2009 -0700 +++ b/jdk/src/share/classes/java/text/SimpleDateFormat.java Wed Jul 01 00:23:56 2009 -0700 @@ -1030,9 +1030,9 @@ case 1: // 'y' - YEAR if (calendar instanceof GregorianCalendar) { - if (count >= 4) + if (count != 2) zeroPaddingNumber(value, count, maxIntCount, buffer); - else // count < 4 + else // count == 2 zeroPaddingNumber(value, 2, 2, buffer); // clip 1996 to 96 } else { if (current == null) {
--- a/jdk/src/share/classes/javax/swing/BufferStrategyPaintManager.java Wed Jul 01 00:17:02 2009 -0700 +++ b/jdk/src/share/classes/javax/swing/BufferStrategyPaintManager.java Wed Jul 01 00:23:56 2009 -0700 @@ -1,5 +1,5 @@ /* - * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2009 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -33,9 +33,13 @@ import java.security.AccessController; import java.util.*; import java.util.logging.*; + +import com.sun.java.swing.SwingUtilities3; + import sun.awt.SubRegionShowable; import sun.java2d.SunGraphics2D; import sun.security.action.GetPropertyAction; +import sun.java2d.pipe.hw.ExtendedBufferCapabilities; import sun.awt.SunToolkit; /** @@ -74,12 +78,6 @@ private static Method COMPONENT_CREATE_BUFFER_STRATEGY_METHOD; private static Method COMPONENT_GET_BUFFER_STRATEGY_METHOD; - /** - * Indicates whether or not we should try and get a flip buffer strategy - * first, default is false. - */ - private static boolean TRY_FLIP; - private static final Logger LOGGER = Logger.getLogger( "javax.swing.BufferStrategyPaintManager"); @@ -152,12 +150,6 @@ */ private boolean disposeBufferOnEnd; - - static { - TRY_FLIP = "true".equals(AccessController.doPrivileged( - new GetPropertyAction("swing.useFlipBufferStrategy", "false"))); - } - private static Method getGetBufferStrategyMethod() { if (COMPONENT_GET_BUFFER_STRATEGY_METHOD == null) { getMethods(); @@ -258,7 +250,7 @@ try { BufferInfo info = getBufferInfo(c); BufferStrategy bufferStrategy; - if (info != null && !info.usingFlip && info.isInSync() && + if (info != null && info.isInSync() && (bufferStrategy = info.getBufferStrategy(false)) != null) { SubRegionShowable bsSubRegion = (SubRegionShowable)bufferStrategy; @@ -687,8 +679,6 @@ // same reason. private WeakReference<BufferStrategy> weakBS; private WeakReference<Container> root; - // Whether or not we're using flip bs or blit. - private boolean usingFlip; // Indicates whether or not the backbuffer and display are in sync. // This is set to true when a full repaint on the rootpane is done. private boolean inSync; @@ -766,13 +756,6 @@ } /** - * Returns true if using a flip buffer strategy. - */ - public boolean usingFlip() { - return usingFlip; - } - - /** * Returns true if the buffer strategy of the component differs * from current buffer strategy. */ @@ -816,23 +799,19 @@ * blit. */ private BufferStrategy createBufferStrategy() { - BufferCapabilities caps; Container root = getRoot(); if (root == null) { return null; } BufferStrategy bs = null; - if (TRY_FLIP) { - bs = createBufferStrategy(root,BufferCapabilities.FlipContents. - COPIED); - usingFlip = true; + if (SwingUtilities3.isVsyncRequested(root)) { + bs = createBufferStrategy(root, true); if (LOGGER.isLoggable(Level.FINER)) { - LOGGER.finer("createBufferStrategy: using flip strategy"); + LOGGER.finer("createBufferStrategy: using vsynced strategy"); } } if (bs == null) { - bs = createBufferStrategy(root, null); - usingFlip = false; + bs = createBufferStrategy(root, false); } if (!(bs instanceof SubRegionShowable)) { // We do this for two reasons: @@ -845,15 +824,22 @@ return bs; } - // Creates and returns a buffer strategy of the requested type. If + // Creates and returns a buffer strategy. If // there is a problem creating the buffer strategy this will // eat the exception and return null. private BufferStrategy createBufferStrategy(Container root, - BufferCapabilities.FlipContents type) { - BufferCapabilities caps = new BufferCapabilities( - new ImageCapabilities(true), - new ImageCapabilities(true), - type); + boolean isVsynced) { + BufferCapabilities caps; + if (isVsynced) { + caps = new ExtendedBufferCapabilities( + new ImageCapabilities(true), new ImageCapabilities(true), + BufferCapabilities.FlipContents.COPIED, + ExtendedBufferCapabilities.VSyncType.VSYNC_ON); + } else { + caps = new BufferCapabilities( + new ImageCapabilities(true), new ImageCapabilities(true), + null); + } BufferStrategy bs = null; if (SunToolkit.isInstanceOf(root, "java.applet.Applet")) { try {
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicInternalFrameUI.java Wed Jul 01 00:17:02 2009 -0700 +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicInternalFrameUI.java Wed Jul 01 00:23:56 2009 -0700 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -683,6 +683,7 @@ } getDesktopManager().endResizingFrame(frame); resizing = false; + updateFrameCursor(); } _x = 0; _y = 0;
--- a/jdk/src/share/classes/javax/swing/plaf/nimbus/AbstractRegionPainter.java Wed Jul 01 00:17:02 2009 -0700 +++ b/jdk/src/share/classes/javax/swing/plaf/nimbus/AbstractRegionPainter.java Wed Jul 01 00:23:56 2009 -0700 @@ -31,7 +31,6 @@ import javax.swing.plaf.UIResource; import javax.swing.Painter; import java.awt.print.PrinterGraphics; -import static javax.swing.plaf.nimbus.NimbusLookAndFeel.deriveARGB; /** * Convenient base class for defining Painter instances for rendering a @@ -347,7 +346,7 @@ */ protected final Color decodeColor(Color color1, Color color2, float midPoint) { - return new Color(deriveARGB(color1, color2, midPoint)); + return new Color(NimbusLookAndFeel.deriveARGB(color1, color2, midPoint)); } /**
--- a/jdk/src/share/classes/javax/swing/plaf/nimbus/Defaults.template Wed Jul 01 00:17:02 2009 -0700 +++ b/jdk/src/share/classes/javax/swing/plaf/nimbus/Defaults.template Wed Jul 01 00:23:56 2009 -0700 @@ -278,7 +278,7 @@ * offset (if any), and whether it is to be bold, italic, or left in its * default form.</p> */ - public static final class DerivedFont implements UIDefaults.ActiveValue { + static final class DerivedFont implements UIDefaults.ActiveValue { private float sizeOffset; private Boolean bold; private Boolean italic;
--- a/jdk/src/share/classes/javax/swing/plaf/nimbus/NimbusLookAndFeel.java Wed Jul 01 00:17:02 2009 -0700 +++ b/jdk/src/share/classes/javax/swing/plaf/nimbus/NimbusLookAndFeel.java Wed Jul 01 00:23:56 2009 -0700 @@ -436,15 +436,13 @@ */ static int deriveARGB(Color color1, Color color2, float midPoint) { int r = color1.getRed() + - (int) ((color2.getRed() - color1.getRed()) * midPoint + 0.5f); + Math.round((color2.getRed() - color1.getRed()) * midPoint); int g = color1.getGreen() + - (int) ((color2.getGreen() - color1.getGreen()) * midPoint + - 0.5f); + Math.round((color2.getGreen() - color1.getGreen()) * midPoint); int b = color1.getBlue() + - (int) ((color2.getBlue() - color1.getBlue()) * midPoint + 0.5f); + Math.round((color2.getBlue() - color1.getBlue()) * midPoint); int a = color1.getAlpha() + - (int) ((color2.getAlpha() - color1.getAlpha()) * midPoint + - 0.5f); + Math.round((color2.getAlpha() - color1.getAlpha()) * midPoint); return ((a & 0xFF) << 24) | ((r & 0xFF) << 16) | ((g & 0xFF) << 8) |
--- a/jdk/src/share/classes/javax/swing/plaf/nimbus/PainterImpl.template Wed Jul 01 00:17:02 2009 -0700 +++ b/jdk/src/share/classes/javax/swing/plaf/nimbus/PainterImpl.template Wed Jul 01 00:23:56 2009 -0700 @@ -31,7 +31,7 @@ import javax.swing.Painter; -public final class ${PAINTER_NAME} extends AbstractRegionPainter { +final class ${PAINTER_NAME} extends AbstractRegionPainter { //package private integers representing the available states that //this painter will paint. These are used when creating a new instance //of ${PAINTER_NAME} to determine which region/state is being painted
--- a/jdk/src/share/classes/javax/swing/plaf/nimbus/package.html Wed Jul 01 00:17:02 2009 -0700 +++ b/jdk/src/share/classes/javax/swing/plaf/nimbus/package.html Wed Jul 01 00:23:56 2009 -0700 @@ -38,7 +38,7 @@ component states. <p>Nimbus allows customizing many of its properties, including painters, by -altering the {@link UIDefaults} table. Here's an example: +altering the {@link javax.swing.UIDefaults} table. Here's an example: <code><pre> UIManager.put("ProgressBar.tileWidth", myTileWidth); UIManager.put("ProgressBar[Enabled].backgroundPainter", myBgPainter);
--- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthColorChooserUI.java Wed Jul 01 00:17:02 2009 -0700 +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthColorChooserUI.java Wed Jul 01 00:23:56 2009 -0700 @@ -69,6 +69,7 @@ } protected void installDefaults() { + super.installDefaults(); updateStyle(chooser); }
--- a/jdk/src/share/classes/javax/swing/table/DefaultTableCellRenderer.java Wed Jul 01 00:17:02 2009 -0700 +++ b/jdk/src/share/classes/javax/swing/table/DefaultTableCellRenderer.java Wed Jul 01 00:23:56 2009 -0700 @@ -1,5 +1,5 @@ /* - * Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2009 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -118,12 +118,12 @@ if (System.getSecurityManager() != null) { if (border != null) return border; return SAFE_NO_FOCUS_BORDER; - } else { + } else if (border != null) { if (noFocusBorder == null || noFocusBorder == DEFAULT_NO_FOCUS_BORDER) { return border; } - return noFocusBorder; } + return noFocusBorder; } /**
--- a/jdk/src/share/classes/sun/text/normalizer/NormalizerBase.java Wed Jul 01 00:17:02 2009 -0700 +++ b/jdk/src/share/classes/sun/text/normalizer/NormalizerBase.java Wed Jul 01 00:23:56 2009 -0700 @@ -1598,15 +1598,34 @@ * @param options the optional features to be enabled. */ public static String normalize(String str, Normalizer.Form form, int options) { + int len = str.length(); + boolean asciiOnly = true; + if (len < 80) { + for (int i = 0; i < len; i++) { + if (str.charAt(i) > 127) { + asciiOnly = false; + break; + } + } + } else { + char[] a = str.toCharArray(); + for (int i = 0; i < len; i++) { + if (a[i] > 127) { + asciiOnly = false; + break; + } + } + } + switch (form) { case NFC : - return NFC.normalize(str, options); + return asciiOnly ? str : NFC.normalize(str, options); case NFD : - return NFD.normalize(str, options); + return asciiOnly ? str : NFD.normalize(str, options); case NFKC : - return NFKC.normalize(str, options); + return asciiOnly ? str : NFKC.normalize(str, options); case NFKD : - return NFKD.normalize(str, options); + return asciiOnly ? str : NFKD.normalize(str, options); } throw new IllegalArgumentException("Unexpected normalization form: " +
--- a/jdk/src/share/demo/jfc/Font2DTest/RangeMenu.java Wed Jul 01 00:17:02 2009 -0700 +++ b/jdk/src/share/demo/jfc/Font2DTest/RangeMenu.java Wed Jul 01 00:23:56 2009 -0700 @@ -53,7 +53,7 @@ public final class RangeMenu extends JComboBox implements ActionListener { /// Painfully extracted from java.lang.Character.UnicodeBlock. Arrrgh! - /// Unicode 3.0 data. + /// Unicode 5.1.0 data. private final int[][] UNICODE_RANGES = { { 0x000000, 0x00007f }, /// BASIC_LATIN @@ -63,14 +63,16 @@ { 0x000250, 0x0002af }, /// IPA_EXTENSIONS { 0x0002b0, 0x0002ff }, /// SPACING_MODIFIER_LETTERS { 0x000300, 0x00036f }, /// COMBINING_DIACRITICAL_MARKS - { 0x000370, 0x0003ff }, /// GREEK + { 0x000370, 0x0003ff }, /// GREEK_AND_COPTIC { 0x000400, 0x0004ff }, /// CYRILLIC { 0x000500, 0x00052f }, /// CYRILLIC_SUPPLEMENTARY { 0x000530, 0x00058f }, /// ARMENIAN { 0x000590, 0x0005ff }, /// HEBREW { 0x000600, 0x0006ff }, /// ARABIC { 0x000700, 0x00074f }, /// SYRIAC + { 0x000750, 0x00077f }, /// ARABIC_SUPPLEMENT { 0x000780, 0x0007bf }, /// THAANA + { 0x0007c0, 0x0007ff }, /// NKO { 0x000900, 0x00097f }, /// DEVANAGARI { 0x000980, 0x0009ff }, /// BENGALI { 0x000a00, 0x000a7f }, /// GURMUKHI @@ -88,6 +90,7 @@ { 0x0010a0, 0x0010ff }, /// GEORGIAN { 0x001100, 0x0011ff }, /// HANGUL_JAMO { 0x001200, 0x00137f }, /// ETHIOPIC + { 0x001380, 0x00139f }, /// ETHIOPIC_SUPPLEMENT { 0x0013a0, 0x0013ff }, /// CHEROKEE { 0x001400, 0x00167f }, /// UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS { 0x001680, 0x00169f }, /// OGHAM @@ -100,8 +103,16 @@ { 0x001800, 0x0018af }, /// MONGOLIAN { 0x001900, 0x00194f }, /// LIMBU { 0x001950, 0x00197f }, /// TAI_LE + { 0x001980, 0x0019df }, /// NEW_TAI_LE { 0x0019e0, 0x0019ff }, /// KHMER_SYMBOLS + { 0x001a00, 0x001a1f }, /// BUGINESE + { 0x001b00, 0x001b7f }, /// BALINESE + { 0x001b80, 0x001bbf }, /// SUNDANESE + { 0x001c00, 0x001c4f }, /// LEPCHA + { 0x001c50, 0x001c7f }, /// OL_CHIKI { 0x001d00, 0x001d7f }, /// PHONETIC_EXTENSIONS + { 0x001d80, 0x001dbf }, /// PHONEITC EXTENSIONS SUPPLEMENT + { 0x001dc0, 0x001dff }, /// COMBINING_DIACRITICAL_MAKRS_SUPPLEMENT { 0x001e00, 0x001eff }, /// LATIN_EXTENDED_ADDITIONAL { 0x001f00, 0x001fff }, /// GREEK_EXTENDED { 0x002000, 0x00206f }, /// GENERAL_PUNCTUATION @@ -128,6 +139,14 @@ { 0x002980, 0x0029ff }, /// MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B { 0x002a00, 0x002aff }, /// SUPPLEMENTAL_MATHEMATICAL_OPERATORS { 0x002b00, 0x002bff }, /// MISCELLANEOUS_SYMBOLS_AND_ARROWS + { 0x002c00, 0x002c5f }, /// GLAGOLITIC + { 0x002c60, 0x002c7f }, /// LATIN_EXTENDED-C + { 0x002c80, 0x002cff }, /// COPTIC + { 0x002d00, 0x002d2f }, /// GEORGIAN_SUPPLEMENT + { 0x002d30, 0x002d7f }, /// TIFINAGH + { 0x002d80, 0x002ddf }, /// ETHIOPIC_EXTENDED + { 0x002de0, 0x002dff }, /// CYRILLIC_EXTENDED-A + { 0x002e00, 0x002e7f }, /// SUPPLEMENTAL_PUNCTUATION { 0x002e80, 0x002eff }, /// CJK_RADICALS_SUPPLEMENT { 0x002f00, 0x002fdf }, /// KANGXI_RADICALS { 0x002ff0, 0x002fff }, /// IDEOGRAPHIC_DESCRIPTION_CHARACTERS @@ -138,6 +157,7 @@ { 0x003130, 0x00318f }, /// HANGUL_COMPATIBILITY_JAMO { 0x003190, 0x00319f }, /// KANBUN { 0x0031a0, 0x0031bf }, /// BOPOMOFO_EXTENDED + { 0x0031c0, 0x0031ef }, /// CJK_STROKES { 0x0031f0, 0x0031ff }, /// KATAKANA_PHONETIC_EXTENSIONS { 0x003200, 0x0032ff }, /// ENCLOSED_CJK_LETTERS_AND_MONTHS { 0x003300, 0x0033ff }, /// CJK_COMPATIBILITY @@ -146,13 +166,26 @@ { 0x004e00, 0x009fff }, /// CJK_UNIFIED_IDEOGRAPHS { 0x00a000, 0x00a48f }, /// YI_SYLLABLES { 0x00a490, 0x00a4cf }, /// YI_RADICALS + { 0x00a500, 0x00a63f }, /// YAI + { 0x00a640, 0x00a69f }, /// CYRILLIC_EXTENDED-B + { 0x00a700, 0x00a71f }, /// MODIFIER_TONE_LETTERS + { 0x00a720, 0x00a7ff }, /// LATIN_EXTENDED-D + { 0x00a800, 0x00a82f }, /// SYLOTI_NAGRI + { 0x00a840, 0x00a87f }, /// PHAGS-PA + { 0x00a880, 0x00a8df }, /// SAURASHTRA + { 0x00a900, 0x00a92f }, /// KAYAH_LI + { 0x00a930, 0x00a95f }, /// REJANG + { 0x00aa00, 0x00aa5f }, /// CHAM { 0x00ac00, 0x00d7af }, /// HANGUL_SYLLABLES - { 0x00d800, 0x00dfff }, /// SURROGATES_AREA + { 0x00d800, 0x00db7f }, /// HIGH_SURROGATES_AREA + { 0x00db80, 0x00dbff }, /// HIGH_PRIVATE_USE_SURROGATES_AREA + { 0x00dc00, 0x00dfff }, /// LOW_SURROGATES_AREA { 0x00e000, 0x00f8ff }, /// PRIVATE_USE_AREA { 0x00f900, 0x00faff }, /// CJK_COMPATIBILITY_IDEOGRAPHS { 0x00fb00, 0x00fb4f }, /// ALPHABETIC_PRESENTATION_FORMS { 0x00fb50, 0x00fdff }, /// ARABIC_PRESENTATION_FORMS_A { 0x00fe00, 0x00fe0f }, /// VARIATION_SELECTORS + { 0x00fe10, 0x00fe1f }, /// VERTICAL_FORMS { 0x00fe20, 0x00fe2f }, /// COMBINING_HALF_MARKS { 0x00fe30, 0x00fe4f }, /// CJK_COMPATIBILITY_FORMS { 0x00fe50, 0x00fe6f }, /// SMALL_FORM_VARIANTS @@ -162,17 +195,32 @@ { 0x010000, 0x01007f }, /// LINEAR_B_SYLLABARY { 0x010080, 0x0100ff }, /// LINEAR_B_IDEOGRAMS { 0x010100, 0x01013f }, /// AEGEAN_NUMBERS + { 0x010140, 0x01018f }, /// ANCIENT_GREEK_NUMBERS + { 0x010190, 0x0101cf }, /// ANCIENT_SYMBOLS + { 0x0101d0, 0x0101ff }, /// PHAISTOS_DISC + { 0x010280, 0x01029f }, /// LYCIAN + { 0x0102a0, 0x0102df }, /// CARIAN { 0x010300, 0x01032f }, /// OLD_ITALIC { 0x010330, 0x01034f }, /// GOTHIC { 0x010380, 0x01039f }, /// UGARITIC + { 0x0103a0, 0x0103df }, /// OLD_PERSIAN { 0x010400, 0x01044f }, /// DESERET { 0x010450, 0x01047f }, /// SHAVIAN { 0x010480, 0x0104af }, /// OSMANYA { 0x010800, 0x01083f }, /// CYPRIOT_SYLLABARY + { 0x010900, 0x01091f }, /// PHOENICIAN + { 0x010920, 0x01093f }, /// LYDIAN + { 0x010a00, 0x010a5f }, /// KHAROSHTHI + { 0x012000, 0x0123ff }, /// CUNEIFORM + { 0x012400, 0x01247f }, /// CUNEIFORM_NUMBERS_AND_PUNCTUATION { 0x01d000, 0x01d0ff }, /// BYZANTINE_MUSICAL_SYMBOLS { 0x01d100, 0x01d1ff }, /// MUSICAL_SYMBOLS + { 0x01d200, 0x01d24f }, /// ANCIENT_GREEK_MUSICAL_NOTATION { 0x01d300, 0x01d35f }, /// TAI_XUAN_JING_SYMBOLS + { 0x01d360, 0x01d37f }, /// COUNTING_ROD_NUMERALS { 0x01d400, 0x01d7ff }, /// MATHEMATICAL_ALPHANUMERIC_SYMBOLS + { 0x01f000, 0x01f02f }, /// MAHJONG_TILES + { 0x01f030, 0x01f09f }, /// DOMINO_TILES { 0x020000, 0x02a6df }, /// CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B { 0x02f800, 0x02fa1f }, /// CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT { 0x0e0000, 0x0e007f }, /// TAGS @@ -190,14 +238,16 @@ "IPA Extensions", "Spacing Modifier Letters", "Combining Diacritical Marks", - "Greek", + "Greek and Coptic", "Cyrillic", "Cyrillic Supplement", "Armenian", "Hebrew", "Arabic", "Syriac", + "Arabic Supplement", "Thaana", + "NKo", "Devanagari", "Bengali", "Gurmukhi", @@ -215,6 +265,7 @@ "Georgian", "Hangul Jamo", "Ethiopic", + "Ethiopic Supplement", "Cherokee", "Unified Canadian Aboriginal Syllabics", "Ogham", @@ -227,14 +278,22 @@ "Mongolian", "Limbu", "Tai Le", + "New Tai Lue", "Khmer Symbols", + "Buginese", + "Balinese", + "Sundanese", + "Lepcha", + "Ol Chiki", "Phonetic Extensions", + "Phonetic Extensions Supplement", + "Combining Diacritical Marks Supplement", "Latin Extended Additional", "Greek Extended", "General Punctuation", "Superscripts and Subscripts", "Currency Symbols", - "Combining Marks for Symbols", + "Combining Diacritical Marks for Symbols", "Letterlike Symbols", "Number Forms", "Arrows", @@ -255,6 +314,14 @@ "Miscellaneous Mathematical Symbols-B", "Supplemental Mathematical Operators", "Miscellaneous Symbols and Arrows", + "Glagolitic", + "Latin Extended-C", + "Coptic", + "Georgian Supplement", + "Tifinagh", + "Ethiopic Extended", + "Cyrillic Extended-A", + "Supplemental Punctuation", "CJK Radicals Supplement", "Kangxi Radicals", "Ideographic Description Characters", @@ -265,6 +332,7 @@ "Hangul Compatibility Jamo", "Kanbun", "Bopomofo Extended", + "CJK Strokes", "Katakana Phonetic Extensions", "Enclosed CJK Letters and Months", "CJK Compatibility", @@ -273,13 +341,26 @@ "CJK Unified Ideographs", "Yi Syllables", "Yi Radicals", + "Vai", + "Cyrillic Extended-B", + "Modifier Tone Letters", + "Latin Extended-D", + "Syloti Nagri", + "Phags-pa", + "Saurashtra", + "Kayah Li", + "Rejang", + "Cham", "Hangul Syllables", - "Surrogates Area", // High Surrogates, High Private Use Surrogates, Low Surrogates + "High Surrogates", + "High Private Use Surrogates", + "Low Surrogates", "Private Use Area", "CJK Compatibility Ideographs", "Alphabetic Presentation Forms", "Arabic Presentation Forms-A", "Variation Selectors", + "Vertical Forms", "Combining Half Marks", "CJK Compatibility Forms", "Small Form Variants", @@ -289,17 +370,32 @@ "Linear B Syllabary", "Linear B Ideograms", "Aegean Numbers", + "Ancient Greek Numbers", + "Ancient Symbols", + "Phaistos Disc", + "Lycian", + "Carian", "Old Italic", "Gothic", "Ugaritic", + "Old Persian", "Deseret", "Shavian", "Osmanya", "Cypriot Syllabary", + "Phoenician", + "Lydian", + "Kharoshthi", + "Cuneiform", + "Cuneiform Numbers and Punctuation", "Byzantine Musical Symbols", "Musical Symbols", + "Ancient Greek Musical Notation", "Tai Xuan Jing Symbols", + "Counting Rod Numerals", "Mathematical Alphanumeric Symbols", + "Mahjong Tiles", + "Domino Tiles", "CJK Unified Ideographs Extension B", "CJK Compatibility Ideographs Supplement", "Tags",
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/java/beans/XMLEncoder/Test6852574.java Wed Jul 01 00:23:56 2009 -0700 @@ -0,0 +1,58 @@ +/* + * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +/* + * @test + * @bug 6852574 + * @summary Tests Enum subclass encoding + * @author Sergey Malenkov + */ + +public final class Test6852574 extends AbstractTest { + public static void main(String[] args) { + new Test6852574().test(true); + } + + protected Object getObject() { + return Data.FIRST; + } + + protected Object getAnotherObject() { + return Data.SECOND; + } + + public enum Data { + FIRST { + @Override + public String toString() { + return "1"; + } + }, + SECOND { + @Override + public String toString() { + return "2"; + } + } + } +}
--- a/jdk/test/java/text/Bidi/Bug6850113.java Wed Jul 01 00:17:02 2009 -0700 +++ b/jdk/test/java/text/Bidi/Bug6850113.java Wed Jul 01 00:23:56 2009 -0700 @@ -24,6 +24,7 @@ * @test * @bug 6850113 * @summary Verify the return value of digit() for some digits. + * @compile -XDignore.symbol.file=true Bug6850113.java */ import sun.text.normalizer.UCharacter;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/java/text/Format/DateFormat/Bug6609750.java Wed Jul 01 00:23:56 2009 -0700 @@ -0,0 +1,81 @@ +/* + * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +/** + * @test + * @bug 6609750 + * @summary Make sure that SimpleDateFormat.format() formats years correctly. + */ +import java.text.*; +import java.util.*; + +public class Bug6609750 { + + public static void main(String[] args) { + boolean error = false; + + Locale defaultLocale = Locale.getDefault(); + Locale.setDefault(Locale.US); + + Date[] dates = { + new Date(9-1900, Calendar.JUNE, 12), + new Date(99-1900, Calendar.JUNE, 12), + new Date(999-1900, Calendar.JUNE, 12), + new Date(2009-1900, Calendar.JUNE, 12), + new Date(30009-1900, Calendar.JUNE, 12), + }; + + String[] patterns = { + "y", "yy", "yyy", "yyyy", "yyyyy", "yyyyyy" + }; + String[][] expectedResults = { + {"9", "09", "009", "0009", "00009", "000009"}, + {"99", "99", "099", "0099", "00099", "000099"}, + {"999", "99", "999", "0999", "00999", "000999"}, + {"2009", "09", "2009", "2009", "02009", "002009"}, + {"30009", "09", "30009", "30009", "30009", "030009"}, + }; + + SimpleDateFormat sdf = new SimpleDateFormat(); + for (int dateNo = 0; dateNo < dates.length; dateNo++) { + Date date = dates[dateNo]; + for (int patternNo = 0; patternNo < patterns.length; patternNo++) { + sdf.applyPattern(patterns[patternNo]); + String got = sdf.format(date); + if (!expectedResults[dateNo][patternNo].equals(got)) { + error = true; + System.err.println("Failed: Unexpected format result: " + + "Expected: \"" + expectedResults[dateNo][patternNo] + + "\", Got: \"" + got + "\" for date " + date + + " with pattern \"" + patterns[patternNo] + "\""); + } + } + } + + Locale.setDefault(defaultLocale); + if (error) { + throw new RuntimeException("SimpleDateFormat.format() error."); + }; + } + +}
--- a/jdk/test/javax/swing/border/Test4856008.java Wed Jul 01 00:17:02 2009 -0700 +++ b/jdk/test/javax/swing/border/Test4856008.java Wed Jul 01 00:23:56 2009 -0700 @@ -35,6 +35,7 @@ import java.awt.Font; import java.awt.Insets; +import javax.swing.ActionMap; import javax.swing.JComponent; import javax.swing.JFileChooser; import javax.swing.JLabel; @@ -51,6 +52,7 @@ import javax.swing.border.MatteBorder; import javax.swing.border.SoftBevelBorder; import javax.swing.border.TitledBorder; +import javax.swing.plaf.ActionMapUIResource; import javax.swing.plaf.BorderUIResource; import javax.swing.plaf.synth.SynthLookAndFeel; import javax.swing.plaf.basic.BasicBorders; @@ -59,7 +61,6 @@ import javax.swing.plaf.metal.MetalComboBoxEditor; import sun.swing.plaf.synth.SynthFileChooserUI; -import sun.tools.jconsole.BorderedComponent; public class Test4856008 { private static final JLabel LABEL = new JLabel(); @@ -133,11 +134,6 @@ //+ SynthFileChooserUI.UIBorder: new SynthFileChooser().getUIBorder(), - - //+ BorderedComponent.FocusBorder: - getBorder(false), - //+ BorderedComponent.LabeledBorder: - getBorder(true), }; public static void main(String[] args) { @@ -182,15 +178,6 @@ return LABEL; } - // This method is used to get the border from BorderedComponent - private static Border getBorder(boolean labeled) { - JComponent component = new BorderedComponent("4856008", null, true); - CompoundBorder border = (CompoundBorder) component.getBorder(); - return labeled - ? border.getInsideBorder() - : border.getOutsideBorder(); - } - // This class is used to get the instance of BasicBorders.RolloverMarginBorder private static class ToolBar extends BasicToolBarUI { private Border getRolloverMarginBorder() { @@ -224,6 +211,11 @@ } @Override + protected ActionMap createActionMap() { + return new ActionMapUIResource(); + } + + @Override public String getFileName() { return this.name; }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/javax/swing/plaf/nimbus/Test6849805.java Wed Jul 01 00:23:56 2009 -0700 @@ -0,0 +1,73 @@ +/* + * Copyright 2008 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +/* @test + @bug 6849805 + @summary Tests NimbusLookAndFeel.deriveColor() + @author Peter Zhelezniakov + @run main Test6849805 +*/ + +import java.awt.Color; + + +public class Test6849805 { + + static boolean pass = true; + + static class Minimbus extends javax.swing.plaf.nimbus.NimbusLookAndFeel { + + public void test(Color c1, Color c2, float f) { + Color r = getDerivedColor(c1, c2, f); + Color test = (f > 0 ? c2 : c1); + System.out.printf("Got %s, need %s ", r, test); + + if (r.getRGB() == test.getRGB() && + r.getAlpha() == test.getAlpha()) { + + System.out.println("Ok"); + } else { + System.out.println("FAIL"); + pass = false; + } + } + } + + public static void main(String[] args) { + Minimbus laf = new Minimbus(); + laf.test(Color.WHITE, Color.BLACK, 0f); + laf.test(Color.WHITE, Color.BLACK, 1f); + laf.test(Color.BLACK, Color.WHITE, 0f); + laf.test(Color.BLACK, Color.WHITE, 1f); + laf.test(Color.RED, Color.GREEN, 0f); + laf.test(Color.RED, Color.GREEN, 1f); + laf.test(new Color(127, 127, 127), new Color(51, 151, 212), 0f); + laf.test(new Color(127, 127, 127), new Color(51, 151, 212), 1f); + laf.test(new Color(221, 63, 189), new Color(112, 200, 89), 0f); + laf.test(new Color(221, 63, 189), new Color(112, 200, 89), 1f); + + if (! pass) { + throw new RuntimeException("Some testcases failed, see above"); + } + } +}