diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/GeoConverters.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/GeoConverters.java index f4d3cdc66..b1c3cac2c 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/GeoConverters.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/GeoConverters.java @@ -53,6 +53,7 @@ import com.mongodb.DBObject; * @author Thomas Darimont * @author Oliver Gierke * @author Christoph Strobl + * @author Thiago Diniz da Silveira * @since 1.5 */ abstract class GeoConverters { @@ -120,8 +121,11 @@ abstract class GeoConverters { if (source.containsField("type")) { return DbObjectToGeoJsonPointConverter.INSTANCE.convert(source); } + + Number x = (Number) source.get("x"); + Number y = (Number) source.get("y"); - return new Point((Double) source.get("x"), (Double) source.get("y")); + return new Point(x.doubleValue(), y.doubleValue()); } } @@ -255,7 +259,8 @@ abstract class GeoConverters { } DBObject center = (DBObject) source.get("center"); - Double radius = (Double) source.get("radius"); + Number radiusNumber = (Number) source.get("radius"); + Double radius = radiusNumber.doubleValue(); Distance distance = new Distance(radius); @@ -326,7 +331,9 @@ abstract class GeoConverters { } DBObject center = (DBObject) source.get("center"); - Double radius = (Double) source.get("radius"); + Number radiusNumber = (Number) source.get("radius"); + Double radius = radiusNumber.doubleValue(); + Distance distance = new Distance(radius);