Jazz Forum Welcome to the Jazz Community Forum Connect and collaborate with IBM Engineering experts and users

Delete work item fails with NullPointerException

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)

0 votes



5 answers

Permanent link
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.

1 vote


Permanent link
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.

0 votes


Permanent link
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.

0 votes


Permanent link
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)?

0 votes


Permanent link
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?

0 votes

Your answer

Register or log in 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.

Search context
Follow this question

By Email: 

Once you sign in you will be able to subscribe for any updates here.

By RSS:

Answers
Answers and Comments
Question details

Question asked: Feb 15 '12, 3:02 p.m.

Question was seen: 4,784 times

Last updated: Feb 15 '12, 3:02 p.m.

Confirmation Cancel Confirm