[ http://jira.codehaus.org/browse/CONTINUUM-799?page=comments#action_71562 ] Jonathan Johnson commented on CONTINUUM-799: --------------------------------------------
Adam [EMAIL PROTECTED] found that if you delete the build definitions from the doubled project, you should be able to delete the project then. I tried that and it worked. This is a workaround for now. > One sub module randomly appears twice after adding a parent multi-module > ------------------------------------------------------------------------- > > Key: CONTINUUM-799 > URL: http://jira.codehaus.org/browse/CONTINUUM-799 > Project: Continuum > Issue Type: Bug > Components: Database > Affects Versions: 1.0.3 > Environment: Linux Red Hat > Reporter: Jonathan Johnson > Fix For: 1.0.3 > > > One sub module randomly appears twice after adding a parent multi-module to > continuum 1.0.3. > I have a parent maven 2 pom with 16 sub-modules. If I reset the database ( > by removing the database directory) and add my parent pom.xml all the modules > will be added correctly except one random module will be added twice. I > tried this three times and a different module in the list is duplicated once. > This also happens after a fresh install of version 1.0.3. > If I run a "Build All" one of the duplicate modules builds, while the other > remains with a "New" status. When attempting to remove the duplicate module > with the "New" status I get the error below. > ------------------ > [EMAIL PROTECTED] also reported this... > "I've had a similar problem when using continuum with SVN. I end up with two > projects that have the exact same SCM url, but different continuum build id's > (sequential, in my case). Updating the build definition for one, > automatically updates it for the other. However, updates inside svn only > trigger one of them to be built by continuum, and not both. If I try to > delete the duplicated project, I get the continuum error page with the same > error output." > ------------------ > Additional findinds... > I looked in the working directory. I have 1-15 directories under > working-directory. The module that is duplicated has an id of 10 and another > of 16. The one that is 16 is the module that still has the status of "New" > and throws the database DELETE exception when I try to remove the module from > the Continuum list. > the duplicateD module has different ids (10 and 16) but working directory > does not have a "16" folder. > Here is theexception when removing the duplicate module with the id of "16" > ognl.MethodFailedException: Method "removeProject" failed for object [EMAIL > PROTECTED] [javax.jdo.JDOUserException: One or more instances could not be > deleted > NestedThrowables: > javax.jdo.JDODataStoreException: Delete request failed: DELETE FROM > BUILDDEFINITION WHERE ID = ? > NestedThrowables: > SQL Exception: DELETE on table 'BUILDDEFINITION' caused a violation of > foreign key constraint 'PROJECT_BUILP8_FK2' for key (10). The statement has > been rolled back.] > at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:796) > at ognl.ObjectMethodAccessor.callMethod(ObjectMethodAccessor.java:61) > at ognl.OgnlRuntime.callMethod(OgnlRuntime.java:819) > at ognl.ASTMethod.getValueBody(ASTMethod.java:75) > at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:170) > at ognl.SimpleNode.getValue(SimpleNode.java:210) > at ognl.Ognl.getValue(Ognl.java:333) > at ognl.Ognl.getValue(Ognl.java:378) > at ognl.Ognl.getValue(Ognl.java:357) > at > org.codehaus.plexus.formica.action.DeleteEntity.uponSuccessfulValidation(DeleteEntity.java:57) > at > org.codehaus.plexus.formica.action.DeleteEntity.execute(DeleteEntity.java:47) > at > org.codehaus.plexus.summit.pipeline.valve.ActionValve.invoke(ActionValve.java:68) > at > org.codehaus.plexus.summit.pipeline.AbstractPipeline.invoke(AbstractPipeline.java:70) > at org.codehaus.plexus.summit.Summit.doGet(Summit.java:54) > at org.codehaus.plexus.summit.Summit.doPost(Summit.java:108) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) > at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:358) > at > org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:294) > at > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:567) > at org.mortbay.http.HttpContext.handle(HttpContext.java:1807) > at > org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:525) > at org.mortbay.http.HttpContext.handle(HttpContext.java:1757) > at org.mortbay.http.HttpServer.service(HttpServer.java:879) > at org.mortbay.http.HttpConnection.service(HttpConnection.java:789) > at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:960) > at org.mortbay.http.HttpConnection.handle(HttpConnection.java:806) > at > org.mortbay.http.SocketListener.handleConnection(SocketListener.java:218) > at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:331) > at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:520) > /-- Encapsulated exception ------------\ > javax.jdo.JDOUserException: One or more instances could not be deleted > at > org.jpox.AbstractPersistenceManager.deletePersistentAll(AbstractPersistenceManager.java:1438) > at > org.jpox.store.rdbms.scostore.ElementContainerStore.clear(ElementContainerStore.java:595) > at > org.jpox.store.mapping.CollectionMapping.preDelete(CollectionMapping.java:304) > at > org.jpox.store.mapping.CollectionMapping.deleteDependent(CollectionMapping.java:332) > at > org.jpox.store.rdbms.table.ClassTable.deleteDependent(ClassTable.java:2280) > at org.jpox.store.StoreManager.deleteDependent(StoreManager.java:838) > at > org.jpox.state.StateManagerImpl.deletePersistent(StateManagerImpl.java:4049) > at > org.jpox.AbstractPersistenceManager.internalDeletePersistent(AbstractPersistenceManager.java:1391) > at > org.jpox.AbstractPersistenceManager.deletePersistent(AbstractPersistenceManager.java:1402) > at > org.codehaus.plexus.jdo.PlexusJdoUtils.removeObject(PlexusJdoUtils.java:53) > at > org.apache.maven.continuum.store.JdoContinuumStore.removeObject(JdoContinuumStore.java:969) > at > org.apache.maven.continuum.store.JdoContinuumStore.removeProject(JdoContinuumStore.java:901) > at > org.apache.maven.continuum.DefaultContinuum.removeProject(DefaultContinuum.java:328) > 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 ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:491) > at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:785) > at ognl.ObjectMethodAccessor.callMethod(ObjectMethodAccessor.java:61) > at ognl.OgnlRuntime.callMethod(OgnlRuntime.java:819) > at ognl.ASTMethod.getValueBody(ASTMethod.java:75) > at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:170) > at ognl.SimpleNode.getValue(SimpleNode.java:210) > at ognl.Ognl.getValue(Ognl.java:333) > at ognl.Ognl.getValue(Ognl.java:378) > at ognl.Ognl.getValue(Ognl.java:357) > at > org.codehaus.plexus.formica.action.DeleteEntity.uponSuccessfulValidation(DeleteEntity.java:57) > at > org.codehaus.plexus.formica.action.DeleteEntity.execute(DeleteEntity.java:47) > at > org.codehaus.plexus.summit.pipeline.valve.ActionValve.invoke(ActionValve.java:68) > at > org.codehaus.plexus.summit.pipeline.AbstractPipeline.invoke(AbstractPipeline.java:70) > at org.codehaus.plexus.summit.Summit.doGet(Summit.java:54) > at org.codehaus.plexus.summit.Summit.doPost(Summit.java:108) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) > at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:358) > at > org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:294) > at > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:567) > at org.mortbay.http.HttpContext.handle(HttpContext.java:1807) > at > org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:525) > at org.mortbay.http.HttpContext.handle(HttpContext.java:1757) > at org.mortbay.http.HttpServer.service(HttpServer.java:879) > at org.mortbay.http.HttpConnection.service(HttpConnection.java:789) > at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:960) > at org.mortbay.http.HttpConnection.handle(HttpConnection.java:806) > at > org.mortbay.http.SocketListener.handleConnection(SocketListener.java:218) > at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:331) > at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:520) > NestedThrowablesStackTrace: > javax.jdo.JDODataStoreException: Delete request failed: DELETE FROM > BUILDDEFINITION WHERE ID = ? > at > org.jpox.store.rdbms.request.DeleteRequest.execute(DeleteRequest.java:259) > at org.jpox.store.rdbms.table.ClassTable.delete(ClassTable.java:2238) > at org.jpox.store.StoreManager.delete(StoreManager.java:800) > at > org.jpox.state.StateManagerImpl.internalDeletePersistent(StateManagerImpl.java:4113) > at > org.jpox.state.StateManagerImpl.deletePersistent(StateManagerImpl.java:4068) > at > org.jpox.AbstractPersistenceManager.internalDeletePersistent(AbstractPersistenceManager.java:1391) > at > org.jpox.AbstractPersistenceManager.deletePersistentAll(AbstractPersistenceManager.java:1429) > at > org.jpox.store.rdbms.scostore.ElementContainerStore.clear(ElementContainerStore.java:595) > at > org.jpox.store.mapping.CollectionMapping.preDelete(CollectionMapping.java:304) > at > org.jpox.store.mapping.CollectionMapping.deleteDependent(CollectionMapping.java:332) > at > org.jpox.store.rdbms.table.ClassTable.deleteDependent(ClassTable.java:2280) > at org.jpox.store.StoreManager.deleteDependent(StoreManager.java:838) > at > org.jpox.state.StateManagerImpl.deletePersistent(StateManagerImpl.java:4049) > at > org.jpox.AbstractPersistenceManager.internalDeletePersistent(AbstractPersistenceManager.java:1391) > at > org.jpox.AbstractPersistenceManager.deletePersistent(AbstractPersistenceManager.java:1402) > at > org.codehaus.plexus.jdo.PlexusJdoUtils.removeObject(PlexusJdoUtils.java:53) > at > org.apache.maven.continuum.store.JdoContinuumStore.removeObject(JdoContinuumStore.java:969) > at > org.apache.maven.continuum.store.JdoContinuumStore.removeProject(JdoContinuumStore.java:901) > at > org.apache.maven.continuum.DefaultContinuum.removeProject(DefaultContinuum.java:328) > 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 ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:491) > at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:785) > at ognl.ObjectMethodAccessor.callMethod(ObjectMethodAccessor.java:61) > at ognl.OgnlRuntime.callMethod(OgnlRuntime.java:819) > at ognl.ASTMethod.getValueBody(ASTMethod.java:75) > at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:170) > at ognl.SimpleNode.getValue(SimpleNode.java:210) > at ognl.Ognl.getValue(Ognl.java:333) > at ognl.Ognl.getValue(Ognl.java:378) > at ognl.Ognl.getValue(Ognl.java:357) > at > org.codehaus.plexus.formica.action.DeleteEntity.uponSuccessfulValidation(DeleteEntity.java:57) > at > org.codehaus.plexus.formica.action.DeleteEntity.execute(DeleteEntity.java:47) > at > org.codehaus.plexus.summit.pipeline.valve.ActionValve.invoke(ActionValve.java:68) > at > org.codehaus.plexus.summit.pipeline.AbstractPipeline.invoke(AbstractPipeline.java:70) > at org.codehaus.plexus.summit.Summit.doGet(Summit.java:54) > at org.codehaus.plexus.summit.Summit.doPost(Summit.java:108) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) > at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:358) > at > org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:294) > at > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:567) > at org.mortbay.http.HttpContext.handle(HttpContext.java:1807) > at > org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:525) > at org.mortbay.http.HttpContext.handle(HttpContext.java:1757) > at org.mortbay.http.HttpServer.service(HttpServer.java:879) > at org.mortbay.http.HttpConnection.service(HttpConnection.java:789) > at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:960) > at org.mortbay.http.HttpConnection.handle(HttpConnection.java:806) > at > org.mortbay.http.SocketListener.handleConnection(SocketListener.java:218) > at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:331) > at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:520) > NestedThrowablesStackTrace: > ERROR 23503: DELETE on table 'BUILDDEFINITION' caused a violation of foreign > key constraint 'PROJECT_BUILP8_FK2' for key (10). The statement has been > rolled back. > at org.apache.derby.iapi.error.StandardException.newException(Unknown > Source) > at > org.apache.derby.impl.sql.execute.ReferencedKeyRIChecker.doCheck(Unknown > Source) > at org.apache.derby.impl.sql.execute.RISetChecker.doPKCheck(Unknown > Source) > at > org.apache.derby.impl.sql.execute.DeleteResultSet.collectAffectedRows(Unknown > Source) > at org.apache.derby.impl.sql.execute.DeleteResultSet.open(Unknown > Source) > at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown > Source) > at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown > Source) > at > org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(Unknown > Source) > at org.apache.derby.impl.jdbc.EmbedPreparedStatement.execute(Unknown > Source) > at org.jpox.store.rdbms.request.Request.executeUpdate(Request.java:78) > at > org.jpox.store.rdbms.request.DeleteRequest.execute(DeleteRequest.java:245) > at org.jpox.store.rdbms.table.ClassTable.delete(ClassTable.java:2238) > at org.jpox.store.StoreManager.delete(StoreManager.java:800) > at > org.jpox.state.StateManagerImpl.internalDeletePersistent(StateManagerImpl.java:4113) > at > org.jpox.state.StateManagerImpl.deletePersistent(StateManagerImpl.java:4068) > at > org.jpox.AbstractPersistenceManager.internalDeletePersistent(AbstractPersistenceManager.java:1391) > at > org.jpox.AbstractPersistenceManager.deletePersistentAll(AbstractPersistenceManager.java:1429) > at > org.jpox.store.rdbms.scostore.ElementContainerStore.clear(ElementContainerStore.java:595) > at > org.jpox.store.mapping.CollectionMapping.preDelete(CollectionMapping.java:304) > at > org.jpox.store.mapping.CollectionMapping.deleteDependent(CollectionMapping.java:332) > at > org.jpox.store.rdbms.table.ClassTable.deleteDependent(ClassTable.java:2280) > at org.jpox.store.StoreManager.deleteDependent(StoreManager.java:838) > at > org.jpox.state.StateManagerImpl.deletePersistent(StateManagerImpl.java:4049) > at > org.jpox.AbstractPersistenceManager.internalDeletePersistent(AbstractPersistenceManager.java:1391) > at > org.jpox.AbstractPersistenceManager.deletePersistent(AbstractPersistenceManager.java:1402) > at > org.codehaus.plexus.jdo.PlexusJdoUtils.removeObject(PlexusJdoUtils.java:53) > at > org.apache.maven.continuum.store.JdoContinuumStore.removeObject(JdoContinuumStore.java:969) > at > org.apache.maven.continuum.store.JdoContinuumStore.removeProject(JdoContinuumStore.java:901) > at > org.apache.maven.continuum.DefaultContinuum.removeProject(DefaultContinuum.java:328) > 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 ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:491) > at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:785) > at ognl.ObjectMethodAccessor.callMethod(ObjectMethodAccessor.java:61) > at ognl.OgnlRuntime.callMethod(OgnlRuntime.java:819) > at ognl.ASTMethod.getValueBody(ASTMethod.java:75) > at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:170) > at ognl.SimpleNode.getValue(SimpleNode.java:210) > at ognl.Ognl.getValue(Ognl.java:333) > at ognl.Ognl.getValue(Ognl.java:378) > at ognl.Ognl.getValue(Ognl.java:357) > at > org.codehaus.plexus.formica.action.DeleteEntity.uponSuccessfulValidation(DeleteEntity.java:57) > at > org.codehaus.plexus.formica.action.DeleteEntity.execute(DeleteEntity.java:47) > at > org.codehaus.plexus.summit.pipeline.valve.ActionValve.invoke(ActionValve.java:68) > at > org.codehaus.plexus.summit.pipeline.AbstractPipeline.invoke(AbstractPipeline.java:70) > at org.codehaus.plexus.summit.Summit.doGet(Summit.java:54) > at org.codehaus.plexus.summit.Summit.doPost(Summit.java:108) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) > at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:358) > at > org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:294) > at > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:567) > at org.mortbay.http.HttpContext.handle(HttpContext.java:1807) > at > org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:525) > at org.mortbay.http.HttpContext.handle(HttpContext.java:1757) > at org.mortbay.http.HttpServer.service(HttpServer.java:879) > at org.mortbay.http.HttpConnection.service(HttpConnection.java:789) > at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:960) > at org.mortbay.http.HttpConnection.handle(HttpConnection.java:806) > at > org.mortbay.http.SocketListener.handleConnection(SocketListener.java:218) > at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:331) > at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:520) > \--------------------------------------/ -- 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