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.
*/