freemarker.template.TemplateModelException: Method public com.atlassian.bamboo.v2.build.agent.BuildAgent com.atlassian.bamboo.ww2.actions.chains.ViewChainResult.getAgent(long) threw an exception when invoked on com.atlassian.bamboo.ww2.actions.chains.ViewChainResult@3d451476

Atlassian JIRA | Martin Meinhold | 3 years ago
  1. 0

    Found in JBAC's logs this morning {noformat} 2013-08-15 22:53:08,509 ERROR [qtp717881621-1481] [runtime] Method public com.atlassian.bamboo.v2.build.agent.BuildAgent com.atlassian.bamboo.ww2.actions.chains.ViewChainResult.getAgent(long) threw an exception when invoked on com.atlassian.bamboo.ww2.actions.chains.ViewChainResult@3d451476 Method public com.atlassian.bamboo.v2.build.agent.BuildAgent com.atlassian.bamboo.ww2.actions.chains.ViewChainResult.getAgent(long) threw an exception when invoked on com.atlassian.bamboo.ww2.actions.chains.ViewChainResult@3d451476 The problematic instruction: ---------- ==> assignment: agent=action.getAgent(jobSummary.buildAgentId)! [on line 34, column 21 in chain/view/viewChainResult.ftl] ---------- Java backtrace for programmers: ---------- freemarker.template.TemplateModelException: Method public com.atlassian.bamboo.v2.build.agent.BuildAgent com.atlassian.bamboo.ww2.actions.chains.ViewChainResult.getAgent(long) threw an exception when invoked on com.atlassian.bamboo.ww2.actions.chains.ViewChainResult@3d451476 at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:130) at freemarker.core.MethodCall._getAsTemplateModel(MethodCall.java:104) at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) at freemarker.core.DefaultToExpression._getAsTemplateModel(DefaultToExpression.java:100) at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) at freemarker.core.Assignment.accept(Assignment.java:90) at freemarker.core.Environment.visit(Environment.java:210) at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:79) at freemarker.core.Environment.visit(Environment.java:210) at freemarker.core.MixedContent.accept(MixedContent.java:92) at freemarker.core.Environment.visit(Environment.java:210) at freemarker.core.IfBlock.accept(IfBlock.java:82) at freemarker.core.Environment.visit(Environment.java:210) at freemarker.core.MixedContent.accept(MixedContent.java:92) at freemarker.core.Environment.visit(Environment.java:210) at freemarker.core.IfBlock.accept(IfBlock.java:82) at freemarker.core.Environment.visit(Environment.java:210) at freemarker.core.MixedContent.accept(MixedContent.java:92) at freemarker.core.Environment.visit(Environment.java:210) at freemarker.core.Environment.process(Environment.java:190) {noformat}

    Atlassian JIRA | 3 years ago | Martin Meinhold
    freemarker.template.TemplateModelException: Method public com.atlassian.bamboo.v2.build.agent.BuildAgent com.atlassian.bamboo.ww2.actions.chains.ViewChainResult.getAgent(long) threw an exception when invoked on com.atlassian.bamboo.ww2.actions.chains.ViewChainResult@3d451476
  2. 0

    Found in JBAC's logs this morning {noformat} 2013-08-15 22:53:08,509 ERROR [qtp717881621-1481] [runtime] Method public com.atlassian.bamboo.v2.build.agent.BuildAgent com.atlassian.bamboo.ww2.actions.chains.ViewChainResult.getAgent(long) threw an exception when invoked on com.atlassian.bamboo.ww2.actions.chains.ViewChainResult@3d451476 Method public com.atlassian.bamboo.v2.build.agent.BuildAgent com.atlassian.bamboo.ww2.actions.chains.ViewChainResult.getAgent(long) threw an exception when invoked on com.atlassian.bamboo.ww2.actions.chains.ViewChainResult@3d451476 The problematic instruction: ---------- ==> assignment: agent=action.getAgent(jobSummary.buildAgentId)! [on line 34, column 21 in chain/view/viewChainResult.ftl] ---------- Java backtrace for programmers: ---------- freemarker.template.TemplateModelException: Method public com.atlassian.bamboo.v2.build.agent.BuildAgent com.atlassian.bamboo.ww2.actions.chains.ViewChainResult.getAgent(long) threw an exception when invoked on com.atlassian.bamboo.ww2.actions.chains.ViewChainResult@3d451476 at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:130) at freemarker.core.MethodCall._getAsTemplateModel(MethodCall.java:104) at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) at freemarker.core.DefaultToExpression._getAsTemplateModel(DefaultToExpression.java:100) at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) at freemarker.core.Assignment.accept(Assignment.java:90) at freemarker.core.Environment.visit(Environment.java:210) at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:79) at freemarker.core.Environment.visit(Environment.java:210) at freemarker.core.MixedContent.accept(MixedContent.java:92) at freemarker.core.Environment.visit(Environment.java:210) at freemarker.core.IfBlock.accept(IfBlock.java:82) at freemarker.core.Environment.visit(Environment.java:210) at freemarker.core.MixedContent.accept(MixedContent.java:92) at freemarker.core.Environment.visit(Environment.java:210) at freemarker.core.IfBlock.accept(IfBlock.java:82) at freemarker.core.Environment.visit(Environment.java:210) at freemarker.core.MixedContent.accept(MixedContent.java:92) at freemarker.core.Environment.visit(Environment.java:210) at freemarker.core.Environment.process(Environment.java:190) {noformat}

    Atlassian JIRA | 3 years ago | Martin Meinhold
    freemarker.template.TemplateModelException: Method public com.atlassian.bamboo.v2.build.agent.BuildAgent com.atlassian.bamboo.ww2.actions.chains.ViewChainResult.getAgent(long) threw an exception when invoked on com.atlassian.bamboo.ww2.actions.chains.ViewChainResult@3d451476
  3. 0

    When setting up crowd, if you don't do an import from bamboo but follow the instructions on the web page, you will end up with two bamboo-admin groups (the default one in bamboo and the one you created in crowd). Whilst this causes no functional problems you end up with every user being a member of two admin groups and a big stack trace on the view groups page whilst it is trying to count how many users belong to it. Method public int com.atlassian.bamboo.ww2.actions.admin.group.BrowseGroupsAction.getUsersCountForGroup(com.atlassian.user.Group) threw an exception when invoked on com.atlassian.bamboo.ww2.actions.admin.group.BrowseGroupsAction@90a702 The problematic instruction: ---------- ==> ${action.getUsersCountForGroup(group)} [on line 13, column 13 in admin/group/viewPaginatedGroups.ftl] ---------- Java backtrace for programmers: ---------- freemarker.template.TemplateModelException: Method public int com.atlassian.bamboo.ww2.actions.admin.group.BrowseGroupsAction.getUsersCountForGroup(com.atlassian.user.Group) threw an exception when invoked on com.atlassian.bamboo.ww2.actions.admin.group.BrowseGroupsAction@90a702 at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:136) 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:196) at freemarker.core.MixedContent.accept(MixedContent.java:92) at freemarker.core.Environment.visit(Environment.java:196) at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:160) at freemarker.core.Environment.visit(Environment.java:351) at freemarker.core.IteratorBlock.accept(IteratorBlock.java:95) at freemarker.core.Environment.visit(Environment.java:196) at freemarker.core.MixedContent.accept(MixedContent.java:92) at freemarker.core.Environment.visit(Environment.java:196) at freemarker.core.Environment.process(Environment.java:176) at freemarker.template.Template.process(Template.java:232) at . . . With the following error message in the logs 2008-04-01 14:54:53,536 INFO [btpool0-1] [AccessLogFilter] admin http://localhost:8085/admin/group/viewGroups.action 21772kb 2008-04-01 14:54:53,698 ERROR [btpool0-1] [runtime] Method public int com.atlassian.bamboo.ww2.actions.admin.group.BrowseGroupsAction.getUsersCountForGroup(com.atlassian.user.Group) threw an exception when invoked on com.atlassian.bamboo.ww2.actions.admin.group.BrowseGroupsAction@90a702 The problematic instruction: ---------- ==> ${action.getUsersCountForGroup(group)} [on line 13, column 13 in admin/group/viewPaginatedGroups.ftl] ---------- Java backtrace for programmers: ---------- freemarker.template.TemplateModelException: Method public int com.atlassian.bamboo.ww2.actions.admin.group.BrowseGroupsAction.getUsersCountForGroup(com.atlassian.user.Group) threw an exception when invoked on com.atlassian.bamboo.ww2.actions.admin.group.BrowseGroupsAction@90a702 at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:136) 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:196) at freemarker.core.MixedContent.accept(MixedContent.java:92) at freemarker.core.Environment.visit(Environment.java:196) at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:160) at freemarker.core.Environment.visit(Environment.java:351) at freemarker.core.IteratorBlock.accept(IteratorBlock.java:95) at freemarker.core.Environment.visit(Environment.java:196) at freemarker.core.MixedContent.accept(MixedContent.java:92) at freemarker.core.Environment.visit(Environment.java:196) at freemarker.core.Environment.process(Environment.java:176) at freemarker.template.Template.process(Template.java:232) at com.opensymphony.webwork.views.freemarker.FreemarkerResult.doExecute(FreemarkerResult.java:153) at com.opensymphony.webwork.dispatcher.WebWorkResultSupport.execute(WebWorkResultSupport.java:143) . . . at org.mortbay.jetty.Server.handle(Server.java:313) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:830) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381) at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:227) at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442) Caused by: java.lang.IllegalArgumentException: Group passed to HibernateGroupManager must be of type 'DefaultHibernateGroup' at com.atlassian.user.impl.hibernate.HibernateGroupManager.getMemberNames(HibernateGroupManager.java:173) at com.atlassian.user.impl.cache.CachingGroupManager.getMemberNames(CachingGroupManager.java:193) at com.atlassian.user.impl.delegation.DelegatingGroupManagerTemplate.getMemberNames(DelegatingGroupManagerTemplate.java:81) at bucket.user.DefaultUserAccessor.getMemberNames(DefaultUserAccessor.java:580) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at $Proxy6.getMemberNames(Unknown Source) at com.atlassian.bamboo.ww2.actions.admin.group.BrowseGroupsAction.getUsersCountForGroup(BrowseGroupsAction.java:27) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:825) at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:113) ... 171 more To reproduce, setup bamboo, then setup crowd and create the bamboo-admin group in crowd as specified in the docs. Restart bamboo with crowd, view uses page.

    Atlassian JIRA | 9 years ago | Brydie McCoy [Atlassian]
    freemarker.template.TemplateModelException: Method public int com.atlassian.bamboo.ww2.actions.admin.group.BrowseGroupsAction.getUsersCountForGroup(com.atlassian.user.Group) threw an exception when invoked on com.atlassian.bamboo.ww2.actions.admin.group.BrowseGroupsAction@90a702
  4. Speed up your debug routine!

    Automated exception search integrated into your IDE

  5. 0

    In the latest Bamboo 5.7, LDAP users are not able to login and it fails with an NPE. The following is thrown in the logs: {code} 2014-11-13 21:50:07,029 ERROR [http-bio-1057-exec-7] [FiveOhOh] 500 Exception was thrown. com.atlassian.cache.CacheException: java.lang.NullPointerException at com.atlassian.cache.memory.DelegatingCache.put(DelegatingCache.java:88) at com.atlassian.user.impl.cache.CachingUserManager.cacheRepository(CachingUserManager.java:86) at com.atlassian.user.impl.cache.CachingUserManager.getRepository(CachingUserManager.java:269) at com.atlassian.user.impl.delegation.DelegatingUserManager.getRepository(DelegatingUserManager.java:288) at com.atlassian.user.impl.delegation.security.authentication.DelegatingAuthenticator.authenticate(DelegatingAuthenticator.java:34) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at com.atlassian.crowd.integration.atlassianuser.DynamicDelegationAccessor$DelegatingInvocationHandler.invoke(DynamicDelegationAccessor.java:125) at com.sun.proxy.$Proxy33.authenticate(Unknown Source) at bucket.user.DefaultUserAccessor.authenticate(DefaultUserAccessor.java:686) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) at com.sun.proxy.$Proxy50.authenticate(Unknown Source) at com.atlassian.bamboo.user.authentication.BambooAuthenticator.authenticate(BambooAuthenticator.java:37) at com.atlassian.seraph.auth.DefaultAuthenticator.login(DefaultAuthenticator.java:88) at com.atlassian.bamboo.user.authentication.BambooAuthenticator.login(BambooAuthenticator.java:28) at com.atlassian.seraph.filter.PasswordBasedLoginFilter.runAuthentication(PasswordBasedLoginFilter.java:133) at com.atlassian.seraph.filter.PasswordBasedLoginFilter.login(PasswordBasedLoginFilter.java:78) at com.atlassian.seraph.filter.BaseLoginFilter.doFilter(BaseLoginFilter.java:110) at com.atlassian.seraph.filter.BambooLoginFilter.doFilter(BambooLoginFilter.java:34) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46) at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66) at com.atlassian.oauth.serviceprovider.internal.servlet.OAuthFilter.doFilter(OAuthFilter.java:61) at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74) at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42) at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66) at com.atlassian.security.auth.trustedapps.filter.TrustedApplicationsFilter.doFilter(TrustedApplicationsFilter.java:100) at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74) at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42) at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66) at com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61) at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74) at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42) at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:77) at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:63) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.springframework.orm.hibernate.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:170) at com.atlassian.bamboo.persistence.BambooSessionInViewFilter.doFilterInternal(BambooSessionInViewFilter.java:31) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at com.planetj.servlet.filter.compression.CompressingFilter.handleDoFilter(CompressingFilter.java:203) at com.planetj.servlet.filter.compression.CompressingFilter.doFilter(CompressingFilter.java:193) at com.atlassian.bamboo.filter.CompressingFilter.doFilter(CompressingFilter.java:73) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at com.atlassian.bamboo.filter.RequestCacheThreadLocalFilter.doFilter(RequestCacheThreadLocalFilter.java:27) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at com.atlassian.core.filters.HeaderSanitisingFilter.doFilter(HeaderSanitisingFilter.java:44) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46) at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66) at com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61) at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74) at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42) at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:77) at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:63) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1008) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.NullPointerException at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:187) at com.google.common.cache.LocalCache.put(LocalCache.java:4180) at com.atlassian.cache.memory.DelegatingCache.put(DelegatingCache.java:78) {code} The issue here is with the caching feature switch.Setting it to true or false will always cause this issue with log in above and the users are not synched to the database. However, logging in with local admin and browsing the users, will show the ldap users and the following is thrown in the logs {code} 2014-11-13 21:28:09,791 INFO [http-bio-1057-exec-18] [AccessLogFilter] admin GET http://127.0.1.1:1057/bamboo57/admin/user/viewUsers.action 112647kb 2014-11-13 21:28:10,063 ERROR [http-bio-1057-exec-18] [runtime] Method public java.lang.Iterable com.atlassian.bamboo.ww2.actions.admin.user.SearchUserAction.getGroups(com.atlassian.user.User) threw an exception when invoked on com.atlassian.bamboo.ww2.actions.admin.user.SearchUserAction@6b13d7b Method public java.lang.Iterable com.atlassian.bamboo.ww2.actions.admin.user.SearchUserAction.getGroups(com.atlassian.user.User) threw an exception when invoked on com.atlassian.bamboo.ww2.actions.admin.user.SearchUserAction@6b13d7b The problematic instruction: ---------- ==> assignment: groups=(action.getGroups(userInfo)!) [on line 43, column 9 in admin/user/viewPaginatedUsers.ftl] ---------- Java backtrace for programmers: ---------- freemarker.template.TemplateModelException: Method public java.lang.Iterable com.atlassian.bamboo.ww2.actions.admin.user.SearchUserAction.getGroups(com.atlassian.user.User) threw an exception when invoked on com.atlassian.bamboo.ww2.actions.admin.user.SearchUserAction@6b13d7b at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:130) at freemarker.core.MethodCall._getAsTemplateModel(MethodCall.java:104) at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) at freemarker.core.DefaultToExpression._getAsTemplateModel(DefaultToExpression.java:100) at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) at freemarker.core.ParentheticalExpression._getAsTemplateModel(ParentheticalExpression.java:75) at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) at freemarker.core.Assignment.accept(Assignment.java:90) at freemarker.core.Environment.visit(Environment.java:210) at freemarker.core.MixedContent.accept(MixedContent.java:92) at freemarker.core.Environment.visit(Environment.java:210) at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:167) at freemarker.core.Environment.visit(Environment.java:417) at freemarker.core.IteratorBlock.accept(IteratorBlock.java:102) at freemarker.core.Environment.visit(Environment.java:210) at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:79) at freemarker.core.Environment.visit(Environment.java:210) at freemarker.core.MixedContent.accept(MixedContent.java:92) at freemarker.core.Environment.visit(Environment.java:210) . . . . Caused by: org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.NEVER): Turn your Session into FlushMode.AUTO or remove 'readOnly' marker from transaction definition. at org.springframework.orm.hibernate.HibernateTemplate.checkWriteOperationAllowed(HibernateTemplate.java:1000) at org.springframework.orm.hibernate.HibernateTemplate$9.doInHibernate(HibernateTemplate.java:567) at org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:370) at org.springframework.orm.hibernate.HibernateTemplate.save(HibernateTemplate.java:565) at com.atlassian.user.impl.hibernate.DefaultExternalEntityDAO.saveExternalEntity(DefaultExternalEntityDAO.java:55) at com.atlassian.user.impl.hibernate.DefaultExternalEntityDAO.createExternalEntity(DefaultExternalEntityDAO.java:65) at com.atlassian.user.impl.hibernate.CachingExternalEntityDAO.createExternalEntity(CachingExternalEntityDAO.java:41) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) at com.sun.proxy.$Proxy36.createExternalEntity(Unknown Source) {code} Some users mentioned that setting both caching to false allows ldap users to login, but this introduce another issue mentioned in this old bug: BAM-11615 where editing or creating task fails

    Atlassian JIRA | 2 years ago | Sultan Maiyaki [Atlassian]
    freemarker.template.TemplateModelException: Method public java.lang.Iterable com.atlassian.bamboo.ww2.actions.admin.user.SearchUserAction.getGroups(com.atlassian.user.User) threw an exception when invoked on com.atlassian.bamboo.ww2.actions.admin.user.SearchUserAction@6b13d7b
  6. 0

    In the latest Bamboo 5.7, LDAP users are not able to login and it fails with an NPE. The following is thrown in the logs: {code} 2014-11-13 21:50:07,029 ERROR [http-bio-1057-exec-7] [FiveOhOh] 500 Exception was thrown. com.atlassian.cache.CacheException: java.lang.NullPointerException at com.atlassian.cache.memory.DelegatingCache.put(DelegatingCache.java:88) at com.atlassian.user.impl.cache.CachingUserManager.cacheRepository(CachingUserManager.java:86) at com.atlassian.user.impl.cache.CachingUserManager.getRepository(CachingUserManager.java:269) at com.atlassian.user.impl.delegation.DelegatingUserManager.getRepository(DelegatingUserManager.java:288) at com.atlassian.user.impl.delegation.security.authentication.DelegatingAuthenticator.authenticate(DelegatingAuthenticator.java:34) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at com.atlassian.crowd.integration.atlassianuser.DynamicDelegationAccessor$DelegatingInvocationHandler.invoke(DynamicDelegationAccessor.java:125) at com.sun.proxy.$Proxy33.authenticate(Unknown Source) at bucket.user.DefaultUserAccessor.authenticate(DefaultUserAccessor.java:686) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) at com.sun.proxy.$Proxy50.authenticate(Unknown Source) at com.atlassian.bamboo.user.authentication.BambooAuthenticator.authenticate(BambooAuthenticator.java:37) at com.atlassian.seraph.auth.DefaultAuthenticator.login(DefaultAuthenticator.java:88) at com.atlassian.bamboo.user.authentication.BambooAuthenticator.login(BambooAuthenticator.java:28) at com.atlassian.seraph.filter.PasswordBasedLoginFilter.runAuthentication(PasswordBasedLoginFilter.java:133) at com.atlassian.seraph.filter.PasswordBasedLoginFilter.login(PasswordBasedLoginFilter.java:78) at com.atlassian.seraph.filter.BaseLoginFilter.doFilter(BaseLoginFilter.java:110) at com.atlassian.seraph.filter.BambooLoginFilter.doFilter(BambooLoginFilter.java:34) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46) at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66) at com.atlassian.oauth.serviceprovider.internal.servlet.OAuthFilter.doFilter(OAuthFilter.java:61) at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74) at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42) at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66) at com.atlassian.security.auth.trustedapps.filter.TrustedApplicationsFilter.doFilter(TrustedApplicationsFilter.java:100) at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74) at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42) at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66) at com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61) at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74) at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42) at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:77) at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:63) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.springframework.orm.hibernate.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:170) at com.atlassian.bamboo.persistence.BambooSessionInViewFilter.doFilterInternal(BambooSessionInViewFilter.java:31) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at com.planetj.servlet.filter.compression.CompressingFilter.handleDoFilter(CompressingFilter.java:203) at com.planetj.servlet.filter.compression.CompressingFilter.doFilter(CompressingFilter.java:193) at com.atlassian.bamboo.filter.CompressingFilter.doFilter(CompressingFilter.java:73) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at com.atlassian.bamboo.filter.RequestCacheThreadLocalFilter.doFilter(RequestCacheThreadLocalFilter.java:27) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at com.atlassian.core.filters.HeaderSanitisingFilter.doFilter(HeaderSanitisingFilter.java:44) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46) at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66) at com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61) at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74) at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42) at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:77) at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:63) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1008) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.NullPointerException at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:187) at com.google.common.cache.LocalCache.put(LocalCache.java:4180) at com.atlassian.cache.memory.DelegatingCache.put(DelegatingCache.java:78) {code} The issue here is with the caching feature switch.Setting it to true or false will always cause this issue with log in above and the users are not synched to the database. However, logging in with local admin and browsing the users, will show the ldap users and the following is thrown in the logs {code} 2014-11-13 21:28:09,791 INFO [http-bio-1057-exec-18] [AccessLogFilter] admin GET http://127.0.1.1:1057/bamboo57/admin/user/viewUsers.action 112647kb 2014-11-13 21:28:10,063 ERROR [http-bio-1057-exec-18] [runtime] Method public java.lang.Iterable com.atlassian.bamboo.ww2.actions.admin.user.SearchUserAction.getGroups(com.atlassian.user.User) threw an exception when invoked on com.atlassian.bamboo.ww2.actions.admin.user.SearchUserAction@6b13d7b Method public java.lang.Iterable com.atlassian.bamboo.ww2.actions.admin.user.SearchUserAction.getGroups(com.atlassian.user.User) threw an exception when invoked on com.atlassian.bamboo.ww2.actions.admin.user.SearchUserAction@6b13d7b The problematic instruction: ---------- ==> assignment: groups=(action.getGroups(userInfo)!) [on line 43, column 9 in admin/user/viewPaginatedUsers.ftl] ---------- Java backtrace for programmers: ---------- freemarker.template.TemplateModelException: Method public java.lang.Iterable com.atlassian.bamboo.ww2.actions.admin.user.SearchUserAction.getGroups(com.atlassian.user.User) threw an exception when invoked on com.atlassian.bamboo.ww2.actions.admin.user.SearchUserAction@6b13d7b at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:130) at freemarker.core.MethodCall._getAsTemplateModel(MethodCall.java:104) at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) at freemarker.core.DefaultToExpression._getAsTemplateModel(DefaultToExpression.java:100) at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) at freemarker.core.ParentheticalExpression._getAsTemplateModel(ParentheticalExpression.java:75) at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) at freemarker.core.Assignment.accept(Assignment.java:90) at freemarker.core.Environment.visit(Environment.java:210) at freemarker.core.MixedContent.accept(MixedContent.java:92) at freemarker.core.Environment.visit(Environment.java:210) at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:167) at freemarker.core.Environment.visit(Environment.java:417) at freemarker.core.IteratorBlock.accept(IteratorBlock.java:102) at freemarker.core.Environment.visit(Environment.java:210) at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:79) at freemarker.core.Environment.visit(Environment.java:210) at freemarker.core.MixedContent.accept(MixedContent.java:92) at freemarker.core.Environment.visit(Environment.java:210) . . . . Caused by: org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.NEVER): Turn your Session into FlushMode.AUTO or remove 'readOnly' marker from transaction definition. at org.springframework.orm.hibernate.HibernateTemplate.checkWriteOperationAllowed(HibernateTemplate.java:1000) at org.springframework.orm.hibernate.HibernateTemplate$9.doInHibernate(HibernateTemplate.java:567) at org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:370) at org.springframework.orm.hibernate.HibernateTemplate.save(HibernateTemplate.java:565) at com.atlassian.user.impl.hibernate.DefaultExternalEntityDAO.saveExternalEntity(DefaultExternalEntityDAO.java:55) at com.atlassian.user.impl.hibernate.DefaultExternalEntityDAO.createExternalEntity(DefaultExternalEntityDAO.java:65) at com.atlassian.user.impl.hibernate.CachingExternalEntityDAO.createExternalEntity(CachingExternalEntityDAO.java:41) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) at com.sun.proxy.$Proxy36.createExternalEntity(Unknown Source) {code} Some users mentioned that setting both caching to false allows ldap users to login, but this introduce another issue mentioned in this old bug: BAM-11615 where editing or creating task fails

    Atlassian JIRA | 2 years ago | Sultan Maiyaki [Atlassian]
    freemarker.template.TemplateModelException: Method public java.lang.Iterable com.atlassian.bamboo.ww2.actions.admin.user.SearchUserAction.getGroups(com.atlassian.user.User) threw an exception when invoked on com.atlassian.bamboo.ww2.actions.admin.user.SearchUserAction@6b13d7b

    Not finding the right solution?
    Take a tour to get the most out of Samebug.

    Tired of useless tips?

    Automated exception search integrated into your IDE

    Root Cause Analysis

    1. freemarker.template.TemplateModelException

      Method public com.atlassian.bamboo.v2.build.agent.BuildAgent com.atlassian.bamboo.ww2.actions.chains.ViewChainResult.getAgent(long) threw an exception when invoked on com.atlassian.bamboo.ww2.actions.chains.ViewChainResult@3d451476

      at freemarker.ext.beans.SimpleMethodModel.exec()
    2. FreeMarker
      Environment.process
      1. freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:130)
      2. freemarker.core.MethodCall._getAsTemplateModel(MethodCall.java:104)
      3. freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
      4. freemarker.core.DefaultToExpression._getAsTemplateModel(DefaultToExpression.java:100)
      5. freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
      6. freemarker.core.Assignment.accept(Assignment.java:90)
      7. freemarker.core.Environment.visit(Environment.java:210)
      8. freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:79)
      9. freemarker.core.Environment.visit(Environment.java:210)
      10. freemarker.core.MixedContent.accept(MixedContent.java:92)
      11. freemarker.core.Environment.visit(Environment.java:210)
      12. freemarker.core.IfBlock.accept(IfBlock.java:82)
      13. freemarker.core.Environment.visit(Environment.java:210)
      14. freemarker.core.MixedContent.accept(MixedContent.java:92)
      15. freemarker.core.Environment.visit(Environment.java:210)
      16. freemarker.core.IfBlock.accept(IfBlock.java:82)
      17. freemarker.core.Environment.visit(Environment.java:210)
      18. freemarker.core.MixedContent.accept(MixedContent.java:92)
      19. freemarker.core.Environment.visit(Environment.java:210)
      20. freemarker.core.Environment.process(Environment.java:190)
      20 frames