jford       2004/03/25 08:27:41

  Modified:    src/java/org/apache/jetspeed/cache FileCache.java
  Log:
  Synchronize the thread to prevent concurrent access/modification fo the cache

  

  PR: Bugzilla #        27845, JIRA #JS1-449

  
  Revision  Changes    Path
  1.5       +21 -18    
jakarta-jetspeed/src/java/org/apache/jetspeed/cache/FileCache.java
  
  Index: FileCache.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/cache/FileCache.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- FileCache.java    23 Feb 2004 02:46:05 -0000      1.4
  +++ FileCache.java    25 Mar 2004 16:27:41 -0000      1.5
  @@ -341,23 +341,26 @@
                       try
                       {
                           int count = 0;
  -                        for (Iterator it = 
FileCache.this.cache.values().iterator(); it.hasNext(); )
  -                        {
  -                            FileCacheEntry entry = (FileCacheEntry) it.next();
  -                            Date modified = new 
Date(entry.getFile().lastModified());
  -    
  -                            if (modified.after(entry.getLastModified()))
  -                            {                            
  -                                for (Iterator lit = 
FileCache.this.listeners.iterator(); lit.hasNext(); )
  -                                {
  -                                    FileCacheEventListener listener = 
  -                                        (FileCacheEventListener) lit.next();
  -                                    listener.refresh(entry);                        
            
  -                                    entry.setLastModified(modified);
  -                                }
  -                            }
  -                            count++;
  -                        }
  +                        synchronized(FileCache.this)
  +                                             {
  +                             for (Iterator it = 
FileCache.this.cache.values().iterator(); it.hasNext(); )
  +                             {
  +                                 FileCacheEntry entry = (FileCacheEntry) it.next();
  +                                 Date modified = new 
Date(entry.getFile().lastModified());
  +         
  +                                 if (modified.after(entry.getLastModified()))
  +                                 {                            
  +                                     for (Iterator lit = 
FileCache.this.listeners.iterator(); lit.hasNext(); )
  +                                     {
  +                                         FileCacheEventListener listener = 
  +                                             (FileCacheEventListener) lit.next();
  +                                         listener.refresh(entry);                   
                 
  +                                         entry.setLastModified(modified);
  +                                     }
  +                                 }
  +                                 count++;
  +                             }
  +                                             }
                           if (count > FileCache.this.getMaxSize())
                           {
                               FileCache.this.evict();
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to