Uploaded image for project: 'FishEye'
  1. FishEye
  2. FE-4156

Watch Emails throwing exception in certain circumstances

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • High
    • 2.8.0, 2.7.15, 2.8.0-m4
    • 2.7.14
    • None
    • None

    Description

      In certain situations, when wiki rendering the commit message of a watch email, the following exception is thrown:

      2012-06-24 19:36:49,124 DEBUG [FE-WatchChecker ] perf.timer Timer-output - <- Querying 7 providers  time 27 millis mem_usage = 355416568 heapsize = 540147712 freemem = 184731144
      2012-06-24 19:36:49,131 DEBUG [FE-WatchChecker ] fisheye.app WatchEAV-update - Updating (createIfNeccessary=false) Watch[id=95;user=sruiz;rep=FEP;path=;constraint=null;lastChecked=1340584608619;lastRevisionSent=trunk/src/test/java/com/atlassian/jirafisheyeplugin/web/admin/fields/I18nHelperForTests.java@16861
      3;csn=1271220978720]
      2012-06-24 19:36:49,141 DEBUG [FE-WatchChecker ] perf.timer Timer-output - -> commit-msg-render mem_usage = 356334632 heapsize = 540147712 freemem = 183813080
      2012-06-24 19:36:49,141 DEBUG [FE-WatchChecker ] perf.timer Timer-output - <- commit-msg-render  time 0 millis mem_usage = 356334632 heapsize = 540147712 freemem = 183813080
      2012-06-24 19:36:49,144 DEBUG [FE-WatchChecker ] perf.timer Timer-output - -> commit-msg-render mem_usage = 356601456 heapsize = 540147712 freemem = 183546256
      2012-06-24 19:36:49,150 DEBUG [FE-WatchChecker ] fisheye.app Log4JLoggerFactory$Log4JLogger-error - not appending because we are in a different classloader: ContextLoader@FishEye WebApp
      2012-06-24 19:36:49,166 ERROR [FE-WatchChecker ] fisheye.app DefaultWatchManager-sendEmailForChangesets - Exception processing watch email template
      
      Method public static java.lang.String com.cenqua.crucible.util.FreemarkerUtil.formatChangesetComment(com.cenqua.fisheye.RepositoryConfig,com.cenqua.fisheye.rep.ChangeSet) threw an exception
      The problematic instruction:
      ----------
      ==> ${freemarkerUtil.formatChangesetComment(repcfg, cs)} [on line 55, column 17 in shared/html/changeset-header.ftl]
       in user-directive mainSection [on line 54, column 13 in shared/html/changeset-header.ftl]
       in user-directive changesetHeader [on line 20, column 5 in fisheye/html/changeset-mail.ftl]
       in user-directive layout [on line 18, column 1 in fisheye/html/changeset-mail.ftl]
      ----------
      
      Java backtrace for programmers:
      ----------
      freemarker.template.TemplateModelException: Method public static java.lang.String com.cenqua.crucible.util.FreemarkerUtil.formatChangesetComment(com.cenqua.fisheye.RepositoryConfig,com.cenqua.fisheye.rep.ChangeSet) threw an exception
              at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:125)
              at freemarker.core.MethodCall._getAsTemplateModel(MethodCall.java:93)
              at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
              at freemarker.core.Expression.getStringValue(Expression.java:93)
              at freemarker.core.DollarVariable.accept(DollarVariable.java:76)
              at freemarker.core.Environment.visit(Environment.java:209)
              at freemarker.core.MixedContent.accept(MixedContent.java:92)
              at freemarker.core.Environment.visit(Environment.java:209)
              at freemarker.core.Environment.visit(Environment.java:394)
              at freemarker.core.BodyInstruction.accept(BodyInstruction.java:93)
              at freemarker.core.Environment.visit(Environment.java:209)
              at freemarker.core.MixedContent.accept(MixedContent.java:92)
              at freemarker.core.Environment.visit(Environment.java:209)
              at freemarker.core.Macro$Context.runMacro(Macro.java:168)
              at freemarker.core.Environment.visit(Environment.java:602)
              at freemarker.core.UnifiedCall.accept(UnifiedCall.java:106)
              at freemarker.core.Environment.visit(Environment.java:209)
              at freemarker.core.MixedContent.accept(MixedContent.java:92)
              at freemarker.core.Environment.visit(Environment.java:209)
              at freemarker.core.Macro$Context.runMacro(Macro.java:168)
              at freemarker.core.Environment.visit(Environment.java:602)
              at freemarker.core.UnifiedCall.accept(UnifiedCall.java:106)
              at freemarker.core.Environment.visit(Environment.java:209)
              at freemarker.core.MixedContent.accept(MixedContent.java:92)
              at freemarker.core.Environment.visit(Environment.java:209)
              at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:179)
              at freemarker.core.Environment.visit(Environment.java:416)
              at freemarker.core.IteratorBlock.accept(IteratorBlock.java:102)
              at freemarker.core.Environment.visit(Environment.java:209)
              at freemarker.core.MixedContent.accept(MixedContent.java:92)
              at freemarker.core.Environment.visit(Environment.java:209)
              at freemarker.core.Environment.visit(Environment.java:394)
              at freemarker.core.BodyInstruction.accept(BodyInstruction.java:93)
              at freemarker.core.Environment.visit(Environment.java:209)
              at freemarker.core.MixedContent.accept(MixedContent.java:92)
              at freemarker.core.Environment.visit(Environment.java:209)
              at freemarker.core.Macro$Context.runMacro(Macro.java:168)
              at freemarker.core.Environment.visit(Environment.java:602)
              at freemarker.core.UnifiedCall.accept(UnifiedCall.java:106)
              at freemarker.core.Environment.visit(Environment.java:209)
              at freemarker.core.MixedContent.accept(MixedContent.java:92)
              at freemarker.core.Environment.visit(Environment.java:209)
              at freemarker.core.Environment.process(Environment.java:189)
              at freemarker.template.Template.process(Template.java:237)
              at com.cenqua.fisheye.web.DefaultWatchManager.sendEmailForChangesets(DefaultWatchManager.java:606)
              at com.cenqua.fisheye.web.DefaultWatchManager.access$400(DefaultWatchManager.java:63)
              at com.cenqua.fisheye.web.DefaultWatchManager$WatchChecker.checkWatchesForRep(DefaultWatchManager.java:279)
              at com.cenqua.fisheye.web.DefaultWatchManager$WatchChecker.checkWatchesForRep(DefaultWatchManager.java:211)
              at com.cenqua.fisheye.web.DefaultWatchManager$WatchChecker.run(DefaultWatchManager.java:184)
              at java.lang.Thread.run(Thread.java:662)
      Caused by: java.lang.IllegalArgumentException: No local entity with key 'FEP' and type 'class com.atlassian.applinks.application.fecru.FishEyeRepositoryEntityTypeImpl' exists
              at com.atlassian.applinks.core.DefaultEntityLinkService.getStoredEntityLinks(DefaultEntityLinkService.java:376)
              at com.atlassian.applinks.core.DefaultEntityLinkService.getEntityLinksForKey(DefaultEntityLinkService.java:541)
              at com.atlassian.applinks.core.DefaultEntityLinkService.getEntityLinksForKey(DefaultEntityLinkService.java:531)
              at com.atlassian.applinks.core.DefaultEntityLinkService.getEntityLinks(DefaultEntityLinkService.java:556)
              at sun.reflect.GeneratedMethodAccessor928.invoke(Unknown Source)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:597)
              at com.atlassian.applinks.host.OsgiServiceProxyFactory$DynamicServiceInvocationHandler.invoke(OsgiServiceProxyFactory.java:111)
              at $Proxy51.getEntityLinks(Unknown Source)
              at com.cenqua.fisheye.syntax.LinkerFactory.getJiraLinker(LinkerFactory.java:113)
              at com.cenqua.fisheye.syntax.DefaultLinkerService.createLinker(DefaultLinkerService.java:66)
              at com.cenqua.fisheye.syntax.DefaultLinkerService.getLinker(DefaultLinkerService.java:57)
              at com.cenqua.fisheye.syntax.DefaultLinkerService.getRepositoryLinker(DefaultLinkerService.java:28)
              at com.cenqua.fisheye.web.themer.BriefCheckinCommentTag.renderCheckinComment(BriefCheckinCommentTag.java:113)
              at com.cenqua.fisheye.web.themer.BriefCheckinCommentTag.doTag(BriefCheckinCommentTag.java:98)
              at com.cenqua.fisheye.web.util.CheckinCommentFormatter.format(CheckinCommentFormatter.java:37)
              at com.cenqua.crucible.util.FreemarkerUtil.formatChangesetComment(FreemarkerUtil.java:74)
              at sun.reflect.GeneratedMethodAccessor2152.invoke(Unknown Source)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:597)
              at freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:840)
              at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:106)
              ... 49 more
      2012-06-24 19:36:49,167 DEBUG [FE-WatchChecker ] fisheye.app DefaultWatchManager-sendEmailForChangesets - not appending because we are in a different classloader: ContextLoader@FishEye WebApp
      2012-06-24 19:36:49,167 DEBUG [FE-WatchChecker ] fisheye.perf RepositoryHandle-release - release engine on FEP, count=2
      2012-06-24 19:36:49,167 DEBUG [FE-WatchChecker ] fisheye.perf RepositoryHandle-release - release engine on FEP, count=1
      2012-06-24 19:36:49,220 DEBUG [CommitNotifier1 ] fisheye.perf RepositoryHandle-release - release engine on FEP, count=0
      

      The Entity Links for FEP definitely appear to be configured.
      If this was the result of a permission issue, I would expect to see another log message explaining what permission is missing and for whom.

      I am going to add a workaround fix for this, which will log an error when there is any exception thrown during rendering of a commit message, yet still send the watch email, with the commit message not wiki rendered.

      I will also be looking into how this situation can occur.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              npellow Nick
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: