Yep that seems like a bug and its present in the dev branch too.
It happens because the method is inherited from Shape and that checks whether the shapes intersect, if it does it returns false.
But it conflicts with the Rectangle to Rectangle intersection check, which is a simple but very fast check.
Adding this to Rectangle class appears to fix it, haven't tested it much thou.
Code:
public boolean contains(Shape other) {
if (!(other instanceof Rectangle) && other.intersects(this)) {
return false;
}
for (int i = 0; i < other.getPointCount(); i++) {
float[] pt = other.getPoint(i);
if (!contains(pt[0], pt[1])) {
return false;
}
}
return true;
}