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]

Reply via email to