Issue Details (XML | Word | Printable)

Key: JRA-14147
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Critical Critical
Assignee: Brad Baker [Atlassian]
Reporter: David Yu [Atlassian]
Votes: 0
Watchers: 1
Operations

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

Delete notifications cause NPE

Created: 13/Dec/07 05:40 PM   Updated: 02/Jan/08 12:18 AM
Component/s: Email integration
Affects Version/s: 3.12
Fix Version/s: 3.12.2

Time Tracking:
Not Specified

File Attachments: 1. Text File atlassian-jira.log (112 kB)
2. Text File jira_3_12_jra-14147_instructions.txt (1 kB)
3. Zip Archive jira_3_12_jra-14147_patch.zip (5 kB)
4. File jira_3_12_jra-14147_patch.zip.md5 (0.1 kB)

Environment: Standalone, JDK 1.5.0_08

Participants: Brad Baker [Atlassian] and David Yu [Atlassian]
Since last comment: 41 weeks, 6 days ago
Resolution Date: 17/Dec/07 11:53 PM
Labels:


 Description  « Hide
When JIRA sends out a notification when an issue is deleted, it fails, and generates a NPE error. This does not occur in 3.11. Attaching full log file.
2007-12-13 15:27:09,593 http-8082-Processor21 ERROR [jira.notification.type.AllWatchers] Sink GenericValue can not be null.
2007-12-13 15:27:20,281 Sending mailitem com.atlassian.jira.mail.IssueMailQueueItem@1c1e630[issue=com.atlassian.jira.issue.IssueImpl@5d7554[id=<null>,summary=fdgdfgfdg,key=AAA-2,created=2007-12-13 15:25:33.296,updated=2007-12-13 15:25:33.296,assignee=admin,reporter=admin],remoteUser=admin,notificationType=Current_Assignee,eventTypeId=8,templateId=8] ERROR [atlassian.jira.mail.IssueMailQueueItem] 
java.lang.NullPointerException
	at com.atlassian.jira.security.AbstractPermissionManager.hasPermission(AbstractPermissionManager.java:127)
	at com.atlassian.jira.security.AbstractPermissionManager.hasPermission(AbstractPermissionManager.java:135)
	at sun.reflect.GeneratedMethodAccessor144.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at com.atlassian.util.profiling.object.ObjectProfiler.profiledInvoke(ObjectProfiler.java:71)
	at com.atlassian.jira.config.component.SwitchingInvocationHandler.invoke(SwitchingInvocationHandler.java:28)
	at $Proxy1.hasPermission(Unknown Source)
	at com.atlassian.jira.mail.IssueMailQueueItem.send(IssueMailQueueItem.java:152)
	at com.atlassian.mail.queue.MailQueueImpl.sendBuffer(MailQueueImpl.java:68)
	at com.atlassian.jira.web.action.admin.MailQueueAdmin.doExecute(MailQueueAdmin.java:38)
	at webwork.action.ActionSupport.execute(ActionSupport.java:153)
	at com.atlassian.jira.action.JiraActionSupport.execute(JiraActionSupport.java:54)
	at webwork.dispatcher.GenericDispatcher.executeAction(GenericDispatcher.java:132)
	at com.atlassian.jira.web.dispatcher.JiraServletDispatcher.service(JiraServletDispatcher.java:211)
	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:73)
	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:192)
	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.TrustedApplicationsFilter.doFilter(TrustedApplicationsFilter.java:114)
	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.BaseLoginFilter.doFilter(BaseLoginFilter.java:110)
	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.JIRAProfilingFilter.doFilter(JIRAProfilingFilter.java:16)
	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:43)
	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.RequestCleanupFilter.doFilter(RequestCleanupFilter.java:50)
	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.AbstractJohnsonFilter.doFilter(AbstractJohnsonFilter.java:72)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:350)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at com.atlassian.gzipfilter.GzipFilter.doFilter(GzipFilter.java:89)
	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


 All   Comments   Work Log   Change History      Sort Order: Ascending order - Click to sort in descending order
Brad Baker [Atlassian] added a comment - 17/Dec/07 12:55 AM
The call to issueFactory.issueClone() ends up making an Issue object that is NOT backed by a GenericValue and the MailQueue ends up with problems later on because it cant do a permission check on a null Issue generic value.

The fix is to not clone the issue but rather to call issueFactory.getIssue(). this bug was introduced when trying to fix another problem here


Brad Baker [Atlassian] added a comment - 19/Dec/07 12:32 AM - edited
A patch to JIRA 3.12 has been produced to fix this bug. It is called jira_3_12_jra-14147_patch.zip

How to apply this patch
==========================

Before applying the patch file, make a copy of your JIRA web application directory in case things go wrong. This will allow you to more easily back out any changes.

If you are using JIRA Standalone please do the following:

1. Download file jira_3_12_jra-14147_patch.zip
2. Expand the zip file into <jira_install_dir>/atlassian-jira/ overwriting the files there
3. Restart JIRA

If you are using the WAR distribution of JIRA:

1. Download file jira_3_12_jra-14147_patch.zip
2. Expand the zip to <jira_install_dir>/webapp overwriting the files there
3. Run 'build.sh clean' on unix or 'build.bat clean' on windows
4. Run 'build.sh' on unix or 'build.bat' on windows
5. Redeploy the JIRA web app into your application server

The patch zip file contains the following files :

Length Date Time Name
-------- ---- ---- ----
9851 12-19-07 05:36 WEB-INF/classes/com/atlassian/jira/action/issue/IssueDelete.class
0 12-19-07 17:13 WEB-INF/classes/com/atlassian/jira/action/issue/
0 12-19-07 17:13 WEB-INF/classes/com/atlassian/jira/action/
0 12-19-07 17:13 WEB-INF/classes/com/atlassian/jira/
0 12-19-07 17:13 WEB-INF/classes/com/atlassian/
0 12-19-07 17:13 WEB-INF/classes/com/