james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Oleg Zhurakousky (Commented) (JIRA)" <server-...@james.apache.org>
Subject [jira] [Commented] (JAMES-1375) IMap server fails to search for mail using SearchTerms which contain USER flags
Date Thu, 16 Feb 2012 13:53:59 GMT

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

Oleg Zhurakousky commented on JAMES-1375:
-----------------------------------------

Thanks Eric

The problem is in how ImapRequestLineReader.consumeWord is invoked from ImapRequestLineReader.atom().
Currently you are invoking:

public String consumeWord(CharacterValidator validator)

However the stack originates from SearchComomandParser.addUntilParen(..) which clearly means
that you want to consume the word up until you encounter closing paren, so you you should
actually invoke:

private String consumeWord(CharacterValidator validator, boolean stripParen)

... with boolean value 'true', so the atom() method should look like this:

public String atom() throws DecodingException {
        return consumeWord(new ATOM_CHARValidator(), true);
}

And here is the passing test to include in SearchCommandParserNotTest (nothing else failed)

@Test
    public void testUserFlagsParsing() throws Exception {
        ImapRequestLineReader reader = new ImapRequestStreamLineReader(
                new ByteArrayInputStream("NOT (KEYWORD bar KEYWORD foo)".getBytes("US-ASCII")),
                new ByteArrayOutputStream());
        SearchKey key = parser.searchKey(null, reader, null, false);
        List<SearchKey> keys = key.getKeys().get(0).getKeys();
        assertEquals(2, keys.size());
        assertEquals("bar", keys.get(0).getValue());
        assertEquals("foo", keys.get(1).getValue());
    }

I'll try to set up the full dev environment and start James from it and integration test it
but so far the problem seems to be straight forward.

                
> IMap server fails to search for mail using SearchTerms which contain USER flags
> -------------------------------------------------------------------------------
>
>                 Key: JAMES-1375
>                 URL: https://issues.apache.org/jira/browse/JAMES-1375
>             Project: JAMES Server
>          Issue Type: Bug
>          Components: IMAPServer
>    Affects Versions: 3.0-beta3
>            Reporter: Oleg Zhurakousky
>            Priority: Critical
>
> The code below will fail
> {code}
> public void testWithSearchTerm() throws Exception {
> 	Properties props = System.getProperties();
> 	props.setProperty("mail.store.protocol", "imap");
> 	props.setProperty("mail.debug", "true");
> 	Session session = Session.getDefaultInstance(props);
> 	URLName urlName = new URLName(
> 				"imap://oleg%40oleg-2.local:password@oleg-2.local/INBOX");
> 	Store store = session.getStore(urlName);
> 	if (!store.isConnected()) {
> 		store.connect();
> 		Folder folder = store.getFolder(urlName);
> 		folder.open(2);
> 		NotTerm notJunk = new NotTerm(new FlagTerm(new Flags("foo"), true));
> 		folder.search(notJunk);
> 	}
> }
> {code}
> with 
> {code}
> Caused by: com.sun.mail.iap.BadCommandException: A4 BAD SEARCH failed. Illegal arguments.
> 	at com.sun.mail.iap.Protocol.handleResult(Protocol.java:346)
> 	at com.sun.mail.imap.protocol.IMAPProtocol.issueSearch(IMAPProtocol.java:1693)
> 	at com.sun.mail.imap.protocol.IMAPProtocol.search(IMAPProtocol.java:1599)
> 	at com.sun.mail.imap.protocol.IMAPProtocol.search(IMAPProtocol.java:1586)
> 	at com.sun.mail.imap.IMAPFolder.search(IMAPFolder.java:1649)
> {code}
> However setting the user flag works fine and it can be seen in the incoming message

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


Mime
View raw message