[ 
https://issues.apache.org/jira/browse/JCR-2272?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13098037#comment-13098037
 ] 

Julian Reschke commented on JCR-2272:
-------------------------------------

Summary so far:

- the problem on update() was caused by the node state of the new node being 
flipped from NEW to EXISTING_MODIFIED while removing the jcr:mixins property 
(which apparently isn't seen on the source node, not sure why); the pattern to 
change the state only for != NEW was already common in NodeStateEx, so it was 
probably an oversight that it wasn't followed in this case as well.

- the change for ItemStateManager used STATUS_STALE_MODIFIED previously which 
has been removed in the meantime; somebody needs to have a look whether 
STATUS_UNDEFINED is correct here

...ConcurrentImportTests:

- these had be excluded (both in pom.xml and not being added in TestAll) before.

-- testConcurrentImport works for me *in Eclipse* when I move addNode(test, 
uuid, JcrConstants.NT_UNSTRUCTURED, uuid, mixins); inside the try block (so the 
exception happens early; before save). It doesn't work for me when run from 
Maven (me confused)

- testConcurrentImportVersionable aborts as it should, but with a 
VersioningException instead of the expected StaleItemException; not sure how we 
should address this (tune the test expectation?)

> Errors during concurrent session import of nodes with same UUIDs
> ----------------------------------------------------------------
>
>                 Key: JCR-2272
>                 URL: https://issues.apache.org/jira/browse/JCR-2272
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-core, xml
>    Affects Versions: 2.0-alpha8
>            Reporter: Tobias Bocanegra
>         Attachments: 2272.patch, JCR-2272.patch, JCR-2272_NPE.patch, 
> JCR-2272__Errors_during_concurrent_session_import_of_nodes_with_same_UUIDs.patch,
>  JCR-2272_revised.patch, JCR2272.Sep6.patch
>
>
> 21.08.2009 16:22:14 *ERROR* [Executor 0] ConnectionRecoveryManager: could not 
> execute statement, reason: 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 'SQL090821042140130' defined on 'DEFAULT_BUNDLE'., 
> state/code: 23505/20000 (ConnectionRecoveryManager.java, line 453)
> 21.08.2009 16:22:14 *ERROR* [Executor 0] BundleDbPersistenceManager: failed 
> to write bundle: 6c292772-349e-42b3-8255-7729615c67de 
> (BundleDbPersistenceManager.java, line 1212)
> 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 'SQL090821042140130' defined on 'DEFAULT_BUNDLE'.
>       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.bundle.util.ConnectionRecoveryManager.executeStmtInternal(ConnectionRecoveryManager.java:371)
>       at 
> org.apache.jackrabbit.core.persistence.bundle.util.ConnectionRecoveryManager.executeStmtInternal(ConnectionRecoveryManager.java:298)
>       at 
> org.apache.jackrabbit.core.persistence.bundle.util.ConnectionRecoveryManager.executeStmt(ConnectionRecoveryManager.java:261)
>       at 
> org.apache.jackrabbit.core.persistence.bundle.util.ConnectionRecoveryManager.executeStmt(ConnectionRecoveryManager.java:239)
>       at 
> org.apache.jackrabbit.core.persistence.bundle.BundleDbPersistenceManager.storeBundle(BundleDbPersistenceManager.java:1209)
>       at 
> org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager.putBundle(AbstractBundlePersistenceManager.java:709)
>       at 
> org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager.storeInternal(AbstractBundlePersistenceManager.java:651)
>       at 
> org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager.store(AbstractBundlePersistenceManager.java:527)
>       at 
> org.apache.jackrabbit.core.persistence.bundle.BundleDbPersistenceManager.store(BundleDbPersistenceManager.java:563)
>       at 
> org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:724)
>       at 
> org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:1101)
>       at 
> org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:351)
>       at 
> org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:354)
>       at 
> org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:326)
>       at 
> org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:326)
>       at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1098)
>       at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:925)
>       at 
> org.apache.jackrabbit.core.ConcurrentImportTest$1.execute(ConcurrentImportTest.java:73)
>       at 
> org.apache.jackrabbit.core.AbstractConcurrencyTest$Executor.run(AbstractConcurrencyTest.java:209)
>       at java.lang.Thread.run(Thread.java:637)

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to