You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bd...@apache.org on 2008/02/01 13:57:59 UTC

svn commit: r617490 - /incubator/sling/trunk/sling/core/src/main/java/org/apache/sling/core/impl/SlingMainServlet.java

Author: bdelacretaz
Date: Fri Feb  1 04:57:56 2008
New Revision: 617490

URL: http://svn.apache.org/viewvc?rev=617490&view=rev
Log:
require ServletResolver and MimeTypeService in service method, avoids hard to diagnose problems if those are missing

Modified:
    incubator/sling/trunk/sling/core/src/main/java/org/apache/sling/core/impl/SlingMainServlet.java

Modified: incubator/sling/trunk/sling/core/src/main/java/org/apache/sling/core/impl/SlingMainServlet.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/sling/core/src/main/java/org/apache/sling/core/impl/SlingMainServlet.java?rev=617490&r1=617489&r2=617490&view=diff
==============================================================================
--- incubator/sling/trunk/sling/core/src/main/java/org/apache/sling/core/impl/SlingMainServlet.java (original)
+++ incubator/sling/trunk/sling/core/src/main/java/org/apache/sling/core/impl/SlingMainServlet.java Fri Feb  1 04:57:56 2008
@@ -219,15 +219,25 @@
     public void service(HttpServletRequest servletRequest,
             HttpServletResponse servletResponse) throws IOException {
 
-        // the resource manager factory may be missing
-        if (getResourceResolverFactory() == null) {
-            log.error("service: Cannot handle requests without a ResourceResolverFactory");
-            sendError(HttpServletResponse.SC_NOT_FOUND,
-                "No resource can be found", null, servletRequest,
-                servletResponse);
+        // check that we have all required services
+        String missing = null;
+        if(getResourceResolverFactory() == null) {
+            missing = "ResourceResolverFactory";
+        } else if(getServletResolver() == null) {
+            missing = "ServletResolver";
+        } else if(mimeTypeService == null) {
+            missing = "MimeTypeService";
+        }
+        
+        if(missing != null) {
+            final String err = missing + " service missing, cannot service requests";
+            final int status = HttpServletResponse.SC_SERVICE_UNAVAILABLE; 
+            log.error(err + ", sending status " + status);
+            sendError(status, err, null, servletRequest, servletResponse);
             return;
         }
 
+        // get JCR Session
         Session session = (Session) servletRequest.getAttribute(SESSION);
         if (session == null) {
             log.error("service: Cannot handle request: Missing JCR Session");
@@ -737,5 +747,5 @@
         }
         return stringConfig;
     }
-
+ 
 }