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]