Make logging less verbose and better check disposed status of widgets
[lgpl/argeo-commons.git] / osgi / equinox / org.argeo.cms.lib.equinox / src / org / argeo / cms / equinox / http / jetty / EquinoxJettyServer.java
index cd4d5cee80949b754c4b6b71b14eda82bd8df78a..935be167a8577af83c721d0fadeb392ac3c37444 100644 (file)
@@ -14,6 +14,7 @@ import javax.servlet.http.HttpSessionEvent;
 import javax.servlet.http.HttpSessionIdListener;
 import javax.servlet.http.HttpSessionListener;
 
+import org.argeo.api.cms.CmsLog;
 import org.argeo.cms.jetty.CmsJettyServer;
 import org.eclipse.equinox.http.servlet.HttpServiceServlet;
 import org.eclipse.jetty.ee8.nested.SessionHandler;
@@ -23,6 +24,7 @@ import org.osgi.framework.Constants;
 
 /** A {@link CmsJettyServer} integrating with Equinox HTTP framework. */
 public class EquinoxJettyServer extends CmsJettyServer {
+       private final static CmsLog log = CmsLog.getLog(EquinoxJettyServer.class);
        private static final String INTERNAL_CONTEXT_CLASSLOADER = "org.eclipse.equinox.http.jetty.internal.ContextClassLoader";
 
        @Override
@@ -95,6 +97,10 @@ public class EquinoxJettyServer extends CmsJettyServer {
                        thread.setContextClassLoader(contextLoader);
                        try {
                                httpServiceServlet.service(req, res);
+                       } catch (IllegalStateException e) {
+                               // context is probably in shutdown
+                               if (log.isTraceEnabled())
+                                       log.error("Cannot process request", e);
                        } finally {
                                thread.setContextClassLoader(current);
                        }