Author: mrdon
Date: Fri Dec  8 12:16:16 2006
New Revision: 484733

URL: http://svn.apache.org/viewvc?view=rev&rev=484733
Log:
Tied object factory instance to dispatcher instance
WW-1544

Modified:
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java?view=diff&rev=484733&r1=484732&r2=484733
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
 Fri Dec  8 12:16:16 2006
@@ -169,6 +169,7 @@
     public static void setInstance(Dispatcher instance) {
         Dispatcher.instance.set(instance);
         
+        // Tie the ObjectFactory threadlocal instance to this Dispatcher 
instance
         if (instance != null) {
             Container cont = instance.getContainer();
             if (cont != null) {
@@ -251,12 +252,12 @@
     }
 
     /**
-     * Release local threads and destroy any DispatchListeners.
+     * Releases all instances bound to this dispatcher instance.
      */
     public void cleanup() {
        
        // clean up ObjectFactory
-        ObjectFactory objectFactory = ObjectFactory.getObjectFactory();
+        ObjectFactory objectFactory = 
getContainer().getInstance(ObjectFactory.class);
         if (objectFactory == null) {
             LOG.warn("Object Factory is null, something is seriously wrong, no 
clean up will be performed");
         }
@@ -269,9 +270,8 @@
                 LOG.error("exception occurred while destroying ObjectFactory 
["+objectFactory+"]", e);
             }
         }
-        ObjectFactory.setObjectFactory(null);
         
-        // clean up Dispatcher itself
+        // clean up Dispatcher itself for this thread
         instance.set(null);
         
         // clean up DispatcherListeners


Reply via email to