continuum-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jesse McConnell" <jesse.mcconn...@gmail.com>
Subject Re: One sub module randomly appears twice after adding a parent multi-module 1.0.3
Date Tue, 01 Aug 2006 13:50:41 GMT
have you looked into the working directory that corresponds to that
project id to see what is in there?

in the working directory there should be a mess of numbered
directories corresponding to each of the projects as they exist in
continuum, mouse over the link to the project and you should see the
project id in the url.  I would be interested to know what was checked
out in that sub directory...and if that project was assigned a
different project id then its duplicate.  something is making
continuum think there is another project to get setup...

thanks,
jesse

On 8/1/06, Johnson, Jonathan <jjohnson@454.com> wrote:
> Using cvs but problem occurs before build happens and before cvs is
> accessed.  Problem occurs when adding a parent pom.xml M2 project file
> via URL.  Thanks for the link, I will submit the problem.
>
> -----Original Message-----
> From: Jesse McConnell [mailto:jesse.mcconnell@gmail.com]
> Sent: Tuesday, August 01, 2006 9:31 AM
> To: continuum-users@maven.apache.org
> Subject: Re: One sub module randomly appears twice after adding a parent
> multi-module 1.0.3
>
> hm, how odd...
>
> what scm are you using?
>
> also, could you file this at http://jira.codehaus.org/browse/CONTINUUM
>
> jesse
>
> On 7/31/06, Johnson, Jonathan <jjohnson@454.com> wrote:
> > 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
> >
> > ognl.MethodFailedException: Method "removeProject" failed for object
> > org.apache.maven.continuum.DefaultContinuum@194a8eb
> > [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.jav
> > a:47)
> >         at
> >
> org.codehaus.plexus.summit.pipeline.valve.ActionValve.invoke(ActionValve
> > .java:68)
> >         at
> >
> org.codehaus.plexus.summit.pipeline.AbstractPipeline.invoke(AbstractPipe
> > line.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(WebApplicationH
> > andler.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(WebApplicationCon
> > text.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(AbstractPersiste
> > nceManager.java:1438)
> >         at
> >
> org.jpox.store.rdbms.scostore.ElementContainerStore.clear(ElementContain
> > erStore.java:595)
> >         at
> >
> org.jpox.store.mapping.CollectionMapping.preDelete(CollectionMapping.jav
> > a:304)
> >         at
> >
> org.jpox.store.mapping.CollectionMapping.deleteDependent(CollectionMappi
> > ng.java:332)
> >         at
> >
> org.jpox.store.rdbms.table.ClassTable.deleteDependent(ClassTable.java:22
> > 80)
> >         at
> > org.jpox.store.StoreManager.deleteDependent(StoreManager.java:838)
> >         at
> >
> org.jpox.state.StateManagerImpl.deletePersistent(StateManagerImpl.java:4
> > 049)
> >         at
> >
> org.jpox.AbstractPersistenceManager.internalDeletePersistent(AbstractPer
> > sistenceManager.java:1391)
> >         at
> >
> org.jpox.AbstractPersistenceManager.deletePersistent(AbstractPersistence
> > Manager.java:1402)
> >         at
> >
> org.codehaus.plexus.jdo.PlexusJdoUtils.removeObject(PlexusJdoUtils.java:
> > 53)
> >         at
> >
> org.apache.maven.continuum.store.JdoContinuumStore.removeObject(JdoConti
> > nuumStore.java:969)
> >         at
> >
> org.apache.maven.continuum.store.JdoContinuumStore.removeProject(JdoCont
> > inuumStore.java:901)
> >         at
> >
> org.apache.maven.continuum.DefaultContinuum.removeProject(DefaultContinu
> > um.java:328)
> >         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >         at
> >
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
> > a:39)
> >         at
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
> > Impl.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.jav
> > a:47)
> >         at
> >
> org.codehaus.plexus.summit.pipeline.valve.ActionValve.invoke(ActionValve
> > .java:68)
> >         at
> >
> org.codehaus.plexus.summit.pipeline.AbstractPipeline.invoke(AbstractPipe
> > line.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(WebApplicationH
> > andler.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(WebApplicationCon
> > text.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:25
> > 9)
> >         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(StateManagerImp
> > l.java:4113)
> >         at
> >
> org.jpox.state.StateManagerImpl.deletePersistent(StateManagerImpl.java:4
> > 068)
> >         at
> >
> org.jpox.AbstractPersistenceManager.internalDeletePersistent(AbstractPer
> > sistenceManager.java:1391)
> >         at
> >
> org.jpox.AbstractPersistenceManager.deletePersistentAll(AbstractPersiste
> > nceManager.java:1429)
> >         at
> >
> org.jpox.store.rdbms.scostore.ElementContainerStore.clear(ElementContain
> > erStore.java:595)
> >         at
> >
> org.jpox.store.mapping.CollectionMapping.preDelete(CollectionMapping.jav
> > a:304)
> >         at
> >
> org.jpox.store.mapping.CollectionMapping.deleteDependent(CollectionMappi
> > ng.java:332)
> >         at
> >
> org.jpox.store.rdbms.table.ClassTable.deleteDependent(ClassTable.java:22
> > 80)
> >         at
> > org.jpox.store.StoreManager.deleteDependent(StoreManager.java:838)
> >         at
> >
> org.jpox.state.StateManagerImpl.deletePersistent(StateManagerImpl.java:4
> > 049)
> >         at
> >
> org.jpox.AbstractPersistenceManager.internalDeletePersistent(AbstractPer
> > sistenceManager.java:1391)
> >         at
> >
> org.jpox.AbstractPersistenceManager.deletePersistent(AbstractPersistence
> > Manager.java:1402)
> >         at
> >
> org.codehaus.plexus.jdo.PlexusJdoUtils.removeObject(PlexusJdoUtils.java:
> > 53)
> >         at
> >
> org.apache.maven.continuum.store.JdoContinuumStore.removeObject(JdoConti
> > nuumStore.java:969)
> >         at
> >
> org.apache.maven.continuum.store.JdoContinuumStore.removeProject(JdoCont
> > inuumStore.java:901)
> >         at
> >
> org.apache.maven.continuum.DefaultContinuum.removeProject(DefaultContinu
> > um.java:328)
> >         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >         at
> >
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
> > a:39)
> >         at
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
> > Impl.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.jav
> > a:47)
> >         at
> >
> org.codehaus.plexus.summit.pipeline.valve.ActionValve.invoke(ActionValve
> > .java:68)
> >         at
> >
> org.codehaus.plexus.summit.pipeline.AbstractPipeline.invoke(AbstractPipe
> > line.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(WebApplicationH
> > andler.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(WebApplicationCon
> > text.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(Un
> > known 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(Unkno
> > wn 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:24
> > 5)
> >         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(StateManagerImp
> > l.java:4113)
> >         at
> >
> org.jpox.state.StateManagerImpl.deletePersistent(StateManagerImpl.java:4
> > 068)
> >         at
> >
> org.jpox.AbstractPersistenceManager.internalDeletePersistent(AbstractPer
> > sistenceManager.java:1391)
> >         at
> >
> org.jpox.AbstractPersistenceManager.deletePersistentAll(AbstractPersiste
> > nceManager.java:1429)
> >         at
> >
> org.jpox.store.rdbms.scostore.ElementContainerStore.clear(ElementContain
> > erStore.java:595)
> >         at
> >
> org.jpox.store.mapping.CollectionMapping.preDelete(CollectionMapping.jav
> > a:304)
> >         at
> >
> org.jpox.store.mapping.CollectionMapping.deleteDependent(CollectionMappi
> > ng.java:332)
> >         at
> >
> org.jpox.store.rdbms.table.ClassTable.deleteDependent(ClassTable.java:22
> > 80)
> >         at
> > org.jpox.store.StoreManager.deleteDependent(StoreManager.java:838)
> >         at
> >
> org.jpox.state.StateManagerImpl.deletePersistent(StateManagerImpl.java:4
> > 049)
> >         at
> >
> org.jpox.AbstractPersistenceManager.internalDeletePersistent(AbstractPer
> > sistenceManager.java:1391)
> >         at
> >
> org.jpox.AbstractPersistenceManager.deletePersistent(AbstractPersistence
> > Manager.java:1402)
> >         at
> >
> org.codehaus.plexus.jdo.PlexusJdoUtils.removeObject(PlexusJdoUtils.java:
> > 53)
> >         at
> >
> org.apache.maven.continuum.store.JdoContinuumStore.removeObject(JdoConti
> > nuumStore.java:969)
> >         at
> >
> org.apache.maven.continuum.store.JdoContinuumStore.removeProject(JdoCont
> > inuumStore.java:901)
> >         at
> >
> org.apache.maven.continuum.DefaultContinuum.removeProject(DefaultContinu
> > um.java:328)
> >         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >         at
> >
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
> > a:39)
> >         at
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
> > Impl.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.jav
> > a:47)
> >         at
> >
> org.codehaus.plexus.summit.pipeline.valve.ActionValve.invoke(ActionValve
> > .java:68)
> >         at
> >
> org.codehaus.plexus.summit.pipeline.AbstractPipeline.invoke(AbstractPipe
> > line.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(WebApplicationH
> > andler.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(WebApplicationCon
> > text.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)
> > \--------------------------------------/
> >
> >
> > LEGAL NOTICE:
> > Unless expressly stated otherwise, this message is confidential and
> may be privileged. It is intended for the addressee(s) only. Access to
> this e-mail by anyone else is unauthorized. If you are not an addressee,
> any disclosure or copying of the contents or any action taken (or not
> taken) in reliance on it is unauthorized and may be unlawful. If you are
> not an addressee, please inform the sender immediately.
> >
> >
> >
>
>
> --
> jesse mcconnell
> jesse.mcconnell@gmail.com
>


-- 
jesse mcconnell
jesse.mcconnell@gmail.com

Mime
View raw message