It's all about the answers!

Ask a question

[URGENT] RTC - Infinite post call loop problem


benjamin oh (144) | asked Apr 24 '13, 3:19 a.m.
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 !





Comments
Indradri Basu commented Apr 24 '13, 3:31 a.m.

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.


benjamin oh commented Apr 24 '13, 11:53 p.m.

Thank you for comment.

2 answers



permanent link
benjamin oh (144) | answered Apr 25 '13, 12:30 a.m.
I got it from the post as follows

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


Thanks !

permanent link
benjamin oh (144) | answered Apr 25 '13, 12:07 a.m.
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 !



Your answer


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