You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@excalibur.apache.org by vg...@apache.org on 2005/04/14 19:37:56 UTC

svn commit: r161326 - excalibur/trunk/components/store/src/java/org/apache/excalibur/store/impl/StoreJanitorImpl.java

Author: vgritsenko
Date: Thu Apr 14 10:37:56 2005
New Revision: 161326

URL: http://svn.apache.org/viewcvs?view=rev&rev=161326
Log:
whitespace

Modified:
    excalibur/trunk/components/store/src/java/org/apache/excalibur/store/impl/StoreJanitorImpl.java

Modified: excalibur/trunk/components/store/src/java/org/apache/excalibur/store/impl/StoreJanitorImpl.java
URL: http://svn.apache.org/viewcvs/excalibur/trunk/components/store/src/java/org/apache/excalibur/store/impl/StoreJanitorImpl.java?view=diff&r1=161325&r2=161326
==============================================================================
--- excalibur/trunk/components/store/src/java/org/apache/excalibur/store/impl/StoreJanitorImpl.java (original)
+++ excalibur/trunk/components/store/src/java/org/apache/excalibur/store/impl/StoreJanitorImpl.java Thu Apr 14 10:37:56 2005
@@ -1,16 +1,16 @@
-/* 
- * Copyright 2002-2004 The Apache Software Foundation
+/*
+ * Copyright 2002-2005 The Apache Software Foundation
  * Licensed  under the  Apache License,  Version 2.0  (the "License");
  * you may not use  this file  except in  compliance with the License.
- * You may obtain a copy of the License at 
- * 
+ * You may obtain a copy of the License at
+ *
  *   http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed  under the  License is distributed on an "AS IS" BASIS,
  * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
  * implied.
- * 
+ *
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
@@ -32,7 +32,7 @@
  * This class is a implentation of a StoreJanitor. Store classes
  * can register to the StoreJanitor. When memory is too low,
  * the StoreJanitor frees the registered caches until memory is normal.
- * 
+ *
  * @avalon.component
  * @avalon.service type=StoreJanitor
  * @x-avalon.info name=store-janitor
@@ -66,8 +66,8 @@
     private int index = -1;
     /** Should the gc be called on low memory? */
     protected boolean invokeGC = false;
-    /** 
-     * Amount of memory in use before sleep(). Must be initially set a resonable 
+    /**
+     * Amount of memory in use before sleep(). Must be initially set a resonable
      * value; ie. <code>memoryInUse()</code>
      */
     protected long inUse;
@@ -75,7 +75,7 @@
     /** The calculated delay for the next checker run */
     protected long interval = Long.MAX_VALUE; // Sleep time in ms
     private long maxRateOfChange = 1; // Used memory change rate in bytes per second
-    
+
     /**
      * Initialize the StoreJanitorImpl.
      * A few options can be used :
@@ -95,9 +95,9 @@
      * @param params the Configuration of the application
      * @exception ParameterException
      */
-    public void parameterize(Parameters params) throws ParameterException 
+    public void parameterize(Parameters params) throws ParameterException
     {
-        if (getLogger().isDebugEnabled()) 
+        if (getLogger().isDebugEnabled())
         {
             getLogger().debug("Configure StoreJanitorImpl");
         }
@@ -112,32 +112,32 @@
                                                  Thread.currentThread().getPriority()));
         int percent = params.getParameterAsInteger("percent_to_free", 10);
         this.invokeGC = params.getParameterAsBoolean("invokegc", this.invokeGC);
-        
-        if (getMinFreeMemory() < 1) 
+
+        if (getMinFreeMemory() < 1)
         {
             throw new ParameterException("StoreJanitorImpl freememory parameter has to be greater then 1");
         }
-        if (getMaxHeapSize() < 1) 
+        if (getMaxHeapSize() < 1)
         {
             throw new ParameterException("StoreJanitorImpl heapsize parameter has to be greater then 1");
         }
-        if (getThreadInterval() < 1) 
+        if (getThreadInterval() < 1)
         {
             throw new ParameterException("StoreJanitorImpl cleanupthreadinterval parameter has to be greater then 1");
         }
-        if (getPriority() < 1 || getPriority() > 10) 
+        if (getPriority() < 1 || getPriority() > 10)
         {
             throw new ParameterException("StoreJanitorImpl threadpriority has to be between 1 and 10");
         }
-        if (percent > 100 && percent < 1) 
+        if (percent > 100 && percent < 1)
         {
             throw new ParameterException("StoreJanitorImpl percent_to_free, has to be between 1 and 100");
         }
 
         this.fraction = percent / 100.0D;
         setStoreList(new ArrayList());
-        
-        if ( getLogger().isDebugEnabled() ) 
+
+        if ( getLogger().isDebugEnabled() )
         {
             getLogger().debug("minimum free memory=" + this.getMinFreeMemory());
             getLogger().debug("heapsize=" + this.getMaxHeapSize());
@@ -149,11 +149,11 @@
         }
     }
 
-    public void start() 
+    public void start()
     {
         doRun = true;
         Thread checker = new Thread(this);
-        if (getLogger().isDebugEnabled()) 
+        if (getLogger().isDebugEnabled())
         {
             getLogger().debug("Intializing checker thread");
         }
@@ -163,7 +163,7 @@
         checker.start();
     }
 
-    public void stop() 
+    public void stop()
     {
         doRun = false;
     }
@@ -171,25 +171,25 @@
     /**
      * The "checker" thread loop.
      */
-    public void run() 
+    public void run()
     {
         inUse = memoryInUse();
         while (doRun) {
             checkMemory();
 
             // Sleep
-            if (getLogger().isDebugEnabled()) 
+            if (getLogger().isDebugEnabled())
             {
                 getLogger().debug("Sleeping for " + interval + "ms");
             }
-            try 
+            try
             {
                 Thread.sleep(interval);
-            } 
+            }
             catch (InterruptedException ignore) {}
 
             // Ignore change in memory during the first run (startup)
-            if (firstRun) 
+            if (firstRun)
             {
                 firstRun = false;
                 inUse = memoryInUse();
@@ -202,12 +202,12 @@
      */
     protected void checkMemory()
     {
-        if (getAdaptiveThreadInterval()) 
+        if (getAdaptiveThreadInterval())
         {
             // Monitor the rate of change of heap in use.
             long change = memoryInUse() - inUse;
             long rateOfChange = longDiv(change * 1000, interval); // bps.
-            if (maxRateOfChange < rateOfChange) 
+            if (maxRateOfChange < rateOfChange)
             {
                 maxRateOfChange = (maxRateOfChange + rateOfChange) / 2;
             }
@@ -219,40 +219,40 @@
         }
 
         // Amount of memory used is greater than heapsize
-        if (memoryLow()) 
+        if (memoryLow())
         {
-            if ( this.invokeGC ) 
+            if ( this.invokeGC )
             {
                 this.freePhysicalMemory();
             }
 
-            synchronized (this) 
+            synchronized (this)
             {
                 if (!this.invokeGC
-                    || (memoryLow() && getStoreList().size() > 0)) 
+                    || (memoryLow() && getStoreList().size() > 0))
                 {
-                        
+
                     freeMemory();
                     setIndex(getIndex() + 1);
                 }
             }
         }
 
-        if (getAdaptiveThreadInterval()) 
+        if (getAdaptiveThreadInterval())
         {
             // Calculate sleep interval based on the change rate and free memory left
             interval = minTimeToFill(maxRateOfChange) * 1000 / 2;
-            if (interval > this.threadInterval) 
+            if (interval > this.threadInterval)
             {
                 interval = this.threadInterval;
-            } 
-            else if (interval < this.minThreadInterval) 
+            }
+            else if (interval < this.minThreadInterval)
             {
                 interval = this.minThreadInterval;
             }
             inUse = memoryInUse();
-        } 
-        else 
+        }
+        else
         {
             interval = this.threadInterval;
         }
@@ -262,24 +262,24 @@
      *
      * @return true if memory is low
      */
-    private boolean memoryLow() 
+    private boolean memoryLow()
     {
-        if (getLogger().isDebugEnabled()) 
+        if (getLogger().isDebugEnabled())
         {
             getLogger().debug("JVM Memory total: " + getJVM().totalMemory()
                               + ", free: " + getJVM().freeMemory());
         }
 
         if ((getJVM().totalMemory() >= getMaxHeapSize())
-                && (getJVM().freeMemory() < getMinFreeMemory())) 
+                && (getJVM().freeMemory() < getMinFreeMemory()))
         {
-            if (getLogger().isDebugEnabled()) 
+            if (getLogger().isDebugEnabled())
             {
                 getLogger().debug("Memory is low!");
             }
             return true;
-        } 
-        else 
+        }
+        else
         {
             return false;
         }
@@ -290,7 +290,7 @@
      *
      * @return memory in use.
      */
-    protected long memoryInUse() 
+    protected long memoryInUse()
     {
         return jvm.totalMemory() - jvm.freeMemory();
     }
@@ -302,18 +302,18 @@
      * @param rate memory fill rate in time per bytes
      * @return amount of time to fill all the memory with given fill rate
      */
-    private long minTimeToFill(long rate) 
+    private long minTimeToFill(long rate)
     {
         return longDiv(jvm.freeMemory(), rate);
     }
 
-    private long longDiv(long top, long bottom) 
+    private long longDiv(long top, long bottom)
     {
-        try 
+        try
         {
             return top / bottom;
-        } 
-        catch (Exception e) 
+        }
+        catch (Exception e)
         {
             return top > 0 ? Long.MAX_VALUE : Long.MIN_VALUE;
         }
@@ -324,10 +324,10 @@
      *
      * @param store the store to be registered
      */
-    public synchronized void register(Store store) 
+    public synchronized void register(Store store)
     {
         getStoreList().add(store);
-        if (getLogger().isDebugEnabled()) 
+        if (getLogger().isDebugEnabled())
         {
             getLogger().debug("Registered store instance " + store + ". Stores now: "
                               + getStoreList().size());
@@ -339,10 +339,10 @@
      *
      * @param store the store to be unregistered
      */
-    public synchronized void unregister(Store store) 
+    public synchronized void unregister(Store store)
     {
         getStoreList().remove(store);
-        if (getLogger().isDebugEnabled()) 
+        if (getLogger().isDebugEnabled())
         {
             getLogger().debug("Unregistered store instance " + store + ". Stores now: "
                               + getStoreList().size());
@@ -361,7 +361,7 @@
      *
      * @return a java.util.Iterator
      */
-    public Iterator iterator() 
+    public Iterator iterator()
     {
         return getStoreList().iterator();
     }
@@ -369,23 +369,23 @@
     /**
      * Round Robin alghorithm for freeing the registered caches.
      */
-    private void freeMemory() 
+    private void freeMemory()
     {
         // TODO: Alternative to RR might be to free same fraction from every storage.
-        try 
+        try
         {
             // Determine the store.
-            if (getIndex() < getStoreList().size()) 
+            if (getIndex() < getStoreList().size())
             {
-                if (getIndex() == -1) 
+                if (getIndex() == -1)
                 {
                     setIndex(0);
                 }
-            } 
-            else 
+            }
+            else
             {
                 // Store list changed (one or more store has been removed).
-                if (getLogger().isDebugEnabled()) 
+                if (getLogger().isDebugEnabled())
                 {
                     getLogger().debug("Restarting from the beginning");
                 }
@@ -395,27 +395,27 @@
             // Delete proportionate elements out of the store as configured.
             Store store = (Store)getStoreList().get(getIndex());
             int limit = calcToFree(store);
-            if (getLogger().isDebugEnabled()) 
+            if (getLogger().isDebugEnabled())
             {
                 getLogger().debug("Freeing " + limit + " items from store N " + getIndex());
             }
-            for (int i=0; i < limit; i++) 
+            for (int i=0; i < limit; i++)
             {
                 try
                 {
                     store.free();
-                } 
-                catch (OutOfMemoryError e) 
+                }
+                catch (OutOfMemoryError e)
                 {
                     getLogger().error("OutOfMemoryError in freeMemory()");
                 }
             }
-        } 
-        catch (Exception e) 
+        }
+        catch (Exception e)
         {
             getLogger().error("Error in freeMemory()", e);
-        } 
-        catch (OutOfMemoryError e) 
+        }
+        catch (OutOfMemoryError e)
         {
             getLogger().error("OutOfMemoryError in freeMemory()");
         }
@@ -428,10 +428,10 @@
      * @param store the Store which was selected as victim
      * @return number of elements to be removed!
      */
-    private int calcToFree(Store store) 
+    private int calcToFree(Store store)
     {
         int cnt = store.size();
-        if (cnt < 0) 
+        if (cnt < 0)
         {
             if ( getLogger().isDebugEnabled() )
             {
@@ -440,7 +440,7 @@
             return 0;
         }
         final int res = (int)(cnt * fraction);
-        if ( getLogger().isDebugEnabled() ) 
+        if ( getLogger().isDebugEnabled() )
         {
             getLogger().debug("Calculating size for store " + store + " with size " + cnt + " : " + res);
         }
@@ -450,9 +450,9 @@
     /**
      * This method forces the garbage collector
      */
-    private void freePhysicalMemory() 
+    private void freePhysicalMemory()
     {
-        if (getLogger().isDebugEnabled()) 
+        if (getLogger().isDebugEnabled())
         {
             getLogger().debug("Invoking garbage collection. Memory total: "
                               + getJVM().totalMemory() + ", free: "
@@ -462,51 +462,51 @@
         getJVM().runFinalization();
         getJVM().gc();
 
-        if (getLogger().isDebugEnabled()) 
+        if (getLogger().isDebugEnabled())
         {
             getLogger().debug("Garbage collection complete. Memory total: "
                               + getJVM().totalMemory() + ", free: "
                               + getJVM().freeMemory());
         }
     }
-     
 
-    private int getMinFreeMemory() 
+
+    private int getMinFreeMemory()
     {
         return this.minFreeMemory;
     }
 
-    private void setMinFreeMemory(int _freememory) 
+    private void setMinFreeMemory(int _freememory)
     {
         this.minFreeMemory = _freememory;
     }
 
-    private int getMaxHeapSize() 
+    private int getMaxHeapSize()
     {
         return this.maxHeapSize;
     }
 
-    private void setMaxHeapSize(int _heapsize) 
+    private void setMaxHeapSize(int _heapsize)
     {
         this.maxHeapSize = _heapsize;
     }
 
-    private int getPriority() 
+    private int getPriority()
     {
         return this.priority;
     }
 
-    private void setPriority(int _priority) 
+    private void setPriority(int _priority)
     {
         this.priority = _priority;
     }
 
-    private int getThreadInterval() 
+    private int getThreadInterval()
     {
         return this.threadInterval;
     }
 
-    private void setThreadInterval(int _threadInterval) 
+    private void setThreadInterval(int _threadInterval)
     {
         this.threadInterval = _threadInterval;
     }
@@ -516,41 +516,41 @@
         return this.adaptiveThreadInterval;
     }
 
-    private void setAdaptiveThreadInterval(boolean _adaptiveThreadInterval) 
+    private void setAdaptiveThreadInterval(boolean _adaptiveThreadInterval)
     {
         this.adaptiveThreadInterval = _adaptiveThreadInterval;
     }
 
-    private Runtime getJVM() 
+    private Runtime getJVM()
     {
         return this.jvm;
     }
 
-    private void setJVM(Runtime _jvm) 
+    private void setJVM(Runtime _jvm)
     {
         this.jvm = _jvm;
     }
 
-    private ArrayList getStoreList() 
+    private ArrayList getStoreList()
     {
         return this.storelist;
     }
 
-    private void setStoreList(ArrayList _storelist) 
+    private void setStoreList(ArrayList _storelist)
     {
         this.storelist = _storelist;
     }
 
-    private void setIndex(int _index) 
+    private void setIndex(int _index)
     {
-        if (getLogger().isDebugEnabled()) 
+        if (getLogger().isDebugEnabled())
         {
             getLogger().debug("Setting index=" + _index);
         }
         this.index = _index;
     }
 
-    private int getIndex() 
+    private int getIndex()
     {
         return this.index;
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: scm-unsubscribe@excalibur.apache.org
For additional commands, e-mail: scm-help@excalibur.apache.org