Author: imario
Date: Thu May 25 12:51:59 2006
New Revision: 409447

URL: http://svn.apache.org/viewvc?rev=409447&view=rev
Log:
VFS-50: fixed case where a listener removes itself from the list of listeners 
during fire phase.
Thanks to Chris DiGiano for pointing it out.

Modified:
    
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/AbstractFileObject.java
    
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/AbstractFileSystem.java

Modified: 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/AbstractFileObject.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/AbstractFileObject.java?rev=409447&r1=409446&r2=409447&view=diff
==============================================================================
--- 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/AbstractFileObject.java
 (original)
+++ 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/AbstractFileObject.java
 Thu May 25 12:51:59 2006
@@ -1415,7 +1415,7 @@
             if (parentName != null)
             {
                 // Locate the parent, if it is cached
-                parent = (AbstractFileObject) fs.getFileFromCache(parentName);
+                parent = fs.getFileFromCache(parentName);
             }
         }
 

Modified: 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/AbstractFileSystem.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/AbstractFileSystem.java?rev=409447&r1=409446&r2=409447&view=diff
==============================================================================
--- 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/AbstractFileSystem.java
 (original)
+++ 
jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/AbstractFileSystem.java
 Thu May 25 12:51:59 2006
@@ -487,13 +487,13 @@
             final ArrayList listeners = (ArrayList) 
listenerMap.get(file.getName());
             if (listeners != null)
             {
-                final int count = listeners.size();
-                for (int i = 0; i < count; i++)
+               FileListener[] fileListeners = (FileListener[]) 
listeners.toArray(new FileListener[listeners.size()]);
+                for (int i = 0; i < fileListeners.length; i++)
                 {
-                    final FileListener listener = (FileListener) 
listeners.get(i);
+                    final FileListener fileListener = fileListeners[i];
                     try
                     {
-                        event.notify(listener);
+                        event.notify(fileListener);
                     }
                     catch (final Exception e)
                     {



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

Reply via email to