You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by "Norman Maurer (JIRA)" <se...@james.apache.org> on 2010/04/23 17:24:51 UTC

[jira] Resolved: (IMAP-133) JPAStreamingMessage vs JPAMessage

     [ https://issues.apache.org/jira/browse/IMAP-133?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Norman Maurer resolved IMAP-133.
--------------------------------

         Assignee: Norman Maurer
    Fix Version/s: 0.1
       Resolution: Fixed

Thx for reporting..

> JPAStreamingMessage vs JPAMessage
> ---------------------------------
>
>                 Key: IMAP-133
>                 URL: https://issues.apache.org/jira/browse/IMAP-133
>             Project: JAMES Imap
>          Issue Type: Bug
>          Components: JPA Mailbox
>            Reporter: Tim-Christian Mundt
>            Assignee: Norman Maurer
>            Priority: Blocker
>             Fix For: 0.1
>
>
> With newest James I quite often (as always not always) get this error during copy operations which causes them to fail:
> Exception in thread "pool-8-thread-1" java.lang.ClassCastException: org.apache.james.imap.jpa.mail.model.openjpa.JPAStreamingMessage cannot
> be cast to org.apache.james.imap.jpa.mail.model.JPAMessage
>         at org.apache.james.imap.jpa.mail.model.JPAMailboxMembership.<init>(JPAMailboxMembership.java:64)
>         at org.apache.james.imap.jpa.JPAMailbox.copyMessage(JPAMailbox.java:99)
>         at org.apache.james.imap.jpa.openjpa.OpenJPAMailbox.copyMessage(OpenJPAMailbox.java:83)
>         at org.apache.james.imap.store.StoreMailbox$5.run(StoreMailbox.java:611)
>         at org.apache.james.imap.store.transaction.AbstractTransactionalMapper.execute(AbstractTransactionalMapper.java:38)
>         at org.apache.james.imap.store.StoreMailbox.copy(StoreMailbox.java:603)
>         at org.apache.james.imap.store.StoreMailbox.copyTo(StoreMailbox.java:637)
>         at org.apache.james.imap.store.StoreMailboxManager.copyMessages(StoreMailboxManager.java:296)
>         at org.apache.james.imap.processor.CopyProcessor.doProcess(CopyProcessor.java:82)
>         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.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$Worker.runTask(Unknown Source)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>         at java.lang.Thread.run(Unknown Source)
> streaming is set to false. I found the place where the JPAStreamingMessage is created:
> 633 final MessageMapper<Id> mapper = createMessageMapper(session);
> 634
> 635 final List<MailboxMembership<Id>> originalRows = mapper.findInMailbox(set);
> in org.apache.james.imap.store.StoreMailbox. Those "originalRows" contain the JPAStreamingMessage(s). The question here is: How does the mapper know, which kind of Message to create - JPAStreamingMessage or JPAMessage? By the way, the former is defined twice in persistence.xml. First I thought, this might be the cause for the error, but really sometimes it gets the one type and after restarting James it maybe gets the other (but always the same type during one run).

-- 
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-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org