james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Barry Bai" <yi....@bitrustar.com>
Subject Re: Re: Re: How to do limitation space of mailbox
Date Mon, 14 Feb 2011 07:47:06 GMT
Hi, I just added the below content in mailetcontainer.xml:
   <mailet match="StorageQuotaFixed=4m" class="ToProcessor">
        <processor>bounces</processor>
   </mailet>

When the space overs the quota, the DSNBounce will be invoked, but there is a NPE. 

Is there any mistake in my configuration? 

the stack is as below:
java.lang.NullPointerException
        at java.util.regex.Matcher.getTextLength(Unknown Source)
        at java.util.regex.Matcher.reset(Unknown Source)
        at java.util.regex.Matcher.<init>(Unknown Source)
        at java.util.regex.Pattern.matcher(Unknown Source)
        at org.apache.james.transport.mailets.DSNBounce.createDSN(DSNBounce.java:377)
        at org.apache.james.transport.mailets.DSNBounce.service(DSNBounce.java:204)
        at org.apache.james.mailetcontainer.camel.CamelProcessor.process(CamelProcessor.java:66)
        at org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:50)
        at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
        at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
        at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
        at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:99)
        at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
        at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:299)
        at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:208)
        at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:256)
        at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
        at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
        at org.apache.camel.processor.ChoiceProcessor.process(ChoiceProcessor.java:80)
        at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
        at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
        at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
        at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68)
        at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
        at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
        at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
        at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:99)
        at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
        at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:299)
        at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:208)
        at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:256)
        at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:143)
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:78)
        at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
        at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:299)
        at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:208)
        at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:99)
        at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:91)
        at org.apache.camel.processor.MulticastProcessor.doProcessParallel(MulticastProcessor.java:515)
        at org.apache.camel.processor.MulticastProcessor.access$100(MulticastProcessor.java:73)
        at org.apache.camel.processor.MulticastProcessor$1.call(MulticastProcessor.java:239)
        at org.apache.camel.processor.MulticastProcessor$1.call(MulticastProcessor.java:231)
        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

Thank you very much.

2011-02-14 



Barry Bai 



发件人: Norman Maurer 
发送时间: 2011-02-14  14:05:12 
收件人: James Developers List 
抄送: James Users List 
主题: Re: Re: Re: How to do limitation space of mailbox 
 
Hi there,
you will need to call the "DNSBounce" mailet after match your Matcher.
See:
http://james.apache.org/server/3/dev-provided-mailets.html
Bye,
Norman
2011/2/14 Barry Bai <yi.bai@bitrustar.com>:
> Sorry, I was wrong, although the Quota matcher is working, when overing quota, the mail
can still be stored. I think when overing quota, James should reject the mail and notify sender,
right? I don't know how to implement this.
>
> Thanks.
>
>
> 2011-02-14
>
>
>
> Barry Bai
>
>
>
> 发件人: Barry Bai
> 发送时间: 2011-02-14  13:00:37
> 收件人: James Users List; server-dev
> 抄送:
> 主题: Re: Re: How to do limitation space of mailbox
>
> Hi, I have fixed some wrong in the AbstractStorageQuota.java and it is working now. Next
step is do some optimizing and add some cach mechanism.
>
> Thanks for Eric and Norman's help.
> 2011-02-14
>
>
>
> Barry Bai
>
>
>
> 发件人: Norman Maurer
> 发送时间: 2011-02-11  18:32:44
> 收件人: James Users List
> 抄送:
> 主题: Re: How to do limitation space of mailbox
> Sorry I was wrong,,
> there is an Abstract base class you could extend to build in such a
> Matcher. But its far from optimal ...
> http://svn.apache.org/viewvc/james/server/trunk/mailets/src/main/java/org/apache/james/transport/matchers/AbstractStorageQuota.java?view=markup
> Bye,
> Norman
> 2011/2/11 Eric Charles <eric@apache.org>:
>> I suppose RecipientIsOverFixedQuota was not taken in trunk due to non
>> optimal implementation (count on every call).
>> But this could be a start for users who want to try and ameliorate it.
>>
>> So, Barry, simply take the 2.3.2 RecipientIsOverFixedQuota as an
>> additional jar, configure the mailetcontainer.xml (which extends
>> AbstractStorageQuota which extends AbstractQuotaMatcher), and tell us if
>> this works for you :)
>>
>> Tks,
>>
>> Eric
>>
>>
>> Do we need to simply use the 2.3.2 RecipientIsOverFixedQuota
>>
>> On 11/02/2011 07:10, Norman Maurer wrote:
>>> Hi Eric,
>>>
>>> RecipeintIsOverFixedQuota is working with trunk.. Well to be exact,
>>> kind of ;) It only respect messages in the INBOX and not in the
>>> subfolders. It it need to count the size on every call so its
>>> ultra-inefficent.
>>>
>>> Bye,
>>> Norman
>>>
>>> 2011/2/11 Eric Charles <eric@apache.org>:
>>>> (btw, 2.3.2 RecipientIsOverFixedQuota won't help you much - you really
>>>> need to develop it from scratch).
>>>>
>>>>
>>>> On 11/02/2011 06:54, Eric Charles wrote:
>>>>> Hi,
>>>>>
>>>>> The documentation to develop custom mailet/matcher is here
>>>>> http://james.apache.org/server/3/dev-extend-mailet.html
>>>>> http://james.apache.org/server/3/dev-extend-matcher.html
>>>>> (see also http://markmail.org/thread/346wzxsksdvhlnee for the mailet
>>>>> package specification change in M3)
>>>>>
>>>>> The mailet/matcher configuration occurs in mailtecontainer.xml
>>>>> http://james.apache.org/server/3/config-mailetcontainer.html
>>>>>
>>>>> The RecipientIsOverFixedQuota matcher is mentioned on
>>>>> http://james.apache.org/server/3/dev-provided-matchers.html but is no
>>>>> more in 3.0 trunk.
>>>>> You can view RecipientIsOverFixedQuota 2.3.2 source on
>>>>>
>>>>>
>>>>> Hope this helps,
>>>>>
>>>>> Eric
>>>>>
>>>>>
>>>>> On 11/02/2011 03:42, Barry Bai wrote:
>>>>>> I have seen some examples with the url you provided, but I can't
still make clear the process of mailet and matcher or how to invoke them, etc. I am looking
foward your details.
>>>>>>
>>>>>> I am trying to write a "quota matcher" of James3 for per user, it
is mentioned by Eric. it is very urgent for me, so I just do some researching on it.
>>>>>>
>>>>>> Thanks.
>>>>>> 2011-02-11
>>>>>>
>>>>>>
>>>>>>
>>>>>> Barry Bai
>>>>>>
>>>>>>
>>>>>>
>>>>>> 发件人: agks mehx
>>>>>> 发送时间: 2011-02-11  10:20:38
>>>>>> 收件人: James Users List
>>>>>> 抄送:
>>>>>> 主题: Re: Re: How to do limitation space of mailbox
>>>>>>
>>>>>> A bit difficult to read but if you work through these examples should
give
>>>>>> you everything you need:
>>>>>> http://svn.apache.org/viewvc/james/server/trunk/mailets/src/main/java/org/apache/james/transport/mailets/
>>>>>> If you need help with configuration see emails about mailets on this
list in
>>>>>> the last couple of days.
>>>>>> I'm sure eventually there will be better documentation/tutorials
but for now
>>>>>> this is all I am aware of.
>>>>>> On Thu, Feb 10, 2011 at 3:37 PM, Barry Bai <yi.bai@bitrustar.com>
wrote:
>>>>>>> Hi Eirc, could you please provide some tutorial or other material
about
>>>>>>> developing customized mailet and matcher in James 3.0? I can
just find some
>>>>>>> technical material for James 2 in the official website and they
should not
>>>>>>> be applicable for James 3, right?
>>>>>>>
>>>>>>> Thanks
>>>>>>> 2011-02-11
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Barry Bai
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 发件人: Eric Charles
>>>>>>> 发送时间: 2011-02-10  15:36:40
>>>>>>> 收件人: James Users List
>>>>>>> 抄送:
>>>>>>> 主题: Re: How to do limitation space of mailbox
>>>>>>>
>>>>>>> Hi,
>>>>>>> There was a "quota matcher" developed for James 2.2, but that
is  not
>>>>>>> supported in james 3.0 mailbox (the way mails are persisted in
>>>>>>> completely different in 3.0).
>>>>>>> To my knowledge, we don't have an out-of-the-box solution to
support
>>>>>>> quota in 3.0.
>>>>>>> You could open a JIRA,  trying to express your requirements :
is it
>>>>>>> quota per user or per mailbox (or both?), do you see it more
as part of
>>>>>>> the mailbox or the server project, is there a default value always
>>>>>>> applicable,...
>>>>>>> If you don't have a more precise idea, simply open it without
detail.
>>>>>>> Tks,
>>>>>>> Eric
>>>>>>> On 9/02/2011 10:25, Barry Bai wrote:
>>>>>>>> Hi, in James V3, how to limit space  of mailbox for one user?
>>>>>>>>
>>>>>>>> Thanks a lot.
>>>>>>>>
>>>>>>>> 2011-02-09
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Barry Bai
>>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
>>>>>>> For additional commands, e-mail: server-user-help@james.apache.org
>>>>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
>>>> For additional commands, e-mail: server-user-help@james.apache.org
>>>>
>>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
>>> For additional commands, e-mail: server-user-help@james.apache.org
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
>> For additional commands, e-mail: server-user-help@james.apache.org
>>
>>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
> For additional commands, e-mail: server-user-help@james.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message