diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d2f93ffaca091b8d0cbf9d5289e5dcd9f43c3e8..07467d9e119418dfa74b83a539ed3572678d0425 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed +* #127 "nan" as value (list item) in properties with data type "LIST<DOUBLE>" + return with "Cannot parse value to double" error. * #170 Updating an abstract list-type property with a default value fails with "unkown error". * #145 Documentation of importances and inheritance diff --git a/src/main/java/org/caosdb/server/datatype/DoubleDatatype.java b/src/main/java/org/caosdb/server/datatype/DoubleDatatype.java index f2f8d2823e4483c59945c168f5e83d029bc6da6a..e9e2526521d044fc89746eb0e3204de97f473e0c 100644 --- a/src/main/java/org/caosdb/server/datatype/DoubleDatatype.java +++ b/src/main/java/org/caosdb/server/datatype/DoubleDatatype.java @@ -33,16 +33,19 @@ public class DoubleDatatype extends AbstractDatatype { public SingleValue parseValue(final Object value) throws Message { try { if (value instanceof GenericValue) { - return new GenericValue(Double.parseDouble(((GenericValue) value).toDatabaseString())); + return parse(((GenericValue) value).toDatabaseString()); } else { - String valueStr = value.toString(); - if (valueStr.toLowerCase().equals("nan")) { - valueStr = "NaN"; - } - return new GenericValue(Double.parseDouble(valueStr)); + return parse(value.toString()); } } catch (final NumberFormatException e) { throw ServerMessages.CANNOT_PARSE_DOUBLE_VALUE; } } + + private GenericValue parse(String valueStr) { + if (valueStr.toLowerCase().equals("nan")) { + valueStr = "NaN"; + } + return new GenericValue(Double.parseDouble(valueStr)); + } }