Uploaded image for project: 'Confluence Data Center'
  1. Confluence Data Center
  2. CONFSERVER-37549

Cannot collect email from IMAP server powered by hMailServer

    XMLWordPrintable

Details

    Description

      Symptom

      Confluence cannot collect email from IMAP server powered by hMailServer.

      Steps to Reproduce

      Here is how I reproduced:

      1. Install vanilla Windows 2008 R2 64bit
      2. Install hMailServer 5.6.3-B2249 (the current latest) and setup an account on it
      3. Install Confluence 5.7.4 (the current latest) and enable 'Confluence Mail Archiving Plugin'
      4. On 'Demonstration Space', go to 'Space tools' -> 'Integrations' -> 'Mail Accounts', and configure the email account which I created in the previous step, which will be successful
      5. On 'Demonstration Space', go to 'Space tools' -> 'Integrations' -> 'Mail', and click 'Fetch new email', which will be failed (See the attached)

      Error logs

      Following error will be logged in atlassian-confluence.log:

      2015-05-12 15:45:00,093 ERROR [scheduler_Worker-5] [confluence.mail.archive.DefaultMailAccountManager] poll Error retrieving mail from IMAP account [confluence@<IMAP_SERVER>:143] for space <SPACENAME>: IOException while copying message
      javax.mail.MessagingException: IOException while copying message;
      nested exception is:
      com.sun.mail.util.FolderClosedIOException
      at javax.mail.internet.MimeMessage.<init>(MimeMessage.java:247)
      at com.atlassian.confluence.mail.archive.DefaultMailAccountManager.retrieveMessages(DefaultMailAccountManager.java:176)
      at com.atlassian.confluence.mail.archive.DefaultMailAccountManager.poll(DefaultMailAccountManager.java:133)
      at com.atlassian.confluence.mail.archive.DefaultMailAccountManager.poll(DefaultMailAccountManager.java:88)
      at com.atlassian.confluence.mail.archive.DefaultMailAccountManager.pollAllSpaces(DefaultMailAccountManager.java:298)
      at com.atlassian.confluence.mail.archive.jobs.MailPollJob$1.doInTransaction(MailPollJob.java:35)
      at com.atlassian.confluence.mail.archive.jobs.MailPollJob$1.doInTransaction(MailPollJob.java:31)
      at com.atlassian.sal.core.transaction.HostContextTransactionTemplate$1.doInTransaction(HostContextTransactionTemplate.java:25)
      at com.atlassian.sal.spring.component.SpringHostContextAccessor$1.doInTransaction(SpringHostContextAccessor.java:88)
      at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
      at com.atlassian.sal.spring.component.SpringHostContextAccessor.doInTransaction(SpringHostContextAccessor.java:82)
      at sun.reflect.GeneratedMethodAccessor164.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:497)
      at com.atlassian.plugin.osgi.hostcomponents.impl.DefaultComponentRegistrar$ContextClassLoaderSettingInvocationHandler.invoke(DefaultComponentRegistrar.java:134)
      at com.sun.proxy.$Proxy217.doInTransaction(Unknown Source)
      at sun.reflect.GeneratedMethodAccessor164.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:497)
      at com.atlassian.plugin.osgi.bridge.external.HostComponentFactoryBean$DynamicServiceInvocationHandler.invoke(HostComponentFactoryBean.java:154)
      at com.sun.proxy.$Proxy217.doInTransaction(Unknown Source)
      at com.atlassian.sal.core.transaction.HostContextTransactionTemplate.execute(HostContextTransactionTemplate.java:21)
      at sun.reflect.GeneratedMethodAccessor2193.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:497)
      at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
      at org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:58)
      at org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:62)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
      at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      at org.springframework.osgi.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:56)
      at org.springframework.osgi.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:39)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      at org.springframework.osgi.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:59)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
      at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
      at com.sun.proxy.$Proxy2844.execute(Unknown Source)
      at com.atlassian.confluence.mail.archive.jobs.MailPollJob.doExecute(MailPollJob.java:31)
      at com.atlassian.quartz.jobs.AbstractJob$1.doInHibernate(AbstractJob.java:133)
      at org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:370)
      at org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:337)
      at com.atlassian.quartz.jobs.AbstractJob.executeInternal(AbstractJob.java:125)
      at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)
      at com.atlassian.scheduler.quartz1.Quartz1JobFactory$ClassLoaderProtectingWrappedJob.execute(Quartz1JobFactory.java:62)
      at org.quartz.core.JobRunShell.run(JobRunShell.java:223)
      at com.atlassian.confluence.schedule.quartz.ConfluenceQuartzThreadPool$1.run(ConfluenceQuartzThreadPool.java:22)
      at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)
      Caused by: com.sun.mail.util.FolderClosedIOException
      at com.sun.mail.imap.IMAPInputStream.forceCheckExpunged(IMAPInputStream.java:100)
      at com.sun.mail.imap.IMAPInputStream.fill(IMAPInputStream.java:150)
      at com.sun.mail.imap.IMAPInputStream.read(IMAPInputStream.java:208)
      at com.sun.mail.imap.IMAPInputStream.read(IMAPInputStream.java:234)
      at com.sun.mail.imap.IMAPMessage.writeTo(IMAPMessage.java:721)
      at javax.mail.internet.MimeMessage.<init>(MimeMessage.java:238)
      ... 51 more
      

      Workaround

      Use POP3 instead of IMAP on hMailServer

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              mnakagawa Mai Nakagawa (Inactive)
              Votes:
              1 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: