Author: gadams
Date: Sun Apr  8 23:48:11 2012
New Revision: 1311120

URL: http://svn.apache.org/viewvc?rev=1311120&view=rev
Log:
Bugzilla #49754: Bring clone() in line with the recommendations in 
Object.clone().

Modified:
    xmlgraphics/fop/trunk/findbugs-exclude.xml
    xmlgraphics/fop/trunk/src/java/org/apache/fop/area/Area.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/area/AreaTreeObject.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/area/BodyRegion.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/area/Page.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/area/PageViewport.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/area/RegionReference.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/area/RegionViewport.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/hyphenation/CharVector.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/hyphenation/TernaryTree.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/AWTRenderer.java
    
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFGraphicContext.java
    
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/java2d/Java2DRenderer.java
    
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/IRtfTextContainer.java
    
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfAttributes.java
    
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfHyperLink.java
    
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfParagraph.java
    
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfTable.java
    
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfTableRow.java
    
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfText.java
    
xmlgraphics/fop/trunk/src/java/org/apache/fop/tools/anttasks/FileCompare.java

Modified: xmlgraphics/fop/trunk/findbugs-exclude.xml
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/findbugs-exclude.xml?rev=1311120&r1=1311119&r2=1311120&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/findbugs-exclude.xml (original)
+++ xmlgraphics/fop/trunk/findbugs-exclude.xml Sun Apr  8 23:48:11 2012
@@ -189,66 +189,11 @@
    </Match>
    <!-- Automatically generated list of exclusions -->
    <Match>
-      <Class name="org.apache.fop.area.BodyRegion"/>
-      <Method name="clone"/>
-      <Bug pattern="CN_IDIOM_NO_SUPER_CALL"/>
-   </Match>
-   <Match>
-      <Class name="org.apache.fop.area.Page"/>
-      <Method name="clone"/>
-      <Bug pattern="CN_IDIOM_NO_SUPER_CALL"/>
-   </Match>
-   <Match>
-      <Class name="org.apache.fop.area.PageViewport"/>
-      <Method name="clone"/>
-      <Bug pattern="CN_IDIOM_NO_SUPER_CALL"/>
-   </Match>
-   <Match>
-      <Class name="org.apache.fop.area.RegionReference"/>
-      <Method name="clone"/>
-      <Bug pattern="CN_IDIOM_NO_SUPER_CALL"/>
-   </Match>
-   <Match>
-      <Class name="org.apache.fop.area.BodyRegion"/>
-      <!--Neither method nor field-->
-      <Bug pattern="CN_IDIOM_NO_SUPER_CALL"/>
-   </Match>
-   <Match>
-      <Class name="org.apache.fop.area.RegionViewport"/>
-      <Method name="clone"/>
-      <Bug pattern="CN_IDIOM_NO_SUPER_CALL"/>
-   </Match>
-   <Match>
-      <Class name="org.apache.fop.hyphenation.CharVector"/>
-      <Method name="clone"/>
-      <Bug pattern="CN_IDIOM_NO_SUPER_CALL"/>
-   </Match>
-   <Match>
-      <Class name="org.apache.fop.hyphenation.TernaryTree"/>
-      <Method name="clone"/>
-      <Bug pattern="CN_IDIOM_NO_SUPER_CALL"/>
-   </Match>
-   <Match>
-      <Class name="org.apache.fop.hyphenation.HyphenationTree"/>
-      <!--Neither method nor field-->
-      <Bug pattern="CN_IDIOM_NO_SUPER_CALL"/>
-   </Match>
-   <Match>
       <Class name="org.apache.fop.render.intermediate.IFGraphicContext"/>
       <Method name="clone"/>
       <Bug pattern="CN_IDIOM_NO_SUPER_CALL"/>
    </Match>
    <Match>
-      <Class name="org.apache.fop.render.rtf.rtflib.rtfdoc.RtfAttributes"/>
-      <Method name="clone"/>
-      <Bug pattern="CN_IDIOM_NO_SUPER_CALL"/>
-   </Match>
-   <Match>
-      <Class name="org.apache.fop.render.rtf.FOPRtfAttributes"/>
-      <!--Neither method nor field-->
-      <Bug pattern="CN_IDIOM_NO_SUPER_CALL"/>
-   </Match>
-   <Match>
       <Class name="org.apache.fop.hyphenation.Hyphenator"/>
       <Method name="getResourceStream"/>
       <Bug pattern="DE_MIGHT_IGNORE"/>
@@ -4394,11 +4339,6 @@
       <Bug pattern="RI_REDUNDANT_INTERFACES"/>
    </Match>
    <Match>
-      <Class name="java.lang.Cloneable"/>
-      <!--Neither method nor field-->
-      <Bug pattern="RI_REDUNDANT_INTERFACES"/>
-   </Match>
-   <Match>
       <Class name="org.apache.fop.afp.modca.AbstractResourceGroupContainer"/>
       <!--Neither method nor field-->
       <Bug pattern="RI_REDUNDANT_INTERFACES"/>

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/area/Area.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/area/Area.java?rev=1311120&r1=1311119&r2=1311120&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/area/Area.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/area/Area.java Sun Apr  8 
23:48:11 2012
@@ -21,6 +21,7 @@ package org.apache.fop.area;
 
 import java.io.Serializable;
 import java.util.Map;
+import java.util.TreeMap;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -116,9 +117,9 @@ public class Area extends AreaTreeObject
     protected int bidiLevel = -1;
 
     /**
-     * Traits for this area stored in a HashMap
+     * Traits for this area.
      */
-    protected transient Map<Integer, Object> traits = null;
+    protected TreeMap<Integer, Object> traits;
 
     /**
      * logging instance
@@ -134,6 +135,15 @@ public class Area extends AreaTreeObject
         return this.areaClass;
     }
 
+    /** {@inheritDoc} */
+    public Object clone() throws CloneNotSupportedException {
+        Area area = (Area) super.clone();
+        if (traits != null) {
+            area.traits = (TreeMap<Integer, Object>) traits.clone();
+        }
+        return area;
+    }
+
     /**
      * Set the area class of this area.
      *
@@ -390,10 +400,9 @@ public class Area extends AreaTreeObject
      * @param prop the value of the trait
      */
     public void addTrait(Integer traitCode, Object prop) {
-        // use treemap instead of hashmap since the typical number
-        // of traits are less than four
+        // use treemap since the typical number of traits are less than four
         if (traits == null) {
-            traits = new java.util.TreeMap<Integer, Object>();
+            traits = new TreeMap<Integer, Object>();
         }
         traits.put(traitCode, prop);
     }
@@ -405,7 +414,7 @@ public class Area extends AreaTreeObject
      */
     public void setTraits ( Map traits ) {
         if ( traits != null ) {
-            this.traits = new java.util.TreeMap ( traits );
+            this.traits = new TreeMap<Integer, Object>( traits );
         } else {
             this.traits = null;
         }

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/area/AreaTreeObject.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/area/AreaTreeObject.java?rev=1311120&r1=1311119&r2=1311120&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/area/AreaTreeObject.java 
(original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/area/AreaTreeObject.java Sun 
Apr  8 23:48:11 2012
@@ -19,7 +19,9 @@
 
 package org.apache.fop.area;
 
+import java.util.ArrayList;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -30,7 +32,7 @@ import org.apache.fop.fo.extensions.Exte
 /**
  * Abstract base class for all area tree objects.
  */
-public abstract class AreaTreeObject {
+public abstract class AreaTreeObject implements Cloneable {
 
     /** Foreign attributes */
     protected Map<QName, String> foreignAttributes = null;
@@ -38,6 +40,18 @@ public abstract class AreaTreeObject {
     /** Extension attachments */
     protected List<ExtensionAttachment> extensionAttachments = null;
 
+    /** {@inheritDoc} */
+    public Object clone() throws CloneNotSupportedException {
+        AreaTreeObject ato = (AreaTreeObject) super.clone();
+        if (foreignAttributes != null) {
+            ato.foreignAttributes = (Map) ((HashMap) 
foreignAttributes).clone();
+        }
+        if (extensionAttachments != null) {
+            ato.extensionAttachments = (List) ((ArrayList) 
extensionAttachments).clone();
+        }
+        return ato;
+    }
+
     /**
      * Sets a foreign attribute.
      * @param name the qualified name of the attribute
@@ -45,7 +59,7 @@ public abstract class AreaTreeObject {
      */
     public void setForeignAttribute(QName name, String value) {
         if (this.foreignAttributes == null) {
-            this.foreignAttributes = new java.util.HashMap<QName, String>();
+            this.foreignAttributes = new HashMap<QName, String>();
         }
         this.foreignAttributes.put(name, value);
     }
@@ -88,7 +102,7 @@ public abstract class AreaTreeObject {
 
     private void prepareExtensionAttachmentContainer() {
         if (this.extensionAttachments == null) {
-            this.extensionAttachments = new 
java.util.ArrayList<ExtensionAttachment>();
+            this.extensionAttachments = new ArrayList<ExtensionAttachment>();
         }
     }
 

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/area/BodyRegion.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/area/BodyRegion.java?rev=1311120&r1=1311119&r2=1311120&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/area/BodyRegion.java 
(original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/area/BodyRegion.java Sun Apr  
8 23:48:11 2012
@@ -151,19 +151,11 @@ public class BodyRegion extends RegionRe
         }
     }
 
-    /**
-     * Clone this object.
-     *
-     * @return a shallow copy of this object
-     */
-    public Object clone() {
-        BodyRegion br = new BodyRegion(getRegionClass(), getRegionName(), 
regionViewport,
-                getColumnCount(), getColumnGap());
-        br.setCTM(getCTM());
-        br.setIPD(getIPD());
-        br.beforeFloat = beforeFloat;
-        br.mainReference = mainReference;
-        br.footnote = footnote;
+    /** {@inheritDoc} */
+    public Object clone() throws CloneNotSupportedException {
+        BodyRegion br = (BodyRegion) super.clone();
+        br.mainReference = new MainReference(br);
         return br;
     }
+
 }

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/area/Page.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/area/Page.java?rev=1311120&r1=1311119&r2=1311120&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/area/Page.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/area/Page.java Sun Apr  8 
23:48:11 2012
@@ -54,7 +54,7 @@ import static org.apache.fop.fo.Constant
  * The page is cloneable so the page master can make copies of
  * the top level page and regions.
  */
-public class Page extends AreaTreeObject implements Serializable, Cloneable {
+public class Page extends AreaTreeObject implements Serializable {
 
     private static final long serialVersionUID = 6272157047421543866L;
 
@@ -72,10 +72,9 @@ public class Page extends AreaTreeObject
     private boolean fakeNonEmpty = false;
 
     /**
-     *  Empty constructor, for cloning
+     *  Empty constructor
      */
-    public Page() {
-    }
+    public Page() { }
 
     /**
      * Constructor
@@ -258,14 +257,9 @@ public class Page extends AreaTreeObject
         }
     }
 
-    /**
-     * Clone this page.
-     * This returns a new page with a clone of all the regions.
-     *
-     * @return a new clone of this page
-     */
-    public Object clone() {
-        Page p = new Page();
+    /** {@inheritDoc} */
+    public Object clone() throws CloneNotSupportedException {
+        Page p = (Page) super.clone();
         if (regionBefore != null) {
             p.regionBefore = (RegionViewport)regionBefore.clone();
         }

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/area/PageViewport.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/area/PageViewport.java?rev=1311120&r1=1311119&r2=1311120&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/area/PageViewport.java 
(original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/area/PageViewport.java Sun 
Apr  8 23:48:11 2012
@@ -32,6 +32,7 @@ import java.util.Set;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
+import org.apache.fop.apps.FOPException;
 import org.apache.fop.fo.flow.Marker;
 import org.apache.fop.fo.pagination.SimplePageMaster;
 import org.apache.fop.traits.WritingModeTraitsGetter;
@@ -50,7 +51,7 @@ import static org.apache.fop.fo.Constant
  * This is the level that creates the page.
  * The page (reference area) is then rendered inside the page object
  */
-public class PageViewport extends AreaTreeObject implements Resolvable, 
Cloneable {
+public class PageViewport extends AreaTreeObject implements Resolvable {
 
     private Page page;
     private Rectangle viewArea;
@@ -130,8 +131,9 @@ public class PageViewport extends AreaTr
     /**
      * Copy constructor.
      * @param original the original PageViewport to copy from
+     * @throws FOPException when cloning of the page is not supported
      */
-    public PageViewport(PageViewport original) {
+    public PageViewport(PageViewport original) throws FOPException {
         if (original.extensionAttachments != null) {
             setExtensionAttachments(original.extensionAttachments);
         }
@@ -141,7 +143,11 @@ public class PageViewport extends AreaTr
         this.pageIndex = original.pageIndex;
         this.pageNumber = original.pageNumber;
         this.pageNumberString = original.pageNumberString;
-        this.page = (Page)original.page.clone();
+        try {
+            this.page = (Page) original.page.clone();
+        } catch (CloneNotSupportedException e) {
+            throw new FOPException(e);
+        }
         this.viewArea = new Rectangle(original.viewArea);
         this.simplePageMasterName = original.simplePageMasterName;
         this.blank = original.blank;
@@ -557,13 +563,12 @@ public class PageViewport extends AreaTr
         }
     }
 
-    /**
-     * Clone this page.
-     * Used by the page master to create a copy of an original page.
-     * @return a copy of this page and associated viewports
-     */
-    public Object clone() {
-        return new PageViewport(this);
+    /** {@inheritDoc} */
+    public Object clone() throws CloneNotSupportedException {
+        PageViewport pvp = (PageViewport) super.clone();
+        pvp.page = (Page) page.clone();
+        pvp.viewArea = (Rectangle) viewArea.clone();
+        return pvp;
     }
 
     /**

Modified: 
xmlgraphics/fop/trunk/src/java/org/apache/fop/area/RegionReference.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/area/RegionReference.java?rev=1311120&r1=1311119&r2=1311120&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/area/RegionReference.java 
(original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/area/RegionReference.java Sun 
Apr  8 23:48:11 2012
@@ -29,7 +29,7 @@ import org.apache.fop.fo.pagination.Regi
  * This area is the direct child of a region-viewport-area. It is cloneable
  * so the page master can make copies from the original page and regions.
  */
-public class RegionReference extends Area implements Cloneable {
+public class RegionReference extends Area {
 
     private static final long serialVersionUID = -298980963268244238L;
 
@@ -134,17 +134,10 @@ public class RegionReference extends Are
         addChildArea(block);
     }
 
-    /**
-     * Clone this region.
-     * This is used when cloning the page by the page master.
-     *
-     * @return a copy of this region reference area
-     */
-    public Object clone() {
-        RegionReference rr = new RegionReference(regionClass, regionName, 
regionViewport);
-        rr.ctm = ctm;
-        rr.setIPD(getIPD());
-        rr.blocks = (ArrayList<Area>)blocks.clone();
+    /** {@inheritDoc} */
+    public Object clone() throws CloneNotSupportedException {
+        RegionReference rr = (RegionReference) super.clone();
+        rr.blocks = (ArrayList) blocks.clone();
         return rr;
     }
 

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/area/RegionViewport.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/area/RegionViewport.java?rev=1311120&r1=1311119&r2=1311120&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/area/RegionViewport.java 
(original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/area/RegionViewport.java Sun 
Apr  8 23:48:11 2012
@@ -22,7 +22,6 @@ package org.apache.fop.area;
 import java.awt.Rectangle;
 import java.awt.geom.Rectangle2D;
 import java.io.IOException;
-import java.util.HashMap;
 import java.util.TreeMap;
 
 import org.apache.fop.traits.WritingModeTraitsGetter;
@@ -33,7 +32,7 @@ import org.apache.fop.traits.WritingMode
  * region-reference-area as its child.  These areas are described
  * in the fo:region-body description in the XSL Recommendation.
  */
-public class RegionViewport extends Area implements Cloneable, Viewport {
+public class RegionViewport extends Area implements Viewport {
 
     private static final long serialVersionUID = 505781815165102572L;
 
@@ -122,21 +121,11 @@ public class RegionViewport extends Area
         setRegionReference((RegionReference) in.readObject());
     }
 
-    /**
-     * Clone this region viewport.
-     * Used when creating a copy from the page master.
-     *
-     * @return a new copy of this region viewport
-     */
-    public Object clone() {
-        RegionViewport rv = new RegionViewport((Rectangle2D)viewArea.clone());
-        rv.regionReference = (RegionReference)regionReference.clone();
-        if (traits != null) {
-            rv.traits = new TreeMap(traits);
-        }
-        if (foreignAttributes != null) {
-            rv.foreignAttributes = new HashMap(foreignAttributes);
-        }
+    /** {@inheritDoc} */
+    public Object clone() throws CloneNotSupportedException {
+        RegionViewport rv = (RegionViewport) super.clone();
+        rv.regionReference = (RegionReference) regionReference.clone();
+        rv.viewArea = (Rectangle2D) viewArea.clone();
         return rv;
     }
 

Modified: 
xmlgraphics/fop/trunk/src/java/org/apache/fop/hyphenation/CharVector.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/hyphenation/CharVector.java?rev=1311120&r1=1311119&r2=1311120&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/hyphenation/CharVector.java 
(original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/hyphenation/CharVector.java 
Sun Apr  8 23:48:11 2012
@@ -101,9 +101,9 @@ public class CharVector implements Clone
     }
 
     /** {@inheritDoc} */
-    public Object clone() {
-        CharVector cv = new CharVector((char[])array.clone(), blockSize);
-        cv.n = this.n;
+    public Object clone() throws CloneNotSupportedException {
+        CharVector cv = (CharVector) super.clone();
+        cv.array = (char[])array.clone();
         return cv;
     }
 

Modified: 
xmlgraphics/fop/trunk/src/java/org/apache/fop/hyphenation/TernaryTree.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/hyphenation/TernaryTree.java?rev=1311120&r1=1311119&r2=1311120&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/hyphenation/TernaryTree.java 
(original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/hyphenation/TernaryTree.java 
Sun Apr  8 23:48:11 2012
@@ -48,7 +48,7 @@ import java.util.Stack;
  * patterns which will be keys in this tree. The strings patterns
  * are usually small (from 2 to 5 characters), but each char in the
  * tree is stored in a node. Thus memory usage is the main concern.
- * We will sacrify 'elegance' to keep memory requirenments to the
+ * We will sacrify 'elegance' to keep memory requirements to the
  * minimum. Using java's char type as pointer (yes, I know pointer
  * it is a forbidden word in java) we can keep the size of the node
  * to be just 8 bytes (3 pointers and the data char). This gives
@@ -406,16 +406,13 @@ public class TernaryTree implements Clon
     }
 
     /** {@inheritDoc} */
-    public Object clone() {
-        TernaryTree t = new TernaryTree();
+    public Object clone() throws CloneNotSupportedException {
+        TernaryTree t = (TernaryTree) super.clone();
         t.lo = (char[])this.lo.clone();
         t.hi = (char[])this.hi.clone();
         t.eq = (char[])this.eq.clone();
         t.sc = (char[])this.sc.clone();
         t.kv = (CharVector)this.kv.clone();
-        t.root = this.root;
-        t.freenode = this.freenode;
-        t.length = this.length;
 
         return t;
     }

Modified: 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/AWTRenderer.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/AWTRenderer.java?rev=1311120&r1=1311119&r2=1311120&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/AWTRenderer.java 
(original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/AWTRenderer.java 
Sun Apr  8 23:48:11 2012
@@ -103,8 +103,9 @@ public class AWTRenderer extends Java2DR
 
     /**
      * {@inheritDoc}
+     * @throws FOPException thrown by java2DRenderer
      */
-    public void renderPage(PageViewport pageViewport) throws IOException {
+    public void renderPage(PageViewport pageViewport) throws IOException, 
FOPException {
 
         super.renderPage(pageViewport);
         if (statusListener != null) {

Modified: 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFGraphicContext.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFGraphicContext.java?rev=1311120&r1=1311119&r2=1311120&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFGraphicContext.java
 (original)
+++ 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFGraphicContext.java
 Sun Apr  8 23:48:11 2012
@@ -22,7 +22,7 @@ package org.apache.fop.render.intermedia
 import java.awt.Dimension;
 import java.awt.Rectangle;
 import java.awt.geom.AffineTransform;
-import java.util.List;
+import java.util.ArrayList;
 
 import org.apache.xmlgraphics.java2d.GraphicContext;
 
@@ -33,7 +33,7 @@ public class IFGraphicContext extends Gr
 
     private static final AffineTransform[] EMPTY_TRANSFORM_ARRAY = new 
AffineTransform[0];
 
-    private List groupList = new java.util.ArrayList();
+    private ArrayList groupList = new ArrayList();
 
     /**
      * Default constructor.
@@ -48,17 +48,20 @@ public class IFGraphicContext extends Gr
      */
     protected IFGraphicContext(IFGraphicContext graphicContext) {
         super(graphicContext);
-        //We don't clone groupDepth!
+        // N.B. do not perform deep copy on groupList; doing so causes
+        // a junit regression... have not investigated cause... [GA]
+        // groupList = (ArrayList) graphicContext.groupList.clone();
     }
 
-    /** {@inheritDoc} */
+    /**
+     * {@inheritDoc}
+     */
     public Object clone() {
-        return new IFGraphicContext(this);
+        return new IFGraphicContext ( this );
     }
 
     /** @param group a group */
     public void pushGroup(Group group) {
-        //this.groupDepth++;
         this.groupList.add(group);
         for (int i = 0, c = group.getTransforms().length; i < c; i++) {
             transform(group.getTransforms()[i]);

Modified: 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/java2d/Java2DRenderer.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/java2d/Java2DRenderer.java?rev=1311120&r1=1311119&r2=1311120&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/java2d/Java2DRenderer.java 
(original)
+++ 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/java2d/Java2DRenderer.java 
Sun Apr  8 23:48:11 2012
@@ -267,10 +267,15 @@ public abstract class Java2DRenderer ext
      * @param pageViewport the <code>PageViewport</code> object supplied by
      * the Area Tree
      * @throws IOException In case of an I/O error
+     * @throws FOPException if cloning of pageViewport is not supported
      * @see org.apache.fop.render.Renderer
      */
-    public void renderPage(PageViewport pageViewport) throws IOException {
-        rememberPage((PageViewport)pageViewport.clone());
+    public void renderPage(PageViewport pageViewport) throws IOException, 
FOPException {
+        try {
+            rememberPage((PageViewport)pageViewport.clone());
+        } catch (CloneNotSupportedException e) {
+            throw new FOPException(e);
+        }
         //The clone() call is necessary as we store the page for later. 
Otherwise, the
         //RenderPagesModel calls PageViewport.clear() to release memory as 
early as possible.
         currentPageNumber++;

Modified: 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/IRtfTextContainer.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/IRtfTextContainer.java?rev=1311120&r1=1311119&r2=1311120&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/IRtfTextContainer.java
 (original)
+++ 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/IRtfTextContainer.java
 Sun Apr  8 23:48:11 2012
@@ -28,6 +28,8 @@ package org.apache.fop.render.rtf.rtflib
 
 import java.io.IOException;
 
+import org.apache.fop.apps.FOPException;
+
 /**
  * <p>Interface for RtfElements that can contain RtfText elements.</p>
  *
@@ -61,6 +63,7 @@ public interface IRtfTextContainer {
     /**
      * Text containers usually provide default attributes for all texts that 
they contain.
      * @return a copy of the container's attributes.
+     * @throws FOPException if attributes cannot be obtained
      */
-    RtfAttributes getTextContainerAttributes();
+    RtfAttributes getTextContainerAttributes() throws FOPException;
 }

Modified: 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfAttributes.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfAttributes.java?rev=1311120&r1=1311119&r2=1311120&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfAttributes.java
 (original)
+++ 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfAttributes.java
 Sun Apr  8 23:48:11 2012
@@ -39,8 +39,8 @@ import org.xml.sax.helpers.AttributesImp
  * <p>This work was authored by Bertrand Delacretaz 
([email protected]).</p>
  */
 
-public class RtfAttributes
-implements java.lang.Cloneable {
+public class RtfAttributes implements Cloneable {
+
     private HashMap values = new HashMap();
 
     /**
@@ -108,12 +108,9 @@ implements java.lang.Cloneable {
         return values.toString() + "(" + super.toString() + ")";
     }
 
-    /**
-     * implement cloning
-     * @return cloned Object
-     */
-    public Object clone() {
-        final RtfAttributes result = new RtfAttributes();
+    /** {@inheritDoc} */
+    public Object clone() throws CloneNotSupportedException {
+        RtfAttributes result = (RtfAttributes) super.clone();
         result.values = (HashMap)values.clone();
 
         // Added by Normand Masse

Modified: 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfHyperLink.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfHyperLink.java?rev=1311120&r1=1311119&r2=1311120&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfHyperLink.java
 (original)
+++ 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfHyperLink.java
 Sun Apr  8 23:48:11 2012
@@ -29,6 +29,8 @@ package org.apache.fop.render.rtf.rtflib
 import java.io.IOException;
 import java.io.Writer;
 
+import org.apache.fop.apps.FOPException;
+
 /**
  * <p>Creates an hyperlink.
  * This class belongs to the <fo:basic-link> tag processing.</p>
@@ -157,12 +159,17 @@ implements IRtfTextContainer,
     /**
      * IRtfTextContainer requirement:
      * @return a copy of our attributes
+     * @throws FOPException if attributes cannot be cloned
      */
-    public RtfAttributes getTextContainerAttributes() {
+    public RtfAttributes getTextContainerAttributes() throws FOPException {
         if (attrib == null) {
             return null;
         }
-        return (RtfAttributes) this.attrib.clone ();
+        try {
+            return (RtfAttributes) this.attrib.clone ();
+        } catch (CloneNotSupportedException e) {
+            throw new FOPException(e);
+        }
     }
 
 

Modified: 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfParagraph.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfParagraph.java?rev=1311120&r1=1311119&r2=1311120&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfParagraph.java
 (original)
+++ 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfParagraph.java
 Sun Apr  8 23:48:11 2012
@@ -30,6 +30,8 @@ import java.io.IOException;
 import java.io.Writer;
 import java.util.List;
 
+import org.apache.fop.apps.FOPException;
+
 /**
  * <p>Model of an RTF paragraph, which can contain RTF text elements.</p>
  *
@@ -93,12 +95,17 @@ implements IRtfTextContainer, IRtfPageBr
     /**
      * IRtfTextContainer requirement: return a copy of our attributes
      * @return a copy of this paragraphs attributes
+     * @throws FOPException if attributes cannot be cloned
      */
-    public RtfAttributes getTextContainerAttributes() {
+    public RtfAttributes getTextContainerAttributes() throws FOPException {
         if (attrib == null) {
             return null;
         }
-        return (RtfAttributes)this.attrib.clone();
+        try {
+            return (RtfAttributes)this.attrib.clone();
+        } catch (CloneNotSupportedException e) {
+            throw new FOPException(e);
+        }
     }
 
     /**

Modified: 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfTable.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfTable.java?rev=1311120&r1=1311119&r2=1311120&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfTable.java
 (original)
+++ 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfTable.java
 Sun Apr  8 23:48:11 2012
@@ -29,6 +29,8 @@ package org.apache.fop.render.rtf.rtflib
 import java.io.IOException;
 import java.io.Writer;
 
+import org.apache.fop.apps.FOPException;
+
 /**
  * <p>Container for RtfRow elements.</p>
  *
@@ -86,11 +88,16 @@ public class RtfTable extends RtfContain
      * @param attrs attributs of new RtfTableRow
      * @return new RtfTableRow
      * @throws IOException for I/O problems
+     * @throws FOPException if attributes cannot be cloned
      */
-    public RtfTableRow newTableRow(RtfAttributes attrs) throws IOException {
+    public RtfTableRow newTableRow(RtfAttributes attrs) throws IOException, 
FOPException {
         RtfAttributes attr = null;
         if (attrib != null) {
-            attr = (RtfAttributes) attrib.clone ();
+            try {
+                attr = (RtfAttributes) attrib.clone ();
+            } catch (CloneNotSupportedException e) {
+                throw new FOPException(e);
+            }
             attr.set (attrs);
         } else {
             attr = attrs;

Modified: 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfTableRow.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfTableRow.java?rev=1311120&r1=1311119&r2=1311120&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfTableRow.java
 (original)
+++ 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfTableRow.java
 Sun Apr  8 23:48:11 2012
@@ -30,6 +30,8 @@ import java.io.IOException;
 import java.io.Writer;
 import java.util.Iterator;
 
+import org.apache.fop.apps.FOPException;
+
 /**
  * <p>Container for RtfTableCell elements.</p>
  *
@@ -106,15 +108,20 @@ public class RtfTableRow extends RtfCont
      * @param cellWidth width of new cell
      * @return new RtfTableCell
      * @throws IOException for I/O problems
+     * @throws FOPException if attributes cannot be cloned
      */
     public RtfTableCell newTableCellMergedHorizontally (int cellWidth,
-           RtfAttributes attrs) throws IOException {
+           RtfAttributes attrs) throws IOException, FOPException {
         highestCell++;
         // Added by Normand Masse
         // Inherit attributes from base cell for merge
         RtfAttributes wAttributes = null;
         if (attrs != null) {
-            wAttributes = (RtfAttributes)attrs.clone();
+            try {
+                wAttributes = (RtfAttributes)attrs.clone();
+            } catch (CloneNotSupportedException e) {
+                throw new FOPException(e);
+            }
         }
 
         cell = new RtfTableCell(this, writer, cellWidth, wAttributes, 
highestCell);

Modified: 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfText.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfText.java?rev=1311120&r1=1311119&r2=1311120&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfText.java
 (original)
+++ 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/rtf/rtflib/rtfdoc/RtfText.java
 Sun Apr  8 23:48:11 2012
@@ -29,6 +29,8 @@ package org.apache.fop.render.rtf.rtflib
 import java.io.IOException;
 import java.io.Writer;
 
+import org.apache.fop.apps.FOPException;
+
 /**
  * <p>Model of a text run (a piece of text with attributes) in an RTF 
document.</p>
  *
@@ -240,12 +242,18 @@ public class RtfText extends RtfElement 
     }
 
     /** IRtfTextContainer requirement:
-     * @return a copy of our attributes */
-    public RtfAttributes getTextContainerAttributes() {
+     * @return a copy of our attributes
+     * @throws FOPException if attributes cannot be cloned
+     */
+    public RtfAttributes getTextContainerAttributes() throws FOPException {
         if (attrib == null) {
             return null;
         }
-        return (RtfAttributes)this.attrib.clone();
+        try {
+            return (RtfAttributes)this.attrib.clone();
+        } catch (CloneNotSupportedException e) {
+            throw new FOPException(e);
+        }
     }
 
     /** direct access to our text */

Modified: 
xmlgraphics/fop/trunk/src/java/org/apache/fop/tools/anttasks/FileCompare.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/tools/anttasks/FileCompare.java?rev=1311120&r1=1311119&r2=1311120&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/src/java/org/apache/fop/tools/anttasks/FileCompare.java 
(original)
+++ 
xmlgraphics/fop/trunk/src/java/org/apache/fop/tools/anttasks/FileCompare.java 
Sun Apr  8 23:48:11 2012
@@ -126,7 +126,7 @@ public class FileCompare {
      */
     private static boolean compareFileSize(File oldFile, File newFile) {
         return oldFile.length() == newFile.length();
-    }    // end: compareBytes
+    }
 
     private boolean filesExist(File oldFile, File newFile) {
         if (!oldFile.exists()) {



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to