Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 1.1 Larks
    • Fix Version/s: 1.1 Larks
    • Labels:
      None
    • Sprint:
      Larks 1.1

      Description

      One of users complained about exception when accessing http://www.javatalks.ru/topics/recent:

      HTTP Status 500 - An exception occurred processing JSP page /WEB-INF/jsp/recent.jsp at line 66
      
      type Exception report
      
      message An exception occurred processing JSP page /WEB-INF/jsp/recent.jsp at line 66
      
      description The server encountered an internal error that prevented it from fulfilling this request.
      
      exception
      
      org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/jsp/recent.jsp at line 66
      
      63:                     <tr>
      64:                         <sec:authorize access="isAuthenticated()">
      65:                             <td class="status-col">
      66:                                 <jtalks:topicIcon topic="${topic}"/>
      67:                             </td>
      68:                         </sec:authorize>
      69:                         <td>
      
      
      Stacktrace:
      	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:521)
      	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:412)
      	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
      	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      	org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
      	org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:262)
      	org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1180)
      	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:950)
      	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
      	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
      	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      	org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
      	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
      	com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129)
      	com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368)
      	org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
      	org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:119)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:177)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169)
      	org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
      	org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
      	org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
      	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
      	org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
      	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
      	com.cj.trim.trimFilter.doFilter(Unknown Source)
      	org.jtalks.jcommune.web.filters.TrimFilter.doFilter(TrimFilter.java:82)
      root cause
      
      javax.servlet.ServletException: javax.servlet.jsp.JspException: javax.el.ELException: Error reading 'firstUnreadPostId' on type org.jtalks.jcommune.model.entity.Topic
      	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:861)
      	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:794)
      	org.apache.jsp.WEB_002dINF.jsp.recent_jsp._jspService(recent_jsp.java:154)
      	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
      	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
      	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      	org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
      	org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:262)
      	org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1180)
      	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:950)
      	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
      	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
      	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      	org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
      	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
      	com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129)
      	com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368)
      	org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
      	org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:119)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:177)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169)
      	org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
      	org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
      	org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
      	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
      	org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
      	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
      	com.cj.trim.trimFilter.doFilter(Unknown Source)
      	org.jtalks.jcommune.web.filters.TrimFilter.doFilter(TrimFilter.java:82)
      root cause
      
      javax.el.ELException: Error reading 'firstUnreadPostId' on type org.jtalks.jcommune.model.entity.Topic
      	javax.el.BeanELResolver.getValue(BeanELResolver.java:87)
      	javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
      	org.apache.el.parser.AstValue.getValue(AstValue.java:123)
      	org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
      	org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:938)
      	org.apache.jsp.tag.web.topicIcon_tag._jspx_meth_c_005fif_005f0(topicIcon_tag.java:154)
      	org.apache.jsp.tag.web.topicIcon_tag.doTag(topicIcon_tag.java:92)
      	org.apache.jsp.WEB_002dINF.jsp.recent_jsp._jspx_meth_jtalks_005ftopicIcon_005f0(recent_jsp.java:689)
      	org.apache.jsp.WEB_002dINF.jsp.recent_jsp._jspx_meth_sec_005fauthorize_005f1(recent_jsp.java:660)
      	org.apache.jsp.WEB_002dINF.jsp.recent_jsp._jspx_meth_c_005fforEach_005f0(recent_jsp.java:515)
      	org.apache.jsp.WEB_002dINF.jsp.recent_jsp._jspx_meth_c_005fwhen_005f0(recent_jsp.java:313)
      	org.apache.jsp.WEB_002dINF.jsp.recent_jsp._jspx_meth_c_005fchoose_005f0(recent_jsp.java:248)
      	org.apache.jsp.WEB_002dINF.jsp.recent_jsp._jspService(recent_jsp.java:130)
      	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
      	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
      	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      	org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
      	org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:262)
      	org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1180)
      	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:950)
      	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
      	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
      	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      	org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
      	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
      	com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129)
      	com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368)
      	org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
      	org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:119)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:177)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169)
      	org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
      	org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
      	org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
      	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
      	org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
      	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
      	com.cj.trim.trimFilter.doFilter(Unknown Source)
      	org.jtalks.jcommune.web.filters.TrimFilter.doFilter(TrimFilter.java:82)
      root cause
      
      java.lang.ArrayIndexOutOfBoundsException: negative index
      	org.hibernate.collection.PersistentList.get(PersistentList.java:291)
      	org.jtalks.jcommune.model.entity.Topic.getFirstUnreadPostId(Topic.java:441)
      	sun.reflect.GeneratedMethodAccessor274.invoke(Unknown Source)
      	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      	java.lang.reflect.Method.invoke(Method.java:597)
      	javax.el.BeanELResolver.getValue(BeanELResolver.java:83)
      	javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
      	org.apache.el.parser.AstValue.getValue(AstValue.java:123)
      	org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
      	org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:938)
      	org.apache.jsp.tag.web.topicIcon_tag._jspx_meth_c_005fif_005f0(topicIcon_tag.java:154)
      	org.apache.jsp.tag.web.topicIcon_tag.doTag(topicIcon_tag.java:92)
      	org.apache.jsp.WEB_002dINF.jsp.recent_jsp._jspx_meth_jtalks_005ftopicIcon_005f0(recent_jsp.java:689)
      	org.apache.jsp.WEB_002dINF.jsp.recent_jsp._jspx_meth_sec_005fauthorize_005f1(recent_jsp.java:660)
      	org.apache.jsp.WEB_002dINF.jsp.recent_jsp._jspx_meth_c_005fforEach_005f0(recent_jsp.java:515)
      	org.apache.jsp.WEB_002dINF.jsp.recent_jsp._jspx_meth_c_005fwhen_005f0(recent_jsp.java:313)
      	org.apache.jsp.WEB_002dINF.jsp.recent_jsp._jspx_meth_c_005fchoose_005f0(recent_jsp.java:248)
      	org.apache.jsp.WEB_002dINF.jsp.recent_jsp._jspService(recent_jsp.java:130)
      	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
      	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
      	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      	org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
      	org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:262)
      	org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1180)
      	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:950)
      	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
      	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
      	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      	org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
      	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
      	com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129)
      	com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368)
      	org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
      	org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:119)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:177)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
      	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
      	org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169)
      	org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
      	org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
      	org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
      	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
      	org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
      	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
      	com.cj.trim.trimFilter.doFilter(Unknown Source)
      	org.jtalks.jcommune.web.filters.TrimFilter.doFilter(TrimFilter.java:82)
      note The full stack trace of the root cause is available in the Apache Tomcat/6.0.36 logs.
      
      Apache Tomcat/6.0.36

        Attachments

          Activity

          Hide
          flashed Mikhail Zaitsev added a comment -

          Situation could not be repeated, but corrected a possible source of error. Now the page should display correctly. If incorrect data will be used, a message is written to the log.

          Show
          flashed Mikhail Zaitsev added a comment - Situation could not be repeated, but corrected a possible source of error. Now the page should display correctly. If incorrect data will be used, a message is written to the log.
          Hide
          ctapobep Stanislav Bashkyrtsev added a comment -

          Why don't you check index value before setting it? Something like:

          public void setIndex(int index) {
            this.index = getValidIndex(index);
          }

          Also, please describe WHY we have implemented this behavior (with the link to JIRA) and WHY you use particularly that way of getting the stacktrace.
          Also, please take a look at Sonar, I guess it won't like MIN_VALUE.
          —
          Next, about test: there are 3 test cases in a single method which smells bad, each case should reside in a separate method. Methods can be named like that: resultsInMinValueIfInvalidNumberWasSet()
          Please, add successful path for the tests, like setIndex(5)

          Show
          ctapobep Stanislav Bashkyrtsev added a comment - Why don't you check index value before setting it? Something like: public void setIndex( int index) { this .index = getValidIndex(index); } Also, please describe WHY we have implemented this behavior (with the link to JIRA) and WHY you use particularly that way of getting the stacktrace. Also, please take a look at Sonar, I guess it won't like MIN_VALUE. — Next, about test: there are 3 test cases in a single method which smells bad, each case should reside in a separate method. Methods can be named like that: resultsInMinValueIfInvalidNumberWasSet() Please, add successful path for the tests, like setIndex(5)
          Hide
          ctapobep Stanislav Bashkyrtsev added a comment -

          QAs: note, that the bug itself wasn't fixed, but instead of exceptions, users will face a totally unread topic. And we also will log a warning with additional information to figure out how the situation is reproduced.

          Show
          ctapobep Stanislav Bashkyrtsev added a comment - QAs: note, that the bug itself wasn't fixed, but instead of exceptions, users will face a totally unread topic. And we also will log a warning with additional information to figure out how the situation is reproduced.
          Hide
          julik Julia Atlygina added a comment -

          please do regression tests for recent activity

          Show
          julik Julia Atlygina added a comment - please do regression tests for recent activity
          Hide
          varro Artem R added a comment -

          Test Environment
          Firefox 17.0.1, Chrome 23.0.1271.97, Opera 12.11 Build:1661

          Test Scenario
          User1, User2 logged in, there are some unread topics for User2
          Steps
          1. User1 writes Post1.
          2. User2 opens topic, reads Post1.
          3. User2 go to main page
          4. User1 deletes Post1
          5. User2 follow the link "Recent activity"

          Actual result - displaying topics with recent posts
          Expected result - displaying topics with recent posts

          User1, User2 logged in, there are some unread topics for User2
          Steps
          1. User1 writes Post1.
          2. User2 opens topic, reads Post1.
          3. User2 logs out.
          4. User1 deletes Post1
          5. User2 logs in
          5. User2 follow the link "Recent activity"

          Actual result - displaying topics with recent posts
          Expected result - displaying topics with recent posts

          User1, User2 logged in, there are no unread topics for User2
          Steps
          1. User1 writes Post1.
          2. User2 opens topic, reads Post1.
          3. User2 go to main page
          4. User1 deletes Post1
          5. User2 follow the link "Recent activity"

          Actual result - displaying topics with recent posts
          Expected result - displaying topics with recent posts

          User1, User2 logged in, there are no unread topics for User2
          Steps
          1. User1 writes Post1.
          2. User2 opens topic, reads Post1.
          3. User2 logs out.
          4. User1 deletes Post1
          5. User2 logs in
          5. User2 follow the link "Recent activity"

          Actual result - displaying topics with recent posts
          Expected result - displaying topics with recent posts

          Test results:
          Bug can be close.

          Show
          varro Artem R added a comment - Test Environment Firefox 17.0.1, Chrome 23.0.1271.97, Opera 12.11 Build:1661 Test Scenario User1, User2 logged in, there are some unread topics for User2 Steps 1. User1 writes Post1. 2. User2 opens topic, reads Post1. 3. User2 go to main page 4. User1 deletes Post1 5. User2 follow the link "Recent activity" Actual result - displaying topics with recent posts Expected result - displaying topics with recent posts User1, User2 logged in, there are some unread topics for User2 Steps 1. User1 writes Post1. 2. User2 opens topic, reads Post1. 3. User2 logs out. 4. User1 deletes Post1 5. User2 logs in 5. User2 follow the link "Recent activity" Actual result - displaying topics with recent posts Expected result - displaying topics with recent posts User1, User2 logged in, there are no unread topics for User2 Steps 1. User1 writes Post1. 2. User2 opens topic, reads Post1. 3. User2 go to main page 4. User1 deletes Post1 5. User2 follow the link "Recent activity" Actual result - displaying topics with recent posts Expected result - displaying topics with recent posts User1, User2 logged in, there are no unread topics for User2 Steps 1. User1 writes Post1. 2. User2 opens topic, reads Post1. 3. User2 logs out. 4. User1 deletes Post1 5. User2 logs in 5. User2 follow the link "Recent activity" Actual result - displaying topics with recent posts Expected result - displaying topics with recent posts Test results: Bug can be close.

            People

            • Assignee:
              varro Artem R
              Reporter:
              ctapobep Stanislav Bashkyrtsev
            • Votes:
              1 Vote for this issue
              Watchers:
              Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - 5h
                5h
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 4.5h Time Not Required
                4.5h

                  Structure Helper Panel