donaldp     2002/09/13 03:31:51

  Modified:    monitor/src/java/org/apache/avalon/excalibur/monitor
                        DirectoryResource.java
  Log:
  Okay - if a directory disapears we issue a remove event for all remaining files.
  
  Revision  Changes    Path
  1.4       +21 -21    
jakarta-avalon-excalibur/monitor/src/java/org/apache/avalon/excalibur/monitor/DirectoryResource.java
  
  Index: DirectoryResource.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/monitor/src/java/org/apache/avalon/excalibur/monitor/DirectoryResource.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DirectoryResource.java    13 Sep 2002 10:18:24 -0000      1.3
  +++ DirectoryResource.java    13 Sep 2002 10:31:51 -0000      1.4
  @@ -73,31 +73,31 @@
           final HashSet addedFiles = new HashSet();
   
           final File[] files = m_dir.listFiles();
  -        if( null == files )
  -        {
  -            //In the case that the directory does not exist
  -            return;
  -        }
   
  -        for( int i = 0; i < files.length; i++ )
  +        int fileCount = 0;
  +        if( null != files )
           {
  -            final File file = files[ i ];
  -            final long newModTime = file.lastModified();
  -            if( m_files.contains( file ) )
  +            fileCount = files.length;
  +            for( int i = 0; i < files.length; i++ )
               {
  -                existingFiles.add( file );
  +                final File file = files[ i ];
  +                final long newModTime = file.lastModified();
  +                if( m_files.contains( file ) )
  +                {
  +                    existingFiles.add( file );
   
  -                final Long oldModTime = (Long)m_times.get( file );
  -                if( oldModTime.longValue() != newModTime )
  +                    final Long oldModTime = (Long)m_times.get( file );
  +                    if( oldModTime.longValue() != newModTime )
  +                    {
  +                        modifiedFiles.add( file );
  +                    }
  +                }
  +                else
                   {
  -                    modifiedFiles.add( file );
  +                    addedFiles.add( file );
                   }
  +                m_times.put( file, new Long( newModTime ) );
               }
  -            else
  -            {
  -                addedFiles.add( file );
  -            }
  -            m_times.put( file, new Long( newModTime ) );
           }
   
           final int lastCount = m_files.size();
  @@ -106,7 +106,7 @@
   
           //If no new files have been added and
           //none deleted then nothing to do
  -        if( files.length == lastCount &&
  +        if( fileCount == lastCount &&
               0 == addedCount &&
               0 == modifiedCount )
           {
  @@ -117,7 +117,7 @@
   
           //If only new files were added and none were changed then
           //we don't have to scan for deleted files
  -        if( files.length != lastCount + addedCount )
  +        if( fileCount != lastCount + addedCount )
           {
               //Looks like we do have to scan for deleted files
               final Iterator iterator = m_files.iterator();
  
  
  

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

Reply via email to