FELIX-4888 : ServletHandler's are not sorted by longest matching path. DTO handling (WiP)

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1680302 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/RuntimeDTOBuilder.java b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/RuntimeDTOBuilder.java
index 07fa10f..e4e5438 100644
--- a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/RuntimeDTOBuilder.java
+++ b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/RuntimeDTOBuilder.java
@@ -52,13 +52,15 @@
     {
         final RuntimeDTO runtimeDTO = new RuntimeDTO();
         runtimeDTO.serviceDTO = createServiceDTO();
+        runtimeDTO.servletContextDTOs = createContextDTOs();
+
         runtimeDTO.failedErrorPageDTOs = registry.getFailedDTOHolder().failedErrorPageDTOs.toArray(new FailedErrorPageDTO[registry.getFailedDTOHolder().failedErrorPageDTOs.size()]);
         runtimeDTO.failedFilterDTOs = registry.getFailedDTOHolder().failedFilterDTOs.toArray(new FailedFilterDTO[registry.getFailedDTOHolder().failedFilterDTOs.size()]);
         runtimeDTO.failedListenerDTOs = registry.getFailedDTOHolder().failedListenerDTOs.toArray(new FailedListenerDTO[registry.getFailedDTOHolder().failedListenerDTOs.size()]);
         runtimeDTO.failedResourceDTOs = registry.getFailedDTOHolder().failedResourceDTOs.toArray(new FailedResourceDTO[registry.getFailedDTOHolder().failedResourceDTOs.size()]);
         runtimeDTO.failedServletContextDTOs = registry.getFailedDTOHolder().failedServletContextDTO.toArray(new FailedServletContextDTO[registry.getFailedDTOHolder().failedServletContextDTO.size()]);
         runtimeDTO.failedServletDTOs = registry.getFailedDTOHolder().failedServletDTOs.toArray(new FailedServletDTO[registry.getFailedDTOHolder().failedServletDTOs.size()]);
-        runtimeDTO.servletContextDTOs = createContextDTOs();
+
         return runtimeDTO;
     }
 
diff --git a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ServletContextDTOBuilder.java b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ServletContextDTOBuilder.java
index f48863d..0815563 100644
--- a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ServletContextDTOBuilder.java
+++ b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ServletContextDTOBuilder.java
@@ -44,6 +44,12 @@
         dto.name = info.getName();
         dto.serviceId = info.getServiceId();
 
+        dto.errorPageDTOs = BuilderConstants.ERROR_PAGE_DTO_ARRAY;
+        dto.filterDTOs = BuilderConstants.FILTER_FAILURE_DTO_ARRAY;
+        dto.listenerDTOs = BuilderConstants.LISTENER_DTO_ARRAY;
+        dto.resourceDTOs = BuilderConstants.RESOURCE_DTO_ARRAY;
+        dto.servletDTOs = BuilderConstants.SERVLET_DTO_ARRAY;
+
         if ( reason != -1 )
         {
             ((FailedServletContextDTO)dto).failureReason = reason;
diff --git a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ServletDTOBuilder.java b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ServletDTOBuilder.java
index 1e00f87..0cc28af 100644
--- a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ServletDTOBuilder.java
+++ b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ServletDTOBuilder.java
@@ -56,6 +56,8 @@
 
         BaseServletDTOBuilder.fill(dto, info);
 
+        dto.patterns = BuilderConstants.EMPTY_STRING_ARRAY;
+
         return dto;
     }
 }