]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
Bugzilla #36871:
authorJeremias Maerki <jeremias@apache.org>
Tue, 4 Oct 2005 13:07:43 +0000 (13:07 +0000)
committerJeremias Maerki <jeremias@apache.org>
Tue, 4 Oct 2005 13:07:43 +0000 (13:07 +0000)
Better error messages when invalid XSL-FO is sent to FOP.

git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@293596 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/fop/fo/FOTreeBuilder.java

index 58942036fe3a6d963055a00981b17efaeba6c5ed..595dc05661e286d38c9c6cfd3be9ed76f58f56d9 100644 (file)
@@ -247,8 +247,10 @@ public class FOTreeBuilder extends DefaultHandler {
         if (rootFObj == null) {
             if (!namespaceURI.equals(FOElementMapping.URI) 
                 || !localName.equals("root")) {
-                throw new SAXException(new IllegalArgumentException(
-                    "Error:  First element must be fo:root formatting object"));
+                throw new SAXException(new ValidationException(
+                    "Error: First element must be the fo:root formatting object. Found " 
+                        + FONode.getNodeString(namespaceURI, localName) + " instead."
+                        + " Please make sure you're producing a valid XSL-FO document."));
             }
         } else { // check that incoming node is valid for currentFObj
             if (namespaceURI.equals(FOElementMapping.URI)) {
@@ -293,6 +295,10 @@ public class FOTreeBuilder extends DefaultHandler {
      */
     public void endElement(String uri, String localName, String rawName)
                 throws FOPException {
+        if (currentFObj == null) {
+            throw new FOPException("No current FO is available. The input document may not be "
+                    + "a valid XSL-FO document.");
+        }
         currentFObj.endOfNode();
 
         if (currentPropertyList.getFObj() == currentFObj) {