svn commit: r565032 - /lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/AreaImpl.java

[email protected]
Newsgroups gmane.comp.cms.lenya.cvs
Message-ID <[email protected]>
Author: andreas
Date: Sun Aug 12 03:05:19 2007
New Revision: 565032

URL: http://svn.apache.org/viewvc?view=rev&rev=565032
Log:
Load site structure for area every time it is requested to avoid stale site objects

Modified:
    lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/AreaImpl.java

Modified: lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/AreaImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/AreaImpl.java?view=diff&rev=565032&r1=565031&r2=565032
==============================================================================
--- lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/AreaImpl.java (original)
+++ lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/AreaImpl.java Sun Aug 12 03:05:19 2007
@@ -78,28 +78,25 @@
         return this.pub;
     }
 
-    private SiteStructure site;
-
     public SiteStructure getSite() {
-        if (this.site == null) {
-            SiteManager siteManager = null;
-            ServiceSelector selector = null;
-            try {
-                selector = (ServiceSelector) this.manager.lookup(SiteManager.ROLE + "Selector");
-                siteManager = (SiteManager) selector.select(getPublication().getSiteManagerHint());
-                this.site = siteManager.getSiteStructure(this.factory, getPublication(), getName());
-            } catch (Exception e) {
-                throw new RuntimeException(e);
-            } finally {
-                if (selector != null) {
-                    if (siteManager != null) {
-                        selector.release(siteManager);
-                    }
-                    this.manager.release(selector);
+        // The site structure has to be loaded every time because the publication factory is sharable
+        // and therefore the danger of stale site structures could occur.
+        SiteManager siteManager = null;
+        ServiceSelector selector = null;
+        try {
+            selector = (ServiceSelector) this.manager.lookup(SiteManager.ROLE + "Selector");
+            siteManager = (SiteManager) selector.select(getPublication().getSiteManagerHint());
+            return siteManager.getSiteStructure(this.factory, getPublication(), getName());
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        } finally {
+            if (selector != null) {
+                if (siteManager != null) {
+                    selector.release(siteManager);
                 }
+                this.manager.release(selector);
             }
         }
-        return this.site;
     }
 
     public String toString() {
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.