Here's the JTS description for convexHull():
```
Computes the smallest convex Polygon that contains all the points in the Geometry. This obviously applies only to Geometry s which contain 3 or more points; the results for degenerate cases are specified as follows:
Number of Points in argument Geometry	Geometry class of result
0	 empty GeometryCollection
1	Point
2	LineString
3 or more	Polygon
Returns:
the minimum-area convex polygon containing this Geometry' s points
```
So we either need to assert that the MultiPoint has at least 3 points, or change the return value. I also found that if you give it 3 points that form a straight line, then it returns a line and not a polygon.