You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jspwiki.apache.org by ja...@apache.org on 2009/03/28 21:06:26 UTC

svn commit: r759568 - in /incubator/jspwiki/trunk: ./ src/java/org/apache/wiki/ src/java/org/apache/wiki/action/ src/java/org/apache/wiki/attachment/ src/java/org/apache/wiki/content/ src/java/org/apache/wiki/tags/ src/java/org/apache/wiki/ui/

Author: jalkanen
Date: Sat Mar 28 20:06:26 2009
New Revision: 759568

URL: http://svn.apache.org/viewvc?rev=759568&view=rev
Log:
Added WikiEngine.release() to make sure that JCR Sessions can
be released properly at the end of requests to prevent them from
growing uncontrollably.

Modified:
    incubator/jspwiki/trunk/ChangeLog
    incubator/jspwiki/trunk/src/java/org/apache/wiki/Release.java
    incubator/jspwiki/trunk/src/java/org/apache/wiki/WikiEngine.java
    incubator/jspwiki/trunk/src/java/org/apache/wiki/action/UploadActionBean.java
    incubator/jspwiki/trunk/src/java/org/apache/wiki/attachment/AttachmentServlet.java
    incubator/jspwiki/trunk/src/java/org/apache/wiki/content/ContentManager.java
    incubator/jspwiki/trunk/src/java/org/apache/wiki/tags/PageSizeTag.java
    incubator/jspwiki/trunk/src/java/org/apache/wiki/ui/WikiServletFilter.java

Modified: incubator/jspwiki/trunk/ChangeLog
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/ChangeLog?rev=759568&r1=759567&r2=759568&view=diff
==============================================================================
--- incubator/jspwiki/trunk/ChangeLog (original)
+++ incubator/jspwiki/trunk/ChangeLog Sat Mar 28 20:06:26 2009
@@ -1,3 +1,15 @@
+2009-03-28  Janne Jalkanen <ja...@apache.org>
+
+        * 3.0.0-svn-88
+        
+        * Added WikiEngine.release() to make sure that JCR Sessions can
+        be released properly at the end of requests to prevent them from
+        growing uncontrollably.
+        
+        * Removed some obsolete methods from WikiPage.
+        
+        * Cleaned up AbstractFileProvider
+        
 2009-03-28  Harry Metske <me...@apache.org>
 
         * 3.0.0-svn-87

Modified: incubator/jspwiki/trunk/src/java/org/apache/wiki/Release.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/java/org/apache/wiki/Release.java?rev=759568&r1=759567&r2=759568&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/java/org/apache/wiki/Release.java (original)
+++ incubator/jspwiki/trunk/src/java/org/apache/wiki/Release.java Sat Mar 28 20:06:26 2009
@@ -77,7 +77,7 @@
      *  <p>
      *  If the build identifier is empty, it is not added.
      */
-    public static final String     BUILD         = "87";
+    public static final String     BUILD         = "88";
     
     /**
      *  This is the generic version string you should use

Modified: incubator/jspwiki/trunk/src/java/org/apache/wiki/WikiEngine.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/java/org/apache/wiki/WikiEngine.java?rev=759568&r1=759567&r2=759568&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/java/org/apache/wiki/WikiEngine.java (original)
+++ incubator/jspwiki/trunk/src/java/org/apache/wiki/WikiEngine.java Sat Mar 28 20:06:26 2009
@@ -1568,6 +1568,7 @@
         fireEvent( WikiEngineEvent.SHUTDOWN );
         m_filterManager.destroy();
         LoggerFactory.unRegisterAllLoggerMBeans();
+        m_contentManager.release();
     }
 
     /**
@@ -2543,4 +2544,9 @@
     {
         return WatchDog.getCurrentWatchDog(this);
     }
+    
+    public void release()
+    {
+        m_contentManager.release();
+    }
 }

Modified: incubator/jspwiki/trunk/src/java/org/apache/wiki/action/UploadActionBean.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/java/org/apache/wiki/action/UploadActionBean.java?rev=759568&r1=759567&r2=759568&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/java/org/apache/wiki/action/UploadActionBean.java (original)
+++ incubator/jspwiki/trunk/src/java/org/apache/wiki/action/UploadActionBean.java Sat Mar 28 20:06:26 2009
@@ -197,7 +197,6 @@
             att = engine.getContentManager().addPage( path, contentType );
             created = true;
         }
-        att.setSize( contentLength );
 
         if( user != null )
         {

Modified: incubator/jspwiki/trunk/src/java/org/apache/wiki/attachment/AttachmentServlet.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/java/org/apache/wiki/attachment/AttachmentServlet.java?rev=759568&r1=759567&r2=759568&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/java/org/apache/wiki/attachment/AttachmentServlet.java (original)
+++ incubator/jspwiki/trunk/src/java/org/apache/wiki/attachment/AttachmentServlet.java Sat Mar 28 20:06:26 2009
@@ -744,7 +744,6 @@
             }
             created = true;
         }
-        att.setSize( contentLength );
 
         //
         //  Check if we're allowed to do this?

Modified: incubator/jspwiki/trunk/src/java/org/apache/wiki/content/ContentManager.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/java/org/apache/wiki/content/ContentManager.java?rev=759568&r1=759567&r2=759568&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/java/org/apache/wiki/content/ContentManager.java (original)
+++ incubator/jspwiki/trunk/src/java/org/apache/wiki/content/ContentManager.java Sat Mar 28 20:06:26 2009
@@ -290,13 +290,13 @@
     }
     
     /**
-     *  Discards all unsaved modifications made to this repository.
-     *  
-     *  @throws RepositoryException 
+     *  Discards all unsaved modifications made to this repository and releases
+     *  the Session.  Any calls after this will allocate a new Session. But
+     *  that's okay, since an unreleased Session will keep accumulating memory.
      */
-    public void discardModifications() throws RepositoryException
+    public void release()
     {
-        m_sessionManager.getSession().refresh( false );
+        m_sessionManager.releaseSession();
     }
         
     /*
@@ -904,7 +904,7 @@
             String proposedText = (String) getWorkflow().getAttribute( FACT_PROPOSED_TEXT );
 
             WikiEngine engine = context.getEngine();
-            WikiPage page = context.getPage();
+            JCRWikiPage page = (JCRWikiPage)context.getPage();
 
             // Set the last-modified timestamp
             page.setLastModified( new Date() );
@@ -1264,12 +1264,17 @@
         {
             if( ownership != null && ((Owner)ownership).m_identity)
             {
-                Session session = m_currentSession.get();
-                session.logout();
-                m_currentSession.set(null);
+                releaseSession();
             }
         }
  
+        public void releaseSession()
+        {
+            Session session = m_currentSession.get();
+            session.logout();
+            m_currentSession.set(null);            
+        }
+        
         /**
          *  Between createSession() and destroySession() you may get the Session object
          *  with this call.

Modified: incubator/jspwiki/trunk/src/java/org/apache/wiki/tags/PageSizeTag.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/java/org/apache/wiki/tags/PageSizeTag.java?rev=759568&r1=759567&r2=759568&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/java/org/apache/wiki/tags/PageSizeTag.java (original)
+++ incubator/jspwiki/trunk/src/java/org/apache/wiki/tags/PageSizeTag.java Sat Mar 28 20:06:26 2009
@@ -22,9 +22,7 @@
 
 import java.io.IOException;
 
-import org.apache.wiki.WikiEngine;
 import org.apache.wiki.api.WikiPage;
-import org.apache.wiki.providers.ProviderException;
 
 
 /**
@@ -37,31 +35,19 @@
 {
     private static final long serialVersionUID = 0L;
     
+    /**
+     *  {@inheritDoc}
+     */
     public final int doWikiStartTag()
         throws IOException
     {
-        WikiEngine engine = m_wikiContext.getEngine();
         WikiPage   page   = m_wikiContext.getPage();
 
-        try
+        if( page != null )
         {
-            if( page != null )
-            {
-                long size = page.getSize();
-
-                if( size == -1 && engine.pageExists(page) ) // should never happen with attachments
-                {
-                    size = engine.getPureText( page.getName(), page.getVersion() ).length();
-                    page.setSize( size );
-                }
+            long size = page.getSize();
 
-                pageContext.getOut().write( Long.toString(size) );
-            }
-        }
-        catch( ProviderException e )
-        {
-            log.warn("Providers did not work: ",e);
-            pageContext.getOut().write("Error determining page size: "+e.getMessage());
+            pageContext.getOut().write( Long.toString(size) );
         }
 
         return SKIP_BODY;

Modified: incubator/jspwiki/trunk/src/java/org/apache/wiki/ui/WikiServletFilter.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/java/org/apache/wiki/ui/WikiServletFilter.java?rev=759568&r1=759567&r2=759568&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/java/org/apache/wiki/ui/WikiServletFilter.java (original)
+++ incubator/jspwiki/trunk/src/java/org/apache/wiki/ui/WikiServletFilter.java Sat Mar 28 20:06:26 2009
@@ -186,6 +186,7 @@
         }
         finally
         {
+            m_engine.release(); // No longer used until next request.
             MDC.remove( m_engine.getApplicationName() + ":" + ((HttpServletRequest) request).getRequestURI() );
         }