diff --git a/org.eclipse.gemini.web.core/src/test/java/org/eclipse/gemini/web/internal/url/DirTransformerTests.java b/org.eclipse.gemini.web.core/src/test/java/org/eclipse/gemini/web/internal/url/DirTransformerTests.java
index 1a8023a..3e59b51 100644
--- a/org.eclipse.gemini.web.core/src/test/java/org/eclipse/gemini/web/internal/url/DirTransformerTests.java
+++ b/org.eclipse.gemini.web.core/src/test/java/org/eclipse/gemini/web/internal/url/DirTransformerTests.java
@@ -161,7 +161,7 @@
         assertTrue(FileUtils.deleteDirectory(webAppDir));
     }
 
-    private void assertDirsSame(Path webAppDir, Path tempWebAppDir) throws IOException {
+    private void assertDirsSame(Path webAppDir, Path tempWebAppDir) {
         assertEquals(webAppDir.getFileName(), tempWebAppDir.getFileName());
         assertEquals(webAppDir.toFile().length(), tempWebAppDir.toFile().length());
 
diff --git a/org.eclipse.gemini.web.tomcat/src/test/java/org/eclipse/gemini/web/tomcat/internal/bundleresources/BundleWebResourceSetTests.java b/org.eclipse.gemini.web.tomcat/src/test/java/org/eclipse/gemini/web/tomcat/internal/bundleresources/BundleWebResourceSetTests.java
index 31c6110..5bf3be3 100644
--- a/org.eclipse.gemini.web.tomcat/src/test/java/org/eclipse/gemini/web/tomcat/internal/bundleresources/BundleWebResourceSetTests.java
+++ b/org.eclipse.gemini.web.tomcat/src/test/java/org/eclipse/gemini/web/tomcat/internal/bundleresources/BundleWebResourceSetTests.java
@@ -25,8 +25,6 @@
 
 import java.io.File;
 
-import javax.naming.NamingException;
-
 import org.apache.catalina.Context;
 import org.apache.catalina.LifecycleState;
 import org.apache.catalina.WebResource;
@@ -65,7 +63,7 @@
     }
 
     @Test
-    public void testGetAttributesOfDirectory() throws NamingException {
+    public void testGetAttributesOfDirectory() {
         replay(this.root, this.context);
 
         this.bundleWebResourceSet = new BundleWebResourceSet(new BundleWebResource(this.testBundle, this.root), this.root, "/", null, "/");
@@ -84,7 +82,7 @@
     }
 
     @Test
-    public void testGetAttributesOfFile() throws NamingException {
+    public void testGetAttributesOfFile() {
         replay(this.root, this.context);
 
         this.bundleWebResourceSet = new BundleWebResourceSet(new BundleWebResource(this.testBundle, this.root), this.root, "/", null, "/");
