From 23582fca66e9f670fecee8685ddf4a5181e03c72 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Thu, 3 Nov 2022 05:47:13 +0100 Subject: [PATCH] Make Jetty context path handling less restrictive --- .../src/org/argeo/cms/jetty/JettyHttpServer.java | 4 ++-- .../org/argeo/cms/ui/rcp/servlet/CmsRcpServletFactory.java | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/org.argeo.cms.lib.jetty/src/org/argeo/cms/jetty/JettyHttpServer.java b/org.argeo.cms.lib.jetty/src/org/argeo/cms/jetty/JettyHttpServer.java index 11cce74cd..d393e4b2b 100644 --- a/org.argeo.cms.lib.jetty/src/org/argeo/cms/jetty/JettyHttpServer.java +++ b/org.argeo.cms.lib.jetty/src/org/argeo/cms/jetty/JettyHttpServer.java @@ -241,10 +241,10 @@ public class JettyHttpServer extends HttpsServer { @Override public synchronized HttpContext createContext(String path) { + if (!path.endsWith("/")) + path = path + "/"; if (contexts.containsKey(path)) throw new IllegalArgumentException("Context " + path + " already exists"); - if (!path.endsWith("/")) - throw new IllegalArgumentException("Path " + path + " should end with a /"); JettyHttpContext httpContext = new ServletHttpContext(this, path); contexts.put(path, httpContext); diff --git a/swt/rcp/org.argeo.cms.swt.rcp/src/org/argeo/cms/ui/rcp/servlet/CmsRcpServletFactory.java b/swt/rcp/org.argeo.cms.swt.rcp/src/org/argeo/cms/ui/rcp/servlet/CmsRcpServletFactory.java index 9c2f3095c..778cd1b21 100644 --- a/swt/rcp/org.argeo.cms.swt.rcp/src/org/argeo/cms/ui/rcp/servlet/CmsRcpServletFactory.java +++ b/swt/rcp/org.argeo.cms.swt.rcp/src/org/argeo/cms/ui/rcp/servlet/CmsRcpServletFactory.java @@ -24,7 +24,7 @@ import com.sun.net.httpserver.HttpServer; /** Publishes one {@link CmsRcpServlet} per {@link CmsApp}. */ public class CmsRcpServletFactory { private final static Logger logger = System.getLogger(CmsRcpServletFactory.class.getName()); - private CompletableFuture httpServer =new CompletableFuture<>(); + private CompletableFuture httpServer = new CompletableFuture<>(); public void init() { @@ -56,6 +56,9 @@ public class CmsRcpServletFactory { logger.log(Level.DEBUG, "Opened RCP UI " + uiName + " of CMS App /" + contextName); } }); + }).exceptionally(e -> { + logger.log(Level.ERROR, "Cannot register RCO app " + contextName, e); + return null; }); logger.log(Level.DEBUG, "Registered RCP CMS APP /" + contextName); } -- 2.30.2