[
http://jira.codehaus.org/browse/CONTINUUM-1735?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=171311#action_171311
]
Jose Morales Martinez commented on CONTINUUM-1735:
--------------------------------------------------
The problem is: When we get a project group only get project group data and the
data of project associate, but we do not get the data of notifiers or build
definition. When this information is sent an error occurs. There are 4 possible
solutions:
- Deprecated this method and use method 'getProjectGroup' (This will return
all information associated with the project group)
- Create a new method that returns a new class(EX: ProjectGroupWithProjects)
formed by the project group data and the projects associates and also deprecate
the current method.
- Modify the behavior of that method to behave equal 'getProjectGroup' method.
- Modify the method to always return a empty list for build definitions and
notifiers.
{noformat}
public ProjectGroup getProjectGroupWithProjects( int projectGroupId )
throws ContinuumException
{
checkViewProjectGroupAuthorization( getProjectGroupName( projectGroupId
) );
org.apache.maven.continuum.model.project.ProjectGroup projectGroup =
continuum.getProjectGroupWithProjects( projectGroupId );
projectGroup.setNotifiers( null );
projectGroup.setBuildDefinitions( null );
return populateProjectGroupWithAllDetails( projectGroup );
}
{noformat}
What people think about these solutions?
> Exception when calling getProjectGroupWithProjects
> --------------------------------------------------
>
> Key: CONTINUUM-1735
> URL: http://jira.codehaus.org/browse/CONTINUUM-1735
> Project: Continuum
> Issue Type: Bug
> Components: XMLRPC Interface
> Affects Versions: 1.1
> Reporter: Franck HUGOT
> Fix For: 1.x
>
>
> I get this exception when calling getProjectGroupWithProjects method (it
> seems a mapping is incorrect) :
> 45721 [SocketListener0-0] INFO
> net.sf.dozer.util.mapping.util.CustomMappingsLoader - Successfully loaded
> custom xml mappings from URL: [jar
> :file:/home/sudd/continuum-1.1/apps/continuum/webapp/WEB-INF/lib/continuum-xmlrpc-server-1.1.jar!/dozerBeanMapping.xml]
> 46634 [SocketListener0-0] ERROR net.sf.dozer.util.mapping.MappingProcessor -
> Field mapping error -->
> MapId: null
> Type: bi-directional
> Source parent class: org.apache.maven.continuum.model.project.ProjectGroup
> Source field name: notifiers
> Source field type: generic
> Source field value: null
> Dest parent class: org.apache.maven.continuum.xmlrpc.project.ProjectGroup
> Dest field name: notifiers
> Dest field type: java.util.List
> net.sf.dozer.util.mapping.MappingException:
> java.lang.reflect.InvocationTargetException
> at
> net.sf.dozer.util.mapping.util.MappingUtils.throwMappingException(MappingUtils.java:91)
> at
> net.sf.dozer.util.mapping.util.ReflectionUtils.invoke(ReflectionUtils.java:220)
> at
> net.sf.dozer.util.mapping.propertydescriptor.GetterSetterPropertyDescriptor.invokeReadMethod(GetterSetterPropertyDescriptor.java:2
> 11)
> at
> net.sf.dozer.util.mapping.propertydescriptor.GetterSetterPropertyDescriptor.getPropertyValue(GetterSetterPropertyDescriptor.java:6
> 4)
> at
> net.sf.dozer.util.mapping.fieldmap.FieldMap.getSrcFieldValue(FieldMap.java:71)
> at
> net.sf.dozer.util.mapping.MappingProcessor.map(MappingProcessor.java:108)
> at
> net.sf.dozer.util.mapping.DozerBeanMapper.map(DozerBeanMapper.java:93)
> at
> org.apache.maven.continuum.xmlrpc.server.ContinuumServiceImpl.populateProjectGroupWithAllDetails(ContinuumServiceImpl.java:876)
> at
> org.apache.maven.continuum.xmlrpc.server.ContinuumServiceImpl.getProjectGroupWithProjects(ContinuumServiceImpl.java:278)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at
> org.apache.maven.continuum.xmlrpc.server.ContinuumXmlRpcMetaDataHandler.invoke(ContinuumXmlRpcMetaDataHandler.java:145)
> at
> org.apache.maven.continuum.xmlrpc.server.ContinuumXmlRpcMetaDataHandler.execute(ContinuumXmlRpcMetaDataHandler.java:133)
> at
> org.apache.xmlrpc.server.XmlRpcServerWorker.execute(XmlRpcServerWorker.java:43)
> at org.apache.xmlrpc.server.XmlRpcServer.execute(XmlRpcServer.java:83)
> at
> org.apache.xmlrpc.server.XmlRpcStreamServer.execute(XmlRpcStreamServer.java:182)
> at
> org.apache.xmlrpc.webserver.XmlRpcServletServer.execute(XmlRpcServletServer.java:103)
> at
> org.apache.maven.continuum.xmlrpc.server.ContinuumXmlRpcServlet.doPost(ContinuumXmlRpcServlet.java:193)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at
> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:428)
> at
> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:830)
> at
> com.opensymphony.webwork.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:189)
> at
> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
> at
> com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
> at
> com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
> at
> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
> at
> com.opensymphony.webwork.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:88)
> at
> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
> at
> org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471)
> at
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
> at org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
> at
> org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:633)
> at org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
> at org.mortbay.http.HttpServer.service(HttpServer.java:909)
> at org.mortbay.http.HttpConnection.service(HttpConnection.java:816)
> at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:982)
> at org.mortbay.http.HttpConnection.handle(HttpConnection.java:833)
> at
> org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244)
> at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
> at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
> Caused by: javax.jdo.JDODetachedFieldAccessException: You have just attempted
> to access field "notifiers" yet this field was not detached whe
> n you detached the object. Either dont access this field, or detach the field
> when detaching the object.
> at
> org.apache.maven.continuum.model.project.ProjectGroup.jdoGetnotifiers(ProjectGroup.java)
> at
> org.apache.maven.continuum.model.project.ProjectGroup.getNotifiers(ProjectGroup.java:222)
> ... 49 more
--
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