diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/data/WebGeometryValueSerializer.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/data/WebGeometryValueSerializer.java index cd6b59004a..214ab19f63 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/data/WebGeometryValueSerializer.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/data/WebGeometryValueSerializer.java @@ -20,6 +20,8 @@ package io.cloudbeaver.server.data; import io.cloudbeaver.service.sql.DBWValueSerializer; import io.cloudbeaver.service.sql.WebSQLConstants; import org.jkiss.code.NotNull; +import org.jkiss.dbeaver.model.data.DBDAttributeBinding; +import org.jkiss.dbeaver.model.data.json.JSONUtils; import org.jkiss.dbeaver.model.exec.DBCException; import org.jkiss.dbeaver.model.exec.DBCSession; import org.jkiss.dbeaver.model.gis.DBGeometry; @@ -36,9 +38,18 @@ public class WebGeometryValueSerializer implements DBWValueSerializer webValue ) throws DBCException { + if (attribute instanceof DBDAttributeBinding) { + Object tempValue = ((DBDAttributeBinding) attribute).getValueHandler().getValueFromObject( + session, + attribute, + webValue.get(WebSQLConstants.ATTR_TEXT), false, true); + if (tempValue instanceof DBGeometry) { + return (DBGeometry) tempValue; + } + } return new DBGeometry( webValue.get(WebSQLConstants.ATTR_TEXT), CommonUtils.toInt(webValue.get(WebSQLConstants.ATTR_SRID)), - (Map) webValue.get(WebSQLConstants.ATTR_PROPERTIES)); + JSONUtils.getObject(webValue, WebSQLConstants.ATTR_PROPERTIES)); } }