Author: jeremias
Date: Mon Feb 18 01:41:03 2008
New Revision: 628668

URL: http://svn.apache.org/viewvc?rev=628668&view=rev
Log:
Extract original exception in BasePDFTestCase.java. They are normally embedded 
in a TransformerException and sometimes additionally in a SAXException 
(depending on the JAXP implementation).
Restore validation for Base14 font check when PDF/A is active. Got lost when I 
refactored to generic structures in the PDF library.

Modified:
    xmlgraphics/fop/trunk/src/java/org/apache/fop/pdf/PDFFont.java
    
xmlgraphics/fop/trunk/test/java/org/apache/fop/render/pdf/BasePDFTestCase.java

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/pdf/PDFFont.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/pdf/PDFFont.java?rev=628668&r1=628667&r2=628668&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/pdf/PDFFont.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/pdf/PDFFont.java Mon Feb 18 
01:41:03 2008
@@ -19,6 +19,9 @@
  
 package org.apache.fop.pdf;
 
+import java.io.IOException;
+import java.io.OutputStream;
+
 import org.apache.fop.fonts.FontType;
 
 /**
@@ -162,6 +165,12 @@
                     + " fonts, have to be embedded! Offending font: " + 
getBaseFont());
             }
         }
+    }
+
+    /** [EMAIL PROTECTED] */
+    protected int output(OutputStream stream) throws IOException {
+        validate();
+        return super.output(stream);
     }
     
 }

Modified: 
xmlgraphics/fop/trunk/test/java/org/apache/fop/render/pdf/BasePDFTestCase.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/render/pdf/BasePDFTestCase.java?rev=628668&r1=628667&r2=628668&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/test/java/org/apache/fop/render/pdf/BasePDFTestCase.java 
(original)
+++ 
xmlgraphics/fop/trunk/test/java/org/apache/fop/render/pdf/BasePDFTestCase.java 
Mon Feb 18 01:41:03 2008
@@ -23,12 +23,16 @@
 
 import javax.xml.transform.Source;
 import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
 import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.sax.SAXResult;
 import javax.xml.transform.stream.StreamSource;
 
+import org.xml.sax.SAXException;
+
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.output.ByteArrayOutputStream;
+
 import org.apache.fop.AbstractFOPTestCase;
 import org.apache.fop.apps.FOUserAgent;
 import org.apache.fop.apps.Fop;
@@ -78,21 +82,37 @@
      * @throws Exception if the conversion fails
      */
     protected byte[] convertFO(File foFile, FOUserAgent ua, boolean 
dumpPdfFile)
-            throws Exception {
+             throws Exception {
         ByteArrayOutputStream baout = new ByteArrayOutputStream();
         Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, ua, baout);
         Transformer transformer = tFactory.newTransformer();
         Source src = new StreamSource(foFile);
         SAXResult res = new SAXResult(fop.getDefaultHandler());
-        transformer.transform(src, res);
-        final byte[] result = baout.toByteArray();
-        if (dumpPdfFile) {
-            final File outFile = new File(foFile.getParentFile(), 
foFile.getName() + ".pdf");
-            FileUtils.writeByteArrayToFile(outFile, result);
+        try {
+            transformer.transform(src, res);
+            final byte[] result = baout.toByteArray();
+            if (dumpPdfFile) {
+                final File outFile = new File(foFile.getParentFile(), 
foFile.getName() + ".pdf");
+                FileUtils.writeByteArrayToFile(outFile, result);
+            }
+            return result;
+        } catch (TransformerException e) {
+            throw extractOriginalException(e);
         }
-        return result;
     }
 
+    private static Exception extractOriginalException(Exception e) {
+        if (e.getCause() != null) {
+            return extractOriginalException((Exception)e.getCause());
+        } else if (e instanceof SAXException) {
+            SAXException se = (SAXException)e;
+            if (se.getException() != null) {
+                return extractOriginalException(se.getException());
+            }
+        }
+        return e;
+    }
+    
     /** 
      * get FOP config File 
      * @return user config file to be used for testing 



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to