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);
             }

Reply via email to