On 25/06/2008, at 6:06 PM, Emmanuel Venisse wrote:

+        int i = 0;
+        while ( i <= files.size() - 1 )
+        {
+            ChangeFile file = files.get( i );
+            boolean found = false;
+            for ( String module : modules )
+            {
+                if ( file.getName().indexOf( module ) > 0 )
+                {
+                    files.remove( file );
+                    found = true;
+                    break;
+                }
+            }
+            if ( !found )
+            {
+                i++;
+            }
+            else
+            {
+                break;
+            }
+        }


can't the i stuff be a standard for loop?



What do you mean?
I can't use a 'for' loop for the i stuff because in this loop I remove
some
file in the list.


I think that's a bug then? It will break from both loops (found = true).

You probably want to use an iterator, and then use i.remove()?


I didn't see a bug in all tests I done, I know I don't have writtten junit
test and it's bad.
I'll look to refactor it with iterator


I fix an issue with my implementation but not in this part.
Actual implementation works fine.
I tested with an iterator but I get a concurrent modification exception so I
think I'll let this part as is.

concurrent modification exception using i.remove(), or using files.remove( file )?

I'm really confused, because AFAICT if found = true, both loops break anyway right now.

- Brett

--
Brett Porter
[EMAIL PROTECTED]
http://blogs.exist.com/bporter/

Reply via email to