aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas L. Delmelle <adelmelle@apache.org>2011-03-27 14:32:21 +0000
committerAndreas L. Delmelle <adelmelle@apache.org>2011-03-27 14:32:21 +0000
commit8ba2be7b375fffc306ff6eba5e29aa90baae2fca (patch)
tree743963893cf343bea2679bde3096a68f6bc39879
parenta1bfc206713cecbf81025ce7e8dc4dde4be1c43f (diff)
downloadxmlgraphics-fop-8ba2be7b375fffc306ff6eba5e29aa90baae2fca.tar.gz
xmlgraphics-fop-8ba2be7b375fffc306ff6eba5e29aa90baae2fca.zip
Properly fix the case of unresolved bookmarks for the intermediate format: bypass serialization of the bookmarks, instead of only its action.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1085944 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--src/java/org/apache/fop/render/intermediate/IFSerializer.java17
-rw-r--r--test/layoutengine/standard-testcases/bookmarks_1.xml2
2 files changed, 9 insertions, 10 deletions
diff --git a/src/java/org/apache/fop/render/intermediate/IFSerializer.java b/src/java/org/apache/fop/render/intermediate/IFSerializer.java
index 64bae054c..d906d4189 100644
--- a/src/java/org/apache/fop/render/intermediate/IFSerializer.java
+++ b/src/java/org/apache/fop/render/intermediate/IFSerializer.java
@@ -709,7 +709,9 @@ public class IFSerializer extends AbstractXMLWritingIFDocumentHandler
Iterator iter = tree.getBookmarks().iterator();
while (iter.hasNext()) {
Bookmark b = (Bookmark)iter.next();
- serializeBookmark(b);
+ if (b.getAction() != null) {
+ serializeBookmark(b);
+ }
}
handler.endElement(DocumentNavigationExtensionConstants.BOOKMARK_TREE);
} catch (SAXException e) {
@@ -718,25 +720,22 @@ public class IFSerializer extends AbstractXMLWritingIFDocumentHandler
}
private void serializeBookmark(Bookmark bookmark) throws SAXException, IFException {
- if (bookmark.getAction() != null) {
- noteAction(bookmark.getAction());
- }
+ noteAction(bookmark.getAction());
AttributesImpl atts = new AttributesImpl();
atts.addAttribute(null, "title", "title", XMLUtil.CDATA, bookmark.getTitle());
atts.addAttribute(null, "starting-state", "starting-state",
XMLUtil.CDATA, bookmark.isShown() ? "show" : "hide");
handler.startElement(DocumentNavigationExtensionConstants.BOOKMARK, atts);
- if (bookmark.getAction() != null) {
- serializeXMLizable(bookmark.getAction());
- }
+ serializeXMLizable(bookmark.getAction());
Iterator iter = bookmark.getChildBookmarks().iterator();
while (iter.hasNext()) {
Bookmark b = (Bookmark)iter.next();
- serializeBookmark(b);
+ if (b.getAction() != null) {
+ serializeBookmark(b);
+ }
}
handler.endElement(DocumentNavigationExtensionConstants.BOOKMARK);
-
}
/** {@inheritDoc} */
diff --git a/test/layoutengine/standard-testcases/bookmarks_1.xml b/test/layoutengine/standard-testcases/bookmarks_1.xml
index 5b9b23718..85cb80cc3 100644
--- a/test/layoutengine/standard-testcases/bookmarks_1.xml
+++ b/test/layoutengine/standard-testcases/bookmarks_1.xml
@@ -44,10 +44,10 @@
</fo:bookmark>
<!-- add a reference to a non-existing id; should only trigger a warning
see Bugzilla 50593
+ -->
<fo:bookmark internal-destination="chapterX-secX">
<fo:bookmark-title>Section X</fo:bookmark-title>
</fo:bookmark>
- -->
</fo:bookmark>
<fo:bookmark internal-destination="bc">
<fo:bookmark-title>Fixed Block Container</fo:bookmark-title>