You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cz...@apache.org on 2002/03/28 10:56:59 UTC

cvs commit: xml-cocoon2/src/java/org/apache/cocoon/components/store FilesystemStore.java MRUMemoryStore.java MemoryStore.java

cziegeler    02/03/28 01:56:58

  Modified:    src/java/org/apache/cocoon/components/store
                        FilesystemStore.java MRUMemoryStore.java
                        MemoryStore.java
  Log:
  Paranoid synchronization fix
  
  Revision  Changes    Path
  1.14      +10 -10    xml-cocoon2/src/java/org/apache/cocoon/components/store/FilesystemStore.java
  
  Index: FilesystemStore.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/store/FilesystemStore.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- FilesystemStore.java	8 Mar 2002 04:09:59 -0000	1.13
  +++ FilesystemStore.java	28 Mar 2002 09:56:58 -0000	1.14
  @@ -73,7 +73,7 @@
    *
    * @author ?
    * @author <a href="mailto:vgritsenko@apache.org">Vadim Gritsenko</a>
  - * @version CVS $Id: FilesystemStore.java,v 1.13 2002/03/08 04:09:59 vgritsenko Exp $
  + * @version CVS $Id: FilesystemStore.java,v 1.14 2002/03/28 09:56:58 cziegeler Exp $
    */
   public final class FilesystemStore
   extends AbstractLoggable
  @@ -173,7 +173,7 @@
       /**
        * Get the File object associated with the given unique key name.
        */
  -    public Object get(final Object key) {
  +    public synchronized Object get(final Object key) {
           final File file = fileFromKey(key);
   
           if (file != null && file.exists()) {
  @@ -200,7 +200,7 @@
        * 2) String values are dumped to text files
        * 3) Object values are serialized
        */
  -    public void store(final Object key, final Object value)
  +    public synchronized void store(final Object key, final Object value)
       throws IOException {
           final File file = fileFromKey(key);
   
  @@ -232,7 +232,7 @@
       /**
        * Holds the given object in a volatile state.
        */
  -    public void hold(final Object key, final Object value)
  +    public synchronized void hold(final Object key, final Object value)
       throws IOException {
           this.store(key, value);
           final File file = (File) this.fileFromKey(key);
  @@ -244,7 +244,7 @@
       /**
        * Remove the object associated to the given key.
        */
  -    public void remove(final Object key) {
  +    public synchronized void remove(final Object key) {
           final File file = fileFromKey(key);
           if (file != null) {
               file.delete();
  @@ -254,7 +254,7 @@
       /**
        * Indicates if the given key is associated to a contained object.
        */
  -    public boolean containsKey(final Object key) {
  +    public synchronized boolean containsKey(final Object key) {
           final File file = fileFromKey(key);
           if (file == null) {
               return false;
  @@ -265,7 +265,7 @@
       /**
        * Returns the list of stored files as an Enumeration of Files
        */
  -    public Enumeration keys() {
  +    public synchronized Enumeration keys() {
           final FSEnumeration enum = new FSEnumeration();
           this.addKeys(enum, this.directoryFile);
           return enum;
  @@ -275,7 +275,7 @@
        * Returns count of the objects in the store, or -1 if could not be
        * obtained.
        */
  -    public int size() {
  +    public synchronized int size() {
           return countKeys(this.directoryFile);
       }
   
  @@ -353,9 +353,9 @@
           return null;
       }
   
  -    public void free() {}
  +    public synchronized void free() {}
   
  -    public Object getObject(final Object key)
  +    public synchronized Object getObject(final Object key)
       throws IOException, ClassNotFoundException
       {
           final File file = (File) this.fileFromKey(key);
  
  
  
  1.15      +9 -9      xml-cocoon2/src/java/org/apache/cocoon/components/store/MRUMemoryStore.java
  
  Index: MRUMemoryStore.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/store/MRUMemoryStore.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- MRUMemoryStore.java	8 Mar 2002 04:09:59 -0000	1.14
  +++ MRUMemoryStore.java	28 Mar 2002 09:56:58 -0000	1.15
  @@ -80,7 +80,7 @@
    * @author <a href="mailto:g-froehlich@gmx.de">Gerhard Froehlich</a>
    * @author <a href="mailto:dims@yahoo.com">Davanum Srinivas</a>
    * @author <a href="mailto:vgritsenko@apache.org">Vadim Gritsenko</a>
  - * @version CVS $Id: MRUMemoryStore.java,v 1.14 2002/03/08 04:09:59 vgritsenko Exp $
  + * @version CVS $Id: MRUMemoryStore.java,v 1.15 2002/03/28 09:56:58 cziegeler Exp $
    */
   public final class MRUMemoryStore
   extends AbstractLoggable
  @@ -180,7 +180,7 @@
        * @param key The key for the object to store
        * @param value The object to store
        */
  -    public void store(Object key, Object value) {
  +    public synchronized void store(Object key, Object value) {
           this.hold(key,value);
       }
   
  @@ -192,7 +192,7 @@
        * @param key The key of the object to be stored
        * @param value The object to be stored
        */
  -    public void hold(Object key, Object value) {
  +    public synchronized void hold(Object key, Object value) {
           if (getLogger().isDebugEnabled()) {
               getLogger().debug("Holding object in memory:");
               getLogger().debug("  key: " + key);
  @@ -215,7 +215,7 @@
        * @param key The key of the requested object
        * @return the requested object
        */
  -    public Object get(Object key) {
  +    public synchronized Object get(Object key) {
           Object value = this.cache.get(key);
           if (value != null) {
               /** put the accessed key on top of the linked list */
  @@ -255,7 +255,7 @@
        *
        * @param key The key of to be removed object
        */
  -    public void remove(Object key) {
  +    public synchronized void remove(Object key) {
           if (getLogger().isDebugEnabled()) {
               getLogger().debug("Removing object from store");
               getLogger().debug("  key: " + key);
  @@ -273,7 +273,7 @@
        * @param key The key of the object
        * @return true if the key exists
        */
  -    public boolean containsKey(Object key) {
  +    public synchronized boolean containsKey(Object key) {
           if(persistent) {
               return (cache.containsKey(key) || persistentStore.containsKey(key));
           } else {
  @@ -286,7 +286,7 @@
        *
        * @return the enumeration of the cache
        */
  -    public Enumeration keys() {
  +    public synchronized Enumeration keys() {
           return this.cache.keys();
       }
   
  @@ -294,7 +294,7 @@
        * Returns count of the objects in the store, or -1 if could not be
        * obtained.
        */
  -    public int size() {
  +    public synchronized int size() {
           return this.cache.size();
       }
   
  @@ -302,7 +302,7 @@
        * Frees some of the fast memory used by this store.
        * It removes the last element in the store.
        */
  -    public void free() {
  +    public synchronized void free() {
           try {
               if (this.cache.size() > 0) {
                   // This can throw NoSuchElementException
  
  
  
  1.7       +9 -9      xml-cocoon2/src/java/org/apache/cocoon/components/store/MemoryStore.java
  
  Index: MemoryStore.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/store/MemoryStore.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- MemoryStore.java	22 Feb 2002 07:00:13 -0000	1.6
  +++ MemoryStore.java	28 Mar 2002 09:56:58 -0000	1.7
  @@ -63,7 +63,7 @@
    *         (Apache Software Foundation)
    * @author <a href="mailto:fumagalli@exoffice.com">Pierpaolo Fumagalli</a>
    *         (Apache Software Foundation, Exoffice Technologies)
  - * @version CVS $Id: MemoryStore.java,v 1.6 2002/02/22 07:00:13 cziegeler Exp $
  + * @version CVS $Id: MemoryStore.java,v 1.7 2002/03/28 09:56:58 cziegeler Exp $
    */
   public class MemoryStore implements Store, ThreadSafe {
       /* WARNING: Hashtable is threadsafe, whereas HashMap is not.
  @@ -78,7 +78,7 @@
       /**
        * Get the object associated to the given unique key.
        */
  -    public Object get(Object key) {
  +    public synchronized Object get(Object key) {
           return(table.get(key));
       }
   
  @@ -87,7 +87,7 @@
        * caller to ensure that the key has a persistent state across
        * different JVM executions.
        */
  -    public void store(Object key, Object value) {
  +    public synchronized void store(Object key, Object value) {
           this.hold(key,value);
       }
   
  @@ -96,30 +96,30 @@
        * the object store will discard held objects if the
        * virtual machine is restarted or some error happens.
        */
  -    public void hold(Object key, Object value) {
  +    public synchronized void hold(Object key, Object value) {
           table.put(key,value);
       }
   
       /**
        * Remove the object associated to the given key.
        */
  -    public void remove(Object key) {
  +    public synchronized void remove(Object key) {
           table.remove(key);
       }
   
  -    public void free() {}
  +    public synchronized void free() {}
   
       /**
        * Indicates if the given key is associated to a contained object.
        */
  -    public boolean containsKey(Object key) {
  +    public synchronized boolean containsKey(Object key) {
           return(table.containsKey(key));
       }
   
       /**
        * Returns the list of used keys as an Enumeration of Objects.
        */
  -    public Enumeration keys() {
  +    public synchronized Enumeration keys() {
           return(table.keys());
       }
   
  @@ -127,7 +127,7 @@
        * Returns count of the objects in the store, or -1 if could not be
        * obtained.
        */
  -    public int size()
  +    public synchronized int size()
       {
           return table.size();
       }
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     webmaster@xml.apache.org
To unsubscribe, e-mail:          cocoon-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: cocoon-cvs-help@xml.apache.org