The logic for Area's was flawed in earlier versions and seemed to work with that area initialization you have there, but look closely at it and you will see it's flawed. The Area constructor you are using, takes the left bottom corner as the first two argumentsand the right top corner as the remaining (both the first is x and the second is y). But it does actually also support it the other way around, in fact it grabs the smallest and the biggest of the two x and y variables to compose the corners.
/**
* The boundaries to initialize this area with.
* @param x1 The bottom left x bound (inclusive).
* @param y1 The bottom left y bound (inclusive).
* @param x2 The top right x bound (inclusive).
* @param y2 The top right y bound (inclusive).
*/
public Area(int x1, int y1, int x2, int y2) {
In your declaration, your x1 is smaller than your x2, but your y1 is bigger than your y2, which is mixed up. I'm not sure what the actual area is you're trying to construct there, but the area used would be this:
XXXXXXXXXXXXXXXXXXXXXXXXXXXX(2729, 3494)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
(2721, 3490) XXXXXXXXXXXXXXXXXXXXXXXXXXX