Sounds like a bug to me.. Please open a jira issue for it .

https://issues.apache.org/jira/browse/JAMES

Thx,
Norman


2009/12/25 Aleksey Medvedev <[email protected]>:
> I've found the answer myself. The matter is that fetchmail's message
> processor adds attributes with "null" value like that
> (src/java/org/apache/james/fetchmail/MessageProcessor.java):
>
>        if (isUserUndefined())
>            aMail.setAttribute(getAttributePrefix() + "isUserUndefined",
> null);
>
>
> But HasMailAttrbute matcher ignores attributes with "null" value
> (src/java/org/apache/james/transport/matchers/HasMailAttribute.java):
>
>        if (mail.getAttribute (attributeName) != null) {
>            return mail.getRecipients();
>        }
>
>
> So all I had to do is to change null assignments to all attributes in
> MessageProcessor.java to something like this:
>        if (isUserUndefined())
>            aMail.setAttribute(getAttributePrefix() + "isUserUndefined",
> "true");
> and to rebuild James. Now everything works just as expected.
>
>
> By the way, MessageProcessor.java is the only place where mail attributes
> are initialized with nulls. Considering the fact, that such attributes will
> surely be ignored by HasMailAttribute and HasMailAttributeWithValue
> matchers, it definitely looks like a code shortcoming (don't want to say
> bug). Hope that this info may prove useful to developers.
>
>
> Aleksey.
>
>
>> Hello.
>>
>> I use James server 2.3.2 with fetchmail component enabled. I need to
>> resend all messages from fetchmail that have a recipient not defined in
>> James, to postmaster.
>> So I try to use "org.apache.james.fetchmail.isUserUndefined" attribute.
>> I've added a simple test mailet to the top of "transport" processor to
>> verify, if this attribute is pocessed correctly.
>>
>> Here it is:
>>  <mailet
>> match="HasMailAttribute=org.org.apache.james.fetchmail.isUserUndefined"
>> class="LogMessage">
>>    <passThrough>false</passThrough>
>>    <comment>isUserUndefined found!</comment>
>>  </mailet>
>>
>> So I expect, that the message should be logged to mailet.log and its
>> processing should stop. But in fact nothing appears in log and the message
>> ends its life in "address-error" repository, put there by
>> local-address-error processor. So I suspect, that "HasMailAttribute" matcher
>> does not see this "org.apache.james.fetchmail.isUserUndefined" attribute, my
>> mailet is not invoked and the message continues its way through transport
>> processor.
>>
>> By the way, if I change attribute in my mailet, for example to
>> "HasMailAttribute= org.apache.james.fetchmail.taskName", then all messages
>> from fetchmail are actually processed by it. So my problem is with
>> "...isUserUndefined" attribute.
>>
>> Please shom me my mistake and sorry for my english :)
>>
>>
>>
>> Thank you.
>>
>>
>> Aleksey
>>
>> ---------------------------------------------------------------------
>> 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]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to