You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2012/03/30 17:58:30 UTC

svn commit: r1307495 - in /pdfbox/trunk/preflight/src/main/java/org/apache/padaf/preflight: graphics/ShadingPattern.java graphics/color/StandardColorSpaceHelper.java helpers/CatalogValidationHelper.java

Author: leleueri
Date: Fri Mar 30 15:58:30 2012
New Revision: 1307495

URL: http://svn.apache.org/viewvc?rev=1307495&view=rev
Log:
[PDFBOX-1264] Test if the PDDeviceNAtribute is null and fix a bug on Shading Pattern validation that was hidden by the NullPointer

Modified:
    pdfbox/trunk/preflight/src/main/java/org/apache/padaf/preflight/graphics/ShadingPattern.java
    pdfbox/trunk/preflight/src/main/java/org/apache/padaf/preflight/graphics/color/StandardColorSpaceHelper.java
    pdfbox/trunk/preflight/src/main/java/org/apache/padaf/preflight/helpers/CatalogValidationHelper.java

Modified: pdfbox/trunk/preflight/src/main/java/org/apache/padaf/preflight/graphics/ShadingPattern.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/padaf/preflight/graphics/ShadingPattern.java?rev=1307495&r1=1307494&r2=1307495&view=diff
==============================================================================
--- pdfbox/trunk/preflight/src/main/java/org/apache/padaf/preflight/graphics/ShadingPattern.java (original)
+++ pdfbox/trunk/preflight/src/main/java/org/apache/padaf/preflight/graphics/ShadingPattern.java Fri Mar 30 15:58:30 2012
@@ -90,13 +90,11 @@ public class ShadingPattern implements X
    * @return the ShadingPattern dictionary
    */
   protected COSDictionary getShadingDictionary(List<ValidationError> errors) {
-    if (!"Shading".equals(pattern.getNameAsString(COSName
-        .getPDFName(DICTIONARY_KEY_TYPE)))) {
-      COSBase shading = pattern
-          .getItem(COSName.getPDFName(PATTERN_KEY_SHADING));
+    if (pattern.getItem(COSName.getPDFName(PATTERN_KEY_SHADING_TYPE)) == null 
+    		&& !"Shading".equals(pattern.getNameAsString(COSName.getPDFName(DICTIONARY_KEY_TYPE)))) {
+      COSBase shading = pattern.getItem(COSName.getPDFName(PATTERN_KEY_SHADING));
       if (shading == null) {
-        errors
-            .add(new ValidationError(ERROR_GRAPHIC_INVALID_PATTERN_DEFINITION));
+        errors.add(new ValidationError(ERROR_GRAPHIC_INVALID_PATTERN_DEFINITION));
         return null;
       }
       return COSUtils.getAsDictionary(shading, cosDoc);

Modified: pdfbox/trunk/preflight/src/main/java/org/apache/padaf/preflight/graphics/color/StandardColorSpaceHelper.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/padaf/preflight/graphics/color/StandardColorSpaceHelper.java?rev=1307495&r1=1307494&r2=1307495&view=diff
==============================================================================
--- pdfbox/trunk/preflight/src/main/java/org/apache/padaf/preflight/graphics/color/StandardColorSpaceHelper.java (original)
+++ pdfbox/trunk/preflight/src/main/java/org/apache/padaf/preflight/graphics/color/StandardColorSpaceHelper.java Fri Mar 30 15:58:30 2012
@@ -48,6 +48,7 @@ import org.apache.pdfbox.cos.COSObject;
 import org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace;
 import org.apache.pdfbox.pdmodel.graphics.color.PDColorSpaceFactory;
 import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceN;
+import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceNAttributes;
 import org.apache.pdfbox.pdmodel.graphics.color.PDICCBased;
 import org.apache.pdfbox.pdmodel.graphics.color.PDIndexed;
 import org.apache.pdfbox.pdmodel.graphics.color.PDSeparation;
@@ -337,17 +338,19 @@ public class StandardColorSpaceHelper im
 				res = processAllColorSpace(altColor, result);
 			}
 
-			Map colorants = deviceN.getAttributes().getColorants();
 			int numberOfColorants = 0;
-			if (colorants != null) {
-				numberOfColorants = colorants.size();
-				for (Object col : colorants.values()) {
-					if (col != null) {
-						res = res && processAllColorSpace((PDColorSpace) col, result);
+			PDDeviceNAttributes attr = deviceN.getAttributes();
+			if (attr != null) {
+				Map colorants = attr.getColorants();
+				if (colorants != null) {
+					numberOfColorants = colorants.size();
+					for (Object col : colorants.values()) {
+						if (col != null) {
+							res = res && processAllColorSpace((PDColorSpace) col, result);
+						}
 					}
 				}
 			}
-
 			int numberOfComponents = deviceN.getNumberOfComponents();
 			if (numberOfColorants > MAX_DEVICE_N_LIMIT || numberOfComponents > MAX_DEVICE_N_LIMIT ) {
 				result.add(new ValidationError(ERROR_GRAPHIC_INVALID_COLOR_SPACE_TOO_MANY_COMPONENTS_DEVICEN, "DeviceN has too many tint components or colorants"));  

Modified: pdfbox/trunk/preflight/src/main/java/org/apache/padaf/preflight/helpers/CatalogValidationHelper.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/padaf/preflight/helpers/CatalogValidationHelper.java?rev=1307495&r1=1307494&r2=1307495&view=diff
==============================================================================
--- pdfbox/trunk/preflight/src/main/java/org/apache/padaf/preflight/helpers/CatalogValidationHelper.java (original)
+++ pdfbox/trunk/preflight/src/main/java/org/apache/padaf/preflight/helpers/CatalogValidationHelper.java Fri Mar 30 15:58:30 2012
@@ -298,7 +298,7 @@ public class CatalogValidationHelper ext
 					continue;
 				}
 
-				// TODO When Lazy mode will be added, this block should be uncommented to set result as warning.
+				// TODO [LAZY] When Lazy mode will be added, this block should be uncommented to set result as warning.
 //				if (!isStandardICCCharacterization(outputConditionIdentifier)) {
 //					String info = dictionary.getString(COSName.getPDFName(OUTPUT_INTENT_DICTIONARY_KEY_INFO));
 //					if (info == null || "".equals(info)) {