Index: SearchQuery.java =================================================================== --- SearchQuery.java (revision 1468833) +++ SearchQuery.java (working copy) @@ -27,6 +27,7 @@ import java.util.List; import java.util.Set; +import javax.mail.Flags; import javax.mail.Flags.Flag; /** @@ -1409,12 +1410,13 @@ public static final class FlagCriterion extends Criterion { private static final long serialVersionUID = 1L; - private final Flag flag; + // Flags not Flag because Flags are serializable and Flag is not + private final Flags flag; private final BooleanOperator operator; private FlagCriterion(final Flag flag, final BooleanOperator operator) { super(); - this.flag = flag; + this.flag = new Flags(flag); this.operator = operator; } @@ -1424,7 +1426,9 @@ * @return the flag, not null */ public Flag getFlag() { - return flag; + // safe because the Flags(Flag) does system flags, + // and James code also constructs FlagCriterion only with system flags + return flag.getSystemFlags()[0]; } /** @@ -1492,6 +1496,25 @@ } + /** + * Constructs a String with all attributes in name = value + * format. + * + * @return a String representation of this object. + */ + public String toString() { + final String TAB = " "; + + StringBuffer retValue = new StringBuffer(); + + retValue.append("FlagCriterion ( ").append("flag = ").append(this.flag).append(TAB).append("operator = ") + .append(this.operator).append(TAB).append(" )"); + + return retValue.toString(); + } + + } + /** * Filters on message identity. */