Code Monkey home page Code Monkey logo

james-project's Introduction

Apache James Project

Join%20us Mailing%20lists purple Join the chat at link:https://gitter.im/apache/james-project CI Jenkins blue Documentation green Downloads 3.8.0 yellow Images docker blue License ApacheV2 orange Latests news red

james logo

James stands for Java Apache Mail Enterprise Server!

It has a modular architecture based on a rich set of modern and efficient components which provides at the end complete, stable, secure and extendable Mail Servers running on the JVM.

Create your own personal solution for emails treatment by assembling the components you need thanks to the Inversion of Control mail platform offered and go further customizing filtering and routing rules using James Mailet Container.

Supported protocols are: IMAP, SMTP, JMAP, POP3 and more…​

The Distributed server focuses on delivering an easy-to-operate scalable mail server based on modern technologies (Cassandra, S3, OpenSearch and RabbitMQ).

Read more on our website.

How to contribute?

Read more…​

James is a project that lives from the contributions of its community! Anyone can contribute!

We more than welcome articles and blog posts about James. Contact us by email or on Gitter to share your experiences.

Documentation is an easy way to get started, and more than wanted! Check out the ~documentation label on JIRA.

And to get started with code contributions, search out the ~newbie, ~easyfix, ~feature labels on JIRA.

There is many other ways one can help us: packaging, communication, etc …​

How to try James

Read more…​

Requirements: docker installed.

Here you will try James server version 3.8.0 thanks to a docker image. This James image has a default configuration using JPA (hsqldb) and Lucene. It also includes a default domain named james.local and three default users: [email protected], [email protected], [email protected], with their default password being 1234.

Note: this James server will respond to IMAPS port 993 and SMTPS port 465.

Pull and run the James image with the following single command:

    $ docker run -p "465:465" -p "993:993" apache/james:demo-3.8.0

Then, connect this image with for instance, Thunderbird. This tutorial covers more in depth user and domain creation, as well as Thunderbird setup.

Instructions that do not imply docker are also available here.

Instructions for the distributed server can be found here.

How to check the compilation

Read more…​

We require maven version 3.6.1 minimum to build the project.

Simply run mvn clean install within this directory to compile the project.

Useful options includes:

  • -DskipTests to skip the long to execute resource consuming test suite that requires a docker daemon.

  • -T 4 to parallelize the build on several CPUs.

  • -Dmaven.javadoc.skip=true to skip the javadoc generation.

How to run James in Docker

Using the CLI

Develop on James

James requires at least JDK 11 and Maven 3.6.1 to build. Some parts of James are written in Scala so one might need to enable Scala plugin in IDE.

We maintain code examples to help you write your own extensions and wire your own servers.

This page details how to run deployment Tests.

Know more about James design

A more precise description of the Distributed Server architecture can be found here.

james-project's People

Contributors

aasaru avatar aduprat avatar arsnael avatar billyfrost418 avatar blackheaven avatar chibenwa avatar dleangen avatar dtrebbien avatar fvn-linagora avatar hoangdat avatar ieugen avatar itstechupnorth avatar jeantil avatar lankhuat avatar laura-royet avatar matzepan avatar maxxx873 avatar mbaechler avatar mschnitzler avatar normanmaurer avatar nstdio avatar nvduc91 avatar ottoka avatar ouvtam avatar quantranhong1999 avatar remk avatar thanhbv200585 avatar trantienduchn avatar vttranlina avatar woj-tek avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

james-project's Issues

"org.apache.james.mailbox.exception.MailboxNotFoundException: null" when deleting a folder

To reproduce, simply delete a folder, it is deleted except that we get an error in the esn logs. Here are the several jmap request and responses

jmap request 1

[["setMailboxes",{"destroy":["fe4041d0-4801-11e6-bf3b-2b97d605aec1"]},"#0"]]

Response 1

[["mailboxesSet",{"created":{},"updated":[],"destroyed":["fe4041d0-4801-11e6-bf3b-2b97d605aec1"],"notCreated":{},"notUpdated":{},"notDestroyed":{}},"#0"]]

jmap request 2

[["getMailboxes",{},"#0"]]

Response 2

[["mailboxes",{"accountId":null,"state":null,"list":[{"id":"16e78110-4782-11e6-bd05-2b97d605aec1","name":"INBOX","parentId":null,"role":"inbox","sortOrder":10,"mustBeOnlyMailbox":false,"mayReadItems":false,"mayAddItems":false,"mayRemoveItems":false,"mayCreateChild":false,"mayRename":false,"mayDelete":false,"totalMessages":0,"unreadMessages":0,"totalThreads":0,"unreadThreads":0},{"id":"16ee10c0-4782-11e6-bd05-2b97d605aec1","name":"Outbox","parentId":null,"role":"outbox","sortOrder":40,"mustBeOnlyMailbox":false,"mayReadItems":false,"mayAddItems":false,"mayRemoveItems":false,"mayCreateChild":false,"mayRename":false,"mayDelete":false,"totalMessages":0,"unreadMessages":0,"totalThreads":0,"unreadThreads":0},{"id":"16f081c0-4782-11e6-bd05-2b97d605aec1","name":"Sent","parentId":null,"role":"sent","sortOrder":50,"mustBeOnlyMailbox":false,"mayReadItems":false,"mayAddItems":false,"mayRemoveItems":false,"mayCreateChild":false,"mayRename":false,"mayDelete":false,"totalMessages":0,"unreadMessages":0,"totalThreads":0,"unreadThreads":0}],"notFound":null},"#0"]]

jmap request 3

[["getMessageList",{"filter":{"inMailboxes":["16e78110-4782-11e6-bd05-2b97d605aec1"]},"sort":["date desc"],"collapseThreads":false,"fetchMessages":false,"position":0,"limit":200},"#0"]]

Response 3

[["messageList",{"accountId":null,"filter":null,"sort":
[],"collapseThreads":false,"state":null,"canCalculateUpdates":false,"position":0,"total":0,"threadIds":[],"messageIds":[]},"#0"]]

jmap request 4

[["getMessages",{"properties":["id","threadId","subject","to","cc","bcc","from","preview","date","isUnread","isFlagged","isDraft","hasAttachment","mailboxIds"],"ids":[]},"#0"]]

Response 4

[["messages",{"notFound":[],"list":[]},"#0"]]

Error in esn logs

esn_james | 07:28:42.304 [INFO ] o.a.j.j.JWTAuthenticationStrategy - deleteMailbox #private:[email protected]:FolderTest
esn_james | 07:28:42.422 [WARN ] o.a.j.j.u.MailboxUtils - Cannot find mailbox for :FolderTest
esn_james | org.apache.james.mailbox.exception.MailboxNotFoundException: null
esn_james | at org.apache.james.mailbox.cassandra.mail.CassandraMailboxMapper.findMailboxByPath(CassandraMailboxMapper.java:88)
esn_james | at org.apache.james.mailbox.store.StoreMailboxManager.getMailbox(StoreMailboxManager.java:394)
esn_james | at org.apache.james.jmap.utils.MailboxUtils.getMailboxMetaData(MailboxUtils.java:89)
esn_james | at org.apache.james.jmap.utils.MailboxUtils.mailboxFromMailboxPath(MailboxUtils.java:64)
esn_james | at org.apache.james.jmap.methods.GetMailboxesMethod.lambda$getMailboxesResponse$0(GetMailboxesMethod.java:94)
esn_james | at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
esn_james | at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
esn_james | at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
esn_james | at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
esn_james | at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
esn_james | at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
esn_james | at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
esn_james | at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
esn_james | at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
esn_james | at org.apache.james.jmap.methods.GetMailboxesMethod.getMailboxesResponse(GetMailboxesMethod.java:99)
esn_james | at org.apache.james.jmap.methods.GetMailboxesMethod.process(GetMailboxesMethod.java:78)
esn_james | at org.apache.james.jmap.methods.RequestHandler.lambda$extractAndProcess$1(RequestHandler.java:67)
esn_james | at java.util.Optional.map(Optional.java:215)
esn_james | at org.apache.james.jmap.methods.RequestHandler.handle(RequestHandler.java:57)
esn_james | at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:267)
esn_james | at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
esn_james | at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
esn_james | at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
esn_james | at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
esn_james | at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
esn_james | at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
esn_james | at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
esn_james | at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
esn_james | at org.apache.james.jmap.JMAPServlet.doPost(JMAPServlet.java:71)
esn_james | at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
esn_james | at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
esn_james | at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)
esn_james | at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)
esn_james | at org.apache.james.jmap.FirstUserConnectionFilter.doFilter(FirstUserConnectionFilter.java:71)
esn_james | at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)
esn_james | at org.apache.james.jmap.AuthenticationFilter.doFilter(AuthenticationFilter.java:75)
esn_james | at org.apache.james.jmap.BypassAuthOnRequestMethod.tryAuth(BypassAuthOnRequestMethod.java:115)
esn_james | at org.apache.james.jmap.BypassAuthOnRequestMethod.doFilter(BypassAuthOnRequestMethod.java:97)
esn_james | at org.apache.james.jmap.AllowAllCrossOriginRequests.doFilter(AllowAllCrossOriginRequests.java:46)
esn_james | at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)
esn_james | at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)
esn_james | at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:513)
esn_james | at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
esn_james | at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)
esn_james | at org.eclipse.jetty.server.Server.handle(Server.java:517)
esn_james | at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:306)
esn_james | at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)
esn_james | at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)
esn_james | at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
esn_james | at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)
esn_james | at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)
esn_james | at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)
esn_james | at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)
esn_james | at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
esn_james | at java.lang.Thread.run(Thread.java:745)

Useless warning in logs when modifying a subfolder to a folder (which seems to work fine)

  • Have a folder "A" and a sub-folder "B" ("A/B")
  • Modifying sub-folder "B" to modify its parent from "A" to "Unified Inbox"
  • The Subfolder "A/B" is now a Folder "B"
    but a useless warning is added in logs
esn_james       | 15:11:09.588 [WARN ] o.a.j.j.m.MailboxFactory - Cannot find mailbox for: A.B
esn_james       | org.apache.james.mailbox.exception.MailboxNotFoundException: null
esn_james       | 	at org.apache.james.mailbox.cassandra.mail.CassandraMailboxMapper.findMailboxByPath(CassandraMailboxMapper.java:89)
esn_james       | 	at org.apache.james.mailbox.store.StoreMailboxManager.getMailbox(StoreMailboxManager.java:460)
esn_james       | 	at org.apache.james.jmap.model.MailboxFactory.fromMailboxPath(MailboxFactory.java:54)
esn_james       | 	at org.apache.james.jmap.methods.GetMailboxesMethod.lambda$getMailboxesResponse$0(GetMailboxesMethod.java:95)
esn_james       | 	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
esn_james       | 	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
esn_james       | 	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
esn_james       | 	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
esn_james       | 	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
esn_james       | 	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
esn_james       | 	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
esn_james       | 	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
esn_james       | 	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
esn_james       | 	at org.apache.james.jmap.methods.GetMailboxesMethod.getMailboxesResponse(GetMailboxesMethod.java:100)
esn_james       | 	at org.apache.james.jmap.methods.GetMailboxesMethod.process(GetMailboxesMethod.java:79)
esn_james       | 	at org.apache.james.jmap.methods.RequestHandler.lambda$extractAndProcess$1(RequestHandler.java:67)
esn_james       | 	at java.util.Optional.map(Optional.java:215)
esn_james       | 	at org.apache.james.jmap.methods.RequestHandler.handle(RequestHandler.java:57)
esn_james       | 	at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:267)
esn_james       | 	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
esn_james       | 	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
esn_james       | 	at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
esn_james       | 	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
esn_james       | 	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
esn_james       | 	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
esn_james       | 	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
esn_james       | 	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
esn_james       | 	at org.apache.james.jmap.JMAPServlet.doPost(JMAPServlet.java:71)
esn_james       | 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
esn_james       | 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
esn_james       | 	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)
esn_james       | 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)
esn_james       | 	at org.apache.james.jmap.FirstUserConnectionFilter.doFilter(FirstUserConnectionFilter.java:71)
esn_james       | 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)
esn_james       | 	at org.apache.james.jmap.AuthenticationFilter.doFilter(AuthenticationFilter.java:75)
esn_james       | 	at org.apache.james.jmap.BypassAuthOnRequestMethod.tryAuth(BypassAuthOnRequestMethod.java:115)
esn_james       | 	at org.apache.james.jmap.BypassAuthOnRequestMethod.doFilter(BypassAuthOnRequestMethod.java:97)
esn_james       | 	at org.apache.james.jmap.AllowAllCrossOriginRequests.doFilter(AllowAllCrossOriginRequests.java:46)
esn_james       | 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)
esn_james       | 	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)
esn_james       | 	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:513)
esn_james       | 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
esn_james       | 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)
esn_james       | 	at org.eclipse.jetty.server.Server.handle(Server.java:517)
esn_james       | 	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:306)
esn_james       | 	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)
esn_james       | 	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)
esn_james       | 	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
esn_james       | 	at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)
esn_james       | 	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)
esn_james       | 	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)
esn_james       | 	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)
esn_james       | 	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
esn_james       | 	at java.lang.Thread.run(Thread.java:745)

Why such a warning if the move is working.

Filename http encoding (non-latin) not handled

Attachments with cyrillic, arabic or chinese (perhaps non-exhaustive list) are not well retrieved (tested this with OpenPaaS/Unifid Inbox sending these attachments in emails).

Here's the jmap Response I can retrieve when sending the email:

[["messagesSet",{"accountId":null,"oldState":null,"newState":null,"created":{"1469191919092":{"id":"[email protected]|Outbox|3","blobId":"3","threadId":"[email protected]|Outbox|3","mailboxIds":["0f3d4130-5005-11e6-8e34-2b97d605aec1"],"inReplyToMessageId":null,"isUnread":false,"isFlagged":false,"isAnswered":false,"isDraft":false,"hasAttachment":true,"headers":{"mime-version":"1.0","date":"Fri, 22 Jul 2016 12:51:59 +0000","sender":"[email protected]","subject":"test","message-id":"1469191919092","content-type":"multipart/mixed; boundary="-=Part.2.761d7be53df6bc21.15612a9972c.f4c37f57c999a9de=-"","from":"[email protected]","to":"John1 Doe1 [email protected]"},"from":{"name":"[email protected]","email":"[email protected]"},"to":[{"name":"John1 Doe1","email":"[email protected]"}],"cc":[],"bcc":[],"replyTo":[],"subject":"test","date":"2016-07-22T12:51:59.247Z","size":528192,"preview":"(Empty)","textBody":null,"htmlBody":null,"attachments":[{"blobId":"64503ed4e71ecd9a668f131d6e63fd76fbc143bb","type":"image/png","name":"تتطور أم لا.png","size":181973,"cid":null,"isInline":false,"width":null,"height":null},{"blobId":"9eeb86bb873b77a04de589fdf53dff1e5610e3e5","type":"image/png","name":"эволюционировать.png","size":86289,"cid":null,"isInline":false,"width":null,"height":null},{"blobId":"12b6d65de37b0631060d57d54fb17bec3b352122","type":"image/png","name":"进化还是不.png","size":117062,"cid":null,"isInline":false,"width":null,"height":null}],"attachedMessages":{}}},"updated":[],"destroyed":[],"notCreated":{},"notUpdated":{},"notDestroyed":{}},"#0"]]

The name of files seem ok in the blobId line

sent

Then as the recipient here's the jpam Response when opening the received email

[["messages",{"notFound":[],"list":[{"id":"[email protected]|INBOX|5","threadId":"[email protected]|INBOX|5","mailboxIds":["3552b490-5005-11e6-8e34-2b97d605aec1"],"isUnread":false,"isFlagged":false,"isDraft":false,"hasAttachment":true,"from":{"name":"[email protected]","email":"[email protected]"},"to":[{"name":"John1 Doe1","email":"[email protected]"}],"cc":[],"bcc":[],"replyTo":[],"subject":"test","date":"2016-07-22T12:51:59.683Z","preview":"(Empty)","textBody":null,"htmlBody":null,"attachments":[{"blobId":"64503ed4e71ecd9a668f131d6e63fd76fbc143bb","type":"image/png","name":"**7H1 #E D'.png","size":181973,"cid":null,"isInline":false,"width":null,"height":null},{"blobId":"9eeb86bb873b77a04de589fdf53dff1e5610e3e5","type":"image/png","name":"M2>;NF8>=8@>20BL.png","size":86289,"cid":null,"isInline":false,"width":null,"height":null},{"blobId":"12b6d65de37b0631060d57d54fb17bec3b352122","type":"image/png","name":"Û\u0016Ø/.png","size":117062,"cid":null,"isInline":false,"width":null,"height":null}]}]},"#0"]]

Filenames are now altered.

received

Some files cannot be downloaded.

Can no more change read/unread, star/unstar status in OpenPaaS ESN Inbox emails using James

With an email displayed in OpenPaaS/Inbox, each time I read, or change manually the Star/Unstar or Read/Unread status, then the status is not changed in the email and this error occurs in James logs:

esn_james       | 15:50:08.351 [WARN ] o.e.j.s.ServletHandler - /jmap
esn_james       | org.apache.james.backends.cassandra.utils.LightweightTransactionException: Can not execute Optional Supplier. 1000 retries.
esn_james       |     at org.apache.james.backends.cassandra.utils.FunctionRunnerWithRetry.lambda$executeAndRetrieveObject$3(FunctionRunnerWithRetry.java:54)
esn_james       |     at java.util.Optional.orElseThrow(Optional.java:290)
esn_james       |     at org.apache.james.backends.cassandra.utils.FunctionRunnerWithRetry.executeAndRetrieveObject(FunctionRunnerWithRetry.java:54)
esn_james       |     at org.apache.james.mailbox.cassandra.mail.CassandraMessageIdMapper.flagsUpdateWithRetry(CassandraMessageIdMapper.java:221)
esn_james       |     ... 88 common frames omitted
esn_james       | Wrapped by: java.lang.RuntimeException: org.apache.james.backends.cassandra.utils.LightweightTransactionException: Can not execute Optional Supplier. 1000 retries.
esn_james       |     at com.google.common.base.Throwables.propagate(Throwables.java:160)
esn_james       |     at org.apache.james.mailbox.cassandra.mail.CassandraMessageIdMapper.flagsUpdateWithRetry(CassandraMessageIdMapper.java:228)
esn_james       |     at org.apache.james.mailbox.cassandra.mail.CassandraMessageIdMapper.lambda$setFlags$14(CassandraMessageIdMapper.java:212)
esn_james       |     at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
esn_james       |     at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
esn_james       |     at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
esn_james       |     at java.util.Iterator.forEachRemaining(Iterator.java:116)
esn_james       |     at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
esn_james       |     at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
esn_james       |     at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
esn_james       |     at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
esn_james       |     at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
esn_james       |     at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
esn_james       |     at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
esn_james       |     at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:270)
esn_james       |     at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
esn_james       |     at java.util.Iterator.forEachRemaining(Iterator.java:116)

Move dockerfiles in James-project

Move dockerfiles in James-project
Should also modify compile.sh script in order to accept a SHA1 instead of a branch name. (optional ? -> trunk)

Email displayed buggy - I guess htmlBody is wrong

I got an email whose display seems bogus. Included is a screenshot.

Looking the reponse of the JMAP getMessages POST, I have the following:

id: "7ab16810-e240-11e6-af08-f1dd7d0a3ede",
threadId: "7ab16810-e240-11e6-af08-f1dd7d0a3ede"
...
htmlBody: "<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">     <head>         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />         <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /> <base href="https://ci.open-paas.org/jira" />         <title>Message Title</title>     </head>     <body class="jira" style="color: #333; font-family: Arial, sans-serif; font-size: 14px; line-height: 1.429">         <table id="background-table" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; background-color: #f5f5f5; border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">             <!-- header here -->             <tr>                 <td id="header-pattern-container" style="padding: 0px; border-collapse: collapse; padding: 10px 20px">                     <table id="header-pattern" cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">                         <tr>                             <td id="header-avatar-image-container" valign="top" style="padding: 0px; border-collapse: collapse; vertical-align: top; width: 32px; padding-right: 8px"> <img id="header-avatar-image" class="image_fix" src="cid:jira-generated-image-avatar-80399df3-ae97-4716-8b18-3eb8c735e6eb" height="32" width="32" border="0" style="border-radius: 3px; vertical-align: top" />                             </td>                             <td id="header-text-container" valign="middle" style="padding: 0px; border-collapse: collapse; vertical-align: middle; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 1px"> <a class="user-hover" rel="scolson" id="email_scolson" href="https://ci.open-paas.org/jira/secure/ViewProfile.jspa?name=scolson" style="color:#3b73af;; color: #3b73af; text-decoration: none">Stephane COLSON</a> <strong>created</strong> an issue                             </td>                         </tr>                     </table>                 </td>             </tr>             <tr>                 <td id="email-content-container" style="padding: 0px; border-collapse: collapse; padding: 0 20px">                     <table id="email-content-table" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; border-spacing: 0; border-collapse: separate">                         <tr>                             <!-- there needs to be content in the cell for it to render in some clients -->                             <td class="email-content-rounded-top mobile-expand" style="padding: 0px; border-collapse: collapse; color: #fff; padding: 0 15px 0 16px; height: 15px; background-color: #fff; border-left: 1px solid #ccc; border-top: 1px solid #ccc; border-right: 1px solid #ccc; border-bottom: 0; border-top-right-radius: 5px; border-top-left-radius: 5px; height: 10px; line-height: 10px; padding: 0 15px 0 16px; mso-line-height-rule: exactly">                                &nbsp;                            </td>                         </tr>                         <tr>                             <td class="email-content-main mobile-expand " style="padding: 0px; border-collapse: collapse; border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #fff">                                 <table class="page-title-pattern" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">                                     <tr>                                         <td class="page-title-pattern-first-line " style="padding: 0px; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 14px; padding-top: 10px"> <a href="https://ci.open-paas.org/jira/browse/OR" style="color: #3b73af; text-decoration: none">OpenPaaS RSE</a> / <a href="https://ci.open-paas.org/jira/browse/OR-2522" style="color: #3b73af; text-decoration: none"><img src="cid:jira-generated-image-static-bug-e8471db2-510b-445b-acb5-6951770473f1" height="16" width="16" border="0" align="absmiddle" alt="Bug" style="vertical-align: text-bottom" /></a> <a href="https://ci.open-paas.org/jira/browse/OR-2522" style="color: #3b73af; text-decoration: none">OR-2522</a>                                         </td>                                     </tr>                                     <tr>                                         <td style="vertical-align: top;; padding: 0px; border-collapse: collapse; padding-right: 5px; font-size: 20px; line-height: 30px; mso-line-height-rule: exactly" class="page-title-pattern-header-container"> <span class="page-title-pattern-header" style="font-family: Arial, sans-serif; padding: 0; font-size: 20px; line-height: 30px; mso-text-raise: 2px; mso-line-height-rule: exactly; vertical-align: middle"> <a href="https://ci.open-paas.org/jira/browse/OR-2522" style="color: #3b73af; text-decoration: none">Flickering search, because sub-header displayed twice for a fraction of a second,</a> </span>                                         </td>                                     </tr>                                 </table>                             </td>                         </tr>                         <tr>                             <td class="email-content-main mobile-expand  wrapper-special-margin" style="padding: 0px; border-collapse: collapse; border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #fff; padding-top: 10px; padding-bottom: 5px">                                 <table class="keyvalue-table" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">                                     <tr>                                         <th style="color: #707070; font: normal 14px/20px Arial, sans-serif; text-align: left; vertical-align: top; padding: 2px 0">                                            Issue Type:                                        </th>                                         <td class="has-icon" style="padding: 0px; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top"> <img src="cid:jira-generated-image-static-bug-e8471db2-510b-445b-acb5-6951770473f1" height="16" width="16" border="0" align="absmiddle" alt="Bug" style="vertical-align: text-bottom" /> Bug                                         </td>                                     </tr>                                     <tr>            Received: from ci-openpaas.linagora.dc1 (ci-openpaas.linagora.dc1 [172.16.18.66])	by alderaan.linagora.com (Postfix) with ESMTP id F39A944F1	for <[email protected]>; Tue, 24 Jan 2017 15:22:03 +0100 (CET)Received: from ci.open-paas.org (ci-openpaas.linagora.dc1 [127.0.0.1])	by ci-openpaas.linagora.dc1 (Postfix) with ESMTP id E9D524CB2CF	for <[email protected]>; Tue, 24 Jan 2017 15:22:03 +0100 (CET)Date: Tue, 24 Jan 2017 15:22:03 +0100 (CET)From: "Stephane COLSON (JIRA)" <[email protected]>To: [email protected]: <[email protected]>In-Reply-To: <[email protected]>References: <[email protected]> <JIRA.17816.1485267707342@ci-openpaas>Subject: [JIRA] (OR-2522) Flickering search, because sub-header displayed twice for a fraction of a second,MIME-Version: 1.0Content-Type: multipart/related; 	boundary="----=_Part_250739_56454955.1485267720357"X-JIRA-FingerPrint: 2cc56fe0b6c36a47776991d4aa5e9674Auto-Submitted: auto-generatedPrecedence: bulk------=_Part_250739_56454955.1485267720357Content-Type: text/html; charset=UTF-8Content-Transfer-Encoding: 7bit<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">     <head>         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />         <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /> <base href="https://ci.open-paas.org/jira" />         <title>Message Title</title>     </head>     <body class="jira" style="color: #333; font-family: Arial, sans-serif; font-size: 14px; line-height: 1.429">         <table id="background-table" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; background-color: #f5f5f5; border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">             <!-- header here -->             <tr>                 <td id="header-pattern-container" style="padding: 0px; border-collapse: collapse; padding: 10px 20px">                     <table id="header-pattern" cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">                         <tr>                             <td id="header-avatar-image-container" valign="top" style="padding: 0px; border-collapse: collapse; vertical-align: top; width: 32px; padding-right: 8px"> <img id="header-avatar-image" class="image_fix" src="cid:jira-generated-image-avatar-5ce4195b-e761-4850-aadd-8072ea676b68" height="32" width="32" border="0" style="border-radius: 3px; vertical-align: top" />                             </td>                             <td id="header-text-container" valign="middle" style="padding: 0px; border-collapse: collapse; vertical-align: middle; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 1px"> <a class="user-hover" rel="scolson" id="email_scolson" href="https://ci.open-paas.org/jira/secure/ViewProfile.jspa?name=scolson" style="color:#3b73af;; color: #3b73af; text-decoration: none">Stephane COLSON</a> <strong>created</strong> an issue                             </td>                         </tr>                     </table>                 </td>             </tr>             <tr>                 <td id="email-content-container" style="padding: 0px; border-collapse: collapse; padding: 0 20px">                     <table id="email-content-table" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; border-spacing: 0; border-collapse: separate">                         <tr>                             <!-- there needs to be content in the cell for it to render in some clients -->                             <td class="email-content-rounded-top mobile-expand" style="padding: 0px; border-collapse: collapse; color: #fff; padding: 0 15px 0 16px; height: 15px; background-color: #fff; border-left: 1px solid #ccc; border-top: 1px solid #ccc; border-right: 1px solid #ccc; border-bottom: 0; border-top-right-radius: 5px; border-top-left-radius: 5px; height: 10px; line-height: 10px; padding: 0 15px 0 16px; mso-line-height-rule: exactly">                                &nbsp;                            </td>                         </tr>                         <tr>                             <td class="email-content-main mobile-expand " style="padding: 0px; border-collapse: collapse; border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #fff">                                 <table class="page-title-pattern" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">                                     <tr>                                         <td class="page-title-pattern-first-line " style="padding: 0px; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 14px; padding-top: 10px"> <a href="https://ci.open-paas.org/jira/browse/OR" style="color: #3b73af; text-decoration: none">OpenPaaS RSE</a> / <a href="https://ci.open-paas.org/jira/browse/OR-2522" style="color: #3b73af; text-decoration: none"><img src="cid:jira-generated-image-static-bug-f98d906c-6ce2-4c07-a098-cdc646341a8a" height="16" width="16" border="0" align="absmiddle" alt="Bug" style="vertical-align: text-bottom" /></a> <a href="https://ci.open-paas.org/jira/browse/OR-2522" style="color: #3b73af; text-decoration: none">OR-2522</a>                                         </td>                                     </tr>                                     <tr>                                         <td style="vertical-align: top;; padding: 0px; border-collapse: collapse; padding-right: 5px; font-size: 20px; line-height: 30px; mso-line-height-rule: exactly" class="page-title-pattern-header-container"> <span class="page-title-pattern-header" style="font-family: Arial, sans-serif; padding: 0; font-size: 20px; line-height: 30px; mso-text-raise: 2px; mso-line-height-rule: exactly; vertical-align: middle"> <a href="https://ci.open-paas.org/jira/browse/OR-2522" style="color: #3b73af; text-decoration: none">Flickering search, because sub-header displayed twice for a fraction of a second,</a> </span>                                         </td>                                     </tr>                                 </table>                             </td>                         </tr>                         <tr>                             <td class="email-content-main mobile-expand  wrapper-special-margin" style="padding: 0px; border-collapse: collapse; border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #fff; padding-top: 10px; padding-bottom: 5px">                                 <table class="keyvalue-table" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">                                     <tr>                                         <th style="color: #707070; font: normal 14px/20px Arial, sans-serif; text-align: left; vertical-align: top; padding: 2px 0">                                            Issue Type:                                        </th>                                         <td class="has-icon" style="padding: 0px; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top"> <img src="cid:jira-generated-image-static-bug-f98d906c-6ce2-4c07-a098-cdc646341a8a" height="16" width="16" border="0" align="absmiddle" alt="Bug" style="vertical-align: text-bottom" /> Bug                                         </td>                                     </tr>                                     <tr>                                         <th style="color: #707070; font: normal 14px/20px Arial, sans-serif; text-align: left; vertical-align: top; padding: 2px 0">                                            Assignee:                                        </th>                                         <td style="padding: 0px; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top">                                             Unassigned                                         </td>                                     </tr>                                     <tr>                                         <th style="color: #707070; font: normal 14px/20px Arial, sans-serif; text-align: left; vertical-align: top; padding: 2px 0">                                            Attachments:                                        </th>                                         <td style="padding: 0px; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top">                                             duplicatedHeader.png, SearchHeaderDuplicated.webm                                         </td>                                     </tr>                                     <tr>                                         <th style="color: #707070; font: normal 14px/20px Arial, sans-serif; text-align: left; vertical-align: top; padding: 2px 0">                                            Created:                                        </th>                                         <td style="padding: 0px; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top">                                             24/Jan/17 3:21 PM                                         </td>                                     </tr>                                     <tr>                                         <th style="color: #707070; font: normal 14px/20px Arial, sans-serif; text-align: left; vertical-align: top; padding: 2px 0">                                            Priority:                                        </th>                                         <td class="has-icon" style="padding: 0px; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top"> <img src="cid:jira-generated-image-static-minor-a4acb626-dd8e-4063-aa2b-4e1e399dccca" height="16" width="16" border="0" align="absmiddle" alt="Minor" style="vertical-align: text-bottom" /> Minor                                         </td>                                     </tr>                                     <tr>                                         <th style="color: #707070; font: normal 14px/20px Arial, sans-serif; text-align: left; vertical-align: top; padding: 2px 0">                                            Reporter:                                        </th>                                         <td style="padding: 0px; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top"> <a class="user-hover" rel="scolson" id="email_scolson" href="https://ci.open-paas.org/jira/secure/ViewProfile.jspa?name=scolson" style="color:#3b73af;; color: #3b73af; text-decoration: none">Stephane COLSON</a>                                         </td>                                     </tr>                                 </table>                             </td>                         </tr>                         <tr>                             <td class="email-content-main mobile-expand  issue-description-container" style="padding: 0px; border-collapse: collapse; border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #fff; padding-top: 5px; padding-bottom: 10px">                                 <table class="text-paragraph-pattern" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 2px">                                     <tr>                                         <td class="text-paragraph-pattern-container mobile-resize-text " style="padding: 0px; border-collapse: collapse; padding: 0 0 10px 0">                                             <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0">See searchHeaderDuplicated.webm and duplicatedHeader.png, when selecting/unselection a checkbox of the global search, then the sub-header is displayed twice for a fraction of a second.</p>                                             <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0 0">This results is a flickering sub-header bar.</p>                                         </td>                                     </tr>                                 </table>                             </td>                         </tr>                         <tr>                             <td class="email-content-main mobile-expand " style="padding: 0px; border-collapse: collapse; border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #fff">                                 <table id="actions-pattern" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 1px">                                     <tr>                                         <td id="actions-pattern-container" valign="middle" style="padding: 0px; border-collapse: collapse; padding: 10px 0 10px 24px; vertical-align: middle; padding-left: 0">                                             <table align="left" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">                                                 <tr>                                                     <td class="actions-pattern-action-icon-container" style="padding: 0px; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 0px; vertical-align: middle"> <a href="https://ci.open-paas.org/jira/browse/OR-2522#add-comment" target="_blank" title="Add Comment" style="color: #3b73af; text-decoration: none"> <img class="actions-pattern-action-icon-image" src="cid:jira-generated-image-static-comment-icon-28e4c735-8a2f-4291-9982-7bd1b6e5d2b0" alt="Add Comment" title="Add Comment" height="16" width="16" border="0" style="vertical-align: middle" /> </a>                                                     </td>                                                     <td class="actions-pattern-action-text-container" style="padding: 0px; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 4px; padding-left: 5px"> <a href="https://ci.open-paas.org/jira/browse/OR-2522#add-comment" target="_blank" title="Add Comment" style="color: #3b73af; text-decoration: none">Add Comment</a>                                                     </td>                                                 </tr>                                             </table>                                         </td>                                     </tr>                                 </table>                             </td>                         </tr>                         <!-- there needs to be content in the cell for it to render in some clients -->                         <tr>                             <td class="email-content-rounded-bottom mobile-expand" style="padding: 0px; border-collapse: collapse; color: #fff; padding: 0 15px 0 16px; height: 5px; line-height: 5px; background-color: #fff; border-top: 0; border-left: 1px solid #ccc; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; mso-line-height-rule: exactly">                                &nbsp;                            </td>                         </tr>                     </table>                 </td>                                         <td id="footer-pattern-logo-desktop-padding" style="padding: 0px; border-collapse: collapse; padding-top: 3px"> <img id="footer-pattern-logo-desktop" src="cid:jira-generated-image-static-footer-desktop-logo-b81677ca-2a13-4b87-bd01-8bdfe82839de" alt="Atlassian logo" title="Atlassian logo" width="169" height="36" class="image_fix" />                                         </td>                                     </tr>                                 </table>                             </td>                         </tr>                     </table>                 </td>             </tr>         </table>       </body></html>------=_Part_250739_56454955.1485267720357Content-Type: image/pngContent-Transfer-Encoding: base64Content-Disposition: inlineContent-ID: <jira-generated-image-avatar-5ce4195b-e761-4850-aadd-8072ea676b68>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------=_Part_250739_56454955.1485267720357Content-Type: image/pngContent-Transfer-Encoding: base64Content-Disposition: inlineContent-ID: <jira-generated-image-static-bug-f98d906c-6ce2-4c07-a098-cdc646341a8a>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAADAFBMVEX///+1tbWzs7OwsLD////7+/v5+fn88vHZ2dnW1tbU1NTT09PPz8+Li4vbb2WBgYF7e3tycnJwcHDQRDcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADlzgInAAAADnRSTlMAIiIi3e7u7u7u7u7u7mfXjvEAAAAbdEVYdGppcmEtc3lzdGVtLWltYWdlLXR5cGUAaWNvbroqOUUAAABzSURBVHjaXY1RDoQwCEQHhPTD9f4HdWOCLbpV2rpx0lB4TDvASwT66Nmn8j0JC5e9kSTHyhC37jATcL2eDxwQoO6npMjmV8vxWAFNdxtAR2ngTwHyKA1YHXKkScRtw8+d3Zquo0pH20vyncDzYymbv1PxAwu+IwuL2zfhAAAAAElFTkSuQmCC------=_Part_250739_56454955.1485267720357Content-Type: image/pngContent-Transfer-Encoding: base64Content-Disposition: inlineContent-ID: <jira-generated-image-static-comment-icon-28e4c735-8a2f-4291-9982-7bd1b6e5d2b0>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAADAFBMVEX///+1tbWzs7OysrKrq6umpqalpaWdnZ2ZmZn///+VlZWPj4/7+/vu7u7p6enn5+fl5eXk5OTh4eHW1tbT09PMzMzJycm6urq5ubm1tbWzs7OysrKrq6upqamlpaWKioqFhYWRkZGKioqHh4eDg4OAgIB/f398fHx6enp4eHh2dnZ0dHRycnJwcHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIFWMjAAAAIXRSTlMAIiIzZoiZu8zd3d3u7u7u7u7u7u7u7u7u7u7u7u7u7u6nleogAAAAG3RFWHRqaXJhLXN5c3RlbS1pbWFnZS10eXBlAGljb266KjlFAAAAo0lEQVR42l2P2wrCMAyG09Pa1SqKzIk3QwTf/3G8UByKyK4EcV0POqzDaTUQwv+R/EkA/gKFJGyuQrFH/+iAWJnGOCCpTHcmALms6ne7ykpNeFHpft75xZWsL/XX0bMppj7eUXNseQykI7eZu3+0GpfYuVz1ephriwAnxdkDQVwIsTVAoTUswZNBuPRkw6X01cqzZtMbdWB0aFqIANqb349ZLJ5XFjQIuveaPQAAAABJRU5ErkJggg==------=_Part_250739_56454955.1485267720357Content-Type: image/pngContent-Transfer-Encoding: base64Content-Disposition: inlineContent-ID: <jira-generated-image-static-minor-a4acb626-dd8e-4063-aa2b-4e1e399dccca>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAMFBMVEX///8UiSwUiSwUiSwUiSwUiSwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADxGyMRAAAABXRSTlMAEZnM3Uchgx8AAAAbdEVYdGppcmEtc3lzdGVtLWltYWdlLXR5cGUAaWNvbroqOUUAAABISURBVHjaY2DAC1gcgAQTEDMKQBlggMRgMmRgEFYAMhiVBICIgZmBgVtAgP/8DyaG//cUmO59ACl+9+DffQaQFMPPfw/wWggAfLsNhgLj4LAAAAAASUVORK5CYIKAQob4LQQAj2MGDCwX4+kAAAAASUVORK5CYII=------=_Part_250739_56454955.1485267720357Content-Type: image/pngContent-Transfer-Encoding: base64Content-Disposition: inlineContent-ID: <jira-generated-image-static-footer-desktop-logo-b81677ca-2a13-4b87-bd01-8bdfe82839de>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------=_Part_250739_56454955.1485267720357--"

bogus-email-display

The SPFHandler provided in conf/smtpserver.xml fails initialization

Uncommenting the SPFHandler element provided in conf/smtpserver.xml fails in beta5 (and in the current snapshot):

Caused by: org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'org.apache.james.smtpserver.fastfail.SPFHandler': 
Injection of autowired dependencies failed; 
nested exception is org.springframework.beans.factory.BeanCreationException: 
Could not autowire method: public void 
org.apache.james.smtpserver.fastfail.SPFHandler.setDNSService(org.apache.james.jspf.core.DNSService); 
nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: 
No qualifying bean of type [org.apache.james.jspf.core.DNSService] found for dependency: 
expected at least 1 bean which qualifies as autowire candidate for this dependency.

When I introduced some jars needed for SPF, dnsjava-2.1.1.jar and dnsjnio-1.0.3.jar, still did not work.
The @Inject setDNSService method in SPFHandler requires a DNSService implementation, but injection of DNSServiceXBillImpl does not succeed.

Add Content-Disposition header when downloading attachments

Hey James team,

In relation to https://ci.open-paas.org/jira/browse/INBOX-392 and more generally as we're completing attachments downloads in OpenPaas, I think we lack Content-Disposition header on the download endpoint. This header helps the browser to force a file download, which is what we want when downloading attachments.
The expected value would be Content-Disposition: attachment; filename="attachment_filename"

I'm however opened to doing this at the frontal level, but I assume this is an added value to do it in James directly, considering that you know the filenames, etc. already.

David

CommandInjectionDetectedException is raised by valid emails having "starttls" in their bodies

CommandInjectionDetectedException's is raised by valid emails having "starttls" in its body. It happens in those coming from james server development mailing list as often the code changes involve lines of code where the term starttls appears.

My SMTP server is configured as:

    <smtpserver enabled="true">
        <jmxName>smtpserver-global</jmxName>
        <bind>0.0.0.0:25</bind>
        <connectionBacklog>20</connectionBacklog>
        <tls socketTLS="false" startTLS="false">
            <keystore>file://conf/keystore</keystore>
            <secret>********</secret>
            <provider>org.bouncycastle.jce.provider.BouncyCastleProvider</provider>
            <algorithm>SunX509</algorithm>
        </tls>
        <connectiontimeout>360</connectiontimeout>
        <connectionLimit>18</connectionLimit>
        <connectionLimitPerIP>5</connectionLimitPerIP>
        <authRequired>false</authRequired>
           <authorizedAddresses>127.0.0.0/8</authorizedAddresses>
        <verifyIdentity>true</verifyIdentity>
        <maxmessagesize>0</maxmessagesize>
           <addressBracketsEnforcement>true</addressBracketsEnforcement>
        <smtpGreeting>JAMES SMTP awesome Server</smtpGreeting>
        <handlerchain>
            <handler class="org.apache.james.smtpserver.fastfail.ValidRcptHandler"/>
            <handler class="org.apache.james.smtpserver.CoreCmdHandlerLoader"/>
        </handlerchain>
    </smtpserver>
    <smtpserver enabled="true">
        <jmxName>smtpserver-authenticated</jmxName>
        <bind>0.0.0.0:587</bind>
        <connectionBacklog>20</connectionBacklog>
        <tls socketTLS="false" startTLS="true">
            <keystore>file://conf/keystore</keystore>
            <secret>********</secret>
            <provider>org.bouncycastle.jce.provider.BouncyCastleProvider</provider>
            <algorithm>SunX509</algorithm>
        </tls>
        <connectiontimeout>360</connectiontimeout>
        <connectionLimit>18</connectionLimit>
        <connectionLimitPerIP>5</connectionLimitPerIP>
        <authRequired>true</authRequired>
        <authorizedAddresses>127.0.0.0/8</authorizedAddresses>
        <verifyIdentity>false</verifyIdentity>
        <maxmessagesize>0</maxmessagesize>
        <addressBracketsEnforcement>true</addressBracketsEnforcement>
        <smtpGreeting>JAMES SMTP Secured Server</smtpGreeting>
        <handlerchain>
            <handler class="org.apache.james.smtpserver.fastfail.ValidRcptHandler"/>
            <handler class="org.apache.james.smtpserver.CoreCmdHandlerLoader"/>
        </handlerchain>
    </smtpserver>

The log before the exception is as follows:

INFO  2017-03-04 00:02:14,670 | james.smtpserver | Id='1686819552' User='' Connection established from 140.211.11.3
DEBUG 2017-03-04 00:02:14,833 | james.smtpserver | Id='1686819552' User='' org.apache.james.protocols.api.handler.CommandDispatcher received: HELO
DEBUG 2017-03-04 00:02:14,833 | james.smtpserver | Id='1686819552' User='' Lookup command handler for command: HELO
DEBUG 2017-03-04 00:02:14,833 | james.smtpserver | Id='1686819552' User='' org.apache.james.protocols.smtp.core.HeloCmdHandler: [250 1fire.pitagoral.com Hello mail.apache.org [140.211.11.3])]
DEBUG 2017-03-04 00:02:14,995 | james.smtpserver | Id='1686819552' User='' org.apache.james.protocols.api.handler.CommandDispatcher received: MAIL
DEBUG 2017-03-04 00:02:14,996 | james.smtpserver | Id='1686819552' User='' Lookup command handler for command: MAIL
DEBUG 2017-03-04 00:02:14,996 | james.smtpserver | Id='1686819552' User='' org.apache.james.smtpserver.JamesMailCmdHandler: [250 2.1.0 Sender <server-dev-return-61708-pablo.****[email protected]> OK]
DEBUG 2017-03-04 00:02:15,158 | james.smtpserver | Id='1686819552' User='' org.apache.james.protocols.api.handler.CommandDispatcher received: RCPT
DEBUG 2017-03-04 00:02:15,158 | james.smtpserver | Id='1686819552' User='' Lookup command handler for command: RCPT
DEBUG 2017-03-04 00:02:15,158 | james.smtpserver | Id='1686819552' User='' executing hook org.apache.james.smtpserver.fastfail.ValidRcptHandler
DEBUG 2017-03-04 00:02:15,160 | james.smtpserver | Id='1686819552' User='' executing hook org.apache.james.protocols.smtp.core.log.HookResultLogger@deee6c4
DEBUG 2017-03-04 00:02:15,160 | james.smtpserver | Id='1686819552' User='' org.apache.james.smtpserver.fastfail.ValidRcptHandler: result=8 (DECLINED)
DEBUG 2017-03-04 00:02:15,160 | james.smtpserver | Id='1686819552' User='' executing hook org.apache.james.smtpserver.jmx.HookResultJMXMonitor@7ab3cd0d
DEBUG 2017-03-04 00:02:15,160 | james.smtpserver | Id='1686819552' User='' executing hook org.apache.james.smtpserver.AuthRequiredToRelayRcptHook
DEBUG 2017-03-04 00:02:15,160 | james.smtpserver | Id='1686819552' User='' executing hook org.apache.james.protocols.smtp.core.log.HookResultLogger@deee6c4
DEBUG 2017-03-04 00:02:15,160 | james.smtpserver | Id='1686819552' User='' org.apache.james.smtpserver.AuthRequiredToRelayRcptHook: result=8 (DECLINED)
DEBUG 2017-03-04 00:02:15,160 | james.smtpserver | Id='1686819552' User='' executing hook org.apache.james.smtpserver.jmx.HookResultJMXMonitor@7ab3cd0d
DEBUG 2017-03-04 00:02:15,160 | james.smtpserver | Id='1686819552' User='' executing hook org.apache.james.smtpserver.SenderAuthIdentifyVerificationRcptHook
DEBUG 2017-03-04 00:02:15,160 | james.smtpserver | Id='1686819552' User='' executing hook org.apache.james.protocols.smtp.core.log.HookResultLogger@deee6c4
DEBUG 2017-03-04 00:02:15,160 | james.smtpserver | Id='1686819552' User='' org.apache.james.smtpserver.SenderAuthIdentifyVerificationRcptHook: result=8 (DECLINED)
DEBUG 2017-03-04 00:02:15,160 | james.smtpserver | Id='1686819552' User='' executing hook org.apache.james.smtpserver.jmx.HookResultJMXMonitor@7ab3cd0d
DEBUG 2017-03-04 00:02:15,161 | james.smtpserver | Id='1686819552' User='' executing hook org.apache.james.protocols.smtp.core.PostmasterAbuseRcptHook
DEBUG 2017-03-04 00:02:15,161 | james.smtpserver | Id='1686819552' User='' executing hook org.apache.james.protocols.smtp.core.log.HookResultLogger@deee6c4
DEBUG 2017-03-04 00:02:15,161 | james.smtpserver | Id='1686819552' User='' org.apache.james.protocols.smtp.core.PostmasterAbuseRcptHook: result=8 (DECLINED)
DEBUG 2017-03-04 00:02:15,161 | james.smtpserver | Id='1686819552' User='' executing hook org.apache.james.smtpserver.jmx.HookResultJMXMonitor@7ab3cd0d
DEBUG 2017-03-04 00:02:15,161 | james.smtpserver | Id='1686819552' User='' org.apache.james.smtpserver.JamesRcptCmdHandler: [250 2.1.5 Recipient <pablo.****@pitagoral.com> OK]
DEBUG 2017-03-04 00:02:15,323 | james.smtpserver | Id='1686819552' User='' org.apache.james.protocols.api.handler.CommandDispatcher received: DATA
DEBUG 2017-03-04 00:02:15,868 | james.smtpserver | Id='1686819552' User='' Lookup command handler for command: DATA
DEBUG 2017-03-04 00:02:15,868 | james.smtpserver | Id='1686819552' User='' org.apache.james.smtpserver.JamesDataCmdHandler: [354 Ok Send data ending with <CRLF>.<CRLF>]
DEBUG 2017-03-04 00:02:16,035 | james.smtpserver | Id='1686819552' User='' Unable to process request
org.apache.james.protocols.smtp.CommandInjectionDetectedException
        at org.apache.james.protocols.smtp.AllButStartTlsDelimiterChannelHandler.decode(AllButStartTlsDelimiterChannelHandler.java:40)
        at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:425)
        at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:310)
        at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
......

"Index expression values may not be larger than 64K" error

When trying to create or edit a folder with more than 64K chars in OpenPaaS then it fails with the following error

esn_james       | 13:06:06.702 [WARN ] o.e.j.s.ServletHandler - /jmap
esn_james       | com.datastax.driver.core.exceptions.InvalidQueryException: Index expression values may not be larger than 64K
esn_james       |   at com.datastax.driver.core.Responses$Error.asException(Responses.java:102)
esn_james       |   at com.datastax.driver.core.DefaultResultSetFuture.onSet(DefaultResultSetFuture.java:149)
esn_james       |   at com.datastax.driver.core.RequestHandler.setFinalResult(RequestHandler.java:183)
esn_james       |   at com.datastax.driver.core.RequestHandler.access$2300(RequestHandler.java:44)
esn_james       |   at com.datastax.driver.core.RequestHandler$SpeculativeExecution.setFinalResult(RequestHandler.java:748)
esn_james       |   at com.datastax.driver.core.RequestHandler$SpeculativeExecution.onSet(RequestHandler.java:573)
esn_james       |   at com.datastax.driver.core.Connection$Dispatcher.channelRead0(Connection.java:1013)
esn_james       |   at com.datastax.driver.core.Connection$Dispatcher.channelRead0(Connection.java:936)
esn_james       |   at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
esn_james       |   at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)
esn_james       |   at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)
esn_james       |   at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:254)
esn_james       |   at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)
esn_james       |   at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)
esn_james       |   at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
esn_james       |   at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)
esn_james       |   at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)
esn_james       |   at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:242)
esn_james       |   at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)
esn_james       |   at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)
esn_james       |   at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:847)
esn_james       |   at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131)
esn_james       |   at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511)
esn_james       |   at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468)
esn_james       |   at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382)
esn_james       |   at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354)
esn_james       |   at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:111)
esn_james       |   ... 1 common frames omitted
esn_james       | Wrapped by: com.datastax.driver.core.exceptions.InvalidQueryException: Index expression values may not be larger than 64K
esn_james       |   at com.datastax.driver.core.exceptions.InvalidQueryException.copy(InvalidQueryException.java:50)
esn_james       |   at com.datastax.driver.core.DriverThrowables.propagateCause(DriverThrowables.java:37)
esn_james       |   at com.datastax.driver.core.DefaultResultSetFuture.getUninterruptibly(DefaultResultSetFuture.java:214)
esn_james       |   at com.datastax.driver.core.AbstractSession.execute(AbstractSession.java:52)
esn_james       |   at org.apache.james.mailbox.cassandra.mail.CassandraMailboxMapper.findMailboxByPath(CassandraMailboxMapper.java:86)
esn_james       |   at org.apache.james.mailbox.store.StoreMailboxManager.mailboxExists(StoreMailboxManager.java:607)
esn_james       |   at org.apache.james.mailbox.store.StoreMailboxManager.createMailbox(StoreMailboxManager.java:419)
esn_james       |   at org.apache.james.jmap.methods.SetMailboxesCreationProcessor.createMailbox(SetMailboxesCreationProcessor.java:97)
esn_james       |   at org.apache.james.jmap.methods.SetMailboxesCreationProcessor.lambda$process$2(SetMailboxesCreationProcessor.java:75)
esn_james       |   at java.util.ArrayList.forEach(ArrayList.java:1249)
esn_james       |   at org.apache.james.jmap.methods.SetMailboxesCreationProcessor.process(SetMailboxesCreationProcessor.java:74)
esn_james       |   at org.apache.james.jmap.methods.SetMailboxesMethod.lambda$setMailboxesResponse$0(SetMailboxesMethod.java:73)
esn_james       |   at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
esn_james       |   at java.util.Iterator.forEachRemaining(Iterator.java:116)
esn_james       |   at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
esn_james       |   at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
esn_james       |   at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
esn_james       |   at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
esn_james       |   at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
esn_james       |   at java.util.stream.ReferencePipeline.reduce(ReferencePipeline.java:484)
esn_james       |   at org.apache.james.jmap.methods.SetMailboxesMethod.setMailboxesResponse(SetMailboxesMethod.java:74)
esn_james       |   at org.apache.james.jmap.methods.SetMailboxesMethod.process(SetMailboxesMethod.java:66)
esn_james       |   at org.apache.james.jmap.methods.RequestHandler.lambda$extractAndProcess$1(RequestHandler.java:67)
esn_james       |   at java.util.Optional.map(Optional.java:215)
esn_james       |   at org.apache.james.jmap.methods.RequestHandler.handle(RequestHandler.java:57)
esn_james       |   at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:267)
esn_james       |   at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
esn_james       |   at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
esn_james       |   at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
esn_james       |   at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
esn_james       |   at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
esn_james       |   at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
esn_james       |   at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
esn_james       |   at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
esn_james       |   at org.apache.james.jmap.JMAPServlet.doPost(JMAPServlet.java:71)
esn_james       |   at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
esn_james       |   at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
esn_james       |   at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)
esn_james       |   at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)
esn_james       |   at org.apache.james.jmap.FirstUserConnectionFilter.doFilter(FirstUserConnectionFilter.java:71)
esn_james       |   at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)
esn_james       |   at org.apache.james.jmap.AuthenticationFilter.doFilter(AuthenticationFilter.java:75)
esn_james       |   at org.apache.james.jmap.BypassAuthOnRequestMethod.tryAuth(BypassAuthOnRequestMethod.java:115)
esn_james       |   at org.apache.james.jmap.BypassAuthOnRequestMethod.doFilter(BypassAuthOnRequestMethod.java:97)
esn_james       |   at org.apache.james.jmap.AllowAllCrossOriginRequests.doFilter(AllowAllCrossOriginRequests.java:46)
esn_james       |   at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)
esn_james       |   at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)
esn_james       |   at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:513)
esn_james       |   at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
esn_james       |   at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)
esn_james       |   at org.eclipse.jetty.server.Server.handle(Server.java:517)
esn_james       |   at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:306)
esn_james       |   at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)
esn_james       |   at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)
esn_james       |   at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
esn_james       |   at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)
esn_james       |   at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)
esn_james       |   at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)
esn_james       |   at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)
esn_james       |   at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
esn_james       |   at java.lang.Thread.run(Thread.java:745)

multiplart/related is not handled - messages have no bodies

The following email had no body when read through OpenPaas:

Return-Path: <[email protected]>
Received: from alderaan.linagora.com (smtp.linagora.dc1 [172.16.18.53])
     by imap (Cyrus v2.2.13-Debian-2.2.13-19+squeeze3) with LMTPA;
     Mon, 22 Aug 2016 14:06:47 +0200
X-Sieve: CMU Sieve 2.2
Received: from linshare1.linagora.dc1 (linshare1.linagora.dc1 [172.16.18.60])
    by alderaan.linagora.com (Postfix) with ESMTP id 36470776
    for <[email protected]>; Mon, 22 Aug 2016 14:06:47 +0200 (CEST)
Date: Mon, 22 Aug 2016 14:06:47 +0200 (CEST)
From: LinShare <[email protected]>
Reply-To: [email protected]
To: [email protected]
Message-ID: <2020561626.8931471867607210.JavaMail.tomcat7@linshare1>
Subject: A user Abdulkader BENCHI has just made a file available to you!
MIME-Version: 1.0
Content-Type: multipart/alternative; 
    boundary="----=_Part_1786_771314706.1471867607209"

------=_Part_1786_771314706.1471867607209
Content-Type: multipart/related; 
    boundary="----=_Part_1787_1274970450.1471867607209"

------=_Part_1787_1274970450.1471867607209
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>A user Abdulkader BENCHI has just made a file available to you!</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<style type="text/css">
pre { margin-top: .25em; font-family: Verdana, Arial, Helvetica, sans-serif; color: blue; }
ul { margin-top: .25em; padding-left: 1.5em; }
</style>
</head>
<body>
<img src='cid:[email protected]' /><br/><br/>

Hello David DOLCIMASCOLO,<br/><br/>
<strong>Abdulkader BENCHI</strong> has just shared with you 1 file(s):<ul><li><a href='https://linshare-internal.commun.linagora.com/linshare/index.listshareddocument.download/58d82f3c-f0f0-46df-a94a-a5661fc1ad24'>webappdev-05-nodejs.odp</a></li></ul><br/>To download the file(s), simply click on the following link or copy/paste it into your favorite browser: <a href="https://linshare-internal.commun.linagora.com/linshare/">https://linshare-internal.commun.linagora.com/linshare/</a><br/>
 <hr/>
<a href="http://linshare.org/" title="LinShare"><strong>LinShare</strong></a> - THE Secure, Open-Source File Sharing Tool
</body>
</html>
------=_Part_1787_1274970450.1471867607209
Content-Type: image/png; name=mail_logo.png
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename=mail_logo.png
Content-ID: <[email protected]>

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
SUVORK5CYII=
------=_Part_1787_1274970450.1471867607209--

------=_Part_1786_771314706.1471867607209--

Dots are not supported in folder names

When creating a folder name with dots, example ".test" it fails with this jmap response:
[["mailboxesSet",{"created":{},"updated":[],"destroyed":[],"notCreated":{"1468240580914":{"type":"invalidArguments","description":"The mailbox '.test' contains an illegal character: '.'","properties":null}},"notUpdated":{},"notDestroyed":{}},"#0"]]

Mailbox Trash not available - Cannot delete an email

When trying to delete an email with OpenPaaS Inbox, then the deletion fails with the error "Move of message "Mails" to trash failed" and "angular.js:11706 Error: Cannot find a mailbox with role trash" in the browser console.

selection_699

Email not retrieved with some html attachment that raises lots of errors in logs

Send an email with this html file attached (rename it to test.html, the original couldn't be uploaded to github because of html extension)

test.html.txt

The email is not received by the recipient and these errors are in the logs

james_elastic_1 | [2016-07-13 13:58:21,992][DEBUG][action.admin.indices.mapping.put] [Tartarus] failed to put mappings on indices [[mailbox]], type [message]
james_elastic_1 | MapperParsingException[Field name [ajs-jira.issues.preferred.layout.key] cannot contain '.']
james_elastic_1 | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseProperties(ObjectMapper.java:276)
james_elastic_1 | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseObjectOrDocumentTypeProperties(ObjectMapper.java:221)
james_elastic_1 | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parse(ObjectMapper.java:196)
james_elastic_1 | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseProperties(ObjectMapper.java:308)
james_elastic_1 | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseObjectOrDocumentTypeProperties(ObjectMapper.java:221)
james_elastic_1 | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parse(ObjectMapper.java:196)
james_elastic_1 | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseProperties(ObjectMapper.java:308)
james_elastic_1 | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseObjectOrDocumentTypeProperties(ObjectMapper.java:221)
james_elastic_1 | at org.elasticsearch.index.mapper.object.RootObjectMapper$TypeParser.parse(RootObjectMapper.java:138)
james_elastic_1 | at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:119)
james_elastic_1 | at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:100)
james_elastic_1 | at org.elasticsearch.index.mapper.MapperService.parse(MapperService.java:435)
james_elastic_1 | at org.elasticsearch.cluster.metadata.MetaDataMappingService$PutMappingExecutor.applyRequest(MetaDataMappingService.java:257)
james_elastic_1 | at org.elasticsearch.cluster.metadata.MetaDataMappingService$PutMappingExecutor.execute(MetaDataMappingService.java:230)
james_elastic_1 | at org.elasticsearch.cluster.service.InternalClusterService.runTasksForExecutor(InternalClusterService.java:458)
james_elastic_1 | at org.elasticsearch.cluster.service.InternalClusterService$UpdateTask.run(InternalClusterService.java:762)
james_elastic_1 | at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.runAndClean(PrioritizedEsThreadPoolExecutor.java:231)
james_elastic_1 | at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:194)
james_elastic_1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
james_elastic_1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
james_elastic_1 | at java.lang.Thread.run(Thread.java:745)
james_elastic_1 | [2016-07-13 13:58:21,998][DEBUG][action.index ] [Tartarus] failed to execute [index {[mailbox][message][955772f0-4901-11e6-83b6-2b97d605aec1:1], source[{"id":1,"mailboxId":"955772f0-4901-11e6-83b6-2b97d605aec1","modSeq":1,"size":128203,"date":"2016-07-13T13:58:21+0000","mediaType":"multipart","subtype":"mixed","userFlags":[],"headers":{"mime-version":["1.0"],"date":["Wed, 13 Jul 2016 13:58:20 +0000"],"return-path":["[email protected]"],"sender":["[email protected]"],"delivered-to":["[email protected]"],"subject":["test .html complexe"],"message-id":["1468418299705"],"content-type":["multipart/mixed; boundary="-=Part.0.7ca8ee1915e22c8c.155e48d1913.9d42bb4745b9184b=-""],"from":["[email protected]"],"to":["John6 Doe6 [email protected]"]},"from":[{"name":"[email protected]","address":"[email protected]"}],"to":[{"name":"John6 Doe6","address":"[email protected]"}],"cc":[],"bcc":[],"replyTo":[],"subject":["test .html complexe"],"sentDate":"2016-07-13T13:58:20+0000","properties":[{"namespace":"http://james.apache.org/rfc2045/Content-Type","localName":"type","value":"multipart"},{"namespace":"http://james.apache.org/rfc2045/Content-Type","localName":"subtype","value":"mixed"},{"namespace":"http://james.apache.org/rfc2045","localName":"Content-Transfer-Encoding","value":"7bit"},{"namespace":"http://james.apache.org/rfc2045/Content-Type/params","localName":"boundary","value":"-=Part.0.7ca8ee1915e22c8c.155e48d1913.9d42bb4745b9184b=-"}],"attachments":[{"mediaType":"text","subtype":"html","fileName":null,"fileExtension":null,"contentDisposition":"attachment","fileMetadata":{"ajs-server-view-issue-is-editable":["true"],"ajs-issue-key":["OR-2349"],"ajs-dev-mode":["false"],"ajs-is-inline-edit-enabled":["true"],"ajs-can-search-users":["true"],"ajs-remote-user":["scolson"],"ajs-keyboard-shortcuts-enabled":["true"],"dc:title":["[OR-2349] Docker-compose doesn't activate attachments and dwld/upld url are wrongly populated - OpenPaas-Linagora"],"Content-Encoding":["UTF-8"],"ajs-viewissue-max-cache-size":[""],"ajs-view-issue-trace-key":["jira.issue.refreshed"],"ajs-context-path":["/jira"],"ajs-build-number":["64020"],"ajs-is-sysadmin":["true"],"application-name":["JIRA"],"ajs-date-dmy":["dd/MMM/yy"],"ajs-date-relativize":["true"],"ajs-outgoing-mail-enabled":["true"],"ajs-advanced-search-help-url":["https://docs.atlassian.com/jira/docs-064/Advanced+Searching"],"ajs-view-issue-psycho-key":["jira.psycho.issue.refreshed"],"ajs-date-time":["h:mm a"],"ajs-can-edit-watchers":["true"],"ajs-advanced-search-help-title":["Performing Advanced Searches"],"ajs-enabled-dark-features":["["com.atlassian.jira.projects.issuenavigator","com.atlassian.jira.projects.ProjectCentricNavigation.Switch","jira.plugin.devstatus.phasetwo.enabled","com.atlassian.jira.config.PDL","jira.frother.reporter.field","jira.plugin.devstatus.phasetwo","com.atlassian.jira.darkfeature.CommonHeader","app-switcher.new","frother.assignee.field","jira.issue.status.lozenge"]"],"ajs-in-admin-mode":["false"],"ajs-autocomplete-enabled":["true"],"ajs-serverRenderedViewIssue":["true"],"ajs-max-recent-searchers":["10"],"decorator":["atl.general"],"ajs-remote-user-fullname":["Stephane COLSON"],"ajs-is-rc":["false"],"title":["[OR-2349] Docker-compose doesn't activate attachments and dwld/upld url are wrongly populated - OpenPaas-Linagora"],"ajs-date-day":["EEEE h:mm a"],"isNavigator":["true"],"ajs-return-to-search-trace-key":["jira.returned.to.search"],"ajs-issue-search-help-url":["https://docs.atlassian.com/jira/docs-064/Searching+for+Issues"],"Content-Type-Hint":["text/html; charset=UTF-8"],"ajs-user-locale-group-separator":[","],"ajs-admin-quicksearch-show":["true"],"ajs-is-milestone":["false"],"atlassian-token":["BE2F-79PL-H8QS-2STB|99bf85b35fda4cb18ee69314eef5a1392be0a3d3|lin"],"Content-Type":["text/html; charset=UTF-8"],"ajs-viewissue-use-history-api":["false"],"ajs-user-locale":["en_US"],"ajs-date-complete":["dd/MMM/yy h:mm a"],"ajs-user.search.mode":["basic"],"ajs-issue-search-help-title":["Searching for Issues"],"X-Parsed-By":["org.apache.tika.parser.DefaultParser","org.apache.tika.parser.html.HtmlParser"],"ajs-keyboard-accesskey-modifier":["Alt+Shift"],"ajs-view-issue-refreshed-cached-key":["jira.psycho.issue.refreshed.cached"],"ajs-is-beta":["false"],"ajs-app-title":["OpenPaas-Linagora"],"ajs-default-avatar-url":["https://ci.open-paas.org/jira/secure/useravatar?size=xsmall&avatarId=10123","https://ci.open-paas.org/jira/secure/useravatar?size=xsmall&avatarId=10123"],"ajs-return-to-search-psycho-key":["jira.psycho.returned.to.search"],"ajs-is-admin":["true"],"X-UA-Compatible":["IE=Edge"],"ajs-hasCriteriaAutoUpdate":["true"],"ajs-version-number":["6.4.5"],"ajs-is-snapshot":["false"],"ajs-jira.issues.preferred.layout.key":["split-view"],"ajs-jira-base-url":["https://ci.open-paas.org/jira"],"ajs-remote-user-avatar-url":["https://ci.open-paas.org/jira/secure/useravatar?avatarId=10111"]},"textContent":"\n\n \n \n \n \n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n \n\n\n\n\n \n \n \n \n\n\nLinked Applications\tOpenPaas-Linagora\n\tStash - OpenPaas\n\tJenkins - OpenPaas\n\n\n\tConfigure…\n\n\n\n\n\n\tDashboards\n\n\tProjects\n\n\tIssues\n\n\tAgile\n\n\tMore\n\n\n\n\tCreate\n\n\n\t\n \n \n \n \n\n\n\t\n Help\n \n \n \t\n Online Help\n \n\t\n JIRA Agile Help\n \n\t\n Keyboard Shortcuts\n \n\t\n About JIRA\n \n\t\n JIRA Credits\n \n\n\n \n\n \n\n \n\t\n Administration\n \n \n JIRA administration\n \t\n Projects\n \n\t\n Issues\n \n\t\n User management\n \n\t\n System\n \n\t\n Add-ons\n \n\n\n \n\n \n\n\n\t\n \n \n \n \n \n \n \n \n \n \t\n Profile\n \n\t\n Atlassian Marketplace\n \n\n\n \n\n \n My JIRA Home\n \t\n Dashboard\n \n\t\n Agile\n \n\t\n Issue Navigator\n \n\n\n \n\n \n \t\n Disable new project navigation\n \n\t\n Log Out\n \n\n\n \n\n \n\n \n\n\n\n\n \n \n\n\n\n \n\n \n\n \n \n \n \n\tOpenPaaS RSE\n\tOR-2349\n\nDocker-compose doesn't activate attachments and dwld/upld url are wrongly populated\n\n\n\n\n\t Edit\n\n\t Comment\n\n\tAssign\n\tMore\tAgile Board\n\tRank to Top\n\tRank to Bottom\n\n\tLog Work\n\n\tAttach Files\n\tAttach Screenshot\n\tAdd Drawio Diagram\n\n\tVoters\n\tStop Watching\n\tWatchers\n\n\tCreate Sub-Task\n\tConvert to Sub-Task\n\n\tCreate branch\n\n\tMove\n\tLink\n\tClone\n\tLabels\n\n\tDelete\n\n\n\n\n\n\tStop Progress\n\tResolve Issue\n\tClose Issue\n\n\tAdmin\tAdd field\n\n\tWhere is my field?\n\tPermission Helper\n\tNotification Helper\n\n\n\n\n\n\n\t \n\t Export\tXML\n\tWord\n\tPrintable\n\n\n\n\n\n\n\n\n\n\n\n \n \n \nDetails\n\n\n\n\n\n\n\t\n \n Type:\n \n Bug\n \n \n\n \n\t\n \n Status:\n \n Progressing \n (View Workflow)\n \n\n \n\t\n \n Priority:\n \n Major\n \n \n\n \n\t\n \n Resolution:\n \n Unresolved\n \n \n\n \n\t\n \n Affects Version/s:\n \n None\n \n \n\n \n\t\n \n Fix Version/s:\n \n None\n \n \n\n \n\t\n \n Component/s:\n \n None\n \n \n\n \n\t\n \n Labels:\n \n None\n Labels\n \n\n \n\n \n\n\n\n\n \n \n \t\n \n Rank (Obsolete):\n \n 9223372036854775807\n \n \n\n \n\n \n\t\n \n Acceptance Criteria:\n \n \n \n 0/1Hide checkedShow checked\n\n\n\n \nTested\n\n\n\n\n \n\n \n show more\n show less\n \n \n\n \n\n \n \n \n \n \n\n \n\n\n \n \n \n \n\n \n\n \n\n\n \n\n \n\n\n\n\n\nDescription\n\n\n \n \n {\n "name" : "uploadUrl",\n "value" : "http://10.69.0.163:1080/jmap/upload",\n "_id" : ObjectId("5785f85cd7f4033c00fc606d")\n }, \n {\n "name" : "downloadUrl",\n "value" : "http://10.69.0.163:1080/jmap/download",\n "_id" : ObjectId("5785f85cd7f4033c00fc606c")\n }, \n\n\n\n\n\n\nshould be replaced with \n\n\n {\n "name" : "uploadUrl",\n "value" : "http://10.69.0.163:1080/upload",\n "_id" : ObjectId("5785f85cd7f4033c00fc606d")\n }, \n {\n "name" : "downloadUrl",\n "value" : "http://10.69.0.163:1080/download",\n "_id" : ObjectId("5785f85cd7f4033c00fc606c")\n }, \n {\n "name" : "composer.attachments",\n "value" : true\n }\n\n\n\n\n\n\n \n\n\n\n\n\n\nActivity\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n \t\n All\n \n\t\n Comments\n \n\t\n Work Log\n \n\t\n History\n \n\t\n Activity\n \n\n\n\n \n\n \n \n\n \n \n There are no comments yet on this issue.\n\n \n\n \n\n\n\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n \n \n \n \n \n Comment\n \n\n \tParagraph\n\tHeading 1\n\tHeading 2\n\tHeading 3\n\tHeading 4\n\tHeading 5\n\tHeading 6\n\tPreformatted\n\tParagraph quote\n\tBlock quote\n\n\n\n\tStrikethrough\n\tSuperscript\n\tSubscript\n\tCitation\n\n\n\n\tExternal link\n\tMail link\n\tAnchor link\n\tAttachment link\n\n\nAttachment link\t\n\n\n\n\tExternal image\n\tAttached image\n\n\nAttached image\t\n\n\n\n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\n\n\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\n\n\n\tUser mention\n\tTable\n\tCode\n\tPreformatted\n\tPanel\n\tHorizontal ruler\n\n\n\nStyle\nBoldItalicUnderlineText colorMore colorsMore\nLinkImage\nBullet listNumbered list\nIconsOther\nLock / Unlock\n\n\n\n\n\n \n \n \n\n \n\n\n\n\n \n Preview comment\n \n\n\n\n \n \n \n \n \n\n \n \n \n This comment will be Viewable by All Users\n \n \n \n\n\n\nAll Users\nAdministrators\nDevelopers\nUsers\n\n\n Viewable by All Users\n \n\n \n\n \n \n\n \n \n \n Cancel\n \n\n \n\n \n\n \n\n \n \t\n \n \n Comment\n \n \n\n\n \n\n\n\n\n\n\n\n\nPeople\n\n\t\n \tAssignee:\n\t\n \n\n \n \n\n \n Stephane COLSON\n \n \n \n\n\n \tReporter:\n\t\n \n\n \n \n\n \n Stephane COLSON\n \n \n \n\n\n \n\n\n \t\n \tVotes:\n\t\n \n 0\n \n \n \n\n\n \tWatchers:\n\t\n \n \n 1\n \n \n \n\n \n \n Stop watching this issue \n \n\n\n \n\n\n\n\n\nDates\n\n\t\n \tCreated:\n\t\n\n \n 4 hours ago \n \n\n\n \tUpdated:\n\t\n\n \n 4 hours ago \n \n\n\n \n\n\n\n\n\nDevelopment\n\n\n\n\n\t\t\n\n1 branch\n\n\n\tUpdated 33 minutes ago\n\n\n\n\n\n\t\n\t\t\n\n1 pull request OPEN\n\n\n\tUpdated 33 minutes ago\n\n\n\n\n\n\t\n\t\n\t\n\n\tCreate branch\n\t\n\t\n\n\n\n\nAgile\n\n\n\n\t\n \n View on Board\n \n \n\n\n\n\n\nIssue deployment\n\n\n\n\n\n\n\n\n\n \n\n \n\n \n\n\n \n \n \n \n\n\n\n\n\n\t\n Atlassian JIRA Project Management Software\n\n \n \n (v6.4.5#64020-sha1:78acd6c)\n \n\t\n About JIRA\n \n\t\n Report a problem\n \n\n\n \t\n Powered by a free Atlassian JIRA open source license for OpenPaas. Try JIRA - bug tracking software for your team.\n\n \n\n\n\n\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\n\n\n\n Atlassian\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","headers":{"content-disposition":["attachment"],"content-transfer-encoding":["base64"],"content-type":["text/html; name=test.html"]}}],"textBody":"\n\n \n \n \n \n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n \n\n\n\n\n \n \n \n \n\n\nLinked Applications\tOpenPaas-Linagora\n\tStash - OpenPaas\n\tJenkins - OpenPaas\n\n\n\tConfigure…\n\n\n\n\n\n\tDashboards\n\n\tProjects\n\n\tIssues\n\n\tAgile\n\n\tMore\n\n\n\n\tCreate\n\n\n\t\n \n \n \n \n\n\n\t\n Help\n \n \n \t\n Online Help\n \n\t\n JIRA Agile Help\n \n\t\n Keyboard Shortcuts\n \n\t\n About JIRA\n \n\t\n JIRA Credits\n \n\n\n \n\n \n\n \n\t\n Administration\n \n \n JIRA administration\n \t\n Projects\n \n\t\n Issues\n \n\t\n User management\n \n\t\n System\n \n\t\n Add-ons\n \n\n\n \n\n \n\n\n\t\n \n \n \n \n \n \n \n \n \n \t\n Profile\n \n\t\n Atlassian Marketplace\n \n\n\n \n\n \n My JIRA Home\n \t\n Dashboard\n \n\t\n Agile\n \n\t\n Issue Navigator\n \n\n\n \n\n \n \t\n Disable new project navigation\n \n\t\n Log Out\n \n\n\n \n\n \n\n \n\n\n\n\n \n \n\n\n\n \n\n \n\n \n \n \n \n\tOpenPaaS RSE\n\tOR-2349\n\nDocker-compose doesn't activate attachments and dwld/upld url are wrongly populated\n\n\n\n\n\t Edit\n\n\t Comment\n\n\tAssign\n\tMore\tAgile Board\n\tRank to Top\n\tRank to Bottom\n\n\tLog Work\n\n\tAttach Files\n\tAttach Screenshot\n\tAdd Drawio Diagram\n\n\tVoters\n\tStop Watching\n\tWatchers\n\n\tCreate Sub-Task\n\tConvert to Sub-Task\n\n\tCreate branch\n\n\tMove\n\tLink\n\tClone\n\tLabels\n\n\tDelete\n\n\n\n\n\n\tStop Progress\n\tResolve Issue\n\tClose Issue\n\n\tAdmin\tAdd field\n\n\tWhere is my field?\n\tPermission Helper\n\tNotification Helper\n\n\n\n\n\n\n\t \n\t Export\tXML\n\tWord\n\tPrintable\n\n\n\n\n\n\n\n\n\n\n\n \n \n \nDetails\n\n\n\n\n\n\n\t\n \n Type:\n \n Bug\n \n \n\n \n\t\n \n Status:\n \n Progressing \n (View Workflow)\n \n\n \n\t\n \n Priority:\n \n Major\n \n \n\n \n\t\n \n Resolution:\n \n Unresolved\n \n \n\n \n\t\n \n Affects Version/s:\n \n None\n \n \n\n \n\t\n \n Fix Version/s:\n \n None\n \n \n\n \n\t\n \n Component/s:\n \n None\n \n \n\n \n\t\n \n Labels:\n \n None\n Labels\n \n\n \n\n \n\n\n\n\n \n \n \t\n \n Rank (Obsolete):\n \n 9223372036854775807\n \n \n\n \n\n \n\t\n \n Acceptance Criteria:\n \n \n \n 0/1Hide checkedShow checked\n\n\n\n \nTested\n\n\n\n\n \n\n \n show more\n show less\n \n \n\n \n\n \n \n \n \n \n\n \n\n\n \n \n \n \n\n \n\n \n\n\n \n\n \n\n\n\n\n\nDescription\n\n\n \n \n {\n "name" : "uploadUrl",\n "value" : "http://10.69.0.163:1080/jmap/upload",\n "_id" : ObjectId("5785f85cd7f4033c00fc606d")\n }, \n {\n "name" : "downloadUrl",\n "value" : "http://10.69.0.163:1080/jmap/download",\n "_id" : ObjectId("5785f85cd7f4033c00fc606c")\n }, \n\n\n\n\n\n\nshould be replaced with \n\n\n {\n "name" : "uploadUrl",\n "value" : "http://10.69.0.163:1080/upload",\n "_id" : ObjectId("5785f85cd7f4033c00fc606d")\n }, \n {\n "name" : "downloadUrl",\n "value" : "http://10.69.0.163:1080/download",\n "_id" : ObjectId("5785f85cd7f4033c00fc606c")\n }, \n {\n "name" : "composer.attachments",\n "value" : true\n }\n\n\n\n\n\n\n \n\n\n\n\n\n\nActivity\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n \t\n All\n \n\t\n Comments\n \n\t\n Work Log\n \n\t\n History\n \n\t\n Activity\n \n\n\n\n \n\n \n \n\n \n \n There are no comments yet on this issue.\n\n \n\n \n\n\n\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n \n \n \n \n \n Comment\n \n\n \tParagraph\n\tHeading 1\n\tHeading 2\n\tHeading 3\n\tHeading 4\n\tHeading 5\n\tHeading 6\n\tPreformatted\n\tParagraph quote\n\tBlock quote\n\n\n\n\tStrikethrough\n\tSuperscript\n\tSubscript\n\tCitation\n\n\n\n\tExternal link\n\tMail link\n\tAnchor link\n\tAttachment link\n\n\nAttachment link\t\n\n\n\n\tExternal image\n\tAttached image\n\n\nAttached image\t\n\n\n\n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\n\n\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\n\n\n\tUser mention\n\tTable\n\tCode\n\tPreformatted\n\tPanel\n\tHorizontal ruler\n\n\n\nStyle\nBoldItalicUnderlineText colorMore colorsMore\nLinkImage\nBullet listNumbered list\nIconsOther\nLock / Unlock\n\n\n\n\n\n \n \n \n\n \n\n\n\n\n \n Preview comment\n \n\n\n\n \n \n \n \n \n\n \n \n \n This comment will be Viewable by All Users\n \n \n \n\n\n\nAll Users\nAdministrators\nDevelopers\nUsers\n\n\n Viewable by All Users\n \n\n \n\n \n \n\n \n \n \n Cancel\n \n\n \n\n \n\n \n\n \n \t\n \n \n Comment\n \n \n\n\n \n\n\n\n\n\n\n\n\nPeople\n\n\t\n \tAssignee:\n\t\n \n\n \n \n\n \n Stephane COLSON\n \n \n \n\n\n \tReporter:\n\t\n \n\n \n \n\n \n Stephane COLSON\n \n \n \n\n\n \n\n\n \t\n \tVotes:\n\t\n \n 0\n \n \n \n\n\n \tWatchers:\n\t\n \n \n 1\n \n \n \n\n \n \n Stop watching this issue \n \n\n\n \n\n\n\n\n\nDates\n\n\t\n \tCreated:\n\t\n\n \n 4 hours ago \n \n\n\n \tUpdated:\n\t\n\n \n 4 hours ago \n \n\n\n \n\n\n\n\n\nDevelopment\n\n\n\n\n\t\t\n\n1 branch\n\n\n\tUpdated 33 minutes ago\n\n\n\n\n\n\t\n\t\t\n\n1 pull request OPEN\n\n\n\tUpdated 33 minutes ago\n\n\n\n\n\n\t\n\t\n\t\n\n\tCreate branch\n\t\n\t\n\n\n\n\nAgile\n\n\n\n\t\n \n View on Board\n \n \n\n\n\n\n\nIssue deployment\n\n\n\n\n\n\n\n\n\n \n\n \n\n \n\n\n \n \n \n \n\n\n\n\n\n\t\n Atlassian JIRA Project Management Software\n\n \n \n (v6.4.5#64020-sha1:78acd6c)\n \n\t\n About JIRA\n \n\t\n Report a problem\n \n\n\n \t\n Powered by a free Atlassian JIRA open source license for OpenPaas. Try JIRA - bug tracking software for your team.\n\n \n\n\n\n\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\n\n\n\n Atlassian\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","isRecent":true,"isUnread":true,"isFlagged":false,"isAnswered":false,"isDraft":false,"isDeleted":false,"hasAttachment":true}]}] on [[mailbox][0]]
james_elastic_1 | MapperParsingException[Field name [ajs-jira.issues.preferred.layout.key] cannot contain '.']
james_elastic_1 | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseProperties(ObjectMapper.java:276)
james_elastic_1 | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseObjectOrDocumentTypeProperties(ObjectMapper.java:221)
james_elastic_1 | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parse(ObjectMapper.java:196)
james_elastic_1 | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseProperties(ObjectMapper.java:308)
james_elastic_1 | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseObjectOrDocumentTypeProperties(ObjectMapper.java:221)
james_elastic_1 | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parse(ObjectMapper.java:196)
james_elastic_1 | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseProperties(ObjectMapper.java:308)
james_elastic_1 | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseObjectOrDocumentTypeProperties(ObjectMapper.java:221)
james_elastic_1 | at org.elasticsearch.index.mapper.object.RootObjectMapper$TypeParser.parse(RootObjectMapper.java:138)
james_elastic_1 | at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:119)
james_elastic_1 | at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:100)
james_elastic_1 | at org.elasticsearch.index.mapper.MapperService.parse(MapperService.java:435)
james_elastic_1 | at org.elasticsearch.cluster.metadata.MetaDataMappingService$PutMappingExecutor.applyRequest(MetaDataMappingService.java:257)
james_elastic_1 | at org.elasticsearch.cluster.metadata.MetaDataMappingService$PutMappingExecutor.execute(MetaDataMappingService.java:230)
james_elastic_1 | at org.elasticsearch.cluster.service.InternalClusterService.runTasksForExecutor(InternalClusterService.java:458)
james_elastic_1 | at org.elasticsearch.cluster.service.InternalClusterService$UpdateTask.run(InternalClusterService.java:762)
james_elastic_1 | at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.runAndClean(PrioritizedEsThreadPoolExecutor.java:231)
james_elastic_1 | at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:194)
james_elastic_1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
james_elastic_1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
james_elastic_1 | at java.lang.Thread.run(Thread.java:745)
esn_james | 13:58:22.135 [ERROR] o.a.j.m.e.e.ElasticSearchListeningMessageSearchIndex - Error when indexing message 1
esn_james | org.elasticsearch.index.mapper.MapperParsingException: Field name [ajs-jira.issues.preferred.layout.key] cannot contain '.'
esn_james | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseProperties(ObjectMapper.java:276)
esn_james | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseObjectOrDocumentTypeProperties(ObjectMapper.java:221)
esn_james | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parse(ObjectMapper.java:196)
esn_james | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseProperties(ObjectMapper.java:308)
esn_james | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseObjectOrDocumentTypeProperties(ObjectMapper.java:221)
esn_james | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parse(ObjectMapper.java:196)
esn_james | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseProperties(ObjectMapper.java:308)
esn_james | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseObjectOrDocumentTypeProperties(ObjectMapper.java:221)
esn_james | at org.elasticsearch.index.mapper.object.RootObjectMapper$TypeParser.parse(RootObjectMapper.java:138)
esn_james | at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:119)
esn_james | at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:100)
esn_james | at org.elasticsearch.index.mapper.MapperService.parse(MapperService.java:435)
esn_james | at org.elasticsearch.cluster.metadata.MetaDataMappingService$PutMappingExecutor.applyRequest(MetaDataMappingService.java:257)
esn_james | at org.elasticsearch.cluster.metadata.MetaDataMappingService$PutMappingExecutor.execute(MetaDataMappingService.java:230)
esn_james | at org.elasticsearch.cluster.service.InternalClusterService.runTasksForExecutor(InternalClusterService.java:458)
esn_james | at org.elasticsearch.cluster.service.InternalClusterService$UpdateTask.run(InternalClusterService.java:762)
esn_james | at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.runAndClean(PrioritizedEsThreadPoolExecutor.java:231)
esn_james | at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:194)
esn_james | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
esn_james | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
esn_james | at java.lang.Thread.run(Thread.java:745)
esn_james | 13:58:22.136 [INFO ] o.a.j.m.i.JamesMailetContext - Local delivered mail [email protected]|Outbox|1 sucessfully from [email protected] to [email protected] in folder INBOX
james_elastic_1 | [2016-07-13 13:58:22,679][DEBUG][action.admin.indices.mapping.put] [Tartarus] failed to put mappings on indices [[mailbox]], type [message]
james_elastic_1 | MapperParsingException[Field name [ajs-jira.issues.preferred.layout.key] cannot contain '.']
james_elastic_1 | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseProperties(ObjectMapper.java:276)
james_elastic_1 | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseObjectOrDocumentTypeProperties(ObjectMapper.java:221)
james_elastic_1 | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parse(ObjectMapper.java:196)
james_elastic_1 | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseProperties(ObjectMapper.java:308)
james_elastic_1 | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseObjectOrDocumentTypeProperties(ObjectMapper.java:221)
james_elastic_1 | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parse(ObjectMapper.java:196)
james_elastic_1 | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseProperties(ObjectMapper.java:308)
james_elastic_1 | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseObjectOrDocumentTypeProperties(ObjectMapper.java:221)
james_elastic_1 | at org.elasticsearch.index.mapper.object.RootObjectMapper$TypeParser.parse(RootObjectMapper.java:138)
james_elastic_1 | at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:119)
james_elastic_1 | at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:100)
james_elastic_1 | at org.elasticsearch.index.mapper.MapperService.parse(MapperService.java:435)
james_elastic_1 | at org.elasticsearch.cluster.metadata.MetaDataMappingService$PutMappingExecutor.applyRequest(MetaDataMappingService.java:257)
james_elastic_1 | at org.elasticsearch.cluster.metadata.MetaDataMappingService$PutMappingExecutor.execute(MetaDataMappingService.java:230)
james_elastic_1 | at org.elasticsearch.cluster.service.InternalClusterService.runTasksForExecutor(InternalClusterService.java:458)
james_elastic_1 | at org.elasticsearch.cluster.service.InternalClusterService$UpdateTask.run(InternalClusterService.java:762)
james_elastic_1 | at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.runAndClean(PrioritizedEsThreadPoolExecutor.java:231)
james_elastic_1 | at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:194)
james_elastic_1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
james_elastic_1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
james_elastic_1 | at java.lang.Thread.run(Thread.java:745)
james_elastic_1 | [2016-07-13 13:58:22,681][DEBUG][action.index ] [Tartarus] failed to execute [index {[mailbox][message][a678fa40-4901-11e6-83b6-2b97d605aec1:1], source[{"id":1,"mailboxId":"a678fa40-4901-11e6-83b6-2b97d605aec1","modSeq":1,"size":128132,"date":"2016-07-13T13:58:20+0000","mediaType":null,"subtype":null,"userFlags":[],"headers":{"mime-version":["1.0"],"date":["Wed, 13 Jul 2016 13:58:20 +0000"],"sender":["[email protected]"],"subject":["test .html complexe"],"message-id":["1468418299705"],"content-type":["multipart/mixed; boundary="-=Part.0.7ca8ee1915e22c8c.155e48d1913.9d42bb4745b9184b=-""],"from":["[email protected]"],"to":["John6 Doe6 [email protected]"]},"from":[{"name":"[email protected]","address":"[email protected]"}],"to":[{"name":"John6 Doe6","address":"[email protected]"}],"cc":[],"bcc":[],"replyTo":[],"subject":["test .html complexe"],"sentDate":"2016-07-13T13:58:20+0000","properties":[],"attachments":[{"mediaType":"text","subtype":"html","fileName":null,"fileExtension":null,"contentDisposition":"attachment","fileMetadata":{"ajs-server-view-issue-is-editable":["true"],"ajs-issue-key":["OR-2349"],"ajs-dev-mode":["false"],"ajs-is-inline-edit-enabled":["true"],"ajs-can-search-users":["true"],"ajs-remote-user":["scolson"],"ajs-keyboard-shortcuts-enabled":["true"],"dc:title":["[OR-2349] Docker-compose doesn't activate attachments and dwld/upld url are wrongly populated - OpenPaas-Linagora"],"Content-Encoding":["UTF-8"],"ajs-viewissue-max-cache-size":[""],"ajs-view-issue-trace-key":["jira.issue.refreshed"],"ajs-context-path":["/jira"],"ajs-build-number":["64020"],"ajs-is-sysadmin":["true"],"application-name":["JIRA"],"ajs-date-dmy":["dd/MMM/yy"],"ajs-date-relativize":["true"],"ajs-outgoing-mail-enabled":["true"],"ajs-advanced-search-help-url":["https://docs.atlassian.com/jira/docs-064/Advanced+Searching"],"ajs-view-issue-psycho-key":["jira.psycho.issue.refreshed"],"ajs-date-time":["h:mm a"],"ajs-can-edit-watchers":["true"],"ajs-advanced-search-help-title":["Performing Advanced Searches"],"ajs-enabled-dark-features":["["com.atlassian.jira.projects.issuenavigator","com.atlassian.jira.projects.ProjectCentricNavigation.Switch","jira.plugin.devstatus.phasetwo.enabled","com.atlassian.jira.config.PDL","jira.frother.reporter.field","jira.plugin.devstatus.phasetwo","com.atlassian.jira.darkfeature.CommonHeader","app-switcher.new","frother.assignee.field","jira.issue.status.lozenge"]"],"ajs-in-admin-mode":["false"],"ajs-autocomplete-enabled":["true"],"ajs-serverRenderedViewIssue":["true"],"ajs-max-recent-searchers":["10"],"decorator":["atl.general"],"ajs-remote-user-fullname":["Stephane COLSON"],"ajs-is-rc":["false"],"title":["[OR-2349] Docker-compose doesn't activate attachments and dwld/upld url are wrongly populated - OpenPaas-Linagora"],"ajs-date-day":["EEEE h:mm a"],"isNavigator":["true"],"ajs-return-to-search-trace-key":["jira.returned.to.search"],"ajs-issue-search-help-url":["https://docs.atlassian.com/jira/docs-064/Searching+for+Issues"],"Content-Type-Hint":["text/html; charset=UTF-8"],"ajs-user-locale-group-separator":[","],"ajs-admin-quicksearch-show":["true"],"ajs-is-milestone":["false"],"atlassian-token":["BE2F-79PL-H8QS-2STB|99bf85b35fda4cb18ee69314eef5a1392be0a3d3|lin"],"Content-Type":["text/html; charset=UTF-8"],"ajs-viewissue-use-history-api":["false"],"ajs-user-locale":["en_US"],"ajs-date-complete":["dd/MMM/yy h:mm a"],"ajs-user.search.mode":["basic"],"ajs-issue-search-help-title":["Searching for Issues"],"X-Parsed-By":["org.apache.tika.parser.DefaultParser","org.apache.tika.parser.html.HtmlParser"],"ajs-keyboard-accesskey-modifier":["Alt+Shift"],"ajs-view-issue-refreshed-cached-key":["jira.psycho.issue.refreshed.cached"],"ajs-is-beta":["false"],"ajs-app-title":["OpenPaas-Linagora"],"ajs-default-avatar-url":["https://ci.open-paas.org/jira/secure/useravatar?size=xsmall&avatarId=10123","https://ci.open-paas.org/jira/secure/useravatar?size=xsmall&avatarId=10123"],"ajs-return-to-search-psycho-key":["jira.psycho.returned.to.search"],"ajs-is-admin":["true"],"X-UA-Compatible":["IE=Edge"],"ajs-hasCriteriaAutoUpdate":["true"],"ajs-version-number":["6.4.5"],"ajs-is-snapshot":["false"],"ajs-jira.issues.preferred.layout.key":["split-view"],"ajs-jira-base-url":["https://ci.open-paas.org/jira"],"ajs-remote-user-avatar-url":["https://ci.open-paas.org/jira/secure/useravatar?avatarId=10111"]},"textContent":"\n\n \n \n \n \n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n \n\n\n\n\n \n \n \n \n\n\nLinked Applications\tOpenPaas-Linagora\n\tStash - OpenPaas\n\tJenkins - OpenPaas\n\n\n\tConfigure…\n\n\n\n\n\n\tDashboards\n\n\tProjects\n\n\tIssues\n\n\tAgile\n\n\tMore\n\n\n\n\tCreate\n\n\n\t\n \n \n \n \n\n\n\t\n Help\n \n \n \t\n Online Help\n \n\t\n JIRA Agile Help\n \n\t\n Keyboard Shortcuts\n \n\t\n About JIRA\n \n\t\n JIRA Credits\n \n\n\n \n\n \n\n \n\t\n Administration\n \n \n JIRA administration\n \t\n Projects\n \n\t\n Issues\n \n\t\n User management\n \n\t\n System\n \n\t\n Add-ons\n \n\n\n \n\n \n\n\n\t\n \n \n \n \n \n \n \n \n \n \t\n Profile\n \n\t\n Atlassian Marketplace\n \n\n\n \n\n \n My JIRA Home\n \t\n Dashboard\n \n\t\n Agile\n \n\t\n Issue Navigator\n \n\n\n \n\n \n \t\n Disable new project navigation\n \n\t\n Log Out\n \n\n\n \n\n \n\n \n\n\n\n\n \n \n\n\n\n \n\n \n\n \n \n \n \n\tOpenPaaS RSE\n\tOR-2349\n\nDocker-compose doesn't activate attachments and dwld/upld url are wrongly populated\n\n\n\n\n\t Edit\n\n\t Comment\n\n\tAssign\n\tMore\tAgile Board\n\tRank to Top\n\tRank to Bottom\n\n\tLog Work\n\n\tAttach Files\n\tAttach Screenshot\n\tAdd Drawio Diagram\n\n\tVoters\n\tStop Watching\n\tWatchers\n\n\tCreate Sub-Task\n\tConvert to Sub-Task\n\n\tCreate branch\n\n\tMove\n\tLink\n\tClone\n\tLabels\n\n\tDelete\n\n\n\n\n\n\tStop Progress\n\tResolve Issue\n\tClose Issue\n\n\tAdmin\tAdd field\n\n\tWhere is my field?\n\tPermission Helper\n\tNotification Helper\n\n\n\n\n\n\n\t \n\t Export\tXML\n\tWord\n\tPrintable\n\n\n\n\n\n\n\n\n\n\n\n \n \n \nDetails\n\n\n\n\n\n\n\t\n \n Type:\n \n Bug\n \n \n\n \n\t\n \n Status:\n \n Progressing \n (View Workflow)\n \n\n \n\t\n \n Priority:\n \n Major\n \n \n\n \n\t\n \n Resolution:\n \n Unresolved\n \n \n\n \n\t\n \n Affects Version/s:\n \n None\n \n \n\n \n\t\n \n Fix Version/s:\n \n None\n \n \n\n \n\t\n \n Component/s:\n \n None\n \n \n\n \n\t\n \n Labels:\n \n None\n Labels\n \n\n \n\n \n\n\n\n\n \n \n \t\n \n Rank (Obsolete):\n \n 9223372036854775807\n \n \n\n \n\n \n\t\n \n Acceptance Criteria:\n \n \n \n 0/1Hide checkedShow checked\n\n\n\n \nTested\n\n\n\n\n \n\n \n show more\n show less\n \n \n\n \n\n \n \n \n \n \n\n \n\n\n \n \n \n \n\n \n\n \n\n\n \n\n \n\n\n\n\n\nDescription\n\n\n \n \n {\n "name" : "uploadUrl",\n "value" : "http://10.69.0.163:1080/jmap/upload",\n "_id" : ObjectId("5785f85cd7f4033c00fc606d")\n }, \n {\n "name" : "downloadUrl",\n "value" : "http://10.69.0.163:1080/jmap/download",\n "_id" : ObjectId("5785f85cd7f4033c00fc606c")\n }, \n\n\n\n\n\n\nshould be replaced with \n\n\n {\n "name" : "uploadUrl",\n "value" : "http://10.69.0.163:1080/upload",\n "_id" : ObjectId("5785f85cd7f4033c00fc606d")\n }, \n {\n "name" : "downloadUrl",\n "value" : "http://10.69.0.163:1080/download",\n "_id" : ObjectId("5785f85cd7f4033c00fc606c")\n }, \n {\n "name" : "composer.attachments",\n "value" : true\n }\n\n\n\n\n\n\n \n\n\n\n\n\n\nActivity\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n \t\n All\n \n\t\n Comments\n \n\t\n Work Log\n \n\t\n History\n \n\t\n Activity\n \n\n\n\n \n\n \n \n\n \n \n There are no comments yet on this issue.\n\n \n\n \n\n\n\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n \n \n \n \n \n Comment\n \n\n \tParagraph\n\tHeading 1\n\tHeading 2\n\tHeading 3\n\tHeading 4\n\tHeading 5\n\tHeading 6\n\tPreformatted\n\tParagraph quote\n\tBlock quote\n\n\n\n\tStrikethrough\n\tSuperscript\n\tSubscript\n\tCitation\n\n\n\n\tExternal link\n\tMail link\n\tAnchor link\n\tAttachment link\n\n\nAttachment link\t\n\n\n\n\tExternal image\n\tAttached image\n\n\nAttached image\t\n\n\n\n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\n\n\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\n\n\n\tUser mention\n\tTable\n\tCode\n\tPreformatted\n\tPanel\n\tHorizontal ruler\n\n\n\nStyle\nBoldItalicUnderlineText colorMore colorsMore\nLinkImage\nBullet listNumbered list\nIconsOther\nLock / Unlock\n\n\n\n\n\n \n \n \n\n \n\n\n\n\n \n Preview comment\n \n\n\n\n \n \n \n \n \n\n \n \n \n This comment will be Viewable by All Users\n \n \n \n\n\n\nAll Users\nAdministrators\nDevelopers\nUsers\n\n\n Viewable by All Users\n \n\n \n\n \n \n\n \n \n \n Cancel\n \n\n \n\n \n\n \n\n \n \t\n \n \n Comment\n \n \n\n\n \n\n\n\n\n\n\n\n\nPeople\n\n\t\n \tAssignee:\n\t\n \n\n \n \n\n \n Stephane COLSON\n \n \n \n\n\n \tReporter:\n\t\n \n\n \n \n\n \n Stephane COLSON\n \n \n \n\n\n \n\n\n \t\n \tVotes:\n\t\n \n 0\n \n \n \n\n\n \tWatchers:\n\t\n \n \n 1\n \n \n \n\n \n \n Stop watching this issue \n \n\n\n \n\n\n\n\n\nDates\n\n\t\n \tCreated:\n\t\n\n \n 4 hours ago \n \n\n\n \tUpdated:\n\t\n\n \n 4 hours ago \n \n\n\n \n\n\n\n\n\nDevelopment\n\n\n\n\n\t\t\n\n1 branch\n\n\n\tUpdated 33 minutes ago\n\n\n\n\n\n\t\n\t\t\n\n1 pull request OPEN\n\n\n\tUpdated 33 minutes ago\n\n\n\n\n\n\t\n\t\n\t\n\n\tCreate branch\n\t\n\t\n\n\n\n\nAgile\n\n\n\n\t\n \n View on Board\n \n \n\n\n\n\n\nIssue deployment\n\n\n\n\n\n\n\n\n\n \n\n \n\n \n\n\n \n \n \n \n\n\n\n\n\n\t\n Atlassian JIRA Project Management Software\n\n \n \n (v6.4.5#64020-sha1:78acd6c)\n \n\t\n About JIRA\n \n\t\n Report a problem\n \n\n\n \t\n Powered by a free Atlassian JIRA open source license for OpenPaas. Try JIRA - bug tracking software for your team.\n\n \n\n\n\n\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\n\n\n\n Atlassian\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","headers":{"content-disposition":["attachment"],"content-transfer-encoding":["base64"],"content-type":["text/html; name=test.html"]}}],"textBody":"\n\n \n \n \n \n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n \n\n\n\n\n \n \n \n \n\n\nLinked Applications\tOpenPaas-Linagora\n\tStash - OpenPaas\n\tJenkins - OpenPaas\n\n\n\tConfigure…\n\n\n\n\n\n\tDashboards\n\n\tProjects\n\n\tIssues\n\n\tAgile\n\n\tMore\n\n\n\n\tCreate\n\n\n\t\n \n \n \n \n\n\n\t\n Help\n \n \n \t\n Online Help\n \n\t\n JIRA Agile Help\n \n\t\n Keyboard Shortcuts\n \n\t\n About JIRA\n \n\t\n JIRA Credits\n \n\n\n \n\n \n\n \n\t\n Administration\n \n \n JIRA administration\n \t\n Projects\n \n\t\n Issues\n \n\t\n User management\n \n\t\n System\n \n\t\n Add-ons\n \n\n\n \n\n \n\n\n\t\n \n \n \n \n \n \n \n \n \n \t\n Profile\n \n\t\n Atlassian Marketplace\n \n\n\n \n\n \n My JIRA Home\n \t\n Dashboard\n \n\t\n Agile\n \n\t\n Issue Navigator\n \n\n\n \n\n \n \t\n Disable new project navigation\n \n\t\n Log Out\n \n\n\n \n\n \n\n \n\n\n\n\n \n \n\n\n\n \n\n \n\n \n \n \n \n\tOpenPaaS RSE\n\tOR-2349\n\nDocker-compose doesn't activate attachments and dwld/upld url are wrongly populated\n\n\n\n\n\t Edit\n\n\t Comment\n\n\tAssign\n\tMore\tAgile Board\n\tRank to Top\n\tRank to Bottom\n\n\tLog Work\n\n\tAttach Files\n\tAttach Screenshot\n\tAdd Drawio Diagram\n\n\tVoters\n\tStop Watching\n\tWatchers\n\n\tCreate Sub-Task\n\tConvert to Sub-Task\n\n\tCreate branch\n\n\tMove\n\tLink\n\tClone\n\tLabels\n\n\tDelete\n\n\n\n\n\n\tStop Progress\n\tResolve Issue\n\tClose Issue\n\n\tAdmin\tAdd field\n\n\tWhere is my field?\n\tPermission Helper\n\tNotification Helper\n\n\n\n\n\n\n\t \n\t Export\tXML\n\tWord\n\tPrintable\n\n\n\n\n\n\n\n\n\n\n\n \n \n \nDetails\n\n\n\n\n\n\n\t\n \n Type:\n \n Bug\n \n \n\n \n\t\n \n Status:\n \n Progressing \n (View Workflow)\n \n\n \n\t\n \n Priority:\n \n Major\n \n \n\n \n\t\n \n Resolution:\n \n Unresolved\n \n \n\n \n\t\n \n Affects Version/s:\n \n None\n \n \n\n \n\t\n \n Fix Version/s:\n \n None\n \n \n\n \n\t\n \n Component/s:\n \n None\n \n \n\n \n\t\n \n Labels:\n \n None\n Labels\n \n\n \n\n \n\n\n\n\n \n \n \t\n \n Rank (Obsolete):\n \n 9223372036854775807\n \n \n\n \n\n \n\t\n \n Acceptance Criteria:\n \n \n \n 0/1Hide checkedShow checked\n\n\n\n \nTested\n\n\n\n\n \n\n \n show more\n show less\n \n \n\n \n\n \n \n \n \n \n\n \n\n\n \n \n \n \n\n \n\n \n\n\n \n\n \n\n\n\n\n\nDescription\n\n\n \n \n {\n "name" : "uploadUrl",\n "value" : "http://10.69.0.163:1080/jmap/upload",\n "_id" : ObjectId("5785f85cd7f4033c00fc606d")\n }, \n {\n "name" : "downloadUrl",\n "value" : "http://10.69.0.163:1080/jmap/download",\n "_id" : ObjectId("5785f85cd7f4033c00fc606c")\n }, \n\n\n\n\n\n\nshould be replaced with \n\n\n {\n "name" : "uploadUrl",\n "value" : "http://10.69.0.163:1080/upload",\n "_id" : ObjectId("5785f85cd7f4033c00fc606d")\n }, \n {\n "name" : "downloadUrl",\n "value" : "http://10.69.0.163:1080/download",\n "_id" : ObjectId("5785f85cd7f4033c00fc606c")\n }, \n {\n "name" : "composer.attachments",\n "value" : true\n }\n\n\n\n\n\n\n \n\n\n\n\n\n\nActivity\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n \t\n All\n \n\t\n Comments\n \n\t\n Work Log\n \n\t\n History\n \n\t\n Activity\n \n\n\n\n \n\n \n \n\n \n \n There are no comments yet on this issue.\n\n \n\n \n\n\n\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n \n \n \n \n \n Comment\n \n\n \tParagraph\n\tHeading 1\n\tHeading 2\n\tHeading 3\n\tHeading 4\n\tHeading 5\n\tHeading 6\n\tPreformatted\n\tParagraph quote\n\tBlock quote\n\n\n\n\tStrikethrough\n\tSuperscript\n\tSubscript\n\tCitation\n\n\n\n\tExternal link\n\tMail link\n\tAnchor link\n\tAttachment link\n\n\nAttachment link\t\n\n\n\n\tExternal image\n\tAttached image\n\n\nAttached image\t\n\n\n\n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\n\n\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\n\n\n\tUser mention\n\tTable\n\tCode\n\tPreformatted\n\tPanel\n\tHorizontal ruler\n\n\n\nStyle\nBoldItalicUnderlineText colorMore colorsMore\nLinkImage\nBullet listNumbered list\nIconsOther\nLock / Unlock\n\n\n\n\n\n \n \n \n\n \n\n\n\n\n \n Preview comment\n \n\n\n\n \n \n \n \n \n\n \n \n \n This comment will be Viewable by All Users\n \n \n \n\n\n\nAll Users\nAdministrators\nDevelopers\nUsers\n\n\n Viewable by All Users\n \n\n \n\n \n \n\n \n \n \n Cancel\n \n\n \n\n \n\n \n\n \n \t\n \n \n Comment\n \n \n\n\n \n\n\n\n\n\n\n\n\nPeople\n\n\t\n \tAssignee:\n\t\n \n\n \n \n\n \n Stephane COLSON\n \n \n \n\n\n \tReporter:\n\t\n \n\n \n \n\n \n Stephane COLSON\n \n \n \n\n\n \n\n\n \t\n \tVotes:\n\t\n \n 0\n \n \n \n\n\n \tWatchers:\n\t\n \n \n 1\n \n \n \n\n \n \n Stop watching this issue \n \n\n\n \n\n\n\n\n\nDates\n\n\t\n \tCreated:\n\t\n\n \n 4 hours ago \n \n\n\n \tUpdated:\n\t\n\n \n 4 hours ago \n \n\n\n \n\n\n\n\n\nDevelopment\n\n\n\n\n\t\t\n\n1 branch\n\n\n\tUpdated 33 minutes ago\n\n\n\n\n\n\t\n\t\t\n\n1 pull request OPEN\n\n\n\tUpdated 33 minutes ago\n\n\n\n\n\n\t\n\t\n\t\n\n\tCreate branch\n\t\n\t\n\n\n\n\nAgile\n\n\n\n\t\n \n View on Board\n \n \n\n\n\n\n\nIssue deployment\n\n\n\n\n\n\n\n\n\n \n\n \n\n \n\n\n \n \n \n \n\n\n\n\n\n\t\n Atlassian JIRA Project Management Software\n\n \n \n (v6.4.5#64020-sha1:78acd6c)\n \n\t\n About JIRA\n \n\t\n Report a problem\n \n\n\n \t\n Powered by a free Atlassian JIRA open source license for OpenPaas. Try JIRA - bug tracking software for your team.\n\n \n\n\n\n\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\n\n\n\n Atlassian\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","isRecent":true,"isUnread":false,"isFlagged":false,"isAnswered":false,"isDraft":false,"isDeleted":false,"hasAttachment":true}]}] on [[mailbox][0]]
james_elastic_1 | MapperParsingException[Field name [ajs-jira.issues.preferred.layout.key] cannot contain '.']
james_elastic_1 | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseProperties(ObjectMapper.java:276)
james_elastic_1 | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseObjectOrDocumentTypeProperties(ObjectMapper.java:221)
james_elastic_1 | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parse(ObjectMapper.java:196)
james_elastic_1 | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseProperties(ObjectMapper.java:308)
james_elastic_1 | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseObjectOrDocumentTypeProperties(ObjectMapper.java:221)
james_elastic_1 | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parse(ObjectMapper.java:196)
james_elastic_1 | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseProperties(ObjectMapper.java:308)
james_elastic_1 | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseObjectOrDocumentTypeProperties(ObjectMapper.java:221)
james_elastic_1 | at org.elasticsearch.index.mapper.object.RootObjectMapper$TypeParser.parse(RootObjectMapper.java:138)
james_elastic_1 | at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:119)
james_elastic_1 | at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:100)
james_elastic_1 | at org.elasticsearch.index.mapper.MapperService.parse(MapperService.java:435)
james_elastic_1 | at org.elasticsearch.cluster.metadata.MetaDataMappingService$PutMappingExecutor.applyRequest(MetaDataMappingService.java:257)
james_elastic_1 | at org.elasticsearch.cluster.metadata.MetaDataMappingService$PutMappingExecutor.execute(MetaDataMappingService.java:230)
james_elastic_1 | at org.elasticsearch.cluster.service.InternalClusterService.runTasksForExecutor(InternalClusterService.java:458)
james_elastic_1 | at org.elasticsearch.cluster.service.InternalClusterService$UpdateTask.run(InternalClusterService.java:762)
james_elastic_1 | at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.runAndClean(PrioritizedEsThreadPoolExecutor.java:231)
james_elastic_1 | at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:194)
james_elastic_1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
james_elastic_1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
james_elastic_1 | at java.lang.Thread.run(Thread.java:745)
esn_james | 13:58:22.706 [ERROR] o.a.j.m.e.e.ElasticSearchListeningMessageSearchIndex - Error when indexing message 1
esn_james | org.elasticsearch.index.mapper.MapperParsingException: Field name [ajs-jira.issues.preferred.layout.key] cannot contain '.'
esn_james | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseProperties(ObjectMapper.java:276)
esn_james | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseObjectOrDocumentTypeProperties(ObjectMapper.java:221)
esn_james | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parse(ObjectMapper.java:196)
esn_james | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseProperties(ObjectMapper.java:308)
esn_james | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseObjectOrDocumentTypeProperties(ObjectMapper.java:221)
esn_james | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parse(ObjectMapper.java:196)
esn_james | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseProperties(ObjectMapper.java:308)
esn_james | at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseObjectOrDocumentTypeProperties(ObjectMapper.java:221)
esn_james | at org.elasticsearch.index.mapper.object.RootObjectMapper$TypeParser.parse(RootObjectMapper.java:138)
esn_james | at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:119)
esn_james | at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:100)
esn_james | at org.elasticsearch.index.mapper.MapperService.parse(MapperService.java:435)
esn_james | at org.elasticsearch.cluster.metadata.MetaDataMappingService$PutMappingExecutor.applyRequest(MetaDataMappingService.java:257)
esn_james | at org.elasticsearch.cluster.metadata.MetaDataMappingService$PutMappingExecutor.execute(MetaDataMappingService.java:230)
esn_james | at org.elasticsearch.cluster.service.InternalClusterService.runTasksForExecutor(InternalClusterService.java:458)
esn_james | at org.elasticsearch.cluster.service.InternalClusterService$UpdateTask.run(InternalClusterService.java:762)
esn_james | at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.runAndClean(PrioritizedEsThreadPoolExecutor.java:231)
esn_james | at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:194)
esn_james | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
esn_james | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
esn_james | at java.lang.Thread.run(Thread.java:745)

ClosedChannelException is raised for emails that are unauthenticated and restricted

I am running a slightly modified James Server (SPFHandler). Sometimes, when processing the email, ClosedChannelException is raised for emails processed (unauthenticated and restricted):

DEBUG 05:42:27,051 | james.smtpserver | Id='435381597' User='' org.apache.james.protocols.smtp.core.esmtp.EhloCmdHandler: [250-1fire.pitagoral.com Hello 126.com [218.26.205.31]), 250-AUTH LOGIN PLAIN, 250-AUTH=LOGIN PLAIN, 250-PIPELINING, 250-ENHANCEDSTATUSCODES, 250-8BITMIME, 250 STARTTLS]
DEBUG 05:42:27,515 | james.smtpserver | Id='435381597' User='' org.apache.james.protocols.api.handler.CommandDispatcher received: RSET
DEBUG 05:42:27,517 | james.smtpserver | Id='435381597' User='' Lookup command handler for command: RSET
DEBUG 05:42:27,517 | james.smtpserver | Id='435381597' User='' org.apache.james.protocols.smtp.core.RsetCmdHandler: org.apache.james.protocols.api.AbstractResponse$1@51386045
DEBUG 05:42:27,970 | james.smtpserver | Id='435381597' User='' org.apache.james.protocols.api.handler.CommandDispatcher received: MAIL
DEBUG 05:42:27,971 | james.smtpserver | Id='435381597' User='' Lookup command handler for command: MAIL
DEBUG 05:42:27,972 | james.smtpserver | Id='435381597' User='' executing hook org.apache.james.smtpserver.fastfail.SPFHandler
INFO  05:42:27,972 | james.smtpserver | Id='435381597' User='' No Sender or HELO/EHLO present
DEBUG 05:42:27,972 | james.smtpserver | Id='435381597' User='' executing hook org.apache.james.protocols.smtp.core.log.HookResultLogger@7a2cfe18
DEBUG 05:42:27,972 | james.smtpserver | Id='435381597' User='' org.apache.james.smtpserver.fastfail.SPFHandler: result=8 (DECLINED)
DEBUG 05:42:27,972 | james.smtpserver | Id='435381597' User='' executing hook org.apache.james.smtpserver.jmx.HookResultJMXMonitor@780f72e1
DEBUG 05:42:27,972 | james.smtpserver | Id='435381597' User='' executing hook org.apache.james.smtpserver.fastfail.ValidSenderDomainHandler
DEBUG 05:42:27,976 | james.smtpserver | Id='435381597' User='' executing hook org.apache.james.protocols.smtp.core.log.HookResultLogger@7a2cfe18
DEBUG 05:42:27,976 | james.smtpserver | Id='435381597' User='' org.apache.james.smtpserver.fastfail.ValidSenderDomainHandler: result=8 (DECLINED)
DEBUG 05:42:27,976 | james.smtpserver | Id='435381597' User='' executing hook org.apache.james.smtpserver.jmx.HookResultJMXMonitor@780f72e1
DEBUG 05:42:27,977 | james.smtpserver | Id='435381597' User='' org.apache.james.smtpserver.JamesMailCmdHandler: [250 2.1.0 Sender <[email protected]> OK]
DEBUG 05:42:28,453 | james.smtpserver | Id='435381597' User='' org.apache.james.protocols.api.handler.CommandDispatcher received: RCPT
DEBUG 05:42:28,454 | james.smtpserver | Id='435381597' User='' Lookup command handler for command: RCPT
DEBUG 05:42:28,459 | james.smtpserver | Id='435381597' User='' executing hook org.apache.james.smtpserver.fastfail.DNSRBLHandler
INFO  05:42:28,604 | james.smtpserver | Id='435381597' User='' Connection from 218.26.205.31 restricted by zen.spamhaus.org. to SMTP AUTH/postmaster/abuse.
DEBUG 05:42:28,606 | james.smtpserver | Id='435381597' User='' executing hook org.apache.james.protocols.smtp.core.log.HookResultLogger@7a2cfe18
INFO  05:42:28,606 | james.smtpserver | Id='435381597' User='' org.apache.james.smtpserver.fastfail.DNSRBLHandler: result=2 (DENY)
DEBUG 05:42:28,606 | james.smtpserver | Id='435381597' User='' executing hook org.apache.james.smtpserver.jmx.HookResultJMXMonitor@780f72e1
DEBUG 05:42:28,606 | james.smtpserver | Id='435381597' User='' org.apache.james.smtpserver.JamesRcptCmdHandler: [554 5.7.1 Rejected: unauthenticated e-mail from /218.26.205.31 is restricted.  Contact the postmaster for details.]
DEBUG 05:42:29,084 | james.smtpserver | Id='435381597' User='' org.apache.james.protocols.api.handler.CommandDispatcher received: QUIT
DEBUG 05:42:29,085 | james.smtpserver | Id='435381597' User='' Lookup command handler for command: QUIT
DEBUG 05:42:29,085 | james.smtpserver | Id='435381597' User='' org.apache.james.protocols.smtp.core.QuitCmdHandler: [221 2.0.0 1fire.pitagoral.com Service closing transmission channel]
INFO  05:42:29,085 | james.smtpserver | Id='435381597' User='' Connection closed for 218.26.205.31
INFO  05:42:29,085 | james.smtpserver | Id='435381597' User='' Connection closed for 218.26.205.31
DEBUG 05:42:29,087 | james.smtpserver | Id='435381597' User='' Unable to process request
java.nio.channels.ClosedChannelException
        at org.jboss.netty.handler.stream.ChunkedWriteHandler.discard(ChunkedWriteHandler.java:168)
        at org.jboss.netty.handler.stream.ChunkedWriteHandler.flush(ChunkedWriteHandler.java:192)
        at org.jboss.netty.handler.stream.ChunkedWriteHandler.handleDownstream(ChunkedWriteHandler.java:121)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendDownstream(DefaultChannelPipeline.java:591)
        at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendDownstream(DefaultChannelPipeline.java:784)
        at org.jboss.netty.handler.execution.ExecutionHandler.handleDownstream(ExecutionHandler.java:176)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendDownstream(DefaultChannelPipeline.java:591)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendDownstream(DefaultChannelPipeline.java:582)
        at org.jboss.netty.channel.Channels.write(Channels.java:704)
        at org.jboss.netty.channel.Channels.write(Channels.java:671)
        at org.jboss.netty.channel.AbstractChannel.write(AbstractChannel.java:348)
        at org.apache.james.protocols.netty.NettyProtocolTransport.writeToClient(NettyProtocolTransport.java:116)
        at org.apache.james.protocols.api.AbstractProtocolTransport.writeResponseToClient(AbstractProtocolTransport.java:150)
        at org.apache.james.protocols.api.AbstractProtocolTransport.writeResponse(AbstractProtocolTransport.java:67)
        at org.apache.james.protocols.netty.BasicChannelUpstreamHandler.messageReceived(BasicChannelUpstreamHandler.java:156)
        at org.apache.james.smtpserver.netty.SMTPChannelUpstreamHandler.messageReceived(SMTPChannelUpstreamHandler.java:61)
        at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
        at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
        at org.jboss.netty.channel.SimpleChannelUpstreamHandler.messageReceived(SimpleChannelUpstreamHandler.java:124)
        at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
        at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
        at org.jboss.netty.handler.execution.ChannelUpstreamEventRunnable.doRun(ChannelUpstreamEventRunnable.java:43)
        at org.jboss.netty.handler.execution.ChannelEventRunnable.run(ChannelEventRunnable.java:67)
        at org.jboss.netty.handler.execution.OrderedMemoryAwareThreadPoolExecutor$ChildExecutor.run(OrderedMemoryAwareThreadPoolExecutor.java:314)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
DEBUG 05:42:29,088 | james.smtpserver | Id='435381597' User='' Unable to process request
java.nio.channels.ClosedChannelException
        at org.jboss.netty.handler.stream.ChunkedWriteHandler.discard(ChunkedWriteHandler.java:168)
        at org.jboss.netty.handler.stream.ChunkedWriteHandler.flush(ChunkedWriteHandler.java:192)
        at org.jboss.netty.handler.stream.ChunkedWriteHandler.handleDownstream(ChunkedWriteHandler.java:121)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendDownstream(DefaultChannelPipeline.java:591)
        at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendDownstream(DefaultChannelPipeline.java:784)
        at org.jboss.netty.handler.execution.ExecutionHandler.handleDownstream(ExecutionHandler.java:176)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendDownstream(DefaultChannelPipeline.java:591)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendDownstream(DefaultChannelPipeline.java:582)
        at org.jboss.netty.channel.Channels.write(Channels.java:704)
        at org.jboss.netty.channel.Channels.write(Channels.java:671)
        at org.jboss.netty.channel.AbstractChannel.write(AbstractChannel.java:348)
        at org.apache.james.protocols.netty.NettyProtocolTransport.close(NettyProtocolTransport.java:122)
        at org.apache.james.protocols.api.AbstractProtocolTransport.writeResponseToClient(AbstractProtocolTransport.java:159)
        at org.apache.james.protocols.api.AbstractProtocolTransport.writeResponse(AbstractProtocolTransport.java:67)
        at org.apache.james.protocols.netty.BasicChannelUpstreamHandler.messageReceived(BasicChannelUpstreamHandler.java:156)
        at org.apache.james.smtpserver.netty.SMTPChannelUpstreamHandler.messageReceived(SMTPChannelUpstreamHandler.java:61)
        at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
        at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
        at org.jboss.netty.channel.SimpleChannelUpstreamHandler.messageReceived(SimpleChannelUpstreamHandler.java:124)
        at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
        at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
        at org.jboss.netty.handler.execution.ChannelUpstreamEventRunnable.doRun(ChannelUpstreamEventRunnable.java:43)
        at org.jboss.netty.handler.execution.ChannelEventRunnable.run(ChannelEventRunnable.java:67)
        at org.jboss.netty.handler.execution.OrderedMemoryAwareThreadPoolExecutor$ChildExecutor.run(OrderedMemoryAwareThreadPoolExecutor.java:314)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

The content of a .txt attachment is displayed as a preview and body of an email

Send an email with a subject, no body and add a .txt file (this file contains for example "This is content of test.txt file")

The email received have the content of the attached file ("This is content of test.txt file") as the body of the email.

Request payload

[["getMessages",{"properties":["id","threadId","subject","to","cc","bcc","from","preview","date","isUnread","isFlagged","isDraft","hasAttachment","mailboxIds"],"ids":["[email protected]|INBOX|1"]},"#0"]]

Response

[["messages",{"notFound":[],"list":[{"id":"[email protected]|INBOX|1","threadId":"[email protected]|INBOX|1","mailboxIds":["9d694860-48fc-11e6-9948-2b97d605aec1"],"isUnread":true,"isFlagged":false,"isDraft":false,"hasAttachment":true,"from":{"name":"[email protected]","email":"[email protected]"},"to":[{"name":"John6 Doe6","email":"[email protected]"}],"cc":[],"bcc":[],"subject":"Subject","date":"2016-07-13T13:45:20.928Z","preview":"This is content of test.txt\n"}]},"#0"]]

selection_637

Add ICS support

Add ICS support in order to be able to treat ICS in emails and display a blue bar to accept/decline events invitation

Can't dnd an email into my prefered folder

Hi, this is a bug report.

I created a heart folder (❤, U+2764, see http://www.fileformat.info/info/unicode/char/2764/browsertest.htm). I then try to dnd an email from my inbox into my heart folder. Looking at the JMAP response sent by james, I got a "notUpdated" object, with the title "invalidProperties" and description "mailboxIds: Can not deserialize instance of java.util.Optional out of START_ARRAY token at [Source: {"mailboxIds":["b7fb3640-2672-11e6-a6b3-0b2672b3443d"]}; line: 1, column: 2](through reference chain: org.apache.james.jmap.model.Builder["mailboxIds"])"

Can you make my heart folder work ? It would be... lovely

Cannot move a Folder with sub-folder to another folder

  • Create a folder "A"
  • Create a sub-folder of "A" named "B" (then you have "A/B" in the treeview)
  • Have another folder "C"
  • Try to move "A" folder to "C" folder
  • Modification of folder Sub failed in the toaster message
  • Error in console
angular.js:11706 Error: Failed to update mailbox 89ee0530-d7ec-11e6-bcda-2d74340cbaa3, the reason is: [object Object]
    at jmap-client.min.js:1
    at angular.js:13318
    at n.$eval (angular.js:14570)
    at n.$digest (angular.js:14386)
    at n.$apply (angular.js:14675)
    at l (angular.js:9725)
    at F (angular.js:9915)
    at XMLHttpRequest.C.onload (angular.js:9856)
angular.js:11706 Error: Failed to update mailbox 89ee0530-d7ec-11e6-bcda-2d74340cbaa3, the reason is: [object Object]
    at jmap-client.min.js:1
    at angular.js:13318
    at n.$eval (angular.js:14570)
    at n.$digest (angular.js:14386)
    at n.$apply (angular.js:14675)
    at l (angular.js:9725)
    at F (angular.js:9915)
    at XMLHttpRequest.C.onload (angular.js:9856)
  • [["mailboxesSet",{"created":{},"updated":[],"destroyed":[],"notCreated":{},"notUpdated":{"3b64f310-d800-11e6-a8c3-2d74340cbaa3":{"type":"invalidArguments","description":"Cannot update a parent mailbox.","properties":null}},"notDestroyed":{}},"#0"]]
  • No errors in James logs
  • The folder is not moved {color:red}NOK{color}

Cannot have twice the same inline image "Broken pipe" exception while downloading

Send an email with 2 inline images that are the same (same file, same name...). Open the email, the first inline image is displayed not the second one, we can only see a throbber

selection_668

In James logs

14:20:36.921 [INFO ] o.a.j.m.p.SMTPServerModule - Id='408062262' User='' Connection established from 10.69.0.163
14:20:37.115 [INFO ] o.a.j.m.p.SMTPServerModule - Id='408062262' User='' Successfully spooled mail Mail1469197237073-acb9b25a-1df9-4de9-8000-361be1301182 from [email protected] on sco-lyon.lyon.lan/10.69.0.163 for [[email protected]]
14:20:37.156 [INFO ] o.a.j.m.p.SMTPServerModule - Id='408062262' User='' Connection closed for 10.69.0.163
14:20:37.518 [INFO ] o.a.j.m.i.JamesMailetContext - Local delivered mail Mail1469197237073-acb9b25a-1df9-4de9-8000-361be1301182 sucessfully from [email protected] to [email protected] in folder INBOX
14:20:46.743 [ERROR] o.a.j.j.DownloadServlet - Error while downloading
java.io.IOException: Broken pipe
at sun.nio.ch.FileDispatcherImpl.writev0(Native Method)
at sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:51)
at sun.nio.ch.IOUtil.write(IOUtil.java:148)
at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:504)
at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:177)
... 41 common frames omitted
Wrapped by: org.eclipse.jetty.io.EofException: null
at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:197)
at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:419)
at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:313)
at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:141)
at org.eclipse.jetty.server.HttpConnection$SendCallback.process(HttpConnection.java:746)
at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224)
at org.eclipse.jetty.server.HttpConnection.send(HttpConnection.java:511)
at org.eclipse.jetty.server.HttpChannel.sendResponse(HttpChannel.java:653)
at org.eclipse.jetty.server.HttpChannel.write(HttpChannel.java:702)
at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:177)
at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:163)
at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:413)
at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1793)
at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1769)
at org.apache.commons.io.IOUtils.copy(IOUtils.java:1744)
at org.apache.james.jmap.DownloadServlet.download(DownloadServlet.java:119)
at org.apache.james.jmap.DownloadServlet.doGet(DownloadServlet.java:105)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)
at org.apache.james.jmap.AuthenticationFilter.doFilter(AuthenticationFilter.java:75)
at org.apache.james.jmap.BypassAuthOnRequestMethod.tryAuth(BypassAuthOnRequestMethod.java:115)
at org.apache.james.jmap.BypassAuthOnRequestMethod.doFilter(BypassAuthOnRequestMethod.java:97)
at org.apache.james.jmap.AllowAllCrossOriginRequests.doFilter(AllowAllCrossOriginRequests.java:46)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:513)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)
at org.eclipse.jetty.server.Server.handle(Server.java:517)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:306)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
at java.lang.Thread.run(Thread.java:745)

There is only one blobId in the Jmap response

[["messages",{"notFound":[],"list":[{"id":"[email protected]|INBOX|13","threadId":"[email protected]|INBOX|13","mailboxIds":["3552b490-5005-11e6-8e34-2b97d605aec1"],"isUnread":false,"isFlagged":false,"isDraft":false,"hasAttachment":true,"from":{"name":"user0","email":"[email protected]"},"to":[{"name":"[email protected]","email":"[email protected]"}],"cc":[],"bcc":[],"replyTo":[],"subject":"2 inline identiques","date":"2016-07-22T14:20:37.326Z","preview":"\n 1\n\n \n\n \n\n \n\n 2\n\n \n\n \n\n \n\n \n\n \n\n ","textBody":"1\r\n\r\n\r\n2\r\n\r\n\r\n\r\n","htmlBody":"\r\n \r\n\r\n <meta http-equiv="content-type" content="text/html; charset=utf-8">\r\n \r\n <body bgcolor="#FFFFFF" text="#000000">\r\n

1

\r\n

<img src="cid:[email protected]" alt="">

\r\n


\r\n

\r\n

2

\r\n


\r\n

\r\n

<img src="cid:[email protected]" alt="">

\r\n


\r\n

\r\n \r\n\r\n","attachments":[{"blobId":"01bd11d28fb2aa46ebe4b74884f734c2e282378b","type":"image/jpeg","name":"pkamleemneafipii.jpeg","size":121234,"cid":"[email protected]","isInline":true,"width":null,"height":null}]}]},"#0"]]

Shouldn't raise an error but a usual logs when an attachment is canceled before upload ended

When an upload of a file is started with OpenPaaS Unified Inbox, not finished, then cancel before it's finished, the following error is raised

Unable to find source-code formatter for language: title james logs. Available languages are: actionscript, html, java, javascript, none, sql, xhtml, xml
esn_james | 14:15:46.952 [ERROR] o.a.j.j.UploadServlet - Error while uploading content
esn_james | org.eclipse.jetty.io.EofException: Early EOF
esn_james | at org.eclipse.jetty.server.HttpInput$3.noContent(HttpInput.java:791)
esn_james | at org.eclipse.jetty.server.HttpInput.read(HttpInput.java:157)
esn_james | at java.io.InputStream.read(InputStream.java:101)
esn_james | at com.google.common.io.ByteStreams.copy(ByteStreams.java:70)
esn_james | at com.google.common.io.ByteStreams.toByteArray(ByteStreams.java:115)
esn_james | at org.apache.james.jmap.UploadHandler.uploadContent(UploadHandler.java:59)
esn_james | at org.apache.james.jmap.UploadHandler.handle(UploadHandler.java:51)
esn_james | at org.apache.james.jmap.UploadServlet.doPost(UploadServlet.java:55)
esn_james | at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
esn_james | at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
esn_james | at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)
esn_james | at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)
esn_james | at org.apache.james.jmap.AuthenticationFilter.doFilter(AuthenticationFilter.java:75)
esn_james | at org.apache.james.jmap.BypassAuthOnRequestMethod.tryAuth(BypassAuthOnRequestMethod.java:115)
esn_james | at org.apache.james.jmap.BypassAuthOnRequestMethod.doFilter(BypassAuthOnRequestMethod.java:97)
esn_james | at org.apache.james.jmap.AllowAllCrossOriginRequests.doFilter(AllowAllCrossOriginRequests.java:46)
esn_james | at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)
esn_james | at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)
esn_james | at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:513)
esn_james | at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
esn_james | at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)

This should not be an error but a normal log "An upload has been canceled before the end" or something like that.

Wrong part selected as the message body in JMAP, ok in IMAP

Hello team,

The attached email displays its attachment (a plain text file) as the email body and preview instead of the actual body. Looks good in IMAP.
Also the attachment does not appear, probably because the part is detected as the body.

Thanks,
David

Re: [Internet] Re: [Internet] Rendez-vous Linagora <> GN.eml.txt

Second email, not exactly the same behavior but probably linked (twice the same inline image in the body, no HTML body at all in Inbox):

Inline twice.eml.txt

Bogus "everything empty" email

Since we started getting emails in OP, I often see bogus emails. You can detect those ones bc they seem to come from

Accueil Exterieur Paris<@>

which is obviously wrong, and is presented so because, I guess "Accueil" is the first name in alphabetical order. Here is the content of the JMAP response, if of any interest:

bogus2

Cannot find mailbox when moving a folder in a non-empty folder

Have

  • a Folder "A"
  • a folder "B" below "A"
  • a folder "C" below "B"
  • a folder "D"

Try to move the folder "D" below folder "A"

An error is launched in James

10:17:35.692 [WARN ] o.a.j.j.u.MailboxUtils - Cannot find mailbox for :D
org.apache.james.mailbox.exception.MailboxNotFoundException: null
    at org.apache.james.mailbox.cassandra.mail.CassandraMailboxMapper.findMailboxByPath(CassandraMailboxMapper.java:88)
    at org.apache.james.jmap.utils.MailboxUtils.getMailboxId(MailboxUtils.java:83)
    at org.apache.james.jmap.utils.MailboxUtils.mailboxFromMailboxPath(MailboxUtils.java:65)
    at org.apache.james.jmap.methods.GetMailboxesMethod.lambda$getMailboxesResponse$0(GetMailboxesMethod.java:94)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
    at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
    at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
    at org.apache.james.jmap.methods.GetMailboxesMethod.getMailboxesResponse(GetMailboxesMethod.java:99)
    at org.apache.james.jmap.methods.GetMailboxesMethod.process(GetMailboxesMethod.java:78)
    at org.apache.james.jmap.methods.RequestHandler.lambda$extractAndProcess$1(RequestHandler.java:67)
    at java.util.Optional.map(Optional.java:215)
    at org.apache.james.jmap.methods.RequestHandler.handle(RequestHandler.java:57)
    at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:267)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
    at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
    at org.apache.james.jmap.JMAPServlet.doPost(JMAPServlet.java:71)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)
    at org.apache.james.jmap.FirstUserConnectionFilter.doFilter(FirstUserConnectionFilter.java:71)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)
    at org.apache.james.jmap.AuthenticationFilter.doFilter(AuthenticationFilter.java:75)
    at org.apache.james.jmap.BypassAuthOnRequestMethod.tryAuth(BypassAuthOnRequestMethod.java:115)
    at org.apache.james.jmap.BypassAuthOnRequestMethod.doFilter(BypassAuthOnRequestMethod.java:97)
    at org.apache.james.jmap.AllowAllCrossOriginRequests.doFilter(AllowAllCrossOriginRequests.java:46)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:513)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)
    at org.eclipse.jetty.server.Server.handle(Server.java:517)
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:306)
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
    at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)
    at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)
    at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
    at java.lang.Thread.run(Thread.java:745)

Here is the request payload

⁠⁠⁠⁠[["setMailboxes",{"update":{"48c1bde0-6aaa-11e6-adb7-2b97d605aec1":{"name":"D","parentId":"70f85900-6aa9-11e6-adb7-2b97d605aec1"}}},"#0"]]

NoClassDefFoundError: org/apache/jempbox/xmp/XMPMetadata with some files

The following error is raised when sending the attached file as an attachment or an inline image (see 5Mb.jpg)

12:14:15.278 [ERROR] o.a.j.m.i.JamesMailetContext - Error while processing listener org.apache.james.mailbox.elasticsearch.events.ElasticSearchListeningMessageSearchIndex for org.apache.james.mailbox.store.event.EventFactory.AddedImpl args=[]
java.lang.NoClassDefFoundError: org/apache/jempbox/xmp/XMPMetadata
at org.apache.tika.parser.image.xmp.JempboxExtractor.parse(JempboxExtractor.java:57)
at org.apache.tika.parser.jpeg.JpegParser.parse(JpegParser.java:59)
at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:280)
at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:280)
at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:120)
at org.apache.james.mailbox.tika.extractor.TikaTextExtractor.extractContent(TikaTextExtractor.java:70)
at org.apache.james.mailbox.elasticsearch.json.MimePart$Builder.parseContent(MimePart.java:145)
at org.apache.james.mailbox.elasticsearch.json.MimePart$Builder.build(MimePart.java:119)
at org.apache.james.mailbox.elasticsearch.json.MimePartParser.closeMimePart(MimePartParser.java:99)
at org.apache.james.mailbox.elasticsearch.json.MimePartParser.processMimePart(MimePartParser.java:77)
at org.apache.james.mailbox.elasticsearch.json.MimePartParser.parse(MimePartParser.java:58)
at org.apache.james.mailbox.elasticsearch.json.IndexableMessage.from(IndexableMessage.java:48)
at org.apache.james.mailbox.elasticsearch.json.MessageToElasticSearchJson.convertToJson(MessageToElasticSearchJson.java:57)
at org.apache.james.mailbox.elasticsearch.events.ElasticSearchListeningMessageSearchIndex.add(ElasticSearchListeningMessageSearchIndex.java:77)
at org.apache.james.mailbox.store.search.ListeningMessageSearchIndex.event(ListeningMessageSearchIndex.java:83)
at org.apache.james.mailbox.store.event.SynchronousEventDelivery.deliver(SynchronousEventDelivery.java:29)
at org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener.deliverEventToGlobalListeners(DefaultDelegatingMailboxListener.java:106)
at org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener.event(DefaultDelegatingMailboxListener.java:95)
at org.apache.james.mailbox.store.event.MailboxEventDispatcher.added(MailboxEventDispatcher.java:55)
at org.apache.james.mailbox.store.StoreMessageManager$1.execute(StoreMessageManager.java:399)
at org.apache.james.mailbox.store.StoreMessageManager$1.execute(StoreMessageManager.java:391)
at org.apache.james.mailbox.store.AbstractMailboxPathLocker.executeWithLock(AbstractMailboxPathLocker.java:38)
at org.apache.james.mailbox.store.StoreMessageManager.appendMessage(StoreMessageManager.java:391)
at org.apache.james.transport.mailets.SieveMailet.post(SieveMailet.java:194)
at org.apache.jsieve.mailet.SieveMailboxMailet.storeMessageInbox(SieveMailboxMailet.java:381)
at org.apache.jsieve.mailet.SieveMailboxMailet.sieveMessage(SieveMailboxMailet.java:351)
at org.apache.jsieve.mailet.SieveMailboxMailet.storeMail(SieveMailboxMailet.java:334)
at org.apache.james.transport.mailets.SieveMailet.storeMail(SieveMailet.java:98)
at org.apache.jsieve.mailet.SieveMailboxMailet.service(SieveMailboxMailet.java:268)
at org.apache.james.transport.mailets.LocalDelivery.service(LocalDelivery.java:92)
at org.apache.james.mailetcontainer.impl.camel.CamelProcessor.process(CamelProcessor.java:64)
at org.apache.camel.processor.DelegateSyncProcessor.process(DelegateSyncProcessor.java:63)
at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:416)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.processor.ChoiceProcessor.process(ChoiceProcessor.java:111)
at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:416)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:416)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.processor.MulticastProcessor.doProcessSequential(MulticastProcessor.java:570)
at org.apache.camel.processor.MulticastProcessor.doProcessSequential(MulticastProcessor.java:503)
at org.apache.camel.processor.MulticastProcessor.process(MulticastProcessor.java:215)
at org.apache.camel.processor.Splitter.process(Splitter.java:98)
at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:416)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:51)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.processor.UnitOfWorkProducer.process(UnitOfWorkProducer.java:73)
at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:375)
at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:343)
at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:233)
at org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:343)
at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:184)
at org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:124)
at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:137)
at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:144)
at org.apache.james.mailetcontainer.impl.camel.CamelMailetProcessor.service(CamelMailetProcessor.java:66)
at org.apache.james.mailetcontainer.lib.AbstractStateCompositeProcessor.service(AbstractStateCompositeProcessor.java:98)
at org.apache.james.mailetcontainer.lib.AbstractStateMailetProcessor.toProcessor(AbstractStateMailetProcessor.java:165)
at org.apache.james.mailetcontainer.impl.camel.CamelMailetProcessor.access$1000(CamelMailetProcessor.java:51)
at org.apache.james.mailetcontainer.impl.camel.CamelMailetProcessor$MailetContainerRouteBuilder$StateChangedProcessor.process(CamelMailetProcessor.java:216)
at org.apache.camel.processor.DelegateSyncProcessor.process(DelegateSyncProcessor.java:63)
at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:416)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
at org.apache.camel.processor.ChoiceProcessor.process(ChoiceProcessor.java:111)
at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:416)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:416)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.processor.MulticastProcessor.doProcessSequential(MulticastProcessor.java:570)
at org.apache.camel.processor.MulticastProcessor.doProcessSequential(MulticastProcessor.java:503)
at org.apache.camel.processor.MulticastProcessor.process(MulticastProcessor.java:215)
at org.apache.camel.processor.Splitter.process(Splitter.java:98)
at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:416)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:51)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.processor.UnitOfWorkProducer.process(UnitOfWorkProducer.java:73)
at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:375)
at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:343)
at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:233)
at org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:343)
at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:184)
at org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:124)
at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:137)
at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:144)
at org.apache.james.mailetcontainer.impl.camel.CamelMailetProcessor.service(CamelMailetProcessor.java:66)
at org.apache.james.mailetcontainer.lib.AbstractStateCompositeProcessor.service(AbstractStateCompositeProcessor.java:98)
at org.apache.james.mailetcontainer.impl.JamesMailSpooler$1.run(JamesMailSpooler.java:167)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
12:14:15.410 [INFO ] o.a.j.m.i.JamesMailetContext - Local delivered mail [email protected]|Outbox|1 sucessfully from [email protected] to [email protected] in folder INBOX
12:14:16.020 [ERROR] o.a.j.j.s.PostDequeueDecorator - Error while processing listener org.apache.james.mailbox.elasticsearch.events.ElasticSearchListeningMessageSearchIndex for org.apache.james.mailbox.store.event.EventFactory.AddedImpl
java.lang.NoClassDefFoundError: org/apache/jempbox/xmp/XMPMetadata
at org.apache.tika.parser.image.xmp.JempboxExtractor.parse(JempboxExtractor.java:57)
at org.apache.tika.parser.jpeg.JpegParser.parse(JpegParser.java:59)
at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:280)
at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:280)
at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:120)
at org.apache.james.mailbox.tika.extractor.TikaTextExtractor.extractContent(TikaTextExtractor.java:70)
at org.apache.james.mailbox.elasticsearch.json.MimePart$Builder.parseContent(MimePart.java:145)
at org.apache.james.mailbox.elasticsearch.json.MimePart$Builder.build(MimePart.java:119)
at org.apache.james.mailbox.elasticsearch.json.MimePartParser.closeMimePart(MimePartParser.java:99)
at org.apache.james.mailbox.elasticsearch.json.MimePartParser.processMimePart(MimePartParser.java:77)
at org.apache.james.mailbox.elasticsearch.json.MimePartParser.parse(MimePartParser.java:58)
at org.apache.james.mailbox.elasticsearch.json.IndexableMessage.from(IndexableMessage.java:48)
at org.apache.james.mailbox.elasticsearch.json.MessageToElasticSearchJson.convertToJson(MessageToElasticSearchJson.java:57)
at org.apache.james.mailbox.elasticsearch.events.ElasticSearchListeningMessageSearchIndex.add(ElasticSearchListeningMessageSearchIndex.java:77)
at org.apache.james.mailbox.store.search.ListeningMessageSearchIndex.event(ListeningMessageSearchIndex.java:83)
at org.apache.james.mailbox.store.event.SynchronousEventDelivery.deliver(SynchronousEventDelivery.java:29)
at org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener.deliverEventToGlobalListeners(DefaultDelegatingMailboxListener.java:106)
at org.apache.james.mailbox.store.event.DefaultDelegatingMailboxListener.event(DefaultDelegatingMailboxListener.java:95)
at org.apache.james.mailbox.store.event.MailboxEventDispatcher.added(MailboxEventDispatcher.java:55)
at org.apache.james.mailbox.store.StoreMessageManager$4.execute(StoreMessageManager.java:628)
at org.apache.james.mailbox.store.StoreMessageManager$4.execute(StoreMessageManager.java:623)
at org.apache.james.mailbox.store.AbstractMailboxPathLocker.executeWithLock(AbstractMailboxPathLocker.java:38)
at org.apache.james.mailbox.store.StoreMessageManager.moveTo(StoreMessageManager.java:623)
at org.apache.james.mailbox.store.StoreMailboxManager$5.execute(StoreMailboxManager.java:547)
at org.apache.james.mailbox.store.MessageBatcher.batchMessages(MessageBatcher.java:52)
at org.apache.james.mailbox.store.StoreMailboxManager.moveMessages(StoreMailboxManager.java:545)
at org.apache.james.jmap.send.PostDequeueDecorator.moveFromOutboxToSent(PostDequeueDecorator.java:129)
at org.apache.james.jmap.send.PostDequeueDecorator.done(PostDequeueDecorator.java:80)
at org.apache.james.mailetcontainer.impl.JamesMailSpooler$1.run(JamesMailSpooler.java:168)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

5mb

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.