This is an automated email from the ASF dual-hosted git repository. danhaywood pushed a commit to branch CAUSEWAY-3678 in repository https://gitbox.apache.org/repos/asf/causeway.git
commit 32ba3aefda6444ff9318976685dd3f52f268f502 Author: danhaywood <[email protected]> AuthorDate: Wed Jan 17 16:08:54 2024 +0000 CAUSEWAY-3678: adds guard into RO's filter --- .../webmodule/CausewayRestfulObjectsInteractionFilter.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/causeway/viewer/restfulobjects/viewer/webmodule/CausewayRestfulObjectsInteractionFilter.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/causeway/viewer/restfulobjects/viewer/webmodule/CausewayRestfulObjectsInteractionFilter.java index 80caded0d9..3fb9d46308 100644 --- a/viewers/restfulobjects/viewer/src/main/java/org/apache/causeway/viewer/restfulobjects/viewer/webmodule/CausewayRestfulObjectsInteractionFilter.java +++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/causeway/viewer/restfulobjects/viewer/webmodule/CausewayRestfulObjectsInteractionFilter.java @@ -347,11 +347,17 @@ public class CausewayRestfulObjectsInteractionFilter implements Filter { Objects.requireNonNull(interactionService, "causewayInteractionFactory"); Objects.requireNonNull(specificationLoader, "specificationLoader"); - ensureMetamodelIsValid(specificationLoader); - val httpServletRequest = (HttpServletRequest) request; val httpServletResponse = (HttpServletResponse) response; + // check that the app has bootstrapped; if it hasn't, then return a 503 (rather than a huge stack trace) + try { + ensureMetamodelIsValid(specificationLoader); + } catch (Exception ex) { + httpServletResponse.setStatus(HttpServletResponse.SC_SERVICE_UNAVAILABLE); + return; + } + try { val queryString = httpServletRequest.getQueryString(); if (queryString != null && queryString
