[
https://issues.apache.org/jira/browse/JCR-721?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Stefan Guggisberg resolved JCR-721.
-----------------------------------
Resolution: Fixed
martijn, thanks for the excellent and spot-on issue ananlysis, great job!
i fixed the issue, i.e. endless loop in
DatabasePersistenceManager.store(ChangeLog), as suggested in svn r508429.
i agree that it would be nice if a more descriptive exception would be thrown
(e.g. StaleItemStateException). unfortunately this would require a seperate
select stmt for every property insert and therefore negatively affect
performance. i don't think it's worth it.
> Duplicate key in DatabasePersistenceManager
> -------------------------------------------
>
> Key: JCR-721
> URL: https://issues.apache.org/jira/browse/JCR-721
> Project: Jackrabbit
> Issue Type: Bug
> Components: core
> Affects Versions: 1.2.1
> Environment: JackRabbit 1.2.1 using the default Derby repository.xml.
> Reporter: Martijn Hendriks
> Assigned To: Stefan Guggisberg
> Attachments: Jcr721Test.java
>
>
> Hi,
> I ran into the exception pasted below. We had 2 threads that both were
> saving. Maybe it is a race condition?
> Regards,
> Martijn Hendriks
> <GX> creative online development B.V.
>
> t: 024 - 3888 261
> f: 024 - 3888 621
> e: [EMAIL PROTECTED]
>
> Wijchenseweg 111
> 6538 SW Nijmegen
> http://www.gx.nl/
> Jan 26, 2007 2:23:36 PM
> org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager store
> SEVERE: failed to write property state:
> e3847bad-f1ee-4adb-a109-e134900935b7/{http://gx.nl}edit_language
> ERROR 23505: The statement was aborted because it would have caused a
> duplicate key value in a unique or primary key constraint or unique in dex
> identified by 'DEFAULT_PROP_IDX' defined on 'DEFAULT_PROP'.
> 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.execute(Unknown
> Source)
> at
> org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.executeStmt(DatabasePersistenceManager.java:835)
> at
> org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.store(DatabasePersistenceManager.java:466)
> at
> org.apache.jackrabbit.core.persistence.AbstractPersistenceManager.store(AbstractPersistenceManager.java:75)
> at
> org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.store(DatabasePersistenceManager.java:274)
> at
> org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:675)
> at
> org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:808)
> at
> org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:326)
> at
> org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:313)
> at
> org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:302)
> at
> org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:295)
> at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1210)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.