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

[URGENT] RTC - Infinite post call loop problem

Hi !


I am developing some participants.  I get a error message as follows.

* Error message:
The server is not responding or a page navigation occurred before an operation completed.
Check that your server connection is working and that the server is operational,
then try the action again or refresh the page.

I do not know the reason of it, but I guess it is from infinite post call loop.
* I found the guess with log.
The participant is activated in same state.
If user request saving with web page save button, the plugin is called.
It is ended with updating a attribute value of same workitem in same state.  At that point,
there is infinite post call loop.  So RTC display message as above in a few minutes.


Is there any person who experienced this error in the past ?    Help me !




0 votes

Comments

You may want to look at the application server logs like SystemOut.log or catalina.log and ccm.log for errors. Posting errors from the logs might give better clues. If I have to guess, this error can come due to memory issues as well.

Thank you for comment.



2 answers

Permanent link
I reenact this problem in the JKE Banking sample project.
I can also find an infinite loop calling in the console as follows.

* We do not use if-clause as follows to save workitem in same state.

       if(oldState.equals(newState) == false)

 

* Participant source :

            IWorkItem newWorkItem = (IWorkItem) saveParameter.getNewState();
            IWorkItem oldWorkItem = (IWorkItem) saveParameter.getOldState();
           
            String workitemType = newWorkItem.getWorkItemType();
           
            // In story workitem case
            if(workitemType.equals("com.ibm.team.apt.workItemType.story")){
                System.out.println("WORKITEM - " + newWorkItem.getId());
               
                Identifier<IState> newStateId = newWorkItem.getState2();
                Identifier<IState> oldStateId = oldWorkItem != null ? oldWorkItem.getState2() : null;
               
                String newState = newStateId.getStringIdentifier();
                String oldState = oldStateId != null ? oldStateId.getStringIdentifier() : null;
               
                System.out.println("oldState=" + newState);
                System.out.println("newState=" + oldState);

                IWorkItem wiCopy = (IWorkItem) getService(IWorkItemServer.class)
                            .getAuditableCommon()
                            .resolveAuditable(newWorkItem, IWorkItem.FULL_PROFILE, monitor)
                            .getWorkingCopy();
                   
                // Set Description
                wiCopy.setHTMLDescription(XMLString.createFromPlainText("test description ..."));
                   
                // save workitem
                Set<String> additionalParams = new HashSet<String>();
                additionalParams.add(IExtensionsDefinitions.LSG_AMS_EXTENSION_ID);
                   
                getService(IWorkItemServer.class).saveWorkItem3(wiCopy, null, null, additionalParams);
                System.out.println("Setting description is completed ...");


* Log in concole

log


* ccm.log

java.lang.StackOverflowError
    at com.ibm.team.repository.service.internal.diagnostics.ExecutingServiceMonitor.preInvoke(ExecutingServiceMonitor.java:32)
    at com.ibm.team.repository.service.internal.diagnostics.ExecutingServiceMonitor.preInvoke(ExecutingServiceMonitor.java:1)
    at com.ibm.team.repository.service.internal.monitoring.ServiceExecutionMonitorRegistry.sendPreInvoke(ServiceExecutionMonitorRegistry.java:101)
    at com.ibm.team.repository.service.internal.monitoring.ServiceExecutionMonitorRegistry.sendPreInvoke(ServiceExecutionMonitorRegistry.java:1)
    at com.ibm.team.repository.common.transport.internal.registry.AbstractActivationManagerOwner.handlePreInvoke(AbstractActivationManagerOwner.java:990)
    at com.ibm.team.repository.common.transport.internal.registry.AbstractActivationManagerOwner.access$5(AbstractActivationManagerOwner.java:988)
    at com.ibm.team.repository.common.transport.internal.registry.AbstractActivationManagerOwner$1.preInvoke(AbstractActivationManagerOwner.java:579)
    at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.preInvoke(ExportProxyServiceRecord.java:505)
    at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:350)
    at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:347)
    at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:56)
    at $Proxy52.getProvider(Unknown Source)
    at com.ibm.team.repository.service.internal.schemagen.PersistentMappingService.getDbProvider(PersistentMappingService.java:318)
    at sun.reflect.GeneratedMethodAccessor117.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
    at java.lang.reflect.Method.invoke(Method.java:611)
    at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:361)
    at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:347)
    at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:56)
    at $Proxy53.getDbProvider(Unknown Source)
    at com.ibm.team.repository.service.internal.ComponentMetadataProviderManagerService.getDbProvider(ComponentMetadataProviderManagerService.java:228)
    at sun.reflect.GeneratedMethodAccessor118.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
    at java.lang.reflect.Method.invoke(Method.java:611)
    at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:361)
    at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:347)
    at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:56)
    at $Proxy59.getDbProvider(Unknown Source)
    at com.ibm.team.repository.service.internal.query.sqlgen.AbstractSqlGenerator.getDbProvider(AbstractSqlGenerator.java:845)
    at com.ibm.team.repository.service.internal.query.sqlgen.PredicateGenerator.useHashedComparison(PredicateGenerator.java:859)
    at com.ibm.team.repository.service.internal.query.sqlgen.PredicateGenerator.addBasicComparison(PredicateGenerator.java:816)
    at com.ibm.team.repository.service.internal.query.sqlgen.PredicateGenerator.addPredicate(PredicateGenerator.java:93)
    at com.ibm.team.repository.service.internal.query.sqlgen.PredicateGenerator.addBinaryConditional(PredicateGenerator.java:775)
    at com.ibm.team.repository.service.internal.query.sqlgen.PredicateGenerator.addPredicate(PredicateGenerator.java:95)
    at com.ibm.team.repository.service.internal.query.sqlgen.PredicateGenerator.toSqlOn(PredicateGenerator.java:75)
    at com.ibm.team.repository.service.internal.query.sqlgen.WhereClauseGenerator.addFilter(WhereClauseGenerator.java:61)
    at com.ibm.team.repository.service.internal.query.sqlgen.WhereClauseGenerator.toSqlOn(WhereClauseGenerator.java:37)
    at com.ibm.team.repository.service.internal.query.sqlgen.QueryGenerator.toSqlOn(QueryGenerator.java:277)
    at com.ibm.team.repository.service.internal.query.sqlgen.QueryGenerator.toSqlQuery(QueryGenerator.java:57)
    at com.ibm.team.repository.service.internal.query.sqlgen.SqlQueryGenerator.generate(SqlQueryGenerator.java:71)
    at com.ibm.team.repository.service.internal.ExecuteDataQuery.doServerQueryData(ExecuteDataQuery.java:84)
    at com.ibm.team.repository.service.internal.ExecuteDataQuery.doQueryData(ExecuteDataQuery.java:122)
    at com.ibm.team.repository.service.internal.RdbRepositoryDataMediator.queryData(RdbRepositoryDataMediator.java:900)
    at com.ibm.team.repository.service.internal.AbstractQueryService.performQuery(AbstractQueryService.java:70)
    at com.ibm.team.repository.service.internal.QueryService.doExecuteItemQuery(QueryService.java:336)
    at com.ibm.team.repository.service.internal.QueryService.access$0(QueryService.java:331)
    at com.ibm.team.repository.service.internal.QueryService$1.run(QueryService.java:178)
    at com.ibm.team.repository.service.internal.QueryService$1.run(QueryService.java:1)
    at com.ibm.team.repository.service.internal.rdb.RepositoryDatabase.runTransaction(RepositoryDatabase.java:339)
    at com.ibm.team.repository.service.internal.rdb.RepositoryDatabase.runInTransaction(RepositoryDatabase.java:263)
    at com.ibm.team.repository.service.internal.PrimitiveTransactionService.runInTransaction(PrimitiveTransactionService.java:110)
    at sun.reflect.GeneratedMethodAccessor248.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
    at java.lang.reflect.Method.invoke(Method.java:611)
    at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:361)
    at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:347)
    at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:56)
    at $Proxy91.runInTransaction(Unknown Source)
    at com.ibm.team.repository.service.internal.QueryService.executeItemQuery(QueryService.java:167)
    at com.ibm.team.repository.service.internal.QueryService.queryItems(QueryService.java:477)
    at sun.reflect.GeneratedMethodAccessor573.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
    at java.lang.reflect.Method.invoke(Method.java:611)
    at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:361)
    at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:347)
    at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:56)
    at $Proxy138.queryItems(Unknown Source)
...



Help me !



0 votes


Permanent link
I got it from the post as follows

https://jazz.net/forum/questions/53983/avoid-participant-propagation


Thanks !

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
× 10,930

Question asked: Apr 24 '13, 3:19 a.m.

Question was seen: 4,156 times

Last updated: Apr 25 '13, 12:30 a.m.

Confirmation Cancel Confirm