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 2007/11/06 22:11:52 UTC

svn commit: r592555 - in /felix/trunk/framework/src/main/java/org/apache/felix/framework: ExtensionManager.java URLHandlersBundleURLConnection.java

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;
     }