You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Joakim Erdfelt (JIRA)" <ji...@codehaus.org> on 2007/05/24 18:36:58 UTC
[jira] Created: (MRM-369) [Repository Scanning] Exception on update
to pre-existing artifact.
[Repository Scanning] Exception on update to pre-existing artifact.
-------------------------------------------------------------------
Key: MRM-369
URL: http://jira.codehaus.org/browse/MRM-369
Project: Archiva
Issue Type: Bug
Components: repository scanning
Affects Versions: 1.0-alpha-1
Reporter: Joakim Erdfelt
When scanning a repository that has an artifact that has been updated on disk, and exists in the database already, the following exception occurs.
{code}
com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Duplicate entry 'commons-httpclient--commons-httpclient-jar-2.0.2' for key 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:931)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1169)
at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:693)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1404)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1318)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1303)
at org.jpox.store.rdbms.RDBMSManager.executeStatementUpdate(RDBMSManager.java:572)
at org.jpox.store.rdbms.request.InsertRequest.execute(InsertRequest.java:328)
at org.jpox.store.rdbms.table.ClassTable.insert(ClassTable.java:2519)
at org.jpox.store.StoreManager.insert(StoreManager.java:920)
at org.jpox.state.StateManagerImpl.internalMakePersistent(StateManagerImpl.java:3667)
at org.jpox.state.StateManagerImpl.makePersistent(StateManagerImpl.java:3646)
at org.jpox.AbstractPersistenceManager.internalMakePersistent(AbstractPersistenceManager.java:1198)
at org.jpox.AbstractPersistenceManager.makePersistent(AbstractPersistenceManager.java:1261)
at org.apache.maven.archiva.database.jdo.JdoAccess.saveObject(JdoAccess.java:196)
at org.apache.maven.archiva.database.jdo.JdoAccess.saveObject(JdoAccess.java:169)
at org.apache.maven.archiva.database.jdo.JdoArtifactDAO.saveArtifact(JdoArtifactDAO.java:110)
at org.apache.maven.archiva.consumers.database.ArtifactUpdateDatabaseConsumer.processFile(ArtifactUpdateDatabaseConsumer.java:195)
at org.apache.maven.archiva.repository.scanner.functors.ConsumerProcessFileClosure.execute(ConsumerProcessFileClosure.java:57)
at org.apache.commons.collections.functors.IfClosure.execute(IfClosure.java:117)
at org.apache.commons.collections.CollectionUtils.forAllDo(CollectionUtils.java:388)
at org.apache.maven.archiva.repository.scanner.RepositoryScannerInstance.directoryWalkStep(RepositoryScannerInstance.java:127)
at org.codehaus.plexus.util.DirectoryWalker.fireStep(DirectoryWalker.java:173)
at org.codehaus.plexus.util.DirectoryWalker.scanDir(DirectoryWalker.java:391)
at org.codehaus.plexus.util.DirectoryWalker.scanDir(DirectoryWalker.java:385)
at org.codehaus.plexus.util.DirectoryWalker.scanDir(DirectoryWalker.java:385)
at org.codehaus.plexus.util.DirectoryWalker.scanDir(DirectoryWalker.java:385)
at org.codehaus.plexus.util.DirectoryWalker.scan(DirectoryWalker.java:344)
at org.apache.maven.archiva.repository.scanner.DefaultRepositoryScanner.scan(DefaultRepositoryScanner.java:126)
at org.apache.maven.archiva.repository.scanner.DefaultRepositoryScanner.scan(DefaultRepositoryScanner.java:65)
at org.apache.maven.archiva.scheduled.executors.ArchivaRepositoryScanningTaskExecutor.executeTask(ArchivaRepositoryScanningTaskExecutor.java:105)
at org.codehaus.plexus.taskqueue.execution.ThreadedTaskQueueExecutor$ExecutorRunnable$1.run(ThreadedTaskQueueExecutor.java:116)
at edu.emory.mathcs.backport.java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:442)
at edu.emory.mathcs.backport.java.util.concurrent.FutureTask.run(FutureTask.java:176)
at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:987)
at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:528)
at java.lang.Thread.run(Thread.java:595)
{code}
Need logic to prevent the Table constraint violation.
To update the table entry if it exists.
--
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
[jira] Updated: (MRM-369) [Repository Scanning] Exception on update
to pre-existing artifact.
Posted by "Joakim Erdfelt (JIRA)" <ji...@codehaus.org>.
[ http://jira.codehaus.org/browse/MRM-369?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Joakim Erdfelt updated MRM-369:
-------------------------------
Priority: Blocker (was: Critical)
Bumping up priority.
Excessive logging can result in *HUGE* log files (2GB+).
> [Repository Scanning] Exception on update to pre-existing artifact.
> -------------------------------------------------------------------
>
> Key: MRM-369
> URL: http://jira.codehaus.org/browse/MRM-369
> Project: Archiva
> Issue Type: Bug
> Components: repository scanning
> Affects Versions: 1.0-alpha-1
> Reporter: Joakim Erdfelt
> Priority: Blocker
> Fix For: 1.0-alpha-2
>
>
> When scanning a repository that has an artifact that has been updated on disk, and exists in the database already, the following exception occurs.
> {code}
> com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Duplicate entry 'commons-httpclient--commons-httpclient-jar-2.0.2' for key 1
> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:931)
> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870)
> at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
> at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1169)
> at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:693)
> at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1404)
> at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1318)
> at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1303)
> at org.jpox.store.rdbms.RDBMSManager.executeStatementUpdate(RDBMSManager.java:572)
> at org.jpox.store.rdbms.request.InsertRequest.execute(InsertRequest.java:328)
> at org.jpox.store.rdbms.table.ClassTable.insert(ClassTable.java:2519)
> at org.jpox.store.StoreManager.insert(StoreManager.java:920)
> at org.jpox.state.StateManagerImpl.internalMakePersistent(StateManagerImpl.java:3667)
> at org.jpox.state.StateManagerImpl.makePersistent(StateManagerImpl.java:3646)
> at org.jpox.AbstractPersistenceManager.internalMakePersistent(AbstractPersistenceManager.java:1198)
> at org.jpox.AbstractPersistenceManager.makePersistent(AbstractPersistenceManager.java:1261)
> at org.apache.maven.archiva.database.jdo.JdoAccess.saveObject(JdoAccess.java:196)
> at org.apache.maven.archiva.database.jdo.JdoAccess.saveObject(JdoAccess.java:169)
> at org.apache.maven.archiva.database.jdo.JdoArtifactDAO.saveArtifact(JdoArtifactDAO.java:110)
> at org.apache.maven.archiva.consumers.database.ArtifactUpdateDatabaseConsumer.processFile(ArtifactUpdateDatabaseConsumer.java:195)
> at org.apache.maven.archiva.repository.scanner.functors.ConsumerProcessFileClosure.execute(ConsumerProcessFileClosure.java:57)
> at org.apache.commons.collections.functors.IfClosure.execute(IfClosure.java:117)
> at org.apache.commons.collections.CollectionUtils.forAllDo(CollectionUtils.java:388)
> at org.apache.maven.archiva.repository.scanner.RepositoryScannerInstance.directoryWalkStep(RepositoryScannerInstance.java:127)
> at org.codehaus.plexus.util.DirectoryWalker.fireStep(DirectoryWalker.java:173)
> at org.codehaus.plexus.util.DirectoryWalker.scanDir(DirectoryWalker.java:391)
> at org.codehaus.plexus.util.DirectoryWalker.scanDir(DirectoryWalker.java:385)
> at org.codehaus.plexus.util.DirectoryWalker.scanDir(DirectoryWalker.java:385)
> at org.codehaus.plexus.util.DirectoryWalker.scanDir(DirectoryWalker.java:385)
> at org.codehaus.plexus.util.DirectoryWalker.scan(DirectoryWalker.java:344)
> at org.apache.maven.archiva.repository.scanner.DefaultRepositoryScanner.scan(DefaultRepositoryScanner.java:126)
> at org.apache.maven.archiva.repository.scanner.DefaultRepositoryScanner.scan(DefaultRepositoryScanner.java:65)
> at org.apache.maven.archiva.scheduled.executors.ArchivaRepositoryScanningTaskExecutor.executeTask(ArchivaRepositoryScanningTaskExecutor.java:105)
> at org.codehaus.plexus.taskqueue.execution.ThreadedTaskQueueExecutor$ExecutorRunnable$1.run(ThreadedTaskQueueExecutor.java:116)
> at edu.emory.mathcs.backport.java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:442)
> at edu.emory.mathcs.backport.java.util.concurrent.FutureTask.run(FutureTask.java:176)
> at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:987)
> at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:528)
> at java.lang.Thread.run(Thread.java:595)
> {code}
> Need logic to prevent the Table constraint violation.
> To update the table entry if it exists.
--
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
[jira] Work started: (MRM-369) [Repository Scanning] Exception on
update to pre-existing artifact.
Posted by "Joakim Erdfelt (JIRA)" <ji...@codehaus.org>.
[ http://jira.codehaus.org/browse/MRM-369?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Work on MRM-369 started by Joakim Erdfelt.
> [Repository Scanning] Exception on update to pre-existing artifact.
> -------------------------------------------------------------------
>
> Key: MRM-369
> URL: http://jira.codehaus.org/browse/MRM-369
> Project: Archiva
> Issue Type: Bug
> Components: repository scanning
> Affects Versions: 1.0-alpha-1
> Reporter: Joakim Erdfelt
> Assignee: Joakim Erdfelt
> Priority: Blocker
> Fix For: 1.0-alpha-2
>
>
> When scanning a repository that has an artifact that has been updated on disk, and exists in the database already, the following exception occurs.
> {code}
> com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Duplicate entry 'commons-httpclient--commons-httpclient-jar-2.0.2' for key 1
> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:931)
> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870)
> at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
> at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1169)
> at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:693)
> at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1404)
> at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1318)
> at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1303)
> at org.jpox.store.rdbms.RDBMSManager.executeStatementUpdate(RDBMSManager.java:572)
> at org.jpox.store.rdbms.request.InsertRequest.execute(InsertRequest.java:328)
> at org.jpox.store.rdbms.table.ClassTable.insert(ClassTable.java:2519)
> at org.jpox.store.StoreManager.insert(StoreManager.java:920)
> at org.jpox.state.StateManagerImpl.internalMakePersistent(StateManagerImpl.java:3667)
> at org.jpox.state.StateManagerImpl.makePersistent(StateManagerImpl.java:3646)
> at org.jpox.AbstractPersistenceManager.internalMakePersistent(AbstractPersistenceManager.java:1198)
> at org.jpox.AbstractPersistenceManager.makePersistent(AbstractPersistenceManager.java:1261)
> at org.apache.maven.archiva.database.jdo.JdoAccess.saveObject(JdoAccess.java:196)
> at org.apache.maven.archiva.database.jdo.JdoAccess.saveObject(JdoAccess.java:169)
> at org.apache.maven.archiva.database.jdo.JdoArtifactDAO.saveArtifact(JdoArtifactDAO.java:110)
> at org.apache.maven.archiva.consumers.database.ArtifactUpdateDatabaseConsumer.processFile(ArtifactUpdateDatabaseConsumer.java:195)
> at org.apache.maven.archiva.repository.scanner.functors.ConsumerProcessFileClosure.execute(ConsumerProcessFileClosure.java:57)
> at org.apache.commons.collections.functors.IfClosure.execute(IfClosure.java:117)
> at org.apache.commons.collections.CollectionUtils.forAllDo(CollectionUtils.java:388)
> at org.apache.maven.archiva.repository.scanner.RepositoryScannerInstance.directoryWalkStep(RepositoryScannerInstance.java:127)
> at org.codehaus.plexus.util.DirectoryWalker.fireStep(DirectoryWalker.java:173)
> at org.codehaus.plexus.util.DirectoryWalker.scanDir(DirectoryWalker.java:391)
> at org.codehaus.plexus.util.DirectoryWalker.scanDir(DirectoryWalker.java:385)
> at org.codehaus.plexus.util.DirectoryWalker.scanDir(DirectoryWalker.java:385)
> at org.codehaus.plexus.util.DirectoryWalker.scanDir(DirectoryWalker.java:385)
> at org.codehaus.plexus.util.DirectoryWalker.scan(DirectoryWalker.java:344)
> at org.apache.maven.archiva.repository.scanner.DefaultRepositoryScanner.scan(DefaultRepositoryScanner.java:126)
> at org.apache.maven.archiva.repository.scanner.DefaultRepositoryScanner.scan(DefaultRepositoryScanner.java:65)
> at org.apache.maven.archiva.scheduled.executors.ArchivaRepositoryScanningTaskExecutor.executeTask(ArchivaRepositoryScanningTaskExecutor.java:105)
> at org.codehaus.plexus.taskqueue.execution.ThreadedTaskQueueExecutor$ExecutorRunnable$1.run(ThreadedTaskQueueExecutor.java:116)
> at edu.emory.mathcs.backport.java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:442)
> at edu.emory.mathcs.backport.java.util.concurrent.FutureTask.run(FutureTask.java:176)
> at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:987)
> at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:528)
> at java.lang.Thread.run(Thread.java:595)
> {code}
> Need logic to prevent the Table constraint violation.
> To update the table entry if it exists.
--
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
[jira] Closed: (MRM-369) [Repository Scanning] Exception on update
to pre-existing artifact.
Posted by "Joakim Erdfelt (JIRA)" <ji...@codehaus.org>.
[ http://jira.codehaus.org/browse/MRM-369?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Joakim Erdfelt closed MRM-369.
------------------------------
Resolution: Fixed
Fixed in trunk
> [Repository Scanning] Exception on update to pre-existing artifact.
> -------------------------------------------------------------------
>
> Key: MRM-369
> URL: http://jira.codehaus.org/browse/MRM-369
> Project: Archiva
> Issue Type: Bug
> Components: repository scanning
> Affects Versions: 1.0-alpha-1
> Reporter: Joakim Erdfelt
> Assignee: Joakim Erdfelt
> Priority: Blocker
> Fix For: 1.0-alpha-2
>
>
> When scanning a repository that has an artifact that has been updated on disk, and exists in the database already, the following exception occurs.
> {code}
> com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Duplicate entry 'commons-httpclient--commons-httpclient-jar-2.0.2' for key 1
> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:931)
> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870)
> at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
> at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1169)
> at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:693)
> at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1404)
> at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1318)
> at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1303)
> at org.jpox.store.rdbms.RDBMSManager.executeStatementUpdate(RDBMSManager.java:572)
> at org.jpox.store.rdbms.request.InsertRequest.execute(InsertRequest.java:328)
> at org.jpox.store.rdbms.table.ClassTable.insert(ClassTable.java:2519)
> at org.jpox.store.StoreManager.insert(StoreManager.java:920)
> at org.jpox.state.StateManagerImpl.internalMakePersistent(StateManagerImpl.java:3667)
> at org.jpox.state.StateManagerImpl.makePersistent(StateManagerImpl.java:3646)
> at org.jpox.AbstractPersistenceManager.internalMakePersistent(AbstractPersistenceManager.java:1198)
> at org.jpox.AbstractPersistenceManager.makePersistent(AbstractPersistenceManager.java:1261)
> at org.apache.maven.archiva.database.jdo.JdoAccess.saveObject(JdoAccess.java:196)
> at org.apache.maven.archiva.database.jdo.JdoAccess.saveObject(JdoAccess.java:169)
> at org.apache.maven.archiva.database.jdo.JdoArtifactDAO.saveArtifact(JdoArtifactDAO.java:110)
> at org.apache.maven.archiva.consumers.database.ArtifactUpdateDatabaseConsumer.processFile(ArtifactUpdateDatabaseConsumer.java:195)
> at org.apache.maven.archiva.repository.scanner.functors.ConsumerProcessFileClosure.execute(ConsumerProcessFileClosure.java:57)
> at org.apache.commons.collections.functors.IfClosure.execute(IfClosure.java:117)
> at org.apache.commons.collections.CollectionUtils.forAllDo(CollectionUtils.java:388)
> at org.apache.maven.archiva.repository.scanner.RepositoryScannerInstance.directoryWalkStep(RepositoryScannerInstance.java:127)
> at org.codehaus.plexus.util.DirectoryWalker.fireStep(DirectoryWalker.java:173)
> at org.codehaus.plexus.util.DirectoryWalker.scanDir(DirectoryWalker.java:391)
> at org.codehaus.plexus.util.DirectoryWalker.scanDir(DirectoryWalker.java:385)
> at org.codehaus.plexus.util.DirectoryWalker.scanDir(DirectoryWalker.java:385)
> at org.codehaus.plexus.util.DirectoryWalker.scanDir(DirectoryWalker.java:385)
> at org.codehaus.plexus.util.DirectoryWalker.scan(DirectoryWalker.java:344)
> at org.apache.maven.archiva.repository.scanner.DefaultRepositoryScanner.scan(DefaultRepositoryScanner.java:126)
> at org.apache.maven.archiva.repository.scanner.DefaultRepositoryScanner.scan(DefaultRepositoryScanner.java:65)
> at org.apache.maven.archiva.scheduled.executors.ArchivaRepositoryScanningTaskExecutor.executeTask(ArchivaRepositoryScanningTaskExecutor.java:105)
> at org.codehaus.plexus.taskqueue.execution.ThreadedTaskQueueExecutor$ExecutorRunnable$1.run(ThreadedTaskQueueExecutor.java:116)
> at edu.emory.mathcs.backport.java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:442)
> at edu.emory.mathcs.backport.java.util.concurrent.FutureTask.run(FutureTask.java:176)
> at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:987)
> at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:528)
> at java.lang.Thread.run(Thread.java:595)
> {code}
> Need logic to prevent the Table constraint violation.
> To update the table entry if it exists.
--
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
[jira] Commented: (MRM-369) [Repository Scanning] Exception on
update to pre-existing artifact.
Posted by "Joakim Erdfelt (JIRA)" <ji...@codehaus.org>.
[ http://jira.codehaus.org/browse/MRM-369?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_99326 ]
Joakim Erdfelt commented on MRM-369:
------------------------------------
This jira is the same one that causes the following stack trace ...
{code}
ERROR 23505: The statement was aborted because it would have caused a duplicate key value in a unique or primary key constraint or unique index identified by 'ARCHIVA_ARTIFV6_PK' defined on 'ARCHIVA_ARTIFACT'.
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
at org.apache.derby.impl.sql.execute.IndexChanger.insertAndCheckDups(Unknown Source)
at org.apache.derby.impl.sql.execute.IndexChanger.doInsert(Unknown Source)
at org.apache.derby.impl.sql.execute.IndexChanger.insert(Unknown Source)
at org.apache.derby.impl.sql.execute.IndexSetChanger.insert(Unknown Source)
at org.apache.derby.impl.sql.execute.RowChangerImpl.insertRow(Unknown Source)
at org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore(Unknown Source)
at org.apache.derby.impl.sql.execute.InsertResultSet.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.executeUpdate(Unknown Source)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:101)
at org.jpox.store.rdbms.RDBMSManager.executeStatementUpdate(RDBMSManager.java:572)
at org.jpox.store.rdbms.request.InsertRequest.execute(InsertRequest.java:328)
at org.jpox.store.rdbms.table.ClassTable.insert(ClassTable.java:2519)
at org.jpox.store.StoreManager.insert(StoreManager.java:920)
at org.jpox.state.StateManagerImpl.internalMakePersistent(StateManagerImpl.java:3667)
at org.jpox.state.StateManagerImpl.makePersistent(StateManagerImpl.java:3646)
at org.jpox.AbstractPersistenceManager.internalMakePersistent(AbstractPersistenceManager.java:1198)
at org.jpox.AbstractPersistenceManager.makePersistent(AbstractPersistenceManager.java:1261)
at org.apache.maven.archiva.database.jdo.JdoAccess.saveObject(JdoAccess.java:192)
at org.apache.maven.archiva.database.jdo.JdoAccess.saveObject(JdoAccess.java:165)
at org.apache.maven.archiva.database.jdo.JdoArtifactDAO.saveArtifact(JdoArtifactDAO.java:110)
at org.apache.maven.archiva.consumers.database.ArtifactUpdateDatabaseConsumer.processFile(ArtifactUpdateDatabaseConsumer.java:195)
at org.apache.maven.archiva.repository.scanner.functors.ConsumerProcessFileClosure.execute(ConsumerProcessFileClosure.java:57)
at org.apache.commons.collections.functors.IfClosure.execute(IfClosure.java:117)
at org.apache.commons.collections.CollectionUtils.forAllDo(CollectionUtils.java:388)
at org.apache.maven.archiva.repository.scanner.RepositoryScannerInstance.directoryWalkStep(RepositoryScannerInstance.java:127)
at org.codehaus.plexus.util.DirectoryWalker.fireStep(DirectoryWalker.java:173)
at org.codehaus.plexus.util.DirectoryWalker.scanDir(DirectoryWalker.java:391)
at org.codehaus.plexus.util.DirectoryWalker.scanDir(DirectoryWalker.java:385)
at org.codehaus.plexus.util.DirectoryWalker.scanDir(DirectoryWalker.java:385)
at org.codehaus.plexus.util.DirectoryWalker.scanDir(DirectoryWalker.java:385)
at org.codehaus.plexus.util.DirectoryWalker.scanDir(DirectoryWalker.java:385)
at org.codehaus.plexus.util.DirectoryWalker.scanDir(DirectoryWalker.java:385)
at org.codehaus.plexus.util.DirectoryWalker.scan(DirectoryWalker.java:344)
at org.apache.maven.archiva.repository.scanner.DefaultRepositoryScanner.scan(DefaultRepositoryScanner.java:126)
at org.apache.maven.archiva.repository.scanner.DefaultRepositoryScanner.scan(DefaultRepositoryScanner.java:65)
at org.apache.maven.archiva.scheduled.executors.ArchivaRepositoryScanningTaskExecutor.executeTask(ArchivaRepositoryScanningTaskExecutor.java:105)
at org.codehaus.plexus.taskqueue.execution.ThreadedTaskQueueExecutor$ExecutorRunnable$1.run(ThreadedTaskQueueExecutor.java:116)
at edu.emory.mathcs.backport.java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:442)
at edu.emory.mathcs.backport.java.util.concurrent.FutureTask.run(FutureTask.java:176)
at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
at java.lang.Thread.run(Thread.java:595)
{code}
> [Repository Scanning] Exception on update to pre-existing artifact.
> -------------------------------------------------------------------
>
> Key: MRM-369
> URL: http://jira.codehaus.org/browse/MRM-369
> Project: Archiva
> Issue Type: Bug
> Components: repository scanning
> Affects Versions: 1.0-alpha-1
> Reporter: Joakim Erdfelt
> Priority: Blocker
> Fix For: 1.0-alpha-2
>
>
> When scanning a repository that has an artifact that has been updated on disk, and exists in the database already, the following exception occurs.
> {code}
> com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Duplicate entry 'commons-httpclient--commons-httpclient-jar-2.0.2' for key 1
> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:931)
> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870)
> at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
> at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1169)
> at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:693)
> at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1404)
> at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1318)
> at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1303)
> at org.jpox.store.rdbms.RDBMSManager.executeStatementUpdate(RDBMSManager.java:572)
> at org.jpox.store.rdbms.request.InsertRequest.execute(InsertRequest.java:328)
> at org.jpox.store.rdbms.table.ClassTable.insert(ClassTable.java:2519)
> at org.jpox.store.StoreManager.insert(StoreManager.java:920)
> at org.jpox.state.StateManagerImpl.internalMakePersistent(StateManagerImpl.java:3667)
> at org.jpox.state.StateManagerImpl.makePersistent(StateManagerImpl.java:3646)
> at org.jpox.AbstractPersistenceManager.internalMakePersistent(AbstractPersistenceManager.java:1198)
> at org.jpox.AbstractPersistenceManager.makePersistent(AbstractPersistenceManager.java:1261)
> at org.apache.maven.archiva.database.jdo.JdoAccess.saveObject(JdoAccess.java:196)
> at org.apache.maven.archiva.database.jdo.JdoAccess.saveObject(JdoAccess.java:169)
> at org.apache.maven.archiva.database.jdo.JdoArtifactDAO.saveArtifact(JdoArtifactDAO.java:110)
> at org.apache.maven.archiva.consumers.database.ArtifactUpdateDatabaseConsumer.processFile(ArtifactUpdateDatabaseConsumer.java:195)
> at org.apache.maven.archiva.repository.scanner.functors.ConsumerProcessFileClosure.execute(ConsumerProcessFileClosure.java:57)
> at org.apache.commons.collections.functors.IfClosure.execute(IfClosure.java:117)
> at org.apache.commons.collections.CollectionUtils.forAllDo(CollectionUtils.java:388)
> at org.apache.maven.archiva.repository.scanner.RepositoryScannerInstance.directoryWalkStep(RepositoryScannerInstance.java:127)
> at org.codehaus.plexus.util.DirectoryWalker.fireStep(DirectoryWalker.java:173)
> at org.codehaus.plexus.util.DirectoryWalker.scanDir(DirectoryWalker.java:391)
> at org.codehaus.plexus.util.DirectoryWalker.scanDir(DirectoryWalker.java:385)
> at org.codehaus.plexus.util.DirectoryWalker.scanDir(DirectoryWalker.java:385)
> at org.codehaus.plexus.util.DirectoryWalker.scanDir(DirectoryWalker.java:385)
> at org.codehaus.plexus.util.DirectoryWalker.scan(DirectoryWalker.java:344)
> at org.apache.maven.archiva.repository.scanner.DefaultRepositoryScanner.scan(DefaultRepositoryScanner.java:126)
> at org.apache.maven.archiva.repository.scanner.DefaultRepositoryScanner.scan(DefaultRepositoryScanner.java:65)
> at org.apache.maven.archiva.scheduled.executors.ArchivaRepositoryScanningTaskExecutor.executeTask(ArchivaRepositoryScanningTaskExecutor.java:105)
> at org.codehaus.plexus.taskqueue.execution.ThreadedTaskQueueExecutor$ExecutorRunnable$1.run(ThreadedTaskQueueExecutor.java:116)
> at edu.emory.mathcs.backport.java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:442)
> at edu.emory.mathcs.backport.java.util.concurrent.FutureTask.run(FutureTask.java:176)
> at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:987)
> at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:528)
> at java.lang.Thread.run(Thread.java:595)
> {code}
> Need logic to prevent the Table constraint violation.
> To update the table entry if it exists.
--
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