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 je...@apache.org on 2008/04/18 14:03:32 UTC
svn commit: r649477 -
/xmlgraphics/fop/trunk/src/java/org/apache/fop/apps/FOUserAgent.java
Author: jeremias
Date: Fri Apr 18 05:03:24 2008
New Revision: 649477
URL: http://svn.apache.org/viewvc?rev=649477&view=rev
Log:
Bugfix: If the first event is not issued over an event producer, the fallback logging event listener was not installed.
Modified:
xmlgraphics/fop/trunk/src/java/org/apache/fop/apps/FOUserAgent.java
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/apps/FOUserAgent.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/apps/FOUserAgent.java?rev=649477&r1=649476&r2=649477&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/apps/FOUserAgent.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/apps/FOUserAgent.java Fri Apr 18 05:03:24 2008
@@ -39,7 +39,7 @@
import org.apache.fop.events.DefaultEventBroadcaster;
import org.apache.fop.events.Event;
import org.apache.fop.events.EventBroadcaster;
-import org.apache.fop.events.EventProducer;
+import org.apache.fop.events.EventListener;
import org.apache.fop.events.FOPEventListenerProxy;
import org.apache.fop.events.LoggingEventListener;
import org.apache.fop.fo.FOEventHandler;
@@ -549,11 +549,25 @@
private class FOPEventBroadcaster extends DefaultEventBroadcaster {
- private FOPEventListenerProxy rootListener;
+ private EventListener rootListener;
public FOPEventBroadcaster() {
- this.rootListener = new FOPEventListenerProxy(
- this.listeners, FOUserAgent.this);
+ //Install a temporary event listener that catches the first event to
+ //do some initialization.
+ this.rootListener = new EventListener() {
+ public void processEvent(Event event) {
+ if (!listeners.hasEventListeners()) {
+ //Backwards-compatibility: Make sure at least the LoggingEventListener is
+ //plugged in so no events are just silently swallowed.
+ addEventListener(
+ new LoggingEventListener(LogFactory.getLog(FOUserAgent.class)));
+ }
+ //Replace with final event listener
+ rootListener = new FOPEventListenerProxy(
+ listeners, FOUserAgent.this);
+ rootListener.processEvent(event);
+ }
+ };
}
/** {@inheritDoc} */
@@ -561,18 +575,6 @@
rootListener.processEvent(event);
}
- /** {@inheritDoc} */
- protected EventProducer createProxyFor(Class clazz) {
- if (!this.listeners.hasEventListeners()) {
- //Backwards-compatibility: Make sure at least the LoggingEventListener is plugged
- //in so no events are just silently swallowed.
- addEventListener(
- new LoggingEventListener(LogFactory.getLog(FOUserAgent.class)));
-
- }
- return super.createProxyFor(clazz);
- }
-
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org