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)) {


Reply via email to