You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by pa...@apache.org on 2009/09/01 21:58:33 UTC

svn commit: r810202 - /felix/trunk/framework/src/main/java/org/apache/felix/framework/URLHandlersActivator.java

Author: pauls
Date: Tue Sep  1 19:58:33 2009
New Revision: 810202

URL: http://svn.apache.org/viewvc?rev=810202&view=rev
Log:
Speed-up URL stream/content handler lookup by using a tracker again. The difference to the previous tracker is that we now create and maintain the trackers inside the framework so don't need to do classloads when using them (FELIX-1138).

Modified:
    felix/trunk/framework/src/main/java/org/apache/felix/framework/URLHandlersActivator.java

Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/URLHandlersActivator.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/URLHandlersActivator.java?rev=810202&r1=810201&r2=810202&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/URLHandlersActivator.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/URLHandlersActivator.java Tue Sep  1 19:58:33 2009
@@ -117,7 +117,18 @@
 
                 for (int i = 0;(i < refs.length) && (service == null);i++)
                 {
-                    if (value.equals(refs[i].getProperty(key)))
+                    Object values = refs[i].getProperty(key);
+                    if (values instanceof String[])
+                    {
+                        for (int j = 0;(j < ((String[]) values).length) && (service == null);j++)
+                        {
+                            if (value.equals(((String[]) values)[j]))
+                            {
+                                service = tracker.getService(refs[i]);
+                            }
+                        }
+                    }
+                    else if (value.equals(values))
                     {
                         service = tracker.getService(refs[i]);
                     }