]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
Fixed NPE with when outputting AreaTree also improved base URI handling for CLI
authorMehdi Houshmand <mehdi@apache.org>
Fri, 6 Jul 2012 11:18:04 +0000 (11:18 +0000)
committerMehdi Houshmand <mehdi@apache.org>
Fri, 6 Jul 2012 11:18:04 +0000 (11:18 +0000)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1358130 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/fop/cli/CommandLineOptions.java
src/java/org/apache/fop/render/PrintRendererConfigurator.java

index 5c561f9a5e1667a9bba56a3517ead04c8c3a6d01..313201abd48bfb73e6e6f9c969ea0e26a0dea07f 100644 (file)
@@ -24,6 +24,7 @@ import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.PrintStream;
+import java.net.URI;
 import java.util.Locale;
 import java.util.Map;
 import java.util.Vector;
@@ -137,6 +138,8 @@ public class CommandLineOptions {
 
     private boolean flushCache = false;
 
+    private URI baseURI = new File(".").toURI();
+
     /**
      * Construct a command line option object.
      */
@@ -465,6 +468,7 @@ public class CommandLineOptions {
                 this.useStdIn = true;
             } else {
                 fofile = new File(filename);
+                baseURI = fofile.toURI();
             }
             return 1;
         }
@@ -494,6 +498,7 @@ public class CommandLineOptions {
                 this.useStdIn = true;
             } else {
                 xmlfile = new File(filename);
+                baseURI = xmlfile.toURI();
             }
             return 1;
         }
@@ -783,6 +788,7 @@ public class CommandLineOptions {
                 this.useStdIn = true;
             } else {
                 areatreefile = new File(filename);
+                baseURI = areatreefile.toURI();
             }
             return 1;
         }
@@ -799,6 +805,7 @@ public class CommandLineOptions {
                 this.useStdIn = true;
             } else {
                 iffile = new File(filename);
+                baseURI = iffile.toURI();
             }
             return 1;
         }
@@ -815,6 +822,7 @@ public class CommandLineOptions {
                 this.useStdIn = true;
             } else {
                 imagefile = new File(filename);
+                baseURI = imagefile.toURI();
             }
             return 1;
         }
@@ -1030,7 +1038,7 @@ public class CommandLineOptions {
     private void setUserConfig() throws FOPException, IOException {
         FopFactoryBuilder fopFactoryBuilder;
         if (userConfigFile == null) {
-            fopFactoryBuilder = new FopFactoryBuilder(fofile.toURI());
+            fopFactoryBuilder = new FopFactoryBuilder(baseURI);
             fopFactoryBuilder.setStrictFOValidation(strictValidation);
             fopFactoryBuilder.setTargetResolution(targetResolution);
             fopFactoryBuilder.setComplexScriptFeatures(useComplexScriptFeatures);
index 8de2d1a92d263919cd3659ded98be9ceea184b8f..96da591c12df9c13470234a54ca5bcd7baa6ae33 100644 (file)
@@ -36,6 +36,7 @@ import org.apache.fop.fonts.FontManager;
 import org.apache.fop.render.RendererConfig.RendererConfigParser;
 import org.apache.fop.render.intermediate.IFDocumentHandler;
 import org.apache.fop.render.intermediate.IFDocumentHandlerConfigurator;
+import org.apache.fop.render.pdf.PDFRendererConfig.PDFRendererConfigParser;
 
 /**
  * Base Print renderer configurator (mostly handles font configuration)
@@ -166,7 +167,9 @@ public abstract class PrintRendererConfigurator extends AbstractRendererConfigur
     }
 
     public static PrintRendererConfigurator createDefaultInstance(FOUserAgent userAgent) {
-        return new PrintRendererConfigurator(userAgent, null) {
+        // Since PDF is the default output is PDF, it makes sense for the default config parser
+        // to also be the PDF flavour
+        return new PrintRendererConfigurator(userAgent, new PDFRendererConfigParser()) {
             @Override
             protected List<FontCollection> getDefaultFontCollection() {
                 throw new UnsupportedOperationException();