It's all about the answers!

Ask a question

Delete work item fails with NullPointerException


Brian DiCola (29311415) | asked Feb 15 '12, 3:02 p.m.
I think the user tried to move a work item to a different project and also tried to delete it. The work item still appears in the project but, in Eclipse client, the icon is greyed out and has a line through the id.



When I try to delete it, I get NullPointerException.


Log provided below.

2012-02-15 11:57:02,622 ERROR com.ibm.team.process.common -
java.lang.NullPointerException
at com.ibm.team.calm.foundation.common.linking.OSLCResourceDescription.loadResourceWithUpdater(OSLCResourceDescription.java:216)
at com.ibm.team.calm.foundation.common.linking.CALMBackLinkUpdater.readRemoteResource(CALMBackLinkUpdater.java:170)
at com.ibm.team.calm.foundation.common.linking.CALMBackLinkUpdater.readRemoteResources(CALMBackLinkUpdater.java:140)
at com.ibm.team.calm.foundation.common.linking.CALMBackLinkUpdater.updateBacklinksNew(CALMBackLinkUpdater.java:93)
at com.ibm.team.calm.foundation.common.linking.CALMBackLinkUpdater.updateBacklinks(CALMBackLinkUpdater.java:64)
at com.ibm.team.workitem.service.internal.WorkItemRepositoryService.tryDeleteCalmBackLinks(WorkItemRepositoryService.java:1427)
at com.ibm.team.workitem.service.internal.WorkItemRepositoryService.access$9(WorkItemRepositoryService.java:1398)
at com.ibm.team.workitem.service.internal.WorkItemRepositoryService$7.run(WorkItemRepositoryService.java:1379)
at com.ibm.team.process.internal.common.advice.runtime.OperationAdviceManager.runOperation(OperationAdviceManager.java:1244)
at com.ibm.team.process.internal.common.advice.runtime.OperationAdviceManager.advise(OperationAdviceManager.java:293)
at com.ibm.team.process.internal.common.util.AbstractProcess.doAdvise(AbstractProcess.java:177)
at com.ibm.team.process.internal.service.ServerProcess.access$1(ServerProcess.java:1)
at com.ibm.team.process.internal.service.ServerProcess$2.run(ServerProcess.java:137)
at com.ibm.team.repository.service.internal.TransactionService$2.run(TransactionService.java:204)
at com.ibm.team.repository.service.internal.rdb.RepositoryDatabase.runTransaction(RepositoryDatabase.java:312)
at com.ibm.team.repository.service.internal.rdb.RepositoryDatabase.runInTransaction(RepositoryDatabase.java:236)
at com.ibm.team.repository.service.internal.TransactionService.runInTransaction(TransactionService.java:119)
at com.ibm.team.repository.service.internal.TransactionService.runInTransaction(TransactionService.java:88)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:370)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:356)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:56)
at $Proxy209.runInTransaction(Unknown Source)
at com.ibm.team.process.internal.service.ProcessService.runInTransaction(ProcessService.java:4117)
at com.ibm.team.process.internal.service.ProcessService.runInTransaction(ProcessService.java:4124)
at com.ibm.team.process.internal.service.ServerProcess.adviseAndExecute(ServerProcess.java:135)
at com.ibm.team.workitem.service.internal.AuditableServerProcess.adviseAndExecute(AuditableServerProcess.java:77)
at com.ibm.team.workitem.service.internal.WorkItemRepositoryService$8.run(WorkItemRepositoryService.java:1391)
at com.ibm.team.workitem.service.internal.WorkItemRepositoryService$8.run(WorkItemRepositoryService.java:1)
at com.ibm.team.repository.service.internal.TransactionService$2.run(TransactionService.java:204)
at com.ibm.team.repository.service.internal.rdb.RepositoryDatabase$Transaction.run(RepositoryDatabase.java:458)
at com.ibm.team.repository.service.internal.rdb.RepositoryDatabase$1.run(RepositoryDatabase.java:285)
at com.ibm.team.repository.service.internal.rdb.ConnectionPoolService.withCurrentConnection(ConnectionPoolService.java:379)
at sun.reflect.GeneratedMethodAccessor101.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:370)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:356)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:56)
at $Proxy124.withCurrentConnection(Unknown Source)
at com.ibm.team.repository.service.internal.rdb.RepositoryDatabase.runTransaction(RepositoryDatabase.java:281)
at com.ibm.team.repository.service.internal.rdb.RepositoryDatabase.runInTransaction(RepositoryDatabase.java:236)
at com.ibm.team.repository.service.internal.TransactionService.runInTransaction(TransactionService.java:119)
at com.ibm.team.repository.service.internal.TransactionService.runInTransaction(TransactionService.java:88)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:370)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:356)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:56)
at $Proxy209.runInTransaction(Unknown Source)
at com.ibm.team.repository.service.AbstractService.runInTransaction(AbstractService.java:947)
at com.ibm.team.workitem.service.internal.WorkItemRepositoryService.deleteWorkItem(WorkItemRepositoryService.java:1389)
at com.ibm.team.workitem.service.internal.WorkItemRepositoryService.deleteWorkItems(WorkItemRepositoryService.java:1312)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:370)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:356)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:56)
at $Proxy1226.deleteWorkItems(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at com.ibm.team.repository.servlet.AbstractTeamServerServlet.handleMethod(AbstractTeamServerServlet.java:1285)
at com.ibm.team.repository.servlet.AbstractTeamServerServlet.executeMethod(AbstractTeamServerServlet.java:882)
at com.ibm.team.repository.servlet.AbstractTeamServerServlet.doPost(AbstractTeamServerServlet.java:672)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at com.ibm.team.repository.servlet.AbstractTeamServerServlet.handleRequest2(AbstractTeamServerServlet.java:1871)
at com.ibm.team.repository.servlet.AbstractTeamServerServlet.handleRequest(AbstractTeamServerServlet.java:1725)
at com.ibm.team.repository.servlet.AbstractTeamServerServlet.access$0(AbstractTeamServerServlet.java:1710)
at com.ibm.team.repository.servlet.AbstractTeamServerServlet$1.service(AbstractTeamServerServlet.java:198)
at com.ibm.team.repository.internal.service.auth.impl.JAuthHandler.handleRequest(JAuthHandler.java:95)
at sun.reflect.GeneratedMethodAccessor442.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:370)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:356)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:56)
at $Proxy843.handleRequest(Unknown Source)
at com.ibm.team.repository.servlet.AbstractTeamServerServlet.service(AbstractTeamServerServlet.java:1578)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(ServletManager.java:180)
at org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:90)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:111)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:75)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.eclipse.equinox.servletbridge.BridgeServlet.service(BridgeServlet.java:120)
at com.ibm.team.repository.server.servletbridge.JazzServlet.service(JazzServlet.java:76)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:563)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:420)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:879)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:811)

5 answers



permanent link
Brian DiCola (29311415) | answered Feb 24 '12, 5:09 p.m.
Ok. Played around with it and found a fix.

Here is the solution and part of the problem, and maybe part of what caused it.

1. Create a bunch of test case results that have the same name. I think that may be what caused part of the problem, but not sure.
2. I don't know what happened after that. Maybe they got associated with defects and then got deleted. But for some reason a number of the TERs do not show up in the list when you go to "View Test Case Results"
3. In Eclipse, open a defect that you can't delete. Links tab. Right-click on the associated TER and select "Copy URL".
4. In RQM web UI, paste that URL into your browser's address bar. Your bad TER should open. For example,
https://myserver.com/qm/oslc_qm/contexts/_oFqYsBJJEeGVso9zOmPRGw/resources/com.ibm.rqm.execution.ExecutionResult/_sc3YgFJ-EeGBTcls-1R4aA

Another way is to open an existing TER and just paste the id to the end of the querystring to hack the resultItemId as follows:
https://myserver.com/qm/web/console/myproject#action=com.ibm.rqm.planning.home.actionDispatcher&subAction=viewResult&resultItemId=_CmHnQVKCEeGBTcls-1R4aA

5. Go to the Defects section of your TER and see if your defect is already associated. It might be. If not, then add the association. Save. Delete the association again. Save.
6. Go back to Eclipse and open your defect. The association should be gone now.
7. Delete your defect if you want to. It should work now.

Bonus: Go back to RQM and view the list of TERs. Your bad ones should appear now. (Actually I can't guarantee that. I saw them while I was fixing this, but they are gone again. So save those URLs because you won't have access to them again).
Bonus 2: If you really were not trying to delete the defect but just wanted the association to be real again, you now have control that you didn't have before.

permanent link
Brian DiCola (29311415) | answered Feb 16 '12, 12:37 p.m.
Noticed that when I try to remove a link to an Execution Result in RQM I get the same error. I was able to remove other links (e.g. to the Test Case) no problem.

permanent link
Brian DiCola (29311415) | answered Feb 24 '12, 10:56 a.m.
Has anyone encountered a problem like this? I haven't received any feedback and was wondering if this is a common problem or not.

Thanks.

permanent link
Millard Ellingsworth (2.5k12431) | answered Feb 24 '12, 12:10 p.m.
FORUM ADMINISTRATOR / JAZZ DEVELOPER
Has anyone encountered a problem like this? I haven't received any feedback and was wondering if this is a common problem or not.

Thanks.


It seems someone else has encountered what may be a similar issue (an NPE involving the CALMBacklinkUpdater): https://jazz.net/jazz/web/projects/Rational%20Team%20Concert#action=com.ibm.team.workitem.viewWorkItem&id=189498

Can you reproduce your particular case (and provide us steps to do so)?

permanent link
Brian DiCola (29311415) | answered Feb 24 '12, 4:25 p.m.
I'm not able to reproduce it, partly because of the nature of the problem. The defect is associated with a test result that has no functional identifier.

Can I do anything with this?

https://myserver.com/qm/oslc_qm/contexts/_oFqYsBJJEeGVso9zOmPRGw/resources/com.ibm.rqm.execution.ExecutionResult/_duMHEFNOEeGBTcls-1R4aA

In the links tab of the defect I can see "Affects Test Result" .... However, the test result there displays no id. And I can't find it in QM by name. The above link is to the system id. Can I somehow go into the db or run a web service that will find that record and reconcile it between RTC and RQM?

Your answer


Register or to post your answer.


Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.