diff --git a/http/base/src/main/java/org/apache/felix/http/base/internal/context/ExtServletContext.java b/http/base/src/main/java/org/apache/felix/http/base/internal/context/ExtServletContext.java
index 7ed2008..56f67d7 100644
--- a/http/base/src/main/java/org/apache/felix/http/base/internal/context/ExtServletContext.java
+++ b/http/base/src/main/java/org/apache/felix/http/base/internal/context/ExtServletContext.java
@@ -16,10 +16,11 @@
  */
 package org.apache.felix.http.base.internal.context;
 
+import java.io.IOException;
+
 import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
 
 public interface ExtServletContext
     extends ServletContext
diff --git a/http/base/src/main/java/org/apache/felix/http/base/internal/context/ServletContextImpl.java b/http/base/src/main/java/org/apache/felix/http/base/internal/context/ServletContextImpl.java
index 8f3aece..3c9ea01 100644
--- a/http/base/src/main/java/org/apache/felix/http/base/internal/context/ServletContextImpl.java
+++ b/http/base/src/main/java/org/apache/felix/http/base/internal/context/ServletContextImpl.java
@@ -105,7 +105,8 @@
         if (res != null) {
             try {
                 return res.openStream();
-            } catch (IOException e) {
+            }
+            catch (IOException e) {
                 // Do nothing
             }
         }
@@ -207,20 +208,17 @@
         }
     }
 
-    @SuppressWarnings("deprecation")
     public Servlet getServlet(String name)
         throws ServletException
     {
         return null;
     }
 
-    @SuppressWarnings("deprecation")
     public Enumeration getServlets()
     {
         return Collections.enumeration(Collections.emptyList());
     }
 
-    @SuppressWarnings("deprecation")
     public Enumeration getServletNames()
     {
         return Collections.enumeration(Collections.emptyList());
