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>

Reply via email to