Author: pauls
Date: Tue Nov  6 13:11:52 2007
New Revision: 592555

URL: http://svn.apache.org/viewvc?rev=592555&view=rev
Log:
Avoid creating an unnecessary inner class by reusing an existing one and fix 
some thread safety issue in URLHandlersBundleURLConnection.

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

Modified: 
felix/trunk/framework/src/main/java/org/apache/felix/framework/ExtensionManager.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/ExtensionManager.java?rev=592555&r1=592554&r2=592555&view=diff
==============================================================================
--- 
felix/trunk/framework/src/main/java/org/apache/felix/framework/ExtensionManager.java
 (original)
+++ 
felix/trunk/framework/src/main/java/org/apache/felix/framework/ExtensionManager.java
 Tue Nov  6 13:11:52 2007
@@ -512,13 +512,7 @@
 
         if (path.trim().equals("/"))
         {
-            return new URLConnection(url) 
-            {
-                public void connect() throws IOException 
-                {
-                    throw new IOException("Resource not provided by any 
extension!");
-                }
-            };
+            return new URLHandlersBundleURLConnection(url);
         }
 
         for (Iterator iter = m_extensions.iterator(); iter.hasNext();)

Modified: 
felix/trunk/framework/src/main/java/org/apache/felix/framework/URLHandlersBundleURLConnection.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/URLHandlersBundleURLConnection.java?rev=592555&r1=592554&r2=592555&view=diff
==============================================================================
--- 
felix/trunk/framework/src/main/java/org/apache/felix/framework/URLHandlersBundleURLConnection.java
 (original)
+++ 
felix/trunk/framework/src/main/java/org/apache/felix/framework/URLHandlersBundleURLConnection.java
 Tue Nov  6 13:11:52 2007
@@ -37,6 +37,11 @@
     private String m_contentType;
     private InputStream m_is;
 
+    public URLHandlersBundleURLConnection(URL url)
+    {
+        super(url);
+    }
+
     public URLHandlersBundleURLConnection(URL url, Felix framework)
         throws IOException
     {
@@ -92,7 +97,7 @@
         }
     }
 
-    public void connect() throws IOException
+    public synchronized void connect() throws IOException
     {
         if (!connected)
         {
@@ -112,42 +117,36 @@
     public InputStream getInputStream()
         throws IOException
     {
-        if (!connected)
-        {
-            connect();
-        }
+        connect();
+
         return m_is;
     }
 
     public int getContentLength()
     {
-        if (!connected)
+        try
         {
-            try
-            {
-                connect();
-            }
-            catch(IOException ex)
-            {
-                return -1;
-            }
+            connect();
+        }
+        catch(IOException ex)
+        {
+            return -1;
         }
+
         return m_contentLength;
     }
 
     public long getLastModified()
     {
-        if (!connected)
+        try
         {
-            try
-            {
-                connect();
-            }
-            catch(IOException ex)
-            {
-                return 0;
-            }
+            connect();
+        }
+        catch(IOException ex)
+        {
+            return 0;
         }
+
         if (m_contentTime != -1L)
         {
             return m_contentTime;
@@ -160,17 +159,15 @@
 
     public String getContentType()
     {
-        if (!connected)
+        try
         {
-            try
-            {
-                connect();
-            }
-            catch (IOException ex)
-            {
-                return null;
-            }
+            connect();
+        }
+        catch (IOException ex)
+        {
+            return null;
         }
+
         return m_contentType;
     }
 


Reply via email to