FreeMarker template error: Range start index 0 is out of bounds, because the sliced sequence has only 0 element(s). (Note that indices are 0-based). The blamed expression: ==> 0..0 [in template "themes/ygw151/product/product.html" at line 25, column 37] ---- FTL stack trace ("~" means nesting-related): - Failed at: #list tag_list[0..0] as image [in template "themes/ygw151/product/product.html" at line 25, column 21] - Reached through: @product_attachment_tag product_id=pr... [in template "themes/ygw151/product/product.html" at line 24, column 17] ~ Reached through: #nested [in template "customizing/www.bitestage.com/layout/default.html" in macro "layout" at line 89, column 5] ~ Reached through: @layout title="\${product.title!}" ke... [in template "themes/ygw151/product/product.html" at line 2, column 1] ---- Java stack trace (for programmers): ---- freemarker.core._MiscTemplateException: [... Exception message was already printed; see it above ...] at freemarker.core.DynamicKeyName.dealWithRangeKey(DynamicKeyName.java:189) at freemarker.core.DynamicKeyName._eval(DynamicKeyName.java:76) at freemarker.core.Expression.eval(Expression.java:76) at freemarker.core.IteratorBlock.accept(IteratorBlock.java:58) at freemarker.core.Environment.visit(Environment.java:257) at freemarker.core.Environment$1.render(Environment.java:305) at cn.kusoft.product.directive.ProductAttachmentDirective.execute(ProductAttachmentDirective.java:61) at freemarker.core.Environment.visit(Environment.java:333) at freemarker.core.UnifiedCall.accept(UnifiedCall.java:100) at freemarker.core.Environment.visit(Environment.java:257) at freemarker.core.MixedContent.accept(MixedContent.java:57) at freemarker.core.Environment.visit(Environment.java:257) at freemarker.core.Environment.visit(Environment.java:479) at freemarker.core.BodyInstruction.accept(BodyInstruction.java:56) at freemarker.core.Environment.visit(Environment.java:257) at freemarker.core.MixedContent.accept(MixedContent.java:57) at freemarker.core.Environment.visit(Environment.java:257) at freemarker.core.Macro$Context.runMacro(Macro.java:173) at freemarker.core.Environment.visit(Environment.java:686) at freemarker.core.UnifiedCall.accept(UnifiedCall.java:80) at freemarker.core.Environment.visit(Environment.java:257) at freemarker.core.MixedContent.accept(MixedContent.java:57) at freemarker.core.Environment.visit(Environment.java:257) at freemarker.core.Environment.process(Environment.java:235) at freemarker.template.Template.process(Template.java:262) at cn.kusoft.core.web.freemarker.ThemeFreeMarkerView.processTemplate(ThemeFreeMarkerView.java:181) at cn.kusoft.core.web.freemarker.ThemeFreeMarkerView.renderMergedTemplateModel(ThemeFreeMarkerView.java:165) at org.springframework.web.servlet.view.AbstractTemplateView.renderMergedOutputModel(AbstractTemplateView.java:167) at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:264) at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1201) at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:986) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:933) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:851) at cn.kusoft.core.web.DispatcherServlet.doService(DispatcherServlet.java:30) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:953) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:844) at javax.servlet.http.httpervlet.service(httpervlet.java:621) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:829) at javax.servlet.http.httpervlet.service(httpervlet.java:728) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) 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:106) 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:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603) at org.apache.tomcat.util.net.AprEndpoint$SocketWithOptionsProcessor.run(AprEndpoint.java:2367) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)