Issue Details (XML | Word | Printable)

Key: JRA-10695
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: Dylan Etkin [Atlassian]
Reporter: Dylan Etkin [Atlassian]
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
JIRA

NullPointerException when sharing a filter

Created: 27/Jul/06 08:31 PM   Updated: 23/Aug/06 02:01 AM
Component/s: Filtering & Indexing
Affects Version/s: 3.6.3
Fix Version/s: 3.6.4

Time Tracking:
Original Estimate: 1 day
Original Estimate - 1 day
Remaining Estimate: 5 hours
Time Spent - 3 hours Remaining Estimate - 5 hours
Time Spent: 3 hours
Time Spent - 3 hours Remaining Estimate - 5 hours

Participants: Dylan Etkin [Atlassian]
Since last comment: 2 years, 10 weeks ago
Resolution Date: 31/Jul/06 02:03 AM
Labels:


 Description  « Hide
It seems like some users are getting a null pointer exception when trying to share a saved filter. This bug needs to be verified, I have tried to reproduce it locally but have not been able to. The exception being seen is

java.lang.NullPointerException
at com.atlassian.jira.issue.search.SearchRequest.getUser()Ljava/lang/String;(SearchRequest.java:846)
at com.atlassian.jira.web.action.filter.professional.ShareFilter.doDefault()Ljava/lang/String;(ShareFilter.java:86)
at jrockit.reflect.NativeMethodInvoker.invoke0(Ljava/lang/Object;ILjava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;(Unknown Source)
at jrockit.reflect.NativeMethodInvoker.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;(Optimized Method)
at jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;(Optimized Method)
at java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;I)Ljava/lang/Object;(Optimized Method)
at webwork.util.InjectionUtils$DefaultInjectionImpl.invoke(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;(Optimized Method)
at webwork.util.InjectionUtils.invoke(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;(Optimized Method)
at webwork.action.ActionSupport.invokeCommand()Ljava/lang/String;(ActionSupport.java:417)
at webwork.action.ActionSupport.execute()Ljava/lang/String;(ActionSupport.java:146)
at com.atlassian.jira.action.JiraActionSupport.execute()Ljava/lang/String;(JiraActionSupport.java:57)
at webwork.dispatcher.GenericDispatcher.executeAction()V(Optimized Method)
at com.atlassian.jira.web.dispatcher.JiraServletDispatcher.service(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V(Optimized Method)
at javax.servlet.http.HttpServlet.service(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V(HttpServlet.java:92)
at com.caucho.server.dispatch.ServletFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V(ServletFilterChain.java:106)
at com.atlassian.jira.web.filters.AccessLogFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V(AccessLogFilter.java:51)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V(Optimized Method)
at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljavax/servlet/FilterChain;)Lcom/opensymphony/module/sitemesh/Page;(Optimized Method)
at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V(Optimized Method)
at com.atlassian.jira.web.filters.SitemeshExcludePathFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V(SitemeshExcludePathFilter.java:38)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V(Optimized Method)
at com.atlassian.seraph.filter.SecurityFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V(Optimized Method)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V(Optimized Method)
at com.atlassian.seraph.filter.LoginFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V(Optimized Method)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V(Optimized Method)
at com.atlassian.util.profiling.filters.ProfilingFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V(ProfilingFilter.java:132)
at com.atlassian.jira.web.filters.ProfilingAndErrorFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V(Optimized Method)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V(Optimized Method)
at com.atlassian.jira.web.filters.ActionCleanupDelayFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V(Optimized Method)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V(Optimized Method)
at com.atlassian.johnson.filters.JohnsonFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V(JohnsonFilter.java:91)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V(Optimized Method)

It looks like the saved filter's GenericValue is null. It also looks like the saved filter is comming from the session so perhaps there is a way we get a stale version of the saved filter into the session, it needs further investigation. See https://support.atlassian.com/browse/JSP-6358 for a possible way to reproduce the error using jira.atlassian.com data.



 All   Comments   Work Log   Change History      Sort Order: Ascending order - Click to sort in descending order
Dylan Etkin [Atlassian] added a comment - 31/Jul/06 02:03 AM
From investigating this issue it looks like the probable cause is that users have somehow put an unsaved search filter into their session and then clicked on a "stale" link that took them to an operation (rename/share) that expects the filter in the session to be a saved filter. This could quite easily happen using tabs or another browser window. The solution we have put into place is to have the screens verify that the filter they are to take an action on are indeed saved filters. If they are not then the user will receive an error page alerting them to try and load the filter again and re-try the operation.