Author: jeremias
Date: Tue Mar 10 07:55:20 2009
New Revision: 752010
URL: http://svn.apache.org/viewvc?rev=752010&view=rev
Log:
AreaTreeParser redirecting image loading exceptions to event subsystem.
Modified:
xmlgraphics/fop/trunk/src/java/org/apache/fop/area/AreaTreeParser.java
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/area/AreaTreeParser.java
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/area/AreaTreeParser.java?rev=752010&r1=752009&r2=752010&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/area/AreaTreeParser.java
(original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/area/AreaTreeParser.java Tue
Mar 10 07:55:20 2009
@@ -21,6 +21,8 @@
import java.awt.Color;
import java.awt.geom.Rectangle2D;
+import java.io.FileNotFoundException;
+import java.io.IOException;
import java.nio.CharBuffer;
import java.util.List;
import java.util.Map;
@@ -41,6 +43,7 @@
import org.xml.sax.Attributes;
import org.xml.sax.ContentHandler;
+import org.xml.sax.Locator;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.AttributesImpl;
import org.xml.sax.helpers.DefaultHandler;
@@ -48,6 +51,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.xmlgraphics.image.loader.ImageException;
import org.apache.xmlgraphics.image.loader.ImageInfo;
import org.apache.xmlgraphics.image.loader.ImageManager;
import org.apache.xmlgraphics.image.loader.ImageSessionContext;
@@ -68,6 +72,7 @@
import org.apache.fop.area.inline.TextArea;
import org.apache.fop.area.inline.Viewport;
import org.apache.fop.area.inline.WordArea;
+import org.apache.fop.events.ResourceEventProducer;
import org.apache.fop.fo.Constants;
import org.apache.fop.fo.ElementMappingRegistry;
import org.apache.fop.fo.expr.PropertyException;
@@ -149,6 +154,7 @@
private Stack delegateStack = new Stack();
private ContentHandler delegate;
private DOMImplementation domImplementation;
+ private Locator locator;
public Handler(AreaTreeModel treeModel, FOUserAgent userAgent,
@@ -224,6 +230,15 @@
}
/** {...@inheritdoc} */
+ public void setDocumentLocator(Locator locator) {
+ this.locator = locator;
+ }
+
+ private Locator getLocator() {
+ return this.locator;
+ }
+
+ /** {...@inheritdoc} */
public void startElement(String uri, String localName, String qName,
Attributes attributes)
throws SAXException {
if (delegate != null) {
@@ -1056,8 +1071,21 @@
= userAgent.getImageSessionContext();
ImageInfo info = manager.getImageInfo(uri,
sessionContext);
bkg.setImageInfo(info);
- } catch (Exception e) {
- log.error("Background image not available: " +
uri, e);
+ } catch (ImageException e) {
+ ResourceEventProducer eventProducer
+ = ResourceEventProducer.Provider.get(
+ this.userAgent.getEventBroadcaster());
+ eventProducer.imageError(this, uri, e,
getLocator());
+ } catch (FileNotFoundException fnfe) {
+ ResourceEventProducer eventProducer
+ = ResourceEventProducer.Provider.get(
+ this.userAgent.getEventBroadcaster());
+ eventProducer.imageNotFound(this, uri, fnfe,
getLocator());
+ } catch (IOException ioe) {
+ ResourceEventProducer eventProducer
+ = ResourceEventProducer.Provider.get(
+ this.userAgent.getEventBroadcaster());
+ eventProducer.imageIOError(this, uri, ioe,
getLocator());
}
String repeat = attributes.getValue("bkg-repeat");
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]