[ 
http://jira.codehaus.org/browse/CONTINUUM-1590?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_118269
 ] 

Laurent Foret commented on CONTINUUM-1590:
------------------------------------------

I had a similar problem with this simple client code :

            ContinuumXmlRpcClient client = new ContinuumXmlRpcClient(new URL(" 
http://localhost:8080/continuum/xmlrpc";), "admin", "manager1");
            List<ProjectGroup> projectGroups = 
client.getAllProjectGroupsWithAllDetails ();
            for (ProjectGroup pg : projectGroups) {
                System.out.println("PGID : "+pg.getId());
                client.getProjects(pg.getId());
            }

My StackOverflowError happens at the line 224.

jvm 1    | Caused by:
jvm 1    | java.lang.StackOverflowError
jvm 1    |      at 
org.apache.maven.continuum.xmlrpc.server.ContinuumServiceImpl.getPGSummary(ContinuumServiceImpl.java:
231)
jvm 1    |      at 
org.apache.maven.continuum.xmlrpc.server.ContinuumServiceImpl.getProjectGroupName(ContinuumServiceImp
l.java:224)
jvm 1    |      at 
org.apache.maven.continuum.xmlrpc.server.ContinuumServiceImpl.getPGSummary 
(ContinuumServiceImpl.java:
231)
jvm 1    |      at 
org.apache.maven.continuum.xmlrpc.server.ContinuumServiceImpl.getProjectGroupName(ContinuumServiceImp
l.java:224)


Maybe, it is not usefull at line 231 in the private method  to call 
checkViewProjectGroupAuthorization(). 





> updateBuildDefinitionForProjectGroup leads to a StackOverflowError
> ------------------------------------------------------------------
>
>                 Key: CONTINUUM-1590
>                 URL: http://jira.codehaus.org/browse/CONTINUUM-1590
>             Project: Continuum
>          Issue Type: Bug
>          Components: XMLRPC Interface
>    Affects Versions: 1.1
>            Reporter: ol
>            Priority: Blocker
>
> This problem is due to a recursive call when testing the authorizations :
> At line 221 of ContinuumServiceImpl.java
>     protected String getProjectGroupName( int projectGroupId )
>         throws ContinuumException
>     {
>         ProjectGroupSummary pgs = getPGSummary( projectGroupId );
>         return pgs.getName();
>     }
>     private ProjectGroupSummary getPGSummary( int projectGroupId )
>         throws ContinuumException
>     {
>         checkViewProjectGroupAuthorization( getProjectGroupName( 
> projectGroupId ) );
>         org.apache.maven.continuum.model.project.ProjectGroup projectGroup =
>             continuum.getProjectGroup( projectGroupId );
>         return populateProjectGroupSummary( projectGroup );
>     }
> getProjectGroupName makes a call to getPGSummary that makes a call to 
> getProjectGroupName that makes a call to getPGSummary  ......
> I think the getPGSummary should be implemented like this :
>     private ProjectGroupSummary getPGSummary( int projectGroupId )
>         throws ContinuumException
>     {
>         org.apache.maven.continuum.model.project.ProjectGroup projectGroup =
>             continuum.getProjectGroup( projectGroupId );
>         
>         checkViewProjectGroupAuthorization( projectGroup.getName() );
>         return populateProjectGroupSummary( projectGroup );
>     }
> This problem also occurs in all these methods:
> - getProjectGroupSummary (line 242)
> - getProjectGroupWithProjects (line 253)
> - removeProjectGroup (line 264)
> - getProjects (line 91)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to