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