CQ Connectors: attachment removal not syncing
While testing the synchronization of attachment data from RTC to CQ, I was able to successfully add an Attachment on the RTC side of things, and see it sync to the CQ database, however when I tried to remove an attachment, I got an outgoing error indicating:
Error occurred:
java.lang.RuntimeException: com.ibm.team.interop.service.managers.clearquest.common.InteropException: com.ibm.rational.connector.cq.teamapi71.InteropWvcmException71: CRVAP0332E (conflict): An explicit action must be specified when updating records of type 'Defect' because this record type defines several modify actions: Modify, Add_Remarks, Edit_Notification_List, Change_Mastership, Fix_Request, Fix_Request_Status
at com.ibm.team.interop.service.managers.clearquest.CQExternalManager.updateState(CQExternalManager.java:1399)
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)
Is this a known issue? I definitely have a number of different Modify type actions in my cq schema, but that hasn't stopped other updates from working properly.
Thanks,
Chris
Error occurred:
java.lang.RuntimeException: com.ibm.team.interop.service.managers.clearquest.common.InteropException: com.ibm.rational.connector.cq.teamapi71.InteropWvcmException71: CRVAP0332E (conflict): An explicit action must be specified when updating records of type 'Defect' because this record type defines several modify actions: Modify, Add_Remarks, Edit_Notification_List, Change_Mastership, Fix_Request, Fix_Request_Status
at com.ibm.team.interop.service.managers.clearquest.CQExternalManager.updateState(CQExternalManager.java:1399)
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)
Is this a known issue? I definitely have a number of different Modify type actions in my cq schema, but that hasn't stopped other updates from working properly.
Thanks,
Chris
6 answers
Here is the more complete traceback from the failed sync:
Outgoing at 6/16/09 12:29:54 PM EDT
Error occurred:
java.lang.RuntimeException: com.ibm.team.interop.service.managers.clearquest.common.InteropException: com.ibm.rational.connector.cq.teamapi71.InteropWvcmException71: CRVAP0332E (conflict): An explicit action must be specified when updating records of type 'Defect' because this record type defines several modify actions: Modify, Add_Remarks, Edit_Notification_List, Change_Mastership, Fix_Request, Fix_Request_Status
at com.ibm.team.interop.service.managers.clearquest.CQExternalManager.updateState(CQExternalManager.java:1399)
at sun.reflect.GeneratedMethodAccessor287.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:378)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:364)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:56)
at $Proxy222.updateState(Unknown Source)
at com.ibm.team.interop.service.internal.ExternalManagerProxy.updateState(ExternalManagerProxy.java:102)
at com.ibm.team.interop.service.internal.InteropService.doSynchronizeOutgoing(InteropService.java:4089)
at com.ibm.team.interop.service.internal.InteropService.processOutgoingOneState(InteropService.java:2359)
at com.ibm.team.interop.service.internal.InteropService.processOutgoing(InteropService.java:2272)
at sun.reflect.GeneratedMethodAccessor286.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:378)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:364)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:56)
at $Proxy138.processOutgoing(Unknown Source)
at com.ibm.team.interop.service.internal.ProxySyncTask.processRequest(ProxySyncTask.java:441)
at com.ibm.team.interop.service.internal.ProxySyncTask.processRequestQueue(ProxySyncTask.java:389)
at com.ibm.team.interop.service.internal.ProxySyncTask.transactionSucceeded(ProxySyncTask.java:258)
at sun.reflect.GeneratedMethodAccessor191.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:378)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:364)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:56)
at $Proxy140.transactionSucceeded(Unknown Source)
at com.ibm.team.repository.service.internal.AsynchronousTaskSchedulerService$2.transactionSucceeded(AsynchronousTaskSchedulerService.java:559)
at com.ibm.team.repository.service.internal.AsynchronousTaskSchedulerService$2.executeTask(AsynchronousTaskSchedulerService.java:567)
at com.ibm.team.repository.service.internal.scheduler.AsynchronousTaskRunner.runTask(AsynchronousTaskRunner.java:118)
at com.ibm.team.repository.service.internal.scheduler.AsynchronousTaskRunner.run(AsynchronousTaskRunner.java:92)
at java.lang.Thread.run(Thread.java:810)
Caused by: com.ibm.team.interop.service.managers.clearquest.common.InteropException: com.ibm.rational.connector.cq.teamapi71.InteropWvcmException71: CRVAP0332E (conflict): An explicit action must be specified when updating records of type 'Defect' because this record type defines several modify actions: Modify, Add_Remarks, Edit_Notification_List, Change_Mastership, Fix_Request, Fix_Request_Status
at com.ibm.team.interop.service.managers.clearquest.internal.InteropOperationReturnClient.deSerializeInteropException(InteropOperationReturnClient.java:129)
at com.ibm.team.interop.service.managers.clearquest.internal.InteropOperationReturnClient.deSerialize(InteropOperationReturnClient.java:186)
at com.ibm.team.interop.service.managers.clearquest.internal.InteropClient.parseReturnValue(InteropClient.java:100)
at com.ibm.team.interop.service.managers.clearquest.internal.InteropClient.executeOperation(InteropClient.java:133)
at com.ibm.team.interop.service.managers.clearquest.internal.InteropClient.delete(InteropClient.java:329)
at com.ibm.team.interop.service.managers.clearquest.CQExternalManager.handlePendingAttachments(CQExternalManager.java:365)
at com.ibm.team.interop.service.managers.clearquest.CQExternalManager.updateState(CQExternalManager.java:1324)
... 33 more
I am using build:
Rational Team Concert
Version: 2.0
Build id: I20090520-1148
Outgoing at 6/16/09 12:29:54 PM EDT
Error occurred:
java.lang.RuntimeException: com.ibm.team.interop.service.managers.clearquest.common.InteropException: com.ibm.rational.connector.cq.teamapi71.InteropWvcmException71: CRVAP0332E (conflict): An explicit action must be specified when updating records of type 'Defect' because this record type defines several modify actions: Modify, Add_Remarks, Edit_Notification_List, Change_Mastership, Fix_Request, Fix_Request_Status
at com.ibm.team.interop.service.managers.clearquest.CQExternalManager.updateState(CQExternalManager.java:1399)
at sun.reflect.GeneratedMethodAccessor287.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:378)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:364)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:56)
at $Proxy222.updateState(Unknown Source)
at com.ibm.team.interop.service.internal.ExternalManagerProxy.updateState(ExternalManagerProxy.java:102)
at com.ibm.team.interop.service.internal.InteropService.doSynchronizeOutgoing(InteropService.java:4089)
at com.ibm.team.interop.service.internal.InteropService.processOutgoingOneState(InteropService.java:2359)
at com.ibm.team.interop.service.internal.InteropService.processOutgoing(InteropService.java:2272)
at sun.reflect.GeneratedMethodAccessor286.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:378)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:364)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:56)
at $Proxy138.processOutgoing(Unknown Source)
at com.ibm.team.interop.service.internal.ProxySyncTask.processRequest(ProxySyncTask.java:441)
at com.ibm.team.interop.service.internal.ProxySyncTask.processRequestQueue(ProxySyncTask.java:389)
at com.ibm.team.interop.service.internal.ProxySyncTask.transactionSucceeded(ProxySyncTask.java:258)
at sun.reflect.GeneratedMethodAccessor191.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:378)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:364)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:56)
at $Proxy140.transactionSucceeded(Unknown Source)
at com.ibm.team.repository.service.internal.AsynchronousTaskSchedulerService$2.transactionSucceeded(AsynchronousTaskSchedulerService.java:559)
at com.ibm.team.repository.service.internal.AsynchronousTaskSchedulerService$2.executeTask(AsynchronousTaskSchedulerService.java:567)
at com.ibm.team.repository.service.internal.scheduler.AsynchronousTaskRunner.runTask(AsynchronousTaskRunner.java:118)
at com.ibm.team.repository.service.internal.scheduler.AsynchronousTaskRunner.run(AsynchronousTaskRunner.java:92)
at java.lang.Thread.run(Thread.java:810)
Caused by: com.ibm.team.interop.service.managers.clearquest.common.InteropException: com.ibm.rational.connector.cq.teamapi71.InteropWvcmException71: CRVAP0332E (conflict): An explicit action must be specified when updating records of type 'Defect' because this record type defines several modify actions: Modify, Add_Remarks, Edit_Notification_List, Change_Mastership, Fix_Request, Fix_Request_Status
at com.ibm.team.interop.service.managers.clearquest.internal.InteropOperationReturnClient.deSerializeInteropException(InteropOperationReturnClient.java:129)
at com.ibm.team.interop.service.managers.clearquest.internal.InteropOperationReturnClient.deSerialize(InteropOperationReturnClient.java:186)
at com.ibm.team.interop.service.managers.clearquest.internal.InteropClient.parseReturnValue(InteropClient.java:100)
at com.ibm.team.interop.service.managers.clearquest.internal.InteropClient.executeOperation(InteropClient.java:133)
at com.ibm.team.interop.service.managers.clearquest.internal.InteropClient.delete(InteropClient.java:329)
at com.ibm.team.interop.service.managers.clearquest.CQExternalManager.handlePendingAttachments(CQExternalManager.java:365)
at com.ibm.team.interop.service.managers.clearquest.CQExternalManager.updateState(CQExternalManager.java:1324)
... 33 more
I am using build:
Rational Team Concert
Version: 2.0
Build id: I20090520-1148
I noticed a similar error today with an outgoing sync:
Outgoing at 11/6/09 8:55:37 AM EST
Error occurred:
java.lang.RuntimeException: com.ibm.team.interop.service.managers.clearquest.common.InteropException: com.ibm.rational.connector.cq.teamapi71.InteropWvcmException71: CRVAP0332E (conflict): An explicit action must be specified when updating records of type 'Defect' because this record type defines several modify actions: Add_Remarks, Edit_Notification_List, Admin_Update, Change_Mastership, Update, ODC_Update, Fix_Request_Status
com.ibm.team.interop.service.managers.clearquest.common.InteropException: com.ibm.rational.connector.cq.teamapi71.InteropWvcmException71: CRVAP0332E (conflict): An explicit action must be specified when updating records of type 'Defect' because this record type defines several modify actions: Add_Remarks, Edit_Notification_List, Admin_Update, Change_Mastership, Update, ODC_Update, Fix_Request_Status
In this case, there is no attachment involved, however, in our CQ schema, when the state of the defect is in Closed state, which is the case here, the Modify action is no longer valid. We have another modify action we allow users to use called Update, which allows a smaller subset of fields to be updated than the Modify action does. Is there someway to tell the synchronization process which action to use? Perhaps giving it a list of "Modify" type action in an order of preference, or based on the state of the external record? Thanks.
Outgoing at 11/6/09 8:55:37 AM EST
Error occurred:
java.lang.RuntimeException: com.ibm.team.interop.service.managers.clearquest.common.InteropException: com.ibm.rational.connector.cq.teamapi71.InteropWvcmException71: CRVAP0332E (conflict): An explicit action must be specified when updating records of type 'Defect' because this record type defines several modify actions: Add_Remarks, Edit_Notification_List, Admin_Update, Change_Mastership, Update, ODC_Update, Fix_Request_Status
com.ibm.team.interop.service.managers.clearquest.common.InteropException: com.ibm.rational.connector.cq.teamapi71.InteropWvcmException71: CRVAP0332E (conflict): An explicit action must be specified when updating records of type 'Defect' because this record type defines several modify actions: Add_Remarks, Edit_Notification_List, Admin_Update, Change_Mastership, Update, ODC_Update, Fix_Request_Status
In this case, there is no attachment involved, however, in our CQ schema, when the state of the defect is in Closed state, which is the case here, the Modify action is no longer valid. We have another modify action we allow users to use called Update, which allows a smaller subset of fields to be updated than the Modify action does. Is there someway to tell the synchronization process which action to use? Perhaps giving it a list of "Modify" type action in an order of preference, or based on the state of the external record? Thanks.