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