From 0e6096989b608dbf61110c0a6fe5dad903cd4ce5 Mon Sep 17 00:00:00 2001 From: gmantele <gmantele@ari.uni-heidelberg.de> Date: Thu, 10 Sep 2015 17:50:03 +0200 Subject: [PATCH] [TAP] Fix bug, reported by A. Oberto, about Character formatting in VOTable format. A ClassCastException was thrown about an impossible cast from String to Character. --- src/tap/data/ResultSetTableIterator.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/tap/data/ResultSetTableIterator.java b/src/tap/data/ResultSetTableIterator.java index 220d9b7..89bf1ed 100644 --- a/src/tap/data/ResultSetTableIterator.java +++ b/src/tap/data/ResultSetTableIterator.java @@ -42,7 +42,7 @@ import adql.translator.JDBCTranslator; * </i></p> * * @author Grégory Mantelet (ARI) - * @version 2.1 (07/2015) + * @version 2.1 (09/2015) * @since 2.0 */ public class ResultSetTableIterator implements TableIterator { @@ -362,6 +362,9 @@ public class ResultSetTableIterator implements TableIterator { // if the column value is a Timestamp object, format it in ISO8601: if (o instanceof Timestamp) o = ISO8601Format.format(((Timestamp)o).getTime()); + // if the column should be only a character: + else if (colType != null && o != null && colType.type == DBDatatype.CHAR && (colType.length == 1 || colType.length <= 0) && o instanceof String) + o = ((String)o).charAt(0); // if the column value is a geometrical object, it must be serialized in STC-S: else if (translator != null && colType != null && colType.isGeometry()){ Region region = translator.translateGeometryFromDB(o); -- GitLab