Repository: incubator-nifi Updated Branches: refs/heads/NIFI-353 b43fe6f93 -> f78f74dc8
NIFI-353: - Adding error handling around the call into the content viewer extension. - Using forward instead of include when showing errors. Project: http://git-wip-us.apache.org/repos/asf/incubator-nifi/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-nifi/commit/f78f74dc Tree: http://git-wip-us.apache.org/repos/asf/incubator-nifi/tree/f78f74dc Diff: http://git-wip-us.apache.org/repos/asf/incubator-nifi/diff/f78f74dc Branch: refs/heads/NIFI-353 Commit: f78f74dc8dcc21e8f01ae65cb17a6db80c2f3a6c Parents: b43fe6f Author: Matt Gilman <[email protected]> Authored: Sun Mar 22 16:24:45 2015 -0400 Committer: Matt Gilman <[email protected]> Committed: Sun Mar 22 16:24:45 2015 -0400 ---------------------------------------------------------------------- .../nifi/web/ContentViewerController.java | 34 ++++++++++++++++---- 1 file changed, 27 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/f78f74dc/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/java/org/apache/nifi/web/ContentViewerController.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/java/org/apache/nifi/web/ContentViewerController.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/java/org/apache/nifi/web/ContentViewerController.java index 91ce8e9..09d620c 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/java/org/apache/nifi/web/ContentViewerController.java +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/java/org/apache/nifi/web/ContentViewerController.java @@ -74,7 +74,7 @@ public class ContentViewerController extends HttpServlet { // forward to the error page final ServletContext viewerContext = servletContext.getContext("/nifi"); - viewerContext.getRequestDispatcher("/message").include(request, response); + viewerContext.getRequestDispatcher("/message").forward(request, response); return; } catch (final AccessDeniedException ade) { request.setAttribute("title", "Acess Denied"); @@ -82,7 +82,7 @@ public class ContentViewerController extends HttpServlet { // forward to the error page final ServletContext viewerContext = servletContext.getContext("/nifi"); - viewerContext.getRequestDispatcher("/message").include(request, response); + viewerContext.getRequestDispatcher("/message").forward(request, response); return; } catch (final Exception e) { request.setAttribute("title", "Error"); @@ -90,7 +90,7 @@ public class ContentViewerController extends HttpServlet { // forward to the error page final ServletContext viewerContext = servletContext.getContext("/nifi"); - viewerContext.getRequestDispatcher("/message").include(request, response); + viewerContext.getRequestDispatcher("/message").forward(request, response); return; } @@ -112,7 +112,7 @@ public class ContentViewerController extends HttpServlet { // forward to the error page final ServletContext viewerContext = servletContext.getContext("/nifi"); - viewerContext.getRequestDispatcher("/message").include(request, response); + viewerContext.getRequestDispatcher("/message").forward(request, response); return; } @@ -206,10 +206,30 @@ public class ContentViewerController extends HttpServlet { } }); - // generate the content - final ServletContext viewerContext = servletContext.getContext(contentViewerUri); - viewerContext.getRequestDispatcher("/view-content").include(request, response); + try { + // generate the content + final ServletContext viewerContext = servletContext.getContext(contentViewerUri); + viewerContext.getRequestDispatcher("/view-content").include(request, response); + } catch (final Exception e) { + String message = e.getMessage() != null ? e.getMessage() : e.toString(); + message = "Unable to generate view of data: " + message; + + // log the error + logger.error(message); + if (logger.isDebugEnabled()) { + logger.error(StringUtils.EMPTY, e); + } + + // populate the request attributes + request.setAttribute("title", "Error"); + request.setAttribute("messages", message); + // forward to the error page + final ServletContext viewerContext = servletContext.getContext("/nifi"); + viewerContext.getRequestDispatcher("/message").forward(request, response); + return; + } + // remove the request attribute request.removeAttribute(ViewableContent.CONTENT_REQUEST_ATTRIBUTE); }
