diff --git a/src/java.desktop/share/classes/java/awt/color/CMMException.java b/src/java.desktop/share/classes/java/awt/color/CMMException.java index 10870d1b5db..1533313b407 100644 --- a/src/java.desktop/share/classes/java/awt/color/CMMException.java +++ b/src/java.desktop/share/classes/java/awt/color/CMMException.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2023, 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 @@ -51,9 +51,9 @@ public class CMMException extends RuntimeException { /** * Constructs a {@code CMMException} with the specified detail message. * - * @param s the specified detail message + * @param message the specified detail message, or {@code null} */ - public CMMException(String s) { - super(s); + public CMMException(String message) { + super(message); } } diff --git a/src/java.desktop/share/classes/java/awt/color/ColorSpace.java b/src/java.desktop/share/classes/java/awt/color/ColorSpace.java index 20136c0361c..80944e53017 100644 --- a/src/java.desktop/share/classes/java/awt/color/ColorSpace.java +++ b/src/java.desktop/share/classes/java/awt/color/ColorSpace.java @@ -352,6 +352,7 @@ public abstract class ColorSpace implements Serializable { * @return a float array of length 3 * @throws ArrayIndexOutOfBoundsException if array length is not at least * the number of components in this {@code ColorSpace} + * @throws NullPointerException if {@code colorvalue} is {@code null} */ public abstract float[] toRGB(float[] colorvalue); @@ -373,6 +374,7 @@ public abstract class ColorSpace implements Serializable { * @return a float array with length equal to the number of components in * this {@code ColorSpace} * @throws ArrayIndexOutOfBoundsException if array length is not at least 3 + * @throws NullPointerException if {@code rgbvalue} is {@code null} */ public abstract float[] fromRGB(float[] rgbvalue); @@ -397,7 +399,8 @@ public abstract class ColorSpace implements Serializable { * components in this {@code ColorSpace} * @return a float array of length 3 * @throws ArrayIndexOutOfBoundsException if array length is not at least - * the number of components in this {@code ColorSpace}. + * the number of components in this {@code ColorSpace} + * @throws NullPointerException if {@code colorvalue} is {@code null} */ public abstract float[] toCIEXYZ(float[] colorvalue); @@ -423,6 +426,7 @@ public abstract class ColorSpace implements Serializable { * @return a float array with length equal to the number of components in * this {@code ColorSpace} * @throws ArrayIndexOutOfBoundsException if array length is not at least 3 + * @throws NullPointerException if {@code colorvalue} is {@code null} */ public abstract float[] fromCIEXYZ(float[] colorvalue); diff --git a/src/java.desktop/share/classes/java/awt/color/ICC_ColorSpace.java b/src/java.desktop/share/classes/java/awt/color/ICC_ColorSpace.java index acb31fbca9c..7a73cc86c9c 100644 --- a/src/java.desktop/share/classes/java/awt/color/ICC_ColorSpace.java +++ b/src/java.desktop/share/classes/java/awt/color/ICC_ColorSpace.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2023, 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 @@ -130,6 +130,7 @@ public class ICC_ColorSpace extends ColorSpace { * @param profile the specified {@code ICC_Profile} object * @throws IllegalArgumentException if profile is inappropriate for * representing a {@code ColorSpace} + * @throws NullPointerException if {@code profile} is {@code null} */ public ICC_ColorSpace(ICC_Profile profile) { super(profile.getColorSpaceType(), profile.getNumComponents()); @@ -157,6 +158,7 @@ public class ICC_ColorSpace extends ColorSpace { * @throws ClassNotFoundException if the class of a serialized object could * not be found * @throws IOException if an I/O error occurs + * @throws NullPointerException if {@code s} is {@code null} */ @Serial private void readObject(ObjectInputStream s) @@ -195,6 +197,7 @@ public class ICC_ColorSpace extends ColorSpace { * @return a float array of length 3 * @throws ArrayIndexOutOfBoundsException if array length is not at least * the number of components in this {@code ColorSpace} + * @throws NullPointerException if {@code colorvalue} is {@code null} */ public float[] toRGB(float[] colorvalue) { if (this2srgb == null) { @@ -243,6 +246,7 @@ public class ICC_ColorSpace extends ColorSpace { * @return a float array with length equal to the number of components in * this {@code ColorSpace} * @throws ArrayIndexOutOfBoundsException if array length is not at least 3 + * @throws NullPointerException if {@code rgbvalue} is {@code null} */ public float[] fromRGB(float[] rgbvalue) { if (srgb2this == null) { @@ -371,6 +375,7 @@ public class ICC_ColorSpace extends ColorSpace { * @return a float array of length 3 * @throws ArrayIndexOutOfBoundsException if array length is not at least * the number of components in this {@code ColorSpace} + * @throws NullPointerException if {@code colorvalue} is {@code null} */ public float[] toCIEXYZ(float[] colorvalue) { if (this2xyz == null) { @@ -502,6 +507,7 @@ public class ICC_ColorSpace extends ColorSpace { * @return a float array with length equal to the number of components in * this {@code ColorSpace} * @throws ArrayIndexOutOfBoundsException if array length is not at least 3 + * @throws NullPointerException if {@code colorvalue} is {@code null} */ public float[] fromCIEXYZ(float[] colorvalue) { if (xyz2this == null) { diff --git a/src/java.desktop/share/classes/java/awt/color/ICC_Profile.java b/src/java.desktop/share/classes/java/awt/color/ICC_Profile.java index ae73a18d18e..0cf836b449a 100644 --- a/src/java.desktop/share/classes/java/awt/color/ICC_Profile.java +++ b/src/java.desktop/share/classes/java/awt/color/ICC_Profile.java @@ -1411,6 +1411,7 @@ public sealed class ICC_Profile implements Serializable * * @param s stream used for serialization * @throws IOException thrown by {@code ObjectInputStream} + * @throws NullPointerException if {@code s} is {@code null} * @serialData the {@code String} is the name of one of * CS_* constants defined in the * {@link ColorSpace} class if the profile object is a profile for a @@ -1466,8 +1467,8 @@ public sealed class ICC_Profile implements Serializable * * @param s stream used for deserialization * @throws IOException thrown by {@code ObjectInputStream} - * @throws ClassNotFoundException thrown by {@code - * ObjectInputStream} + * @throws ClassNotFoundException thrown by {@code ObjectInputStream} + * @throws NullPointerException if {@code s} is {@code null} * @serialData the {@code String} is the name of one of * CS_* constants defined in the * {@link ColorSpace} class if the profile object is a profile for a diff --git a/src/java.desktop/share/classes/java/awt/color/ProfileDataException.java b/src/java.desktop/share/classes/java/awt/color/ProfileDataException.java index 5191396be64..75d146ad953 100644 --- a/src/java.desktop/share/classes/java/awt/color/ProfileDataException.java +++ b/src/java.desktop/share/classes/java/awt/color/ProfileDataException.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2023, 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 @@ -43,9 +43,9 @@ public class ProfileDataException extends RuntimeException { * Constructs a {@code ProfileDataException} with the specified detail * message. * - * @param s the specified detail message + * @param message the specified detail message, or {@code null} */ - public ProfileDataException(String s) { - super(s); + public ProfileDataException(String message) { + super(message); } } diff --git a/test/jdk/java/awt/color/CMMExceptionMessage.java b/test/jdk/java/awt/color/CMMExceptionMessage.java new file mode 100644 index 00000000000..175ce5e38c4 --- /dev/null +++ b/test/jdk/java/awt/color/CMMExceptionMessage.java @@ -0,0 +1,48 @@ +/* + * Copyright Amazon.com Inc. 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.CMMException; +import java.util.Objects; + +/** + * @test + * @bug 6211126 + * @summary Checks basic functionality of java.awt.color.CMMException + */ +public final class CMMExceptionMessage { + + public static void main(String[] args) { + test(null); + test(""); + test("CMMExceptionMessage"); + } + + private static void test(String expected) { + CMMException e = new CMMException(expected); + if (!Objects.equals(e.getMessage(), expected)) { + System.err.println("Expected message: " + expected); + System.err.println("Actual message: " + e.getMessage()); + throw new RuntimeException(); + } + } +} diff --git a/test/jdk/java/awt/color/ICC_ColorSpace/ExpectedNPEOnNull.java b/test/jdk/java/awt/color/ICC_ColorSpace/ExpectedNPEOnNull.java new file mode 100644 index 00000000000..3eadd74bf30 --- /dev/null +++ b/test/jdk/java/awt/color/ICC_ColorSpace/ExpectedNPEOnNull.java @@ -0,0 +1,73 @@ +/* + * Copyright Amazon.com Inc. 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.ColorSpace; +import java.awt.color.ICC_ColorSpace; + +/** + * @test + * @bug 6211126 6211139 + */ +public final class ExpectedNPEOnNull { + + public static void main(String[] args) { + try { + new ICC_ColorSpace(null); + throw new RuntimeException("NPE is expected"); + } catch (NullPointerException ignored) { + // expected + } + test(ICC_ColorSpace.getInstance(ColorSpace.CS_sRGB)); + test(ICC_ColorSpace.getInstance(ColorSpace.CS_LINEAR_RGB)); + test(ICC_ColorSpace.getInstance(ColorSpace.CS_CIEXYZ)); + test(ICC_ColorSpace.getInstance(ColorSpace.CS_PYCC)); + test(ICC_ColorSpace.getInstance(ColorSpace.CS_GRAY)); + } + + private static void test(ColorSpace cs) { + try { + cs.toRGB(null); + throw new RuntimeException("NPE is expected"); + } catch (NullPointerException ignored) { + // expected + } + try { + cs.fromRGB(null); + throw new RuntimeException("NPE is expected"); + } catch (NullPointerException ignored) { + // expected + } + try { + cs.toCIEXYZ(null); + throw new RuntimeException("NPE is expected"); + } catch (NullPointerException ignored) { + // expected + } + try { + cs.fromCIEXYZ(null); + throw new RuntimeException("NPE is expected"); + } catch (NullPointerException ignored) { + // expected + } + } +} diff --git a/test/jdk/java/awt/color/ProfileDataExceptionMessage.java b/test/jdk/java/awt/color/ProfileDataExceptionMessage.java new file mode 100644 index 00000000000..d0aaecc9386 --- /dev/null +++ b/test/jdk/java/awt/color/ProfileDataExceptionMessage.java @@ -0,0 +1,48 @@ +/* + * Copyright Amazon.com Inc. 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.ProfileDataException; +import java.util.Objects; + +/** + * @test + * @bug 6211126 + * @summary Checks basic functionality of java.awt.color.ProfileDataException + */ +public final class ProfileDataExceptionMessage { + + public static void main(String[] args) { + test(null); + test(""); + test("ProfileDataExceptionMessage"); + } + + private static void test(String expected) { + ProfileDataException e = new ProfileDataException(expected); + if (!Objects.equals(e.getMessage(), expected)) { + System.err.println("Expected message: " + expected); + System.err.println("Actual message: " + e.getMessage()); + throw new RuntimeException(); + } + } +}