diff --git a/http/itest/src/test/java/org/apache/felix/http/itest/HttpJettyTest.java b/http/itest/src/test/java/org/apache/felix/http/itest/HttpJettyTest.java
index 639f5d5..b423c6f 100644
--- a/http/itest/src/test/java/org/apache/felix/http/itest/HttpJettyTest.java
+++ b/http/itest/src/test/java/org/apache/felix/http/itest/HttpJettyTest.java
@@ -23,7 +23,6 @@
 import static javax.servlet.http.HttpServletResponse.SC_OK;
 import static javax.servlet.http.HttpServletResponse.SC_PAYMENT_REQUIRED;
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
@@ -96,8 +95,7 @@
 
         bundle.stop();
 
-        // destroy should not be called as the bundle stopped
-        assertFalse(destroyLatch.await(5, TimeUnit.SECONDS));
+        assertTrue(destroyLatch.await(5, TimeUnit.SECONDS));
 
         try
         {
diff --git a/http/itest/src/test/java/org/apache/felix/http/itest/HttpServiceRuntimeTest.java b/http/itest/src/test/java/org/apache/felix/http/itest/HttpServiceRuntimeTest.java
index 9651342..1f617bc 100644
--- a/http/itest/src/test/java/org/apache/felix/http/itest/HttpServiceRuntimeTest.java
+++ b/http/itest/src/test/java/org/apache/felix/http/itest/HttpServiceRuntimeTest.java
@@ -1024,7 +1024,7 @@
 
     // As specified in OSGi Compendium Release 6, Chapter 140.4.1
     @Test
-    public void multipleErrorPagesForSameExceptionsChoosenByServiceRankingRules() throws InterruptedException
+    public void multipleErrorPagesForSameErrorCodeChoosenByServiceRankingRules() throws InterruptedException
     {
         registerErrorPage("error page 1", asList(NullPointerException.class.getName(), "500"));
 
@@ -1059,14 +1059,14 @@
         assertArrayEquals(new long[] { 500 }, defaultContext.errorPageDTOs[0].errorCodes);
         assertArrayEquals(new String[] { IllegalArgumentException.class.getName() }, defaultContext.errorPageDTOs[0].exceptions);
         assertEquals("error page 1", defaultContext.errorPageDTOs[1].name);
-        assertArrayEquals(new long[] { 500 }, defaultContext.errorPageDTOs[1].errorCodes);
+        assertEquals(0, defaultContext.errorPageDTOs[1].errorCodes.length);
         assertArrayEquals(new String[] { NullPointerException.class.getName() }, defaultContext.errorPageDTOs[1].exceptions);
 
         assertEquals(1, runtimeWithShadowedErrorPage.failedErrorPageDTOs.length);
         FailedErrorPageDTO failedErrorPageDTO = runtimeWithShadowedErrorPage.failedErrorPageDTOs[0];
         assertEquals("error page 1", failedErrorPageDTO.name);
         assertArrayEquals(new long[] { 500 }, failedErrorPageDTO.errorCodes);
-        assertArrayEquals(new String[] { NullPointerException.class.getName() }, failedErrorPageDTO.exceptions);
+        assertEquals(0, failedErrorPageDTO.exceptions.length);
         assertEquals(FAILURE_REASON_SHADOWED_BY_OTHER_SERVICE, failedErrorPageDTO.failureReason);
 
         higherRankingServlet.unregister();
