From 0be7a41a10eab92e1120e6b5dfa4d722f38f6e9f Mon Sep 17 00:00:00 2001 From: j2blake Date: Sun, 1 Jul 2012 15:43:39 +0000 Subject: [PATCH] NIHVIVO-3829 Reduce the number of stack traces in the log from short view problems. --- .../shortview/ShortViewServiceImpl.java | 21 ++++++++++++++++--- .../IndividualShortViewDirective.java | 2 +- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/services/shortview/ShortViewServiceImpl.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/services/shortview/ShortViewServiceImpl.java index 99f6cd839..d8223d70f 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/services/shortview/ShortViewServiceImpl.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/services/shortview/ShortViewServiceImpl.java @@ -2,6 +2,7 @@ package edu.cornell.mannlib.vitro.webapp.services.shortview; +import java.io.FileNotFoundException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -19,6 +20,7 @@ import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary; import edu.cornell.mannlib.vitro.webapp.services.freemarker.FreemarkerProcessingService; import edu.cornell.mannlib.vitro.webapp.services.freemarker.FreemarkerProcessingService.TemplateParsingException; +import edu.cornell.mannlib.vitro.webapp.services.freemarker.FreemarkerProcessingService.TemplateProcessingException; import edu.cornell.mannlib.vitro.webapp.services.freemarker.FreemarkerProcessingServiceSetup; import edu.cornell.mannlib.vitro.webapp.services.shortview.FakeApplicationOntologyService.TemplateAndDataGetters; import edu.cornell.mannlib.vitro.webapp.utils.dataGetter.DataGetter; @@ -59,7 +61,7 @@ public class ShortViewServiceImpl implements ShortViewService { .getService(vreq.getSession().getServletContext()); if (!fps.isTemplateAvailable(templateName, vreq)) { - return "

Can't locate short view template '" + templateName + return "

Can't find the short view template '" + templateName + "' for " + individual.getName() + "

"; } @@ -68,6 +70,17 @@ public class ShortViewServiceImpl implements ShortViewService { log.error(e, e); return "

Can't parse the short view template '" + templateName + "' for " + individual.getName() + "

"; + } catch (TemplateProcessingException e) { + if (e.getCause() instanceof FileNotFoundException) { + log.error(e); + return "

Can't find the short view template '" + templateName + + "' for " + individual.getName() + "

"; + } else { + log.error(e, e); + return "

Can't process the short view template '" + + templateName + "' for " + individual.getName() + + "

"; + } } catch (Exception e) { log.error(e, e); return "

Failed to render the short view for " @@ -80,7 +93,8 @@ public class ShortViewServiceImpl implements ShortViewService { ShortViewContext svContext, VitroRequest vreq) { TemplateAndDataGetters tdg = fetchTemplateAndDataGetters(individual, svContext, vreq); - Map gotData = runDataGetters(tdg.getDataGetters(), individual); + Map gotData = runDataGetters(tdg.getDataGetters(), + individual); return new TemplateAndSupplementalDataImpl(tdg.getTemplateName(), gotData); } @@ -115,7 +129,8 @@ public class ShortViewServiceImpl implements ShortViewService { } /** Build a data map from the combined results of all data getters. */ - private Map runDataGetters(Set dataGetters, Individual individual) { + private Map runDataGetters(Set dataGetters, + Individual individual) { Map valueMap = new HashMap(); valueMap.put("individualUri", individual.getURI()); Map gotData = new HashMap(); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/directives/IndividualShortViewDirective.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/directives/IndividualShortViewDirective.java index 9de08a139..d12f5c0b7 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/directives/IndividualShortViewDirective.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/directives/IndividualShortViewDirective.java @@ -108,7 +108,7 @@ public class IndividualShortViewDirective extends BaseTemplateDirectiveModel { env.include(template); } catch (IOException e) { log.error("Could not load template '" + svInfo.getTemplateName() - + "'", e); + + "': " + e); renderErrorMessage(individual); } catch (TemplateException e) { log.error("Could not process template '" + svInfo.getTemplateName()