[jira] [Commented] (JAMES-2557) NULL_SENDER throws an error in Dlp

2018-12-10 Thread Tellier Benoit (JIRA)


[ 
https://issues.apache.org/jira/browse/JAMES-2557?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16716372#comment-16716372
 ] 

Tellier Benoit commented on JAMES-2557:
---

https://github.com/linagora/james-project/pull/2004 Finally deprecate 
MailAddress::nullSender 

> NULL_SENDER throws an error in Dlp
> --
>
> Key: JAMES-2557
> URL: https://issues.apache.org/jira/browse/JAMES-2557
> Project: James Server
>  Issue Type: Bug
>  Components: Mailet Contributions
>Affects Versions: master, 3.1.0
>Reporter: Tellier Benoit
>Priority: Major
> Fix For: 3.2.0
>
>
> Watching Kibana logs I got this recurring error:
> {code:java}
>   Exception calling dlp.Dlp: NULL sender '<>' do not have domain part
> java.lang.IllegalStateException: NULL sender '<>' do not have domain part
>   at org.apache.james.core.MailAddress$1.getDomain(MailAddress.java:87)
>   at org.apache.james.transport.matchers.dlp.Dlp.matchingRule(Dlp.java:76)
>   at 
> org.apache.james.transport.matchers.dlp.Dlp.lambda$findFirstMatchingRule$0(Dlp.java:72)
>   at java.util.Optional.flatMap(Optional.java:241)
>   at 
> org.apache.james.transport.matchers.dlp.Dlp.findFirstMatchingRule(Dlp.java:72)
>   at org.apache.james.transport.matchers.dlp.Dlp.match(Dlp.java:55)
>   at 
> org.apache.james.mailetcontainer.impl.camel.MatcherSplitter.split(MatcherSplitter.java:109)
>   at sun.reflect.GeneratedMethodAccessor70.invoke(Unknown Source)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:498)
>   at 
> org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:481)
>   at 
> org.apache.camel.component.bean.MethodInfo$1.doProceed(MethodInfo.java:300)
>   at 
> org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:273)
>   at 
> org.apache.camel.component.bean.AbstractBeanProcessor.process(AbstractBeanProcessor.java:187)
>   at 
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)
>   at 
> org.apache.camel.component.bean.AbstractBeanProcessor.process(AbstractBeanProcessor.java:70)
>   at 
> org.apache.camel.language.bean.BeanExpression.invokeBean(BeanExpression.java:200)
>   at 
> org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:124)
>   at 
> org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:135)
>   at 
> org.apache.camel.processor.Splitter.createProcessorExchangePairs(Splitter.java:127)
>   at 
> org.apache.camel.processor.MulticastProcessor.process(MulticastProcessor.java:241)
>   at org.apache.camel.processor.Splitter.process(Splitter.java:122)
>   at 
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548)
>   at 
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
>   at org.apache.camel.processor.Pipeline.process(Pipeline.java:138)
>   at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
>   at 
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
>   at 
> org.apache.camel.component.direct.DirectBlockingProducer.process(DirectBlockingProducer.java:53)
>   at 
> org.apache.camel.processor.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:186)
>   at 
> org.apache.camel.processor.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:86)
>   at 
> org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:541)
>   at 
> org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:506)
>   at 
> org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:369)
>   at 
> org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:506)
>   at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:229)
>   at 
> org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:144)
>   at 
> org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:161)
>   at 
> org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:168)
>   at 
> org.apache.james.mailetcontainer.impl.camel.CamelMailetProcessor.service(CamelMailetProcessor.java:68)
>   at 
> org.apache.james.mailetcontainer.lib.AbstractStateCompositeProcessor.service(AbstractStateCompositeProcessor.java:84)
>   at 
> org.apache.james.mailetcontainer.impl.JamesMailSpooler.lambda$run$0(JamesMailSpooler.java:163)
>   at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>   at 
> 

[jira] [Commented] (JAMES-2557) NULL_SENDER throws an error in Dlp

2018-12-10 Thread Tellier Benoit (JIRA)


[ 
https://issues.apache.org/jira/browse/JAMES-2557?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16716371#comment-16716371
 ] 

Tellier Benoit commented on JAMES-2557:
---

https://github.com/linagora/james-project/pull/2003 Use MaybeSender in SMTP 
session

> NULL_SENDER throws an error in Dlp
> --
>
> Key: JAMES-2557
> URL: https://issues.apache.org/jira/browse/JAMES-2557
> Project: James Server
>  Issue Type: Bug
>  Components: Mailet Contributions
>Affects Versions: master, 3.1.0
>Reporter: Tellier Benoit
>Priority: Major
> Fix For: 3.2.0
>
>
> Watching Kibana logs I got this recurring error:
> {code:java}
>   Exception calling dlp.Dlp: NULL sender '<>' do not have domain part
> java.lang.IllegalStateException: NULL sender '<>' do not have domain part
>   at org.apache.james.core.MailAddress$1.getDomain(MailAddress.java:87)
>   at org.apache.james.transport.matchers.dlp.Dlp.matchingRule(Dlp.java:76)
>   at 
> org.apache.james.transport.matchers.dlp.Dlp.lambda$findFirstMatchingRule$0(Dlp.java:72)
>   at java.util.Optional.flatMap(Optional.java:241)
>   at 
> org.apache.james.transport.matchers.dlp.Dlp.findFirstMatchingRule(Dlp.java:72)
>   at org.apache.james.transport.matchers.dlp.Dlp.match(Dlp.java:55)
>   at 
> org.apache.james.mailetcontainer.impl.camel.MatcherSplitter.split(MatcherSplitter.java:109)
>   at sun.reflect.GeneratedMethodAccessor70.invoke(Unknown Source)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:498)
>   at 
> org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:481)
>   at 
> org.apache.camel.component.bean.MethodInfo$1.doProceed(MethodInfo.java:300)
>   at 
> org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:273)
>   at 
> org.apache.camel.component.bean.AbstractBeanProcessor.process(AbstractBeanProcessor.java:187)
>   at 
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)
>   at 
> org.apache.camel.component.bean.AbstractBeanProcessor.process(AbstractBeanProcessor.java:70)
>   at 
> org.apache.camel.language.bean.BeanExpression.invokeBean(BeanExpression.java:200)
>   at 
> org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:124)
>   at 
> org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:135)
>   at 
> org.apache.camel.processor.Splitter.createProcessorExchangePairs(Splitter.java:127)
>   at 
> org.apache.camel.processor.MulticastProcessor.process(MulticastProcessor.java:241)
>   at org.apache.camel.processor.Splitter.process(Splitter.java:122)
>   at 
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548)
>   at 
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
>   at org.apache.camel.processor.Pipeline.process(Pipeline.java:138)
>   at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
>   at 
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
>   at 
> org.apache.camel.component.direct.DirectBlockingProducer.process(DirectBlockingProducer.java:53)
>   at 
> org.apache.camel.processor.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:186)
>   at 
> org.apache.camel.processor.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:86)
>   at 
> org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:541)
>   at 
> org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:506)
>   at 
> org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:369)
>   at 
> org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:506)
>   at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:229)
>   at 
> org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:144)
>   at 
> org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:161)
>   at 
> org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:168)
>   at 
> org.apache.james.mailetcontainer.impl.camel.CamelMailetProcessor.service(CamelMailetProcessor.java:68)
>   at 
> org.apache.james.mailetcontainer.lib.AbstractStateCompositeProcessor.service(AbstractStateCompositeProcessor.java:84)
>   at 
> org.apache.james.mailetcontainer.impl.JamesMailSpooler.lambda$run$0(JamesMailSpooler.java:163)
>   at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>   at 
> 

[jira] [Commented] (JAMES-2557) NULL_SENDER throws an error in Dlp

2018-10-31 Thread Tellier Benoit (JIRA)


[ 
https://issues.apache.org/jira/browse/JAMES-2557?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16671095#comment-16671095
 ] 

Tellier Benoit commented on JAMES-2557:
---

https://github.com/linagora/james-project/pull/1861 MaybeSender should be used 
in SMTP layers

> NULL_SENDER throws an error in Dlp
> --
>
> Key: JAMES-2557
> URL: https://issues.apache.org/jira/browse/JAMES-2557
> Project: James Server
>  Issue Type: Bug
>  Components: Mailet Contributions
>Affects Versions: master, 3.1.0
>Reporter: Tellier Benoit
>Priority: Major
> Fix For: 3.2.0
>
>
> Watching Kibana logs I got this recurring error:
> {code:java}
>   Exception calling dlp.Dlp: NULL sender '<>' do not have domain part
> java.lang.IllegalStateException: NULL sender '<>' do not have domain part
>   at org.apache.james.core.MailAddress$1.getDomain(MailAddress.java:87)
>   at org.apache.james.transport.matchers.dlp.Dlp.matchingRule(Dlp.java:76)
>   at 
> org.apache.james.transport.matchers.dlp.Dlp.lambda$findFirstMatchingRule$0(Dlp.java:72)
>   at java.util.Optional.flatMap(Optional.java:241)
>   at 
> org.apache.james.transport.matchers.dlp.Dlp.findFirstMatchingRule(Dlp.java:72)
>   at org.apache.james.transport.matchers.dlp.Dlp.match(Dlp.java:55)
>   at 
> org.apache.james.mailetcontainer.impl.camel.MatcherSplitter.split(MatcherSplitter.java:109)
>   at sun.reflect.GeneratedMethodAccessor70.invoke(Unknown Source)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:498)
>   at 
> org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:481)
>   at 
> org.apache.camel.component.bean.MethodInfo$1.doProceed(MethodInfo.java:300)
>   at 
> org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:273)
>   at 
> org.apache.camel.component.bean.AbstractBeanProcessor.process(AbstractBeanProcessor.java:187)
>   at 
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)
>   at 
> org.apache.camel.component.bean.AbstractBeanProcessor.process(AbstractBeanProcessor.java:70)
>   at 
> org.apache.camel.language.bean.BeanExpression.invokeBean(BeanExpression.java:200)
>   at 
> org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:124)
>   at 
> org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:135)
>   at 
> org.apache.camel.processor.Splitter.createProcessorExchangePairs(Splitter.java:127)
>   at 
> org.apache.camel.processor.MulticastProcessor.process(MulticastProcessor.java:241)
>   at org.apache.camel.processor.Splitter.process(Splitter.java:122)
>   at 
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548)
>   at 
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
>   at org.apache.camel.processor.Pipeline.process(Pipeline.java:138)
>   at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
>   at 
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
>   at 
> org.apache.camel.component.direct.DirectBlockingProducer.process(DirectBlockingProducer.java:53)
>   at 
> org.apache.camel.processor.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:186)
>   at 
> org.apache.camel.processor.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:86)
>   at 
> org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:541)
>   at 
> org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:506)
>   at 
> org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:369)
>   at 
> org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:506)
>   at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:229)
>   at 
> org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:144)
>   at 
> org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:161)
>   at 
> org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:168)
>   at 
> org.apache.james.mailetcontainer.impl.camel.CamelMailetProcessor.service(CamelMailetProcessor.java:68)
>   at 
> org.apache.james.mailetcontainer.lib.AbstractStateCompositeProcessor.service(AbstractStateCompositeProcessor.java:84)
>   at 
> org.apache.james.mailetcontainer.impl.JamesMailSpooler.lambda$run$0(JamesMailSpooler.java:163)
>   at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>   at 
> 

[jira] [Commented] (JAMES-2557) NULL_SENDER throws an error in Dlp

2018-10-29 Thread Tellier Benoit (JIRA)


[ 
https://issues.apache.org/jira/browse/JAMES-2557?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16668033#comment-16668033
 ] 

Tellier Benoit commented on JAMES-2557:
---

Added a MaybeSender object and did use it everywhere in Mailet related code. 
https://github.com/linagora/james-project/pull/1846

> NULL_SENDER throws an error in Dlp
> --
>
> Key: JAMES-2557
> URL: https://issues.apache.org/jira/browse/JAMES-2557
> Project: James Server
>  Issue Type: Bug
>  Components: Mailet Contributions
>Affects Versions: master, 3.1.0
>Reporter: Tellier Benoit
>Priority: Major
> Fix For: 3.2.0
>
>
> Watching Kibana logs I got this recurring error:
> {code:java}
>   Exception calling dlp.Dlp: NULL sender '<>' do not have domain part
> java.lang.IllegalStateException: NULL sender '<>' do not have domain part
>   at org.apache.james.core.MailAddress$1.getDomain(MailAddress.java:87)
>   at org.apache.james.transport.matchers.dlp.Dlp.matchingRule(Dlp.java:76)
>   at 
> org.apache.james.transport.matchers.dlp.Dlp.lambda$findFirstMatchingRule$0(Dlp.java:72)
>   at java.util.Optional.flatMap(Optional.java:241)
>   at 
> org.apache.james.transport.matchers.dlp.Dlp.findFirstMatchingRule(Dlp.java:72)
>   at org.apache.james.transport.matchers.dlp.Dlp.match(Dlp.java:55)
>   at 
> org.apache.james.mailetcontainer.impl.camel.MatcherSplitter.split(MatcherSplitter.java:109)
>   at sun.reflect.GeneratedMethodAccessor70.invoke(Unknown Source)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:498)
>   at 
> org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:481)
>   at 
> org.apache.camel.component.bean.MethodInfo$1.doProceed(MethodInfo.java:300)
>   at 
> org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:273)
>   at 
> org.apache.camel.component.bean.AbstractBeanProcessor.process(AbstractBeanProcessor.java:187)
>   at 
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)
>   at 
> org.apache.camel.component.bean.AbstractBeanProcessor.process(AbstractBeanProcessor.java:70)
>   at 
> org.apache.camel.language.bean.BeanExpression.invokeBean(BeanExpression.java:200)
>   at 
> org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:124)
>   at 
> org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:135)
>   at 
> org.apache.camel.processor.Splitter.createProcessorExchangePairs(Splitter.java:127)
>   at 
> org.apache.camel.processor.MulticastProcessor.process(MulticastProcessor.java:241)
>   at org.apache.camel.processor.Splitter.process(Splitter.java:122)
>   at 
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548)
>   at 
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
>   at org.apache.camel.processor.Pipeline.process(Pipeline.java:138)
>   at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
>   at 
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
>   at 
> org.apache.camel.component.direct.DirectBlockingProducer.process(DirectBlockingProducer.java:53)
>   at 
> org.apache.camel.processor.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:186)
>   at 
> org.apache.camel.processor.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:86)
>   at 
> org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:541)
>   at 
> org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:506)
>   at 
> org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:369)
>   at 
> org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:506)
>   at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:229)
>   at 
> org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:144)
>   at 
> org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:161)
>   at 
> org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:168)
>   at 
> org.apache.james.mailetcontainer.impl.camel.CamelMailetProcessor.service(CamelMailetProcessor.java:68)
>   at 
> org.apache.james.mailetcontainer.lib.AbstractStateCompositeProcessor.service(AbstractStateCompositeProcessor.java:84)
>   at 
> org.apache.james.mailetcontainer.impl.JamesMailSpooler.lambda$run$0(JamesMailSpooler.java:163)
>   at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>   at 
> 

[jira] [Commented] (JAMES-2557) NULL_SENDER throws an error in Dlp

2018-10-23 Thread Tellier Benoit (JIRA)


[ 
https://issues.apache.org/jira/browse/JAMES-2557?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16661586#comment-16661586
 ] 

Tellier Benoit commented on JAMES-2557:
---

https://github.com/linagora/james-project/pull/1818 solved a similar issue for 
SenderIs matchers

> NULL_SENDER throws an error in Dlp
> --
>
> Key: JAMES-2557
> URL: https://issues.apache.org/jira/browse/JAMES-2557
> Project: James Server
>  Issue Type: Bug
>  Components: Mailet Contributions
>Affects Versions: master, 3.1.0
>Reporter: Tellier Benoit
>Priority: Major
> Fix For: 3.2.0
>
>
> Watching Kibana logs I got this recurring error:
> {code:java}
>   Exception calling dlp.Dlp: NULL sender '<>' do not have domain part
> java.lang.IllegalStateException: NULL sender '<>' do not have domain part
>   at org.apache.james.core.MailAddress$1.getDomain(MailAddress.java:87)
>   at org.apache.james.transport.matchers.dlp.Dlp.matchingRule(Dlp.java:76)
>   at 
> org.apache.james.transport.matchers.dlp.Dlp.lambda$findFirstMatchingRule$0(Dlp.java:72)
>   at java.util.Optional.flatMap(Optional.java:241)
>   at 
> org.apache.james.transport.matchers.dlp.Dlp.findFirstMatchingRule(Dlp.java:72)
>   at org.apache.james.transport.matchers.dlp.Dlp.match(Dlp.java:55)
>   at 
> org.apache.james.mailetcontainer.impl.camel.MatcherSplitter.split(MatcherSplitter.java:109)
>   at sun.reflect.GeneratedMethodAccessor70.invoke(Unknown Source)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:498)
>   at 
> org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:481)
>   at 
> org.apache.camel.component.bean.MethodInfo$1.doProceed(MethodInfo.java:300)
>   at 
> org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:273)
>   at 
> org.apache.camel.component.bean.AbstractBeanProcessor.process(AbstractBeanProcessor.java:187)
>   at 
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)
>   at 
> org.apache.camel.component.bean.AbstractBeanProcessor.process(AbstractBeanProcessor.java:70)
>   at 
> org.apache.camel.language.bean.BeanExpression.invokeBean(BeanExpression.java:200)
>   at 
> org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:124)
>   at 
> org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:135)
>   at 
> org.apache.camel.processor.Splitter.createProcessorExchangePairs(Splitter.java:127)
>   at 
> org.apache.camel.processor.MulticastProcessor.process(MulticastProcessor.java:241)
>   at org.apache.camel.processor.Splitter.process(Splitter.java:122)
>   at 
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548)
>   at 
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
>   at org.apache.camel.processor.Pipeline.process(Pipeline.java:138)
>   at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
>   at 
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
>   at 
> org.apache.camel.component.direct.DirectBlockingProducer.process(DirectBlockingProducer.java:53)
>   at 
> org.apache.camel.processor.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:186)
>   at 
> org.apache.camel.processor.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:86)
>   at 
> org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:541)
>   at 
> org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:506)
>   at 
> org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:369)
>   at 
> org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:506)
>   at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:229)
>   at 
> org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:144)
>   at 
> org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:161)
>   at 
> org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:168)
>   at 
> org.apache.james.mailetcontainer.impl.camel.CamelMailetProcessor.service(CamelMailetProcessor.java:68)
>   at 
> org.apache.james.mailetcontainer.lib.AbstractStateCompositeProcessor.service(AbstractStateCompositeProcessor.java:84)
>   at 
> org.apache.james.mailetcontainer.impl.JamesMailSpooler.lambda$run$0(JamesMailSpooler.java:163)
>   at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>   at 
> 

[jira] [Commented] (JAMES-2557) NULL_SENDER throws an error in Dlp

2018-10-18 Thread Tellier Benoit (JIRA)


[ 
https://issues.apache.org/jira/browse/JAMES-2557?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16655079#comment-16655079
 ] 

Tellier Benoit commented on JAMES-2557:
---

See https://github.com/linagora/james-project/pull/1818

> NULL_SENDER throws an error in Dlp
> --
>
> Key: JAMES-2557
> URL: https://issues.apache.org/jira/browse/JAMES-2557
> Project: James Server
>  Issue Type: Bug
>  Components: Mailet Contributions
>Affects Versions: master, 3.1.0
>Reporter: Tellier Benoit
>Priority: Major
> Fix For: 3.2.0
>
>
> Watching Kibana logs I got this recurring error:
> {code:java}
>   Exception calling dlp.Dlp: NULL sender '<>' do not have domain part
> java.lang.IllegalStateException: NULL sender '<>' do not have domain part
>   at org.apache.james.core.MailAddress$1.getDomain(MailAddress.java:87)
>   at org.apache.james.transport.matchers.dlp.Dlp.matchingRule(Dlp.java:76)
>   at 
> org.apache.james.transport.matchers.dlp.Dlp.lambda$findFirstMatchingRule$0(Dlp.java:72)
>   at java.util.Optional.flatMap(Optional.java:241)
>   at 
> org.apache.james.transport.matchers.dlp.Dlp.findFirstMatchingRule(Dlp.java:72)
>   at org.apache.james.transport.matchers.dlp.Dlp.match(Dlp.java:55)
>   at 
> org.apache.james.mailetcontainer.impl.camel.MatcherSplitter.split(MatcherSplitter.java:109)
>   at sun.reflect.GeneratedMethodAccessor70.invoke(Unknown Source)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:498)
>   at 
> org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:481)
>   at 
> org.apache.camel.component.bean.MethodInfo$1.doProceed(MethodInfo.java:300)
>   at 
> org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:273)
>   at 
> org.apache.camel.component.bean.AbstractBeanProcessor.process(AbstractBeanProcessor.java:187)
>   at 
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)
>   at 
> org.apache.camel.component.bean.AbstractBeanProcessor.process(AbstractBeanProcessor.java:70)
>   at 
> org.apache.camel.language.bean.BeanExpression.invokeBean(BeanExpression.java:200)
>   at 
> org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:124)
>   at 
> org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:135)
>   at 
> org.apache.camel.processor.Splitter.createProcessorExchangePairs(Splitter.java:127)
>   at 
> org.apache.camel.processor.MulticastProcessor.process(MulticastProcessor.java:241)
>   at org.apache.camel.processor.Splitter.process(Splitter.java:122)
>   at 
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548)
>   at 
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
>   at org.apache.camel.processor.Pipeline.process(Pipeline.java:138)
>   at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
>   at 
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
>   at 
> org.apache.camel.component.direct.DirectBlockingProducer.process(DirectBlockingProducer.java:53)
>   at 
> org.apache.camel.processor.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:186)
>   at 
> org.apache.camel.processor.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:86)
>   at 
> org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:541)
>   at 
> org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:506)
>   at 
> org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:369)
>   at 
> org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:506)
>   at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:229)
>   at 
> org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:144)
>   at 
> org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:161)
>   at 
> org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:168)
>   at 
> org.apache.james.mailetcontainer.impl.camel.CamelMailetProcessor.service(CamelMailetProcessor.java:68)
>   at 
> org.apache.james.mailetcontainer.lib.AbstractStateCompositeProcessor.service(AbstractStateCompositeProcessor.java:84)
>   at 
> org.apache.james.mailetcontainer.impl.JamesMailSpooler.lambda$run$0(JamesMailSpooler.java:163)
>   at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>   at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>   at 

[jira] [Commented] (JAMES-2557) NULL_SENDER throws an error in Dlp

2018-10-18 Thread Tellier Benoit (JIRA)


[ 
https://issues.apache.org/jira/browse/JAMES-2557?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16655075#comment-16655075
 ] 

Tellier Benoit commented on JAMES-2557:
---

We encopuntered the following logs in production:

```
Exception calling SenderIsLocal: NULL sender '<>' do not have domain part 
java.lang.IllegalStateException: NULL sender '<>' do not have domain part at 
org.apache.james.core.MailAddress$1.getDomain(MailAddress.java:87) at 
org.apache.james.mailetcontainer.impl.JamesMailetContext.isLocalEmail(JamesMailetContext.java:253)
 at 
org.apache.james.transport.matchers.SenderIsLocal.isLocal(SenderIsLocal.java:43)
 at 
org.apache.james.transport.matchers.SenderIsLocal.match(SenderIsLocal.java:36) 
at 
org.apache.james.mailetcontainer.impl.camel.MatcherSplitter.split(MatcherSplitter.java:109)
 at sun.reflect.GeneratedMethodAccessor68.invoke(Unknown Source) at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:498) at 
org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:481)
```

As this PR demonstrate, `MailAddress.nullSender()` hack is harmful and required 
a check each time the sender is checked/used.

We could try to patch this in some places, where we know it will break.

Known breakdown:
 - `SenderIs*` matchers (see  )
 - MailetContext::bounce
 - Signature mailets
 - `IsSenderInRRTLoop SenderInFakeDomain`
 - JMAP vacation and Redirect that does rely to the original senders

### Alternative proposal

Maybe a better alternative is to redesign the `Mail` api and propose a 

```
Optional getSenderAsOptional()
```

Deprecate todays `getSender()` and `nullSender()`...

Then we have to make the existing code work with `getSenderAsOptional()` only...

> NULL_SENDER throws an error in Dlp
> --
>
> Key: JAMES-2557
> URL: https://issues.apache.org/jira/browse/JAMES-2557
> Project: James Server
>  Issue Type: Bug
>  Components: Mailet Contributions
>Affects Versions: master, 3.1.0
>Reporter: Tellier Benoit
>Priority: Major
> Fix For: 3.2.0
>
>
> Watching Kibana logs I got this recurring error:
> {code:java}
>   Exception calling dlp.Dlp: NULL sender '<>' do not have domain part
> java.lang.IllegalStateException: NULL sender '<>' do not have domain part
>   at org.apache.james.core.MailAddress$1.getDomain(MailAddress.java:87)
>   at org.apache.james.transport.matchers.dlp.Dlp.matchingRule(Dlp.java:76)
>   at 
> org.apache.james.transport.matchers.dlp.Dlp.lambda$findFirstMatchingRule$0(Dlp.java:72)
>   at java.util.Optional.flatMap(Optional.java:241)
>   at 
> org.apache.james.transport.matchers.dlp.Dlp.findFirstMatchingRule(Dlp.java:72)
>   at org.apache.james.transport.matchers.dlp.Dlp.match(Dlp.java:55)
>   at 
> org.apache.james.mailetcontainer.impl.camel.MatcherSplitter.split(MatcherSplitter.java:109)
>   at sun.reflect.GeneratedMethodAccessor70.invoke(Unknown Source)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:498)
>   at 
> org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:481)
>   at 
> org.apache.camel.component.bean.MethodInfo$1.doProceed(MethodInfo.java:300)
>   at 
> org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:273)
>   at 
> org.apache.camel.component.bean.AbstractBeanProcessor.process(AbstractBeanProcessor.java:187)
>   at 
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)
>   at 
> org.apache.camel.component.bean.AbstractBeanProcessor.process(AbstractBeanProcessor.java:70)
>   at 
> org.apache.camel.language.bean.BeanExpression.invokeBean(BeanExpression.java:200)
>   at 
> org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:124)
>   at 
> org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:135)
>   at 
> org.apache.camel.processor.Splitter.createProcessorExchangePairs(Splitter.java:127)
>   at 
> org.apache.camel.processor.MulticastProcessor.process(MulticastProcessor.java:241)
>   at org.apache.camel.processor.Splitter.process(Splitter.java:122)
>   at 
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548)
>   at 
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
>   at org.apache.camel.processor.Pipeline.process(Pipeline.java:138)
>   at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
>   at 
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
>   at 
>