From a7cb5e0110ca614d8ce37af871768585f54f62dc Mon Sep 17 00:00:00 2001 From: juanf <juanf> Date: Fri, 3 Jun 2016 07:53:07 +0000 Subject: [PATCH] SSDM-3720 : Fixing regression bug, take 2 SVN: 36625 --- .../db/search/detailed/DetailedQueryBuilder.java | 2 +- .../shared/dto/hibernate/SortableNumberBridgeUtils.java | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) 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 66072f122a8..fdba9a69383 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 a90e542345e..a7c765a5f03 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; } } } -- GitLab