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