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);
+ }
+ };
}
/** [EMAIL PROTECTED] */
@@ -561,18 +575,6 @@
rootListener.processEvent(event);
}
- /** [EMAIL PROTECTED] */
- 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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]