diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/search/detailed/DetailedQueryBuilder.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/search/detailed/DetailedQueryBuilder.java index 66072f122a887b99b9f360abeb1b79e097ca5625..fdba9a69383e27e5f0b7f8cb4e50ce61812dbeb2 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/search/detailed/DetailedQueryBuilder.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/search/detailed/DetailedQueryBuilder.java @@ -121,7 +121,7 @@ public class DetailedQueryBuilder fieldPattern = LuceneQueryBuilder.adaptQuery(fieldUserQuery, useWildcardSearchMode, false); fieldAnalyzer = new IgnoreCaseAnalyzer(); - } else if (isNumeric && criterion.getType() != null) + } else if (isNumeric && criterion.getType() != null && SortableNumberBridgeUtils.isValidNumber(fieldPattern)) { fieldPattern = getRangeNumberQuery(criterion, fieldPattern); fieldAnalyzer = PassThroughAnalyzer.INSTANCE; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/hibernate/SortableNumberBridgeUtils.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/hibernate/SortableNumberBridgeUtils.java index a90e542345ebd126c5023f6aea6766ac2a81b280..a7c765a5f03c70ebd9bc11612742813ffaf1b124 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/hibernate/SortableNumberBridgeUtils.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/hibernate/SortableNumberBridgeUtils.java @@ -8,6 +8,11 @@ public class SortableNumberBridgeUtils private static int LUCENE_INTEGER_PADDING = 19; // On the UI a integer field can't have more than 18 characters, a long can have 19 taking out the // minus sign + public static boolean isValidNumber(String number) + { + return getNumberForLucene(number) != null; + } + public static String getNumberForLucene(String number) { try @@ -20,7 +25,7 @@ public class SortableNumberBridgeUtils return getNumberForLucene(Double.parseDouble(number)); } catch (Exception ex2) { - return "\"" + number + "\""; + return null; } } }