It's all about the answers!

Ask a question

Server problem with IAuditableClient


Zbynek Vavros (2834) | asked Oct 31 '11, 5:57 a.m.
Hi,

im doing a query for work items as follows:

IQueryableAttribute modifiedAttribute = attributeFactory.findAttribute(projectArea, IWorkItem.MODIFIED_PROPERTY, auditableClient, null);
AttributeExpression modifiedExpression = new AttributeExpression(modifiedAttribute, AttributeOperation.AFTER, new Timestamp(calendar.getTimeInMillis()));

IQueryableAttribute projectAreaAttribute= attributeFactory.findAttribute(projectArea, IWorkItem.PROJECT_AREA_PROPERTY, auditableClient, null);
AttributeExpression projectAreaExpression= new AttributeExpression(projectAreaAttribute, AttributeOperation.EQUALS, projectArea);

Term term = new Term(Operator.AND);
term.add(modifiedExpression);
term.add(projectAreaExpression);

IQueryResult<IResolvedResult<IWorkItem>> queryResult = queryClient.getResolvedExpressionResults(projectArea, term, IWorkItem.FULL_PROFILE);


it works fine when run from my PC, but when I deploy it to Tomcat I get IllegalArgumentException on auditableClient when doing findAttribute().

The whole stack looks like this:

java.lang.IllegalArgumentException
at com.ibm.team.process.internal.common.util.AbstractProcess.computeConfigurationData(AbstractProcess.java:328)
at com.ibm.team.process.internal.common.util.AbstractProcess.getProjectConfigurationData(AbstractProcess.java:313)
at com.ibm.team.process.internal.common.util.AbstractProcess.getProjectConfigurationData(AbstractProcess.java:299)
at com.ibm.team.workitem.client.internal.AuditableClientProcess.findProcessConfiguration(AuditableClientProcess.java:68)
at com.ibm.team.workitem.common.internal.EnumerationManager$InternalEnumerations.resolve(EnumerationManager.java:52)
at com.ibm.team.workitem.common.internal.EnumerationManager.updateCache(EnumerationManager.java:198)
at com.ibm.team.workitem.common.internal.util.CacheHelper.internalCheckCache(CacheHelper.java:131)
at com.ibm.team.workitem.common.internal.util.CacheHelper.checkCache(CacheHelper.java:81)
at com.ibm.team.workitem.common.internal.util.CacheHelper.checkCache(CacheHelper.java:72)
at com.ibm.team.workitem.common.internal.EnumerationManager.internalResolve(EnumerationManager.java:173)
at com.ibm.team.workitem.common.internal.EnumerationManager.resolve(EnumerationManager.java:169)
at com.ibm.team.workitem.common.internal.WorkItemCommon.resolveEnumeration(WorkItemCommon.java:453)
at com.ibm.team.workitem.common.internal.model.EnumerationAttributeType.getNullValue(EnumerationAttributeType.java:41)
at com.ibm.team.workitem.common.internal.model.impl.AttributeImpl.getNullValue(AttributeImpl.java:875)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.ibm.team.repository.common.internal.util.ItemStore$ItemInvocationHandler.invoke(ItemStore.java:597)
at $Proxy48.getNullValue(Unknown Source)
at com.ibm.team.workitem.common.internal.expression.WorkItemQueryAttributeFactory.getNullValue(WorkItemQueryAttributeFactory.java:274)
at com.ibm.team.workitem.common.internal.expression.WorkItemQueryAttributeFactory.findNonLinkAttributes(WorkItemQueryAttributeFactory.java:238)
at com.ibm.team.workitem.common.internal.expression.WorkItemQueryAttributeFactory.updateCache(WorkItemQueryAttributeFactory.java:172)
at com.ibm.team.workitem.common.internal.util.CacheHelper.internalCheckCache(CacheHelper.java:131)
at com.ibm.team.workitem.common.internal.util.CacheHelper.checkCache(CacheHelper.java:81)
at com.ibm.team.workitem.common.internal.expression.WorkItemQueryAttributeFactory.findAttribute(WorkItemQueryAttributeFactory.java:137)
at com.ibm.cz.rational.RTC.getWorkItemsByContributor(RTC.java:650)
at com.ibm.cz.service.WorkItemsModifiedSinceServiceImpl.getWorkItemsSince(WorkItemsModifiedSinceServiceImpl.java:37)
at com.ibm.cz.endpoint.WorkItemsModifiedSinceEndpoint.getWorkItems(WorkItemsModifiedSinceEndpoint.java:67)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.ws.server.endpoint.MethodEndpoint.invoke(MethodEndpoint.java:132)
at org.springframework.ws.server.endpoint.adapter.DefaultMethodEndpointAdapter.invokeInternal(DefaultMethodEndpointAdapter.java:229)
at org.springframework.ws.server.endpoint.adapter.AbstractMethodEndpointAdapter.invoke(AbstractMethodEndpointAdapter.java:53)
at org.springframework.ws.server.MessageDispatcher.dispatch(MessageDispatcher.java:231)
at org.springframework.ws.server.MessageDispatcher.receive(MessageDispatcher.java:172)
at org.springframework.ws.transport.support.WebServiceMessageReceiverObjectSupport.handleConnection(WebServiceMessageReceiverObjectSupport.java:88)
at org.springframework.ws.transport.http.WebServiceMessageReceiverHandlerAdapter.handle(WebServiceMessageReceiverHandlerAdapter.java:57)
at org.springframework.ws.transport.http.MessageDispatcherServlet.doService(MessageDispatcherServlet.java:222)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)



Im using the usual to obtain it:

auditableClient = (IAuditableClient)teamRepository.getClientLibrary(IAuditableClient.class);


Any ideas anyone?

Zbynek

8 answers



permanent link
Ralph Schoon (59.7k23643) | answered Oct 31 '11, 1:22 p.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
Hi,

not sure, but there are differences in the code when developing on the client and the server side. I would try the IAuditableCommon instead. I have some condition that runs on the server and it only uses that.

permanent link
Drew Stevens (6) | answered Oct 31 '11, 10:46 p.m.
Hi,

not sure, but there are differences in the code when developing on the client and the server side. I would try the IAuditableCommon instead. I have some condition that runs on the server and it only uses that.


yeah actually same scenario...hmmm?

permanent link
Zbynek Vavros (2834) | answered Nov 01 '11, 5:02 a.m.
Hi,

not sure, but there are differences in the code when developing on the client and the server side. I would try the IAuditableCommon instead. I have some condition that runs on the server and it only uses that.


Hi,

thanks for your reply, but unfortunately it does not help :

Caused by: java.lang.IllegalArgumentException
at com.ibm.team.process.internal.common.util.AbstractProcess.computeConfigurationData(AbstractProcess.java:328)
at com.ibm.team.process.internal.common.util.AbstractProcess.getProjectConfigurationData(AbstractProcess.java:313)
at com.ibm.team.process.internal.common.util.AbstractProcess.getProjectConfigurationData(AbstractProcess.java:299)
at com.ibm.team.workitem.client.internal.AuditableClientProcess.findProcessConfiguration(AuditableClientProcess.java:68)
at com.ibm.team.workitem.common.internal.ConfigurationItemManager.resolveProcessConfiguration(ConfigurationItemManager.java:156)
at com.ibm.team.workitem.common.internal.ConfigurationItemManager.readConfigurationItems(ConfigurationItemManager.java:137)
at com.ibm.team.workitem.common.internal.WorkItemTypeManager.readConfigurationItems(WorkItemTypeManager.java:336)
at com.ibm.team.workitem.common.internal.ConfigurationItemManager$CacheManager.updateCache(ConfigurationItemManager.java:44)
at com.ibm.team.workitem.common.internal.util.CacheHelper.internalCheckCache(CacheHelper.java:131)
at com.ibm.team.workitem.common.internal.util.CacheHelper.checkCache(CacheHelper.java:81)
at com.ibm.team.workitem.common.internal.util.CacheHelper.checkCache(CacheHelper.java:72)
at com.ibm.team.workitem.common.internal.ConfigurationItemManager.findConfigurationItem(ConfigurationItemManager.java:95)
at com.ibm.team.workitem.common.internal.WorkItemTypeManager.findConfigurationItem(WorkItemTypeManager.java:232)
at com.ibm.team.workitem.common.internal.WorkItemCommon.findWorkItemType(WorkItemCommon.java:350)
at com.ibm.cz.tis.rational.RTC.createWorkItem(RTC.java:371)
at com.ibm.cz.tis.ws.service.impl.CreateWorkItemServiceImpl.createWorkItem(CreateWorkItemServiceImpl.java:82)
at com.ibm.cz.tis.ws.endpoint.CreateWorkItemEndpoint.handleRequest(CreateWorkItemEndpoint.java:34)
... 32 more

permanent link
Zbynek Vavros (2834) | answered Nov 02 '11, 4:00 a.m.
Hi,

not sure, but there are differences in the code when developing on the client and the server side. I would try the IAuditableCommon instead. I have some condition that runs on the server and it only uses that.


Hi,

thanks for your reply, but unfortunately it does not help :

Caused by: java.lang.IllegalArgumentException
at com.ibm.team.process.internal.common.util.AbstractProcess.computeConfigurationData(AbstractProcess.java:328)
at com.ibm.team.process.internal.common.util.AbstractProcess.getProjectConfigurationData(AbstractProcess.java:313)
at com.ibm.team.process.internal.common.util.AbstractProcess.getProjectConfigurationData(AbstractProcess.java:299)
at com.ibm.team.workitem.client.internal.AuditableClientProcess.findProcessConfiguration(AuditableClientProcess.java:68)
at com.ibm.team.workitem.common.internal.ConfigurationItemManager.resolveProcessConfiguration(ConfigurationItemManager.java:156)
at com.ibm.team.workitem.common.internal.ConfigurationItemManager.readConfigurationItems(ConfigurationItemManager.java:137)
at com.ibm.team.workitem.common.internal.WorkItemTypeManager.readConfigurationItems(WorkItemTypeManager.java:336)
at com.ibm.team.workitem.common.internal.ConfigurationItemManager$CacheManager.updateCache(ConfigurationItemManager.java:44)
at com.ibm.team.workitem.common.internal.util.CacheHelper.internalCheckCache(CacheHelper.java:131)
at com.ibm.team.workitem.common.internal.util.CacheHelper.checkCache(CacheHelper.java:81)
at com.ibm.team.workitem.common.internal.util.CacheHelper.checkCache(CacheHelper.java:72)
at com.ibm.team.workitem.common.internal.ConfigurationItemManager.findConfigurationItem(ConfigurationItemManager.java:95)
at com.ibm.team.workitem.common.internal.WorkItemTypeManager.findConfigurationItem(WorkItemTypeManager.java:232)
at com.ibm.team.workitem.common.internal.WorkItemCommon.findWorkItemType(WorkItemCommon.java:350)
at com.ibm.cz.tis.rational.RTC.createWorkItem(RTC.java:371)
at com.ibm.cz.tis.ws.service.impl.CreateWorkItemServiceImpl.createWorkItem(CreateWorkItemServiceImpl.java:82)
at com.ibm.cz.tis.ws.endpoint.CreateWorkItemEndpoint.handleRequest(CreateWorkItemEndpoint.java:34)
... 32 more


Hi,

im not sure if this helps anyone but I have found the cause of this problem.
Im mavenized, and for some magic reason, when I add dependency to JAXEN, it starts to throwing that IllegalArgumentException.

<dependency>
<groupId>jaxen</groupId>
<artifactId>jaxen</artifactId>
<version>1.1.1</version>
<type>jar</type>
<scope>compile</scope>
</dependency>


So solution for me is to use some other XML parser...
Anyone has any idea on why this dependency affects Java Client ???

Zbynek

permanent link
Zbynek Vavros (2834) | answered Nov 02 '11, 4:27 a.m.
Hi,

not sure, but there are differences in the code when developing on the client and the server side. I would try the IAuditableCommon instead. I have some condition that runs on the server and it only uses that.


Hi,

thanks for your reply, but unfortunately it does not help :

Caused by: java.lang.IllegalArgumentException
at com.ibm.team.process.internal.common.util.AbstractProcess.computeConfigurationData(AbstractProcess.java:328)
at com.ibm.team.process.internal.common.util.AbstractProcess.getProjectConfigurationData(AbstractProcess.java:313)
at com.ibm.team.process.internal.common.util.AbstractProcess.getProjectConfigurationData(AbstractProcess.java:299)
at com.ibm.team.workitem.client.internal.AuditableClientProcess.findProcessConfiguration(AuditableClientProcess.java:68)
at com.ibm.team.workitem.common.internal.ConfigurationItemManager.resolveProcessConfiguration(ConfigurationItemManager.java:156)
at com.ibm.team.workitem.common.internal.ConfigurationItemManager.readConfigurationItems(ConfigurationItemManager.java:137)
at com.ibm.team.workitem.common.internal.WorkItemTypeManager.readConfigurationItems(WorkItemTypeManager.java:336)
at com.ibm.team.workitem.common.internal.ConfigurationItemManager$CacheManager.updateCache(ConfigurationItemManager.java:44)
at com.ibm.team.workitem.common.internal.util.CacheHelper.internalCheckCache(CacheHelper.java:131)
at com.ibm.team.workitem.common.internal.util.CacheHelper.checkCache(CacheHelper.java:81)
at com.ibm.team.workitem.common.internal.util.CacheHelper.checkCache(CacheHelper.java:72)
at com.ibm.team.workitem.common.internal.ConfigurationItemManager.findConfigurationItem(ConfigurationItemManager.java:95)
at com.ibm.team.workitem.common.internal.WorkItemTypeManager.findConfigurationItem(WorkItemTypeManager.java:232)
at com.ibm.team.workitem.common.internal.WorkItemCommon.findWorkItemType(WorkItemCommon.java:350)
at com.ibm.cz.tis.rational.RTC.createWorkItem(RTC.java:371)
at com.ibm.cz.tis.ws.service.impl.CreateWorkItemServiceImpl.createWorkItem(CreateWorkItemServiceImpl.java:82)
at com.ibm.cz.tis.ws.endpoint.CreateWorkItemEndpoint.handleRequest(CreateWorkItemEndpoint.java:34)
... 32 more


Hi,

im not sure if this helps anyone but I have found the cause of this problem.
Im mavenized, and for some magic reason, when I add dependency to JAXEN, it starts to throwing that IllegalArgumentException.

<dependency>
<groupId>jaxen</groupId>
<artifactId>jaxen</artifactId>
<version>1.1.1</version>
<type>jar</type>
<scope>compile</scope>
</dependency>


So solution for me is to use some other XML parser...
Anyone has any idea on why this dependency affects Java Client ???

Zbynek

Strange but it seems to be working when I use version <b>1.0-FCS</b> of Jaxen...

Zbynek

permanent link
Ralph Schoon (59.7k23643) | answered Nov 02 '11, 10:11 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
Hi,

good that you found it. I have seen a similar issue with another XML parser, not sure which it was in the past.

permanent link
Zbynek Vavros (2834) | answered Nov 02 '11, 11:25 a.m.
Hi,

good that you found it. I have seen a similar issue with another XML parser, not sure which it was in the past.


Any plan for analysis or maybe a fix ?
I know it is minor problem - switching to different version of artifact solves the problem but still...

permanent link
Ralph Schoon (59.7k23643) | answered Nov 02 '11, 11:53 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
If you think it is worth fixing it, please write a work item.

The other one was reported to have an issue with EMF, so it was their fault. A newer version fixed that.

Your answer


Register or to post your answer.