Hi Norman,
Just svn up, mvn package and tested. I've got:
Exception in thread "pool-16-thread-1" <openjpa-2.0.0-r422266:935683
nonfatal user error>
org.apache.openjpa.persistence.InvalidStateException: Can only perform
operation while a transaction is active.
FailedObject: SELECT user FROM JamesUser user WHERE user.name=:name
[java.lang.String]
at
org.apache.openjpa.kernel.BrokerImpl.assertTransactionOperation(BrokerImpl.java:4595)
at
org.apache.openjpa.kernel.BrokerImpl.beginStore(BrokerImpl.java:1378)
at
org.apache.openjpa.jdbc.kernel.PessimisticLockManager.ensureStoreManagerTransaction(PessimisticLockManager.java:177)
at
org.apache.openjpa.jdbc.kernel.PessimisticLockManager.selectForUpdate(PessimisticLockManager.java:86)
at org.apache.openjpa.jdbc.sql.SelectImpl.execute(SelectImpl.java:377)
at org.apache.openjpa.jdbc.sql.SelectImpl.execute(SelectImpl.java:363)
at
org.apache.openjpa.jdbc.sql.LogicalUnion$UnionSelect.execute(LogicalUnion.java:427)
at
org.apache.openjpa.jdbc.sql.LogicalUnion.execute(LogicalUnion.java:230)
at
org.apache.openjpa.jdbc.sql.LogicalUnion.execute(LogicalUnion.java:220)
at
org.apache.openjpa.jdbc.kernel.SelectResultObjectProvider.open(SelectResultObjectProvider.java:94)
at
org.apache.openjpa.lib.rop.EagerResultList.<init>(EagerResultList.java:34)
at org.apache.openjpa.kernel.QueryImpl.toResult(QueryImpl.java:1246)
at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:1005)
at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:861)
at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:792)
at
org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:542)
at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:288)
at
org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:302)
at
org.apache.openjpa.persistence.QueryImpl.getSingleResult(QueryImpl.java:326)
at
org.apache.james.server.jpa.JPAUsersRepository.getUserByName(JPAUsersRepository.java:143)
at
org.apache.james.server.jpa.JPAUsersRepository.test(JPAUsersRepository.java:290)
at
org.apache.james.impl.user.LocalUsersRepository.test(LocalUsersRepository.java:127)
at
org.apache.james.imapserver.UserRepositoryAuthenticator.isAuthentic(UserRepositoryAuthenticator.java:45)
at
org.apache.james.imap.store.StoreMailboxManager.login(StoreMailboxManager.java:425)
at
org.apache.james.imap.store.StoreMailboxManager.login(StoreMailboxManager.java:468)
at
org.apache.james.imap.processor.LoginProcessor.doProcess(LoginProcessor.java:67)
at
org.apache.james.imap.processor.AbstractMailboxProcessor.doProcess(AbstractMailboxProcessor.java:125)
at
org.apache.james.imap.processor.AbstractMailboxProcessor.process(AbstractMailboxProcessor.java:80)
at
org.apache.james.imap.processor.AbstractMailboxProcessor.doProcess(AbstractMailboxProcessor.java:73)
at
org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:44)
at
org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:46)
at
org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:46)
at
org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:46)
at
org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:46)
at
org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:46)
at
org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:46)
at
org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:46)
at
org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:46)
at
org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:46)
at
org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:46)
at
org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:46)
at
org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:46)
at
org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:46)
at
org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:46)
at
org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:46)
at
org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:46)
at
org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:46)
at
org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:46)
at
org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:46)
at
org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:46)
at
org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:46)
at
org.apache.james.imap.main.AbstractImapRequestHandler.doProcessRequest(AbstractImapRequestHandler.java:65)
at
org.apache.james.imap.main.ImapRequestStreamHandler.handleRequest(ImapRequestStreamHandler.java:82)
at
org.apache.james.imapserver.netty.ImapStreamChannelUpstreamHandler.processStreamIo(ImapStreamChannelUpstreamHandler.java:64)
at
org.jboss.netty.handler.stream.StreamHandler$1.run(StreamHandler.java:127)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:636)
Tks,
Eric
On 05/14/2010 08:20 PM, Norman Maurer wrote:
Any new one this ? I would like to cut a milestone soon, so it would
be cool to know if it work out...
Bye,
Norman
2010/5/7 Norman Maurer<[email protected]>:
Hi Eric,
could you update to current trunk and see if it helps?
We should now only use one session per thread.
Feedback Welcome...
Bye
Norman
2010/5/7, Norman Maurer<[email protected]>:
Hi Robert,
maybe I just don't get what you want todo.. How about some "pseudo code" ?
I just committed some code to use only one EntityManager/JCR Session
per request. Hopefully this will help with Alfresco.
Bye,
Norman
2010/5/7 Robert Burrell Donkin<[email protected]>:
On Fri, May 7, 2010 at 5:58 AM, Norman Maurer
<[email protected]> wrote:
Hi Robert,
to be honest I think it would make things just more complicated. I
think we should just make sure we keep the jcr session / entitymanager
etc open till we are done with processing the request. Nothing more...
I don't see the advance of implement such a callback interface. Maybe
you can outline why you "prefer" this way ?
fit in better with the message style API used by the rest of the IMAP
stack. should make transactions transparent and allow scheduling
rather than synchronisation for some operations.
- robert
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]