donaldp 2002/11/01 13:52:42
Modified: extension/src/java/org/apache/avalon/excalibur/packagemanager/impl
DefaultExtensionManager.java
Log:
Bug fix last commit
Revision Changes Path
1.8 +23 -6
jakarta-avalon-excalibur/extension/src/java/org/apache/avalon/excalibur/packagemanager/impl/DefaultExtensionManager.java
Index: DefaultExtensionManager.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-excalibur/extension/src/java/org/apache/avalon/excalibur/packagemanager/impl/DefaultExtensionManager.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- DefaultExtensionManager.java 1 Nov 2002 21:34:35 -0000 1.7
+++ DefaultExtensionManager.java 1 Nov 2002 21:52:42 -0000 1.8
@@ -10,10 +10,11 @@
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
import java.util.StringTokenizer;
-import java.util.Collections;
-import java.util.Collection;
import java.util.jar.JarFile;
import java.util.jar.Manifest;
import org.apache.avalon.excalibur.extension.Extension;
@@ -44,7 +45,7 @@
/**
* Map between files and {@link OptionalPackage} objects.
*/
- private final HashMap m_packages = new HashMap();
+ private final Map m_packages = new HashMap();
/**
* The set of directories in which to look for Optional Packages
@@ -137,9 +138,25 @@
*
* @return all the OptionalPackages stored in ExtensionManager.
*/
- protected OptionalPackage[] getAllOptionalPackages()
+ protected synchronized OptionalPackage[] getAllOptionalPackages()
{
- final Collection packages = m_packages.values();
+ //This is woefully inefficient - should rewrite it somehow
+ final ArrayList packages = new ArrayList();
+ final Iterator iterator = m_packages.values().iterator();
+ while( iterator.hasNext() )
+ {
+ final ArrayList list = (ArrayList)iterator.next();
+ final int size = list.size();
+ for( int i = 0; i < size; i++ )
+ {
+ final OptionalPackage optionalPackage = (OptionalPackage)list.get(
i );
+ if( !packages.contains( optionalPackage ) )
+ {
+ packages.add( optionalPackage );
+ }
+ }
+ }
+
return (OptionalPackage[])packages.toArray( new OptionalPackage[
packages.size() ] );
}
--
To unsubscribe, e-mail: <mailto:avalon-cvs-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:avalon-cvs-help@;jakarta.apache.org>