Hi Phillip. The issue you report seems to be due to a mail serialization issue.
The file mail queue serializes the mails in order to store them. We may need, in order to help you, to review your mailetcontainer.xml pipeline. Does any of the mailets you used position a multimap as an attribute? We also recently did some work on mail queue implementation (common test suite, some fixes, etc...). You might want to try latest changes that might enhance the experience with the FileMailQueue. Finally, there is still some minor issues with the file mail queue, awaiting for a kind contributor... - JAMES-2300 No Order while browsing - JAMES-2299 No snapshot isolation upon clear - JAMES-2298 Remove by sender, recipient or name clauses is not supported yet Cheers, Benoit Tellier Le 20/06/2018 à 09:12, Phillip Odam a écrit : > Hi > > Haven't spotted the following being discussed. I'm early on in my > investigation but so far I'm having no luck using the file based queue > in v3.0.1. > > Here's what I did to replace ActiveMQ with the file queue. > > Extracted META-INF/org/apache/james/spring-server.xml from > james-server-app-3.0.1/lib/james-server-spring-3.0.1.jar and placed > META-INF/org/apache/james/spring-server.xml in the conf directory so > path to spring-server.xml, relative to james root is > conf/META-INF/org/apache/james/spring-server.xml > > Then changed the line > > <import resource="classpath:META-INF/spring/activemq-queue-context.xml"/> > > to this > > <import resource="classpath:META-INF/spring/file-queue-context.xml"/> > > The var/store/queue folders are all created as expected indicating > successful change over to the file queue. > > However after starting james and attempting to send a message, the > following exception is thrown... does anyone have the file queue working > in v3.0.1? > > org.apache.james.queue.api.MailQueue$MailQueueException: Unable to > enqueue mail; > nested exception is: > java.io.NotSerializableException: > com.google.common.collect.AbstractMapBasedMultimap$WrappedSet > at > org.apache.james.queue.file.FileMailQueue.enQueue(FileMailQueue.java:217) > at > org.apache.james.queue.file.FileMailQueue.enQueue(FileMailQueue.java:252) > at > org.apache.james.transport.mailets.RemoteDelivery.serviceSingleServer(RemoteDelivery.java:237) > > at > org.apache.james.transport.mailets.RemoteDelivery.serviceNoGateway(RemoteDelivery.java:226) > > at > org.apache.james.transport.mailets.RemoteDelivery.service(RemoteDelivery.java:201) > > at > org.apache.james.mailetcontainer.impl.camel.CamelProcessor.process(CamelProcessor.java:72) > > at > org.apache.camel.processor.DelegateSyncProcessor.process(DelegateSyncProcessor.java:63) > > at > org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72) > > 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.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72) > > 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.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72) > > 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:72) > > 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$1100(CamelMailetProcessor.java:52) > > at > org.apache.james.mailetcontainer.impl.camel.CamelMailetProcessor$MailetContainerRouteBuilder$StateChangedProcessor.process(CamelMailetProcessor.java:223) > > at > org.apache.camel.processor.DelegateSyncProcessor.process(DelegateSyncProcessor.java:63) > > at > org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72) > > 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.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72) > > 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.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72) > > 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:72) > > at > org.apache.james.mailetcontainer.lib.AbstractStateCompositeProcessor.service(AbstractStateCompositeProcessor.java:98) > > at > org.apache.james.mailetcontainer.impl.JamesMailSpooler$1.run(JamesMailSpooler.java:178) > > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > > at java.lang.Thread.run(Thread.java:748) > Caused by: java.io.NotSerializableException: > com.google.common.collect.AbstractMapBasedMultimap$WrappedSet > at > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184) > at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348) > at org.apache.james.core.MailImpl.writeObject(MailImpl.java:534) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > > at java.lang.reflect.Method.invoke(Method.java:498) > at > java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1128) > at > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1496) > at > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432) > > at > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178) > at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348) > at > org.apache.james.queue.file.FileMailQueue.enQueue(FileMailQueue.java:182) > ... 84 more > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
