With:
ERROR [http-bio-0.0.0.0-8080-exec-9] [org.nuxeo.theme.jsf.facelets.CompositionHandler] Could not obtain the negotiation strategy for /nuxeo
See NXP-15074 for a reproduction scenario. In this case we found a workaround: only loading theme contribution if not in SDK container.
Though a generic solution (apart from handling hot reload of theme contributions) could be to handle this logic in the theme service itself, not loading any theme contribution when detecting the SDK container.
It can be detected by the classloader:
boolean isSDKContainer() { return "org.nuxeo.runtime.tomcat.dev".equals(this.getClass().getClassLoader().getClass().getPackage().getName()); }