[ https://issues.apache.org/jira/browse/IMAP-164?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Tim-Christian Mundt updated IMAP-164: ------------------------------------- Attachment: uniquemailbox2.diff Norman, it's more complicated than it looks like at first glance. Could you already test that? Just from reading I think it doesn't really work because when a duplicate occurs, OpenJPA automatically rolls back so there is not need to call rollback() again. See this trace: 1552 JPA-Tests TRACE [main] openjpa.Runtime - An exception occurred while ending the transaction. This exception will be re-thrown. <openjpa-2.0.0-r422266:935683 fatal store error> org.apache.openjpa.util.StoreException: The transaction has been rolled back. See the nested exceptions for details on the errors that occurred. Moreover, rollback() will never be called because AbstractTransactionalMapper.execute() only checks for MailboxException, but a RollbackException is thrown which is not a subtype. However, your idea to override one of the transaction methods seems to be the best way. I think we would need to override commit() like in the patch. Two remarks: the RollbackException is not thrown during rollback but when a duplicate entry occurs (provoking a rollback) and I'd prefer the name "lastMailboxName" in order not to confuse anybody that the mapper might be bound to a specific mailbox. > Move mailboxExists to MailboxMapper interface > --------------------------------------------- > > Key: IMAP-164 > URL: https://issues.apache.org/jira/browse/IMAP-164 > Project: JAMES Imap > Issue Type: Improvement > Components: Mailbox > Reporter: Tim-Christian Mundt > Assignee: Norman Maurer > Priority: Minor > Attachments: existsViaFindByName.patch, uniquemailbox.diff, > uniquemailbox2.diff > > > The method MailboxMapper.countMailboxesWithName(mailboxName) is > only ever used in StoreMailboxManager.mailboxExists(mailboxName, > session). There the result is checked for duplicates. Duplicates should > be detected before writing and not when reading, for some stores (e.g. > maildir) it is not even possible to have more than one mailbox with the > same name. So this is superfluous and should should be moved to > MailboxMapper.existsMailbox(mailboxName) which can provide a more > efficient existence test. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org