It's all about the answers!

Ask a question

Synchronize Attribute fails in enum change -> Not applica


Stefania Axo (12621513) | asked Aug 17 '11, 9:45 a.m.
hi
i have this scenario that i was not able to reproduce on an out of box project area.

SCENARIO
- my project area
- my own work item types and attributes
- my enumeration attribute with my enumeration list
- a list of work item created defined by my new work item type
- i change the process to remove the default enumeration with the next value in the list.
- i do a Synchronize Attributes that fails with this error

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2011-08-17 08:31:24,814 DEBUG org.apache.http.client.protocol.RequestAddCookies - CookieSpec selected: compatibility
2011-08-17 08:31:24,877 DEBUG repository.service.internal.rdb.RepositoryDatabase - CRJAZ0545I Transaction failed to complete with exception: com.ibm.team.process.common.advice.TeamOperationCanceledException: 'Save Work Item' failed. Preconditions have not been met: Invalid value of attribute 'sysrouteType' in work item '211': Not applicable
2011-08-17 08:31:24,877 DEBUG repository.service.internal.rdb.RepositoryDatabase - >>>>>>>>>>>>>>>>>>REPO ROLLBACK<<<<<<<<<<<<<<<<<<<<<<
2011-08-17 08:31:24,877 DEBUG sqlTxLogger - com.ibm.db2.jcc.t4.b@26fe26fe ROLLBACK
2011-08-17 08:31:24,924 WARN .team.repository.servlet.AbstractTeamServerServlet - CRJAZ1163I TeamOperationCanceledException processing POST request for com.ibm.team.workitem.common.internal.IWorkItemRepositoryService.save(). CRJAZ1170I The request was made by user "stefy" from "127.0.0.1". CRJAZ1166I The stack trace hash is 9AEA7FC21CD221F9CA067CC7A5543ABFA6170FB3.
com.ibm.team.process.common.advice.TeamOperationCanceledException: 'Save Work Item' failed. Preconditions have not been met: Invalid value of attribute 'sysrouteType' in work item '211': Not applicable
at com.ibm.team.process.internal.common.advice.runtime.OperationAdviceManager.advise(OperationAdviceManager.java:355)
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.GeneratedMethodAccessor270.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 $Proxy99.runInTransaction(Unknown Source)
at com.ibm.team.process.internal.service.ProcessService.runInTransaction(ProcessService.java:4060)
at com.ibm.team.process.internal.service.ProcessService.runInTransaction(ProcessService.java:4067)
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.processSave(WorkItemRepositoryService.java:493)
at com.ibm.team.workitem.service.internal.WorkItemRepositoryService.save(WorkItemRepositoryService.java:418)
at com.ibm.team.workitem.service.internal.WorkItemRepositoryService.save(WorkItemRepositoryService.java:391)
at com.ibm.team.workitem.service.internal.WorkItemRepositoryService.access$3(WorkItemRepositoryService.java:387)
at com.ibm.team.workitem.service.internal.WorkItemRepositoryService$1.run(WorkItemRepositoryService.java:270)
at com.ibm.team.workitem.service.internal.WorkItemRepositoryService$1.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.GeneratedMethodAccessor69.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 $Proxy61.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.GeneratedMethodAccessor270.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 $Proxy99.runInTransaction(Unknown Source)
at com.ibm.team.repository.service.AbstractService.runInTransaction(AbstractService.java:947)
at com.ibm.team.workitem.service.internal.WorkItemRepositoryService.saveTransaction(WorkItemRepositoryService.java:259)
at com.ibm.team.workitem.service.internal.WorkItemRepositoryService.save(WorkItemRepositoryService.java:217)
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 $Proxy762.save(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:1869)
at com.ibm.team.repository.servlet.AbstractTeamServerServlet.handleRequest(AbstractTeamServerServlet.java:1723)
at com.ibm.team.repository.servlet.AbstractTeamServerServlet.access$0(AbstractTeamServerServlet.java:1708)
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.GeneratedMethodAccessor188.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 $Proxy620.handleRequest(Unknown Source)
at com.ibm.team.repository.servlet.AbstractTeamServerServlet.service(AbstractTeamServerServlet.java:1579)
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)
Name: Save Work Item
ID: com.ibm.team.workitem.operation.workItemSave
Severity: ERROR
Name: Dynamic Required Attributes
ID: com.ibm.team.workitem.advisor.requiredAttributes
Severity: OK
Name: Attribute Validation
ID: com.ibm.team.workitem.advisor.validation
Severity: ERROR
Summary: Invalid value of attribute 'sysrouteType': Not applicable
Description: Invalid value of attribute 'sysrouteType' in work item '211': Not applicable
Severity: ERROR
Name: SPoRT Duplicate Work Item Check
ID: com.ibm.sport.rtc.process.service.operationAdvisors.duplicateWorkItemCheck
Severity: OK
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

what seems to fail is the attribute validation


"<"precondition description="Verifies that a work item can only be saved if all attribute values are valid." id="com.ibm.team.workitem.advisor.validation" name="Attribute Validation"/ ">"

Name: Attribute Validation
ID: com.ibm.team.workitem.advisor.validation
Severity: ERROR
Summary: Invalid value of attribute 'sysrouteType': Not applicable
Description: Invalid value of attribute 'sysrouteType' in work item '211': Not applicable



thanks
Stefania

4 answers



permanent link
Ralph Schoon (61.1k33643) | answered Aug 18 '11, 4:04 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
Hi,

can you still create work items of that type and set their values?

If so, please review your synchronization rules. There is probably an old mapping for that attribute that tries to set a value that is not usable anymore.

permanent link
Stefania Axo (12621513) | answered Aug 18 '11, 12:32 p.m.
hi
yes i can created new work item of the modified work item type.

the removed default item on the enumeration type will appear in red for the old work item with only the literal id

Also what do you mean with "review your synchronization rules. There is probably an old mapping for that attribute that tries to set a value that is not usable anymore."

thanks
Stefania

permanent link
Stefania Axo (12621513) | answered Aug 18 '11, 1:01 p.m.
Also if i remove
"<"precondition description="Verifies that a work item can only be saved if all attribute values are valid." id="com.ibm.team.workitem.advisor.validation" name="Attribute Validation"/ ">"
from the process the "Synchronize Attributes" will work fine.
I can then put it back with no more problems

thanks
Stefania

permanent link
Ralph Schoon (61.1k33643) | answered Aug 19 '11, 5:39 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
Hi Stefania,

sorry, I missed the reply.

I thought you where synchronizing with CQ but now figured you wanted to add the new custom attributes using "Synchronize Attributes".

All symptoms you describe point to the fact that the changes you did somehow corrupted the process definition. This results in an invalid enumeration definition, setting or binding which causes an error when saving the work items that have this attribute. Also "Synchronize Attributes" tries to add the attribute and can't because of this fact.

The work around you use now allows to save work items with wrong attribute values.

You need to fix the process specification to really get rid of the problem

Your answer


Register or to post your answer.