You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ja...@apache.org on 2014/09/23 20:43:41 UTC

svn commit: r1627113 - in /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox: pdmodel/documentinterchange/prepress/ pdmodel/graphics/color/ pdmodel/interactive/documentnavigation/outline/ rendering/ util/operator/color/

Author: jahewson
Date: Tue Sep 23 18:43:41 2014
New Revision: 1627113

URL: http://svn.apache.org/r1627113
Log:
PDFBOX-2328: Give PDColor access to its underling PDColorSpace

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/prepress/PDBoxStyle.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalGray.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalRGB.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDColor.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceCMYK.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceGray.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceN.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceRGB.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDIndexed.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDLab.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDSeparation.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/outline/PDOutlineItem.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/color/SetColor.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/prepress/PDBoxStyle.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/prepress/PDBoxStyle.java?rev=1627113&r1=1627112&r2=1627113&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/prepress/PDBoxStyle.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/prepress/PDBoxStyle.java Tue Sep 23 18:43:41 2014
@@ -23,6 +23,7 @@ import org.apache.pdfbox.cos.COSInteger;
 import org.apache.pdfbox.pdmodel.common.COSObjectable;
 import org.apache.pdfbox.pdmodel.graphics.PDLineDashPattern;
 import org.apache.pdfbox.pdmodel.graphics.color.PDColor;
+import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceRGB;
 
 /**
  * The Box Style specifies visual characteristics for displaying box areas.
@@ -99,7 +100,7 @@ public class PDBoxStyle implements COSOb
             colorValues.add( COSInteger.ZERO );
             dictionary.setItem( "C", colorValues );
         }
-        PDColor color = new PDColor(colorValues.toFloatArray());
+        PDColor color = new PDColor(colorValues.toFloatArray(), PDDeviceRGB.INSTANCE);
         return color;
     }
 

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalGray.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalGray.java?rev=1627113&r1=1627112&r2=1627113&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalGray.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalGray.java Tue Sep 23 18:43:41 2014
@@ -28,7 +28,7 @@ import org.apache.pdfbox.cos.COSName;
  */
 public final class PDCalGray extends PDCalRGB
 {
-    private static final PDColor INITIAL_COLOR = new PDColor(new float[] { 0 });
+    private final PDColor initialColor = new PDColor(new float[] { 0 }, this);
 
     /**
      * Create a new CalGray color space.
@@ -72,7 +72,7 @@ public final class PDCalGray extends PDC
     @Override
     public PDColor getInitialColor()
     {
-        return INITIAL_COLOR;
+        return initialColor;
     }
 
     @Override

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalRGB.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalRGB.java?rev=1627113&r1=1627112&r2=1627113&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalRGB.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalRGB.java Tue Sep 23 18:43:41 2014
@@ -33,9 +33,8 @@ import org.apache.pdfbox.util.Matrix;
  */
 public class PDCalRGB extends PDCIEBasedColorSpace
 {
-    private static final PDColor INITIAL_COLOR = new PDColor(new float[] { 0, 0, 0 });
-
     protected COSDictionary dictionary;
+    private final PDColor initialColor = new PDColor(new float[] { 0, 0, 0 }, this);
 
     /**
      * Creates a new CalRGB color space.
@@ -79,7 +78,7 @@ public class PDCalRGB extends PDCIEBased
     @Override
     public PDColor getInitialColor()
     {
-        return INITIAL_COLOR;
+        return initialColor;
     }
 
     @Override

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDColor.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDColor.java?rev=1627113&r1=1627112&r2=1627113&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDColor.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDColor.java Tue Sep 23 18:43:41 2014
@@ -36,19 +36,21 @@ import java.util.Arrays;
 public final class PDColor
 {
     /** The color black in the DeviceGray color space. */
-    public static PDColor DEVICE_GRAY_BLACK = new PDColor(new float[] { 0 });
+    public static PDColor DEVICE_GRAY_BLACK = new PDColor(new float[] { 0 }, PDDeviceGray.INSTANCE);
 
     /** A pattern which leaves no marks on the page. */
     public static PDColor EMPTY_PATTERN = new PDColor(new float[] { }, null);
 
     private final float[] components;
     private final String patternName;
+    private final PDColorSpace colorSpace;
 
     /**
      * Creates a PDColor containing the given color value.
      * @param array a COS array containing the color value
+     * @param colorSpace color space in which the color value is defined
      */
-    public PDColor(COSArray array)
+    public PDColor(COSArray array, PDColorSpace colorSpace)
     {
         if (array.get(array.size() - 1) instanceof COSName)
         {
@@ -72,37 +74,44 @@ public final class PDColor
             }
             patternName = null;
         }
+        this.colorSpace = colorSpace;
     }
 
     /**
      * Creates a PDColor containing the given color component values.
      * @param components array of color component values
+     * @param colorSpace color space in which the components are defined
      */
-    public PDColor(float[] components)
+    public PDColor(float[] components, PDColorSpace colorSpace)
     {
         this.components = components.clone();
         this.patternName = null;
+        this.colorSpace = colorSpace;
     }
 
     /**
      * Creates a PDColor containing the given pattern name.
      * @param patternName the name of a pattern in a pattern dictionary
+     * @param colorSpace color space in which the pattern is defined
      */
-    public PDColor(String patternName)
+    public PDColor(String patternName, PDColorSpace colorSpace)
     {
         this.components = new float[0];
         this.patternName = patternName;
+        this.colorSpace = colorSpace;
     }
 
     /**
      * Creates a PDColor containing the given color component values and pattern name.
      * @param components array of color component values
      * @param patternName the name of a pattern in a pattern dictionary
+     * @param colorSpace color space in which the pattern/components are defined
      */
-    public PDColor(float[] components, String patternName)
+    public PDColor(float[] components, String patternName, PDColorSpace colorSpace)
     {
         this.components = components.clone();
         this.patternName = patternName;
+        this.colorSpace = colorSpace;
     }
 
     /**
@@ -134,12 +143,11 @@ public final class PDColor
 
     /**
      * Returns the packed RGB value for this color, if any.
-     * @param colorSpace color space
      * @return RGB
-     * @throws IOException
-     * @throws java.lang.IllegalStateException if this color value is a pattern.
+     * @throws IOException if the color conversion fails
+     * @throws IllegalStateException if this color value is a pattern.
      */
-    public int toRGB(PDColorSpace colorSpace) throws IOException
+    public int toRGB() throws IOException
     {
         float[] floats = colorSpace.toRGB(components);
         int r = Math.round(floats[0] * 255);
@@ -163,6 +171,14 @@ public final class PDColor
         return array;
     }
 
+    /**
+     * Returns the color space in which this color value is defined.
+     */
+    public PDColorSpace getColorSpace()
+    {
+        return colorSpace;
+    }
+
     @Override
     public String toString()
     {

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceCMYK.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceCMYK.java?rev=1627113&r1=1627112&r2=1627113&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceCMYK.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceCMYK.java Tue Sep 23 18:43:41 2014
@@ -50,7 +50,7 @@ public class PDDeviceCMYK extends PDDevi
         }
     }
 
-    private static final PDColor INITIAL_COLOR = new PDColor(new float[] { 0, 0, 0, 1 });
+    private final PDColor initialColor = new PDColor(new float[] { 0, 0, 0, 1 }, this);
     private final ICC_ColorSpace awtColorSpace;
 
     protected PDDeviceCMYK() throws IOException
@@ -112,7 +112,7 @@ public class PDDeviceCMYK extends PDDevi
     @Override
     public PDColor getInitialColor()
     {
-        return INITIAL_COLOR;
+        return initialColor;
     }
 
     @Override

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceGray.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceGray.java?rev=1627113&r1=1627112&r2=1627113&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceGray.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceGray.java Tue Sep 23 18:43:41 2014
@@ -32,7 +32,7 @@ public final class PDDeviceGray extends 
 {
     /** The single instance of this class. */
     public static final PDDeviceGray INSTANCE = new PDDeviceGray();
-    private static final PDColor INITIAL_COLOR = new PDColor(new float[] { 0 });
+    private static final PDColor INITIAL_COLOR = new PDColor(new float[] { 0 }, INSTANCE);
 
     private PDDeviceGray()
     {

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceN.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceN.java?rev=1627113&r1=1627112&r2=1627113&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceN.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceN.java Tue Sep 23 18:43:41 2014
@@ -100,7 +100,7 @@ public class PDDeviceN extends PDSpecial
         {
             initial[i] = 1;
         }
-        initialColor = new PDColor(initial);
+        initialColor = new PDColor(initial, this);
     }
 
     // initializes the color conversion cache

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceRGB.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceRGB.java?rev=1627113&r1=1627112&r2=1627113&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceRGB.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceRGB.java Tue Sep 23 18:43:41 2014
@@ -37,18 +37,18 @@ import java.io.IOException;
  */
 public final class PDDeviceRGB extends PDDeviceColorSpace
 {
-    private static final ColorSpace COLOR_SPACE_RGB = ColorSpace.getInstance(ColorSpace.CS_sRGB);
-    private static final PDColor INITIAL_COLOR = new PDColor(new float[] { 0, 0, 0 });
-
     /**  This is the single instance of this class. */
     public static final PDDeviceRGB INSTANCE = new PDDeviceRGB();
 
+    private final ColorSpace colorSpaceRGB = ColorSpace.getInstance(ColorSpace.CS_sRGB);
+    private final PDColor initialColor = new PDColor(new float[] { 0, 0, 0 }, this);
+
     private PDDeviceRGB()
     {
         // there is a JVM bug which results in a CMMException which appears to be a race
         // condition caused by lazy initialization of the color transform, so we perform
         // an initial color conversion while we're still in a static context, see PDFBOX-2184
-        COLOR_SPACE_RGB.toRGB(new float[] { 0, 0, 0 });
+        colorSpaceRGB.toRGB(new float[]{0, 0, 0});
     }
 
     @Override
@@ -74,19 +74,19 @@ public final class PDDeviceRGB extends P
     @Override
     public PDColor getInitialColor()
     {
-        return INITIAL_COLOR;
+        return initialColor;
     }
 
     @Override
     public float[] toRGB(float[] value)
     {
-        return COLOR_SPACE_RGB.toRGB(value);
+        return colorSpaceRGB.toRGB(value);
     }
 
     @Override
     public BufferedImage toRGBImage(WritableRaster raster) throws IOException
     {
-        ColorModel colorModel = new ComponentColorModel(COLOR_SPACE_RGB,
+        ColorModel colorModel = new ComponentColorModel(colorSpaceRGB,
                 false, false, Transparency.OPAQUE, raster.getDataBuffer().getDataType());
 
         return new BufferedImage(colorModel, raster, false, null);

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java?rev=1627113&r1=1627112&r2=1627113&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java Tue Sep 23 18:43:41 2014
@@ -115,7 +115,7 @@ public final class PDICCBased extends PD
             {
                 initial[c] = Math.max(0, getRangeForComponent(c).getMin());
             }
-            initialColor = new PDColor(initial);
+            initialColor = new PDColor(initial, this);
 
             // create a color in order to trigger a ProfileDataException
             // or CMMException due to invalid profiles, see PDFBOX-1295 and PDFBOX-1740

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDIndexed.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDIndexed.java?rev=1627113&r1=1627112&r2=1627113&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDIndexed.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDIndexed.java Tue Sep 23 18:43:41 2014
@@ -41,7 +41,7 @@ import org.apache.pdfbox.pdmodel.common.
  */
 public final class PDIndexed extends PDSpecialColorSpace
 {
-    private static final PDColor INITIAL_COLOR = new PDColor(new float[] { 0 });
+    private final PDColor initialColor = new PDColor(new float[] { 0 }, this);
 
     private COSArray array;
     private PDColorSpace baseColorSpace = null;
@@ -98,7 +98,7 @@ public final class PDIndexed extends PDS
     @Override
     public PDColor getInitialColor()
     {
-        return INITIAL_COLOR;
+        return initialColor;
     }
 
     //

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDLab.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDLab.java?rev=1627113&r1=1627112&r2=1627113&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDLab.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDLab.java Tue Sep 23 18:43:41 2014
@@ -199,7 +199,8 @@ public final class PDLab extends PDCIEBa
             initialColor = new PDColor(new float[] {
                     0,
                     Math.max(0, getARange().getMin()),
-                    Math.max(0, getBRange().getMin()) });
+                    Math.max(0, getBRange().getMin()) },
+                    this);
         }
         return initialColor;
     }

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDSeparation.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDSeparation.java?rev=1627113&r1=1627112&r2=1627113&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDSeparation.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDSeparation.java Tue Sep 23 18:43:41 2014
@@ -41,7 +41,7 @@ import org.apache.pdfbox.pdmodel.common.
  */
 public class PDSeparation extends PDSpecialColorSpace
 {
-    private static final PDColor INITIAL_COLOR = new PDColor(new float[] { 1 });
+    private final PDColor initialColor = new PDColor(new float[] { 1 }, this);
 
     // array indexes
     private static final int COLORANT_NAMES = 1;
@@ -94,7 +94,7 @@ public class PDSeparation extends PDSpec
     @Override
     public PDColor getInitialColor()
     {
-        return INITIAL_COLOR;
+        return initialColor;
     }
 
     @Override

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/outline/PDOutlineItem.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/outline/PDOutlineItem.java?rev=1627113&r1=1627112&r2=1627113&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/outline/PDOutlineItem.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/outline/PDOutlineItem.java Tue Sep 23 18:43:41 2014
@@ -30,6 +30,7 @@ import org.apache.pdfbox.pdmodel.PDDocum
 import org.apache.pdfbox.pdmodel.PDPage;
 import org.apache.pdfbox.pdmodel.documentinterchange.logicalstructure.PDStructureElement;
 import org.apache.pdfbox.pdmodel.graphics.color.PDColor;
+import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceRGB;
 import org.apache.pdfbox.pdmodel.interactive.action.PDActionFactory;
 import org.apache.pdfbox.pdmodel.interactive.action.PDAction;
 import org.apache.pdfbox.pdmodel.interactive.action.PDActionGoTo;
@@ -340,7 +341,7 @@ public class PDOutlineItem extends PDOut
             csValues.growToSize( 3, new COSFloat( 0 ) );
             node.setItem( COSName.C, csValues );
         }
-        retval = new PDColor(csValues.toFloatArray());
+        retval = new PDColor(csValues.toFloatArray(), PDDeviceRGB.INSTANCE);
         return retval;
     }
 

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java?rev=1627113&r1=1627112&r2=1627113&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java Tue Sep 23 18:43:41 2014
@@ -645,12 +645,6 @@ public class PageDrawer extends PDFGraph
     {
         graphics.setComposite(getGraphicsState().getStrokingJavaComposite());
         Paint strokingPaint = getStrokingPaint();
-        if (strokingPaint == null)
-        {
-            LOG.info("ColorSpace " + getGraphicsState().getStrokingColorSpace().getName() +
-                     " doesn't provide a stroking color, using white instead!");
-            strokingPaint = Color.WHITE;// ((PageDrawer)context).strokePath();
-        }
         graphics.setPaint(strokingPaint);
         graphics.setStroke(getStroke());
         setClip();
@@ -663,12 +657,6 @@ public class PageDrawer extends PDFGraph
     {
         graphics.setComposite(getGraphicsState().getNonStrokingJavaComposite());
         Paint nonStrokingPaint = getNonStrokingPaint();
-        if (nonStrokingPaint == null)
-        {
-            LOG.info("ColorSpace " + getGraphicsState().getNonStrokingColorSpace().getName() +
-                    " doesn't provide a non-stroking color, using white instead!");
-            nonStrokingPaint = Color.WHITE;
-        }
         graphics.setPaint(nonStrokingPaint);
         setClip();
         linePath.setWindingRule(windingRule);

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/color/SetColor.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/color/SetColor.java?rev=1627113&r1=1627112&r2=1627113&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/color/SetColor.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/color/SetColor.java Tue Sep 23 18:43:41 2014
@@ -38,7 +38,7 @@ public abstract class SetColor extends O
     {
         COSArray array = new COSArray();
         array.addAll(arguments);
-        setColor(new PDColor(array));
+        setColor(new PDColor(array, getColorSpace()));
     }
 
     /**