Hi all,
Our IMAP server was running for about 14 days without problems (we pilot phased it for about 7 days which worked fine) we got the following
exception (found in james-server.log, not imap-server.log):
-----------------------------------------------------------------------------
INFO 15:24:56,926 | james.mailetcontext | Error while storing mail.
<openjpa-2.1.0-r422266:1071316 fatal user error> org.apache.openjpa.persistence.InvalidStateException: The context has been closed. The
stack trace at which the context was closed is available if
Runtime=TRACE logging is enabled.
FailedObject: SELECT mailbox FROM Mailbox mailbox WHERE mailbox.name = :nameParam and mailbox.user= :userParam and mailbox.namespace=
:namespaceParam [java.lang.String]
at org.apache.openjpa.kernel.BrokerImpl.assertOpen(BrokerImpl.java:4612)
at
org.apache.openjpa.kernel.BrokerImpl.beginOperation(BrokerImpl.java:1909)
at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:921)
at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:902)
at
org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:1041)
at
org.apache.openjpa.jdbc.sql.AbstractResult.load(AbstractResult.java:280)
at
org.apache.openjpa.jdbc.sql.SelectImpl$SelectResult.load(SelectImpl.java:2381)
at
org.apache.openjpa.jdbc.sql.AbstractResult.load(AbstractResult.java:274)
at
org.apache.openjpa.jdbc.kernel.InstanceResultObjectProvider.getResultObject(InstanceResultObjectProvider.java:59)
at
org.apache.openjpa.lib.rop.EagerResultList.<init>(EagerResultList.java:36)
at org.apache.openjpa.kernel.QueryImpl.toResult(QueryImpl.java:1251)
at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:1007)
at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:863)
at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:794)
at
org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:542)
at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:305)
at
org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:319)
at
org.apache.openjpa.persistence.QueryImpl.getSingleResult(QueryImpl.java:343)
at
org.apache.james.mailbox.jpa.mail.JPAMailboxMapper.findMailboxByPath(JPAMailboxMapper.java:91)
at
org.apache.james.mailbox.store.StoreMailboxManager.getMailbox(StoreMailboxManager.java:323)
at
org.apache.james.imap.processor.AbstractMailboxProcessor.getMailbox(AbstractMailboxProcessor.java:291)
at
org.apache.james.imap.processor.AbstractMailboxProcessor.addFlagsResponses(AbstractMailboxProcessor.java:199)
at
org.apache.james.imap.processor.AbstractMailboxProcessor.unsolicitedResponses(AbstractMailboxProcessor.java:167)
at
org.apache.james.imap.processor.AbstractMailboxProcessor.unsolicitedResponses(AbstractMailboxProcessor.java:136)
at
org.apache.james.imap.processor.AbstractMailboxProcessor.unsolicitedResponses(AbstractMailboxProcessor.java:122)
at
org.apache.james.imap.processor.IdleProcessor$IdleMailboxListener.event(IdleProcessor.java:189)
at
org.apache.james.mailbox.store.AbstractDelegatingMailboxListener.event(AbstractDelegatingMailboxListener.java:50)
at
org.apache.james.mailbox.store.MailboxEventDispatcher.added(MailboxEventDispatcher.java:58)
at
org.apache.james.mailbox.store.StoreMessageManager$1.execute(StoreMessageManager.java:377)
at
org.apache.james.mailbox.store.StoreMessageManager$1.execute(StoreMessageManager.java:369)
at
org.apache.james.mailbox.store.AbstractMailboxPathLocker.executeWithLock(AbstractMailboxPathLocker.java:40)
at
org.apache.james.mailbox.store.StoreMessageManager.appendMessage(StoreMessageManager.java:369)
at
org.apache.james.transport.mailets.SieveMailet.post(SieveMailet.java:208)
at
org.apache.jsieve.mailet.SieveMailboxMailet.storeMessageInbox(SieveMailboxMailet.java:387)
at
org.apache.jsieve.mailet.SieveMailboxMailet.sieveMessage(SieveMailboxMailet.java:358)
at
org.apache.jsieve.mailet.SieveMailboxMailet.storeMail(SieveMailboxMailet.java:341)
at
org.apache.james.transport.mailets.SieveMailet.storeMail(SieveMailet.java:119)
at
org.apache.jsieve.mailet.SieveMailboxMailet.service(SieveMailboxMailet.java:275)
at
org.apache.james.transport.mailets.LocalDelivery.service(LocalDelivery.java:72)
at
org.apache.james.mailetcontainer.impl.camel.CamelProcessor.process(CamelProcessor.java:65)
at
org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:50)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
at
org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:99)
-----------------------------------------------------------------------------
It seems difficult or quite impossible to reproduce this because the error only happens sporadically. Our solution was to turn off IMAP, and
use POP3 instead - but this solution does not really work. Without looking at the code a possible solution would be easy to implement, e.g.
just check whether the context is open before using it, otherwise retrieve a new context.
I found some solutions to this problems here:
-
http://forum.springsource.org/showthread.php?50135-OpenJPA-and-closed-context
Is there any timeout value for the context which we could increase?
Thanks for any help on this issue.
Best regards
Michael
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]