You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by ke...@apache.org on 2002/09/16 09:35:47 UTC
cvs commit: xml-fop/src/org/apache/fop/area AreaTree.java PageViewport.java
keiron 2002/09/16 00:35:47
Modified: src/org/apache/fop/area AreaTree.java PageViewport.java
Log:
fixed npe when a page has several forward links
Submitted by: Rainer Garus <ra...@arcor.de>
Revision Changes Path
1.9 +12 -11 xml-fop/src/org/apache/fop/area/AreaTree.java
Index: AreaTree.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/area/AreaTree.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- AreaTree.java 9 Sep 2002 05:58:14 -0000 1.8
+++ AreaTree.java 16 Sep 2002 07:35:46 -0000 1.9
@@ -12,6 +12,7 @@
import java.util.ArrayList;
import java.util.List;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Iterator;
/**
@@ -99,10 +100,10 @@
}
list.add(pv);
- List todo = (List)resolve.get(id);
+ HashSet todo = (HashSet)resolve.get(id);
if (todo != null) {
- for (int count = 0; count < todo.size(); count++) {
- Resolveable res = (Resolveable)todo.get(count);
+ for (Iterator iter = todo.iterator(); iter.hasNext();) {
+ Resolveable res = (Resolveable)iter.next();
res.resolve(id, list);
}
resolve.remove(id);
@@ -124,9 +125,9 @@
* @param res the Resolveable object to resolve
*/
public void addUnresolvedID(String id, Resolveable res) {
- ArrayList todo = (ArrayList)resolve.get(id);
+ HashSet todo = (HashSet)resolve.get(id);
if (todo == null) {
- todo = new ArrayList();
+ todo = new HashSet();
resolve.put(id, todo);
}
todo.add(res);
@@ -147,9 +148,9 @@
if (idLocations.containsKey(ids[count])) {
res.resolve(ids[count], (ArrayList)idLocations.get(ids[count]));
} else {
- ArrayList todo = (ArrayList)resolve.get(ids[count]);
+ HashSet todo = (HashSet)resolve.get(ids[count]);
if (todo == null) {
- todo = new ArrayList();
+ todo = new HashSet();
resolve.put(ids[count], todo);
}
todo.add(ext);
@@ -179,9 +180,9 @@
public void endDocument() {
for (Iterator iter = resolve.keySet().iterator(); iter.hasNext();) {
String id = (String)iter.next();
- ArrayList list = (ArrayList)resolve.get(id);
- for (int count = 0; count < list.size(); count++) {
- Resolveable res = (Resolveable)list.get(count);
+ HashSet list = (HashSet)resolve.get(id);
+ for (Iterator resIter = list.iterator(); resIter.hasNext();) {
+ Resolveable res = (Resolveable)resIter.next();
if (!res.isResolved()) {
res.resolve(id, null);
}
1.8 +13 -9 xml-fop/src/org/apache/fop/area/PageViewport.java
Index: PageViewport.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/area/PageViewport.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- PageViewport.java 9 Sep 2002 05:58:14 -0000 1.7
+++ PageViewport.java 16 Sep 2002 07:35:46 -0000 1.8
@@ -139,17 +139,21 @@
}
pendingResolved.put(id, pages);
} else {
- List todo = (List)unresolved.get(id);
- if (todo != null) {
- for (int count = 0; count < todo.size(); count++) {
- Resolveable res = (Resolveable)todo.get(count);
- res.resolve(id, pages);
+ if (unresolved != null) {
+ List todo = (List)unresolved.get(id);
+ if (todo != null) {
+ for (int count = 0; count < todo.size(); count++) {
+ Resolveable res = (Resolveable)todo.get(count);
+ res.resolve(id, pages);
+ }
}
}
}
- unresolved.remove(id);
- if (unresolved.isEmpty()) {
- unresolved = null;
+ if (unresolved != null) {
+ unresolved.remove(id);
+ if (unresolved.isEmpty()) {
+ unresolved = null;
+ }
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-cvs-help@xml.apache.org