diff --git a/api/src/org/labkey/api/view/HttpView.java b/api/src/org/labkey/api/view/HttpView.java index 0c7aee94c04..9f42c046753 100644 --- a/api/src/org/labkey/api/view/HttpView.java +++ b/api/src/org/labkey/api/view/HttpView.java @@ -603,6 +603,7 @@ public static HttpView redirect(ActionURL url) return redirect(url.getLocalURIString()); } + @Deprecated(forRemoval = true) // Use ActionURL or URLHelper variant instead. TODO: Remove public static HttpView redirect(String url) { throw new RedirectException(url); diff --git a/query/src/org/labkey/query/reports/ReportsController.java b/query/src/org/labkey/query/reports/ReportsController.java index 86e2330abbe..4055aacfb60 100644 --- a/query/src/org/labkey/query/reports/ReportsController.java +++ b/query/src/org/labkey/query/reports/ReportsController.java @@ -149,6 +149,7 @@ import org.labkey.api.view.NavTree; import org.labkey.api.view.NotFoundException; import org.labkey.api.view.Portal; +import org.labkey.api.view.RedirectException; import org.labkey.api.view.UnauthorizedException; import org.labkey.api.view.VBox; import org.labkey.api.view.ViewBackgroundInfo; @@ -199,7 +200,6 @@ import static org.apache.commons.lang3.StringUtils.isBlank; import static org.labkey.api.reports.model.ViewCategoryManager.UNCATEGORIZED_ROWID; import static org.labkey.api.util.DOM.DIV; -import static org.labkey.api.util.DOM.SPAN; import static org.labkey.api.util.DOM.cl; public class ReportsController extends SpringActionController @@ -1017,9 +1017,15 @@ public ModelAndView getView(ReportDesignBean form, BindException errors) thro { reportView = _report.getRunReportView(getViewContext()); } + catch (RedirectException re) + { + // Link reports throw RedirectException... pass it on + throw re; + } catch (RuntimeException e) { - return new HtmlView(SPAN(cl("labkey-error"), e.getMessage(), ". Unable to create report.")); + String message = Objects.requireNonNullElse(e.getMessage(), e.getClass().getSimpleName()) + ". Unable to create report."; + return HtmlView.err(message); } if (!isPrint() && DiscussionService.get() != null)