# HG changeset patch # User lana # Date 1268177192 28800 # Node ID 81fdf9d1cfeacaf76cbe85c0432a1f2bb4e53942 # Parent 04af35eb716f2cc2f25becc6c1a98f73a4c61466# Parent e99245ecb5b27a7ae9be9e1a0a908e663368c561 Merge diff -r 04af35eb716f -r 81fdf9d1cfea jdk/src/share/classes/java/awt/AlphaComposite.java --- a/jdk/src/share/classes/java/awt/AlphaComposite.java Thu Mar 04 13:50:23 2010 -0800 +++ b/jdk/src/share/classes/java/awt/AlphaComposite.java Tue Mar 09 15:26:32 2010 -0800 @@ -614,14 +614,15 @@ } private AlphaComposite(int rule, float alpha) { - if (alpha < 0.0f || alpha > 1.0f) { - throw new IllegalArgumentException("alpha value out of range"); - } if (rule < MIN_RULE || rule > MAX_RULE) { throw new IllegalArgumentException("unknown composite rule"); } - this.rule = rule; - this.extraAlpha = alpha; + if (alpha >= 0.0f && alpha <= 1.0f) { + this.rule = rule; + this.extraAlpha = alpha; + } else { + throw new IllegalArgumentException("alpha value out of range"); + } } /** diff -r 04af35eb716f -r 81fdf9d1cfea jdk/src/share/classes/sun/font/SunFontManager.java --- a/jdk/src/share/classes/sun/font/SunFontManager.java Thu Mar 04 13:50:23 2010 -0800 +++ b/jdk/src/share/classes/sun/font/SunFontManager.java Tue Mar 09 15:26:32 2010 -0800 @@ -3058,7 +3058,7 @@ return; } /* Use lock specific to the font system */ - synchronized (lucidaFontName) { + synchronized (this) { if (FontUtilities.debugFonts()) { Thread.dumpStack(); FontUtilities.getLogger() @@ -3194,7 +3194,7 @@ return; } /* Use lock specific to the font system */ - synchronized (lucidaFontName) { + synchronized (this) { if (FontUtilities.debugFonts()) { Thread.dumpStack(); FontUtilities.getLogger().info("loadAllFontFiles() called"); diff -r 04af35eb716f -r 81fdf9d1cfea jdk/test/java/awt/AlphaComposite/TestAlphaCompositeForNaN.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/java/awt/AlphaComposite/TestAlphaCompositeForNaN.java Tue Mar 09 15:26:32 2010 -0800 @@ -0,0 +1,22 @@ +/* + * @test + * @bug 6918065 + * @summary Test for passing NaN as alpha + * should throw IllegalArgumentException + */ + +import java.awt.*; + +public class TestAlphaCompositeForNaN { + public static void main(String[] args) { + try { + AlphaComposite a = AlphaComposite.getInstance(AlphaComposite.DST, Float.NaN); + System.out.println("Failed"); + throw new RuntimeException(a + " failed to throw IllegalArgumentException for alpha = " + Float.NaN); + } + catch (IllegalArgumentException ie) { + System.out.println("Passed"); + System.out.println("Caught " + ie); + } + } +}