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: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 !




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 !

Your answer


Register or to post your answer.