Uploaded image for project: 'Jira Data Center'
  1. Jira Data Center
  2. JRASERVER-11307

Null pointer when session times out on View profile

    XMLWordPrintable

Details

    Description

      When sesssion times out and the user goes to view a profile, the following stack trace is reported.

      2006-09-25 10:33:45,369 ERROR [webwork.util.ServletValueStack] METHOD: "hasViewGroupPermission", exception: 
      java.lang.NullPointerException
      	at com.atlassian.jira.util.GroupPermissionCheckerImpl.hasViewGroupPermission(GroupPermissionCheckerImpl.java:23)
      	at com.atlassian.jira.web.action.user.ViewProfile.isHasViewGroupPermission(ViewProfile.java:152)
      	at sun.reflect.GeneratedMethodAccessor479.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      	at java.lang.reflect.Method.invoke(Method.java:585)
      	at webwork.util.InjectionUtils$DefaultInjectionImpl.invoke(InjectionUtils.java:61)
      	at webwork.util.InjectionUtils.invoke(InjectionUtils.java:52)
      	at webwork.util.ValueStack.findValue(ValueStack.java:426)
      	at webwork.util.SimpleTest.test(SimpleTest.java:391)
      	at webwork.util.ValueStack.test(ValueStack.java:129)
      	at webwork.view.taglib.IfTag.doStartTag(IfTag.java:38)
      	at org.apache.jsp.includes.panels.user_005fsummary_005fpane_jsp._jspService(org.apache.jsp.includes.panels.user_005fsummary_005fpane_jsp:187)
      	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
      	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
      	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
      	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
      	at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
      	at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
      	at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:966)
      	at org.apache.jsp.secure.views.user.viewprofile_jsp._jspService(org.apache.jsp.secure.views.user.viewprofile_jsp:104)
      	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
      	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
      	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
      	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
      	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
      	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
      	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
      	at com.atlassian.jira.web.dispatcher.JiraServletDispatcher.service(JiraServletDispatcher.java:253)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      	at com.atlassian.jira.web.filters.AccessLogFilter.doFilter(AccessLogFilter.java:51)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      	at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119)
      	at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55)
      	at com.atlassian.jira.web.filters.SitemeshExcludePathFilter.doFilter(SitemeshExcludePathFilter.java:38)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      	at com.atlassian.seraph.filter.SecurityFilter.doFilter(SecurityFilter.java:182)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      	at com.atlassian.seraph.filter.LoginFilter.doFilter(LoginFilter.java:181)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      	at com.atlassian.util.profiling.filters.ProfilingFilter.doFilter(ProfilingFilter.java:132)
      	at com.atlassian.jira.web.filters.ProfilingAndErrorFilter.doFilter(ProfilingAndErrorFilter.java:35)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      	at com.atlassian.jira.web.filters.ActionCleanupDelayFilter.doFilter(ActionCleanupDelayFilter.java:39)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      	at com.atlassian.johnson.filters.JohnsonFilter.doFilter(JohnsonFilter.java:91)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      	at com.atlassian.jira.web.filters.gzip.GzipFilter.doFilter(GzipFilter.java:72)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      	at com.atlassian.core.filters.AbstractEncodingFilter.doFilter(AbstractEncodingFilter.java:37)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
      	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
      	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
      	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
      	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
      	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
      	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
      	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
      	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
      	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
      	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
      	at java.lang.Thread.run(Thread.java:595)
      

      Offeding code:

      public class GroupPermissionCheckerImpl implements GroupPermissionChecker
      {
          private PermissionManager permissionManager;
      
          public GroupPermissionCheckerImpl(PermissionManager permissionManager)
          {
              this.permissionManager = permissionManager;
          }
      
          public boolean hasViewGroupPermission(String group, User user)
          {
              // Admins can view all groups
              if (permissionManager.hasPermission(Permissions.ADMINISTER, user))
                  return true;
      
              // User can only view groups in which they are members
              return user.inGroup(group);
          }
      }
      

      Just need to check for user == null case.

      Attachments

        Activity

          People

            daniel.hurst@atlassian.com Daniel Hurst
            nick.menere Nick Menere [Atlassian] (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: