You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mu...@apache.org on 2020/09/29 18:23:33 UTC
[lucene-solr] branch master updated: Revert "SOLR-14767 : Fix
NumberFormatException when int/long field value is floating num"
This is an automated email from the ASF dual-hosted git repository.
munendrasn pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
The following commit(s) were added to refs/heads/master by this push:
new 274a3d6 Revert "SOLR-14767 : Fix NumberFormatException when int/long field value is floating num"
274a3d6 is described below
commit 274a3d69d29a811f459b1c898eb4497168ee2156
Author: Munendra S N <mu...@apache.org>
AuthorDate: Tue Sep 29 23:52:11 2020 +0530
Revert "SOLR-14767 : Fix NumberFormatException when int/long field value is floating num"
This reverts commit 63f0b6b706dcbc8e92a8ff3ee8b81d6d6900aa67.
---
solr/CHANGES.txt | 3 ---
.../java/org/apache/solr/schema/IntPointField.java | 14 +++---------
.../org/apache/solr/schema/LongPointField.java | 14 +++---------
.../src/java/org/apache/solr/schema/TrieField.java | 26 +++++-----------------
.../test/org/apache/solr/update/TestUpdate.java | 10 ---------
5 files changed, 12 insertions(+), 55 deletions(-)
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 5d44fd7..5242359 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -251,9 +251,6 @@ Bug Fixes
* SOLR-14850: Fix ExactStatsCache NullPointerException when shards.tolerant=true.
(Yevhen Tienkaiev via ab)
-* SOLR-14767: Fix NumberFormatException when integer/long field value is specified as floating number
- (Apoorv Bhawsar, Munendra S N)
-
* SOLR-14897: Fix unlimited number of forwarding the request from one node to another node. (hossman, Munendra S N)
* SOLR-14898: Stop returning duplicate HTTP response headers when requests are forward to another node. (hossman)
diff --git a/solr/core/src/java/org/apache/solr/schema/IntPointField.java b/solr/core/src/java/org/apache/solr/schema/IntPointField.java
index d1493cd..84a9a78 100644
--- a/solr/core/src/java/org/apache/solr/schema/IntPointField.java
+++ b/solr/core/src/java/org/apache/solr/schema/IntPointField.java
@@ -51,7 +51,8 @@ public class IntPointField extends PointField implements IntValueFieldType {
try {
if (val instanceof CharSequence) return Integer.parseInt( val.toString());
} catch (NumberFormatException e) {
- return (int)Float.parseFloat(val.toString());
+ Float v = Float.parseFloat(val.toString());
+ return v.intValue();
}
return super.toNativeType(val);
}
@@ -145,16 +146,7 @@ public class IntPointField extends PointField implements IntValueFieldType {
@Override
public IndexableField createField(SchemaField field, Object value) {
- int intValue;
- if (value instanceof Number) {
- intValue = ((Number) value).intValue();
- } else {
- try {
- intValue = Integer.parseInt(value.toString());
- } catch (NumberFormatException e) {
- intValue = (int) Float.parseFloat(value.toString());
- }
- }
+ int intValue = (value instanceof Number) ? ((Number) value).intValue() : Integer.parseInt(value.toString());
return new IntPoint(field.getName(), intValue);
}
diff --git a/solr/core/src/java/org/apache/solr/schema/LongPointField.java b/solr/core/src/java/org/apache/solr/schema/LongPointField.java
index 6fd011d..83a6ed3 100644
--- a/solr/core/src/java/org/apache/solr/schema/LongPointField.java
+++ b/solr/core/src/java/org/apache/solr/schema/LongPointField.java
@@ -50,7 +50,8 @@ public class LongPointField extends PointField implements LongValueFieldType {
try {
if (val instanceof CharSequence) return Long.parseLong(val.toString());
} catch (NumberFormatException e) {
- return (long)Double.parseDouble(val.toString());
+ Double v = Double.parseDouble(val.toString());
+ return v.longValue();
}
return super.toNativeType(val);
}
@@ -150,16 +151,7 @@ public class LongPointField extends PointField implements LongValueFieldType {
@Override
public IndexableField createField(SchemaField field, Object value) {
- long longValue;
- if (value instanceof Number) {
- longValue = ((Number) value).longValue();
- } else {
- try {
- longValue = Long.parseLong(value.toString());
- } catch (NumberFormatException e) {
- longValue = (long) Double.parseDouble(value.toString());
- }
- }
+ long longValue = (value instanceof Number) ? ((Number) value).longValue() : Long.parseLong(value.toString());
return new LongPoint(field.getName(), longValue);
}
diff --git a/solr/core/src/java/org/apache/solr/schema/TrieField.java b/solr/core/src/java/org/apache/solr/schema/TrieField.java
index c0f04de..a80cae7 100644
--- a/solr/core/src/java/org/apache/solr/schema/TrieField.java
+++ b/solr/core/src/java/org/apache/solr/schema/TrieField.java
@@ -553,16 +553,9 @@ public class TrieField extends NumericFieldType {
switch (type) {
case INTEGER:
- int i;
- if (value instanceof Number) {
- i = ((Number) value).intValue();
- } else {
- try {
- i = Integer.parseInt(value.toString());
- } catch (NumberFormatException e) {
- i = (int) Float.parseFloat(value.toString());
- }
- }
+ int i = (value instanceof Number)
+ ? ((Number)value).intValue()
+ : Integer.parseInt(value.toString());
f = new LegacyIntField(field.getName(), i, ft);
break;
case FLOAT:
@@ -572,16 +565,9 @@ public class TrieField extends NumericFieldType {
f = new LegacyFloatField(field.getName(), fl, ft);
break;
case LONG:
- long l;
- if (value instanceof Number) {
- l = ((Number) value).longValue();
- } else {
- try {
- l = Long.parseLong(value.toString());
- } catch (NumberFormatException e) {
- l = (long) Double.parseDouble(value.toString());
- }
- }
+ long l = (value instanceof Number)
+ ? ((Number)value).longValue()
+ : Long.parseLong(value.toString());
f = new LegacyLongField(field.getName(), l, ft);
break;
case DOUBLE:
diff --git a/solr/core/src/test/org/apache/solr/update/TestUpdate.java b/solr/core/src/test/org/apache/solr/update/TestUpdate.java
index 04b8c40..d93b844 100644
--- a/solr/core/src/test/org/apache/solr/update/TestUpdate.java
+++ b/solr/core/src/test/org/apache/solr/update/TestUpdate.java
@@ -238,14 +238,4 @@ public class TestUpdate extends SolrTestCaseJ4 {
fail();
}
- @Test // SOLR-14767
- public void testStringUpdateOnLongAndIntFields() throws Exception {
- clearIndex();
-
- addAndGetVersion(sdoc("id","1", "val_is", "42.0", "val_is", 12, "val_i", "12.1", "val_l",
- "42.0", "val_ll", "12.1", "val_ll", "32"), null);
- assertJQ(req("qt","/get", "id","1", "fl","id,val*")
- ,"=={'doc':{'id':'1', 'val_i':12, 'val_is':[42,12], 'val_l':42, 'val_ll':[12,32]}}"
- );
- }
}