classpathx-javamail
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Classpathx-javamail] Re: Bug in 1.1.2: Folder.search() alters Folder.mo


From: Boris Folgmann
Subject: [Classpathx-javamail] Re: Bug in 1.1.2: Folder.search() alters Folder.mode (works with 1.1.1)
Date: Fri, 13 Nov 2009 15:24:08 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.1.4) Gecko/20091112 SeaMonkey/2.0

Hi Chris,

Chris Burdess schrieb/wrote:
The mode is only changed from a call to update(MailboxStatus,
boolean). This can happen during various method calls, but not search
(). Are you sure this is your complete code with respect to IMAPFolder?

Yes, I tried some even simpler constructions:

    public void modeBug() throws MessagingException, IOException
    {
        try {
            store.connect();
            Folder folder = store.getFolder("empty IMAP folder");
            folder.open(Folder.READ_WRITE);
            System.out.println("10 mode: " + folder.getMode());
            folder.expunge();
            System.out.println("20 mode: " + folder.getMode());
            folder.search(remoteDsnTerm); // returns 0 msgs, as folder is empty
            System.out.println("30 mode: " + folder.getMode());
            folder.close(true);
        } finally {
            store.close();
        }
    }

The output is:
10 mode: 2
20 mode: 2
30 mode: 1

I further investigated and found out that the mode change does not happen with every search term. Here's mine triggering the bug:

remoteDsnTerm = new AndTerm(new SearchTerm[] {
            new OrTerm(new SearchTerm[] {
                new FromStringTerm("Mail Delivery Subsystem <MAILER-DAEMON@"),
                new FromStringTerm("Mail Delivery System <MAILER-DAEMON@"),
                new FromStringTerm("Mail Delivery Service <postmaster@")
            }),
new RecipientTerm(Message.RecipientType.TO, new InternetAddress(toAddress)), new HeaderTerm("content-type", "multipart/report; report-type=delivery-status;")
    });

1. The bug happens not if the complete OrTerm is removed.
2. The bug happens not if expunge() is not called before search().

I hope you find the problem.

cu,
        boris





reply via email to

[Prev in Thread] Current Thread [Next in Thread]