8180877: More deeply colored ICC spaces
Reviewed-by: serb, rhalade, mschoene
diff --git a/jdk/src/share/classes/java/awt/color/ICC_ColorSpace.java b/jdk/src/share/classes/java/awt/color/ICC_ColorSpace.java
index ee2ed1a..7d32326 100644
--- a/jdk/src/share/classes/java/awt/color/ICC_ColorSpace.java
+++ b/jdk/src/share/classes/java/awt/color/ICC_ColorSpace.java
@@ -128,6 +128,18 @@
}
/**
+ * Validate ICC_ColorSpace read from an object input stream
+ */
+ private void readObject(java.io.ObjectInputStream s)
+ throws ClassNotFoundException, java.io.IOException {
+
+ s.defaultReadObject();
+ if (thisProfile == null) {
+ thisProfile = ICC_Profile.getInstance(ColorSpace.CS_sRGB);
+ }
+ }
+
+ /**
* Returns the ICC_Profile for this ICC_ColorSpace.
* @return the ICC_Profile for this ICC_ColorSpace.
*/
diff --git a/jdk/src/share/native/sun/java2d/cmm/lcms/LCMS.c b/jdk/src/share/native/sun/java2d/cmm/lcms/LCMS.c
index 8e687de..26c1c94 100644
--- a/jdk/src/share/native/sun/java2d/cmm/lcms/LCMS.c
+++ b/jdk/src/share/native/sun/java2d/cmm/lcms/LCMS.c
@@ -644,7 +644,12 @@
{
jclass clsLcmsProfile;
jobject cmmProfile;
- jfieldID fid = (*env)->GetFieldID (env,
+ jfieldID fid;
+
+ if (pf == NULL) {
+ return NULL;
+ }
+ fid = (*env)->GetFieldID (env,
(*env)->GetObjectClass(env, pf),
"cmmProfile", "Lsun/java2d/cmm/Profile;");
if (fid == NULL) {