]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
Avert a few possible NPEs, ex. rgc-icc() and named-color() on fo:root.
authorJeremias Maerki <jeremias@apache.org>
Fri, 29 Apr 2011 09:07:58 +0000 (09:07 +0000)
committerJeremias Maerki <jeremias@apache.org>
Fri, 29 Apr 2011 09:07:58 +0000 (09:07 +0000)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1097736 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/fop/fo/expr/ICCColorFunction.java
src/java/org/apache/fop/fo/expr/NamedColorFunction.java
src/java/org/apache/fop/fo/properties/PropertyMaker.java

index 1235f4c4f828477db4f7d676ec169ece5b4ea2d4..eaf932961b4816961c641a50b433f35d95428b69 100644 (file)
@@ -41,6 +41,7 @@ class ICCColorFunction extends FunctionBase {
     }
 
     /** {@inheritDoc} */
+    @Override
     public PercentBase getPercentBase() {
         return new ICCPercentBase();
     }
@@ -50,7 +51,9 @@ class ICCColorFunction extends FunctionBase {
                          PropertyInfo pInfo) throws PropertyException {
         // Map color profile NCNAME to src from declarations/color-profile element
         String colorProfileName = args[3].getString();
-        Declarations decls = pInfo.getFO().getRoot().getDeclarations();
+        Declarations decls = (pInfo.getFO() != null
+                ? pInfo.getFO().getRoot().getDeclarations()
+                : null);
         ColorProfile cp = null;
         if (decls == null) {
             //function used in a color-specification
index 53b9effdb708cf7c913aa9c45c97f923c8aebd67..e4f8bc643f8180960e01c6f698909c8d22d82516 100644 (file)
@@ -40,6 +40,7 @@ class NamedColorFunction extends FunctionBase {
     }
 
     /** {@inheritDoc} */
+    @Override
     public PercentBase getPercentBase() {
         return new NamedPercentBase();
     }
@@ -51,7 +52,9 @@ class NamedColorFunction extends FunctionBase {
         String colorProfileName = args[3].getString();
         String colorName = args[4].getString();
 
-        Declarations decls = pInfo.getFO().getRoot().getDeclarations();
+        Declarations decls = (pInfo.getFO() != null
+                ? pInfo.getFO().getRoot().getDeclarations()
+                : null);
         ColorProfile cp = null;
         if (decls != null) {
             cp = decls.getColorProfile(colorProfileName);
index 0f463211069b6a132a5488f0c948957e3d79647a..ba17b1850af0cc78d921a9a7571c56b218560603 100644 (file)
@@ -445,7 +445,9 @@ public class PropertyMaker implements Cloneable {
             }
             return newProp;
         } catch (PropertyException propEx) {
-            propEx.setLocator(fo.getLocator());
+            if (fo != null) {
+                propEx.setLocator(fo.getLocator());
+            }
             propEx.setPropertyName(getName());
             throw propEx;
         }
@@ -653,6 +655,7 @@ public class PropertyMaker implements Cloneable {
      * subproperty makers of the generic compound makers.
      * {@inheritDoc}
      */
+    @Override
     public Object clone() {
         try {
             return super.clone();