Skip to content

Commit d6457a6

Browse files
committed
fix: make number parsing more strict
1 parent 180e505 commit d6457a6

2 files changed

Lines changed: 19 additions & 16 deletions

File tree

android-core/src/androidTest/kotlin/com.mparticle/MPUserTest.kt

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,11 @@ class MPUserTest : BaseCleanStartedEachTest() {
6161
) {
6262
assertEquals(6, userAttributes.size)
6363
assertEquals("bar", userAttributes["foo"])
64-
assertEquals(123L, userAttributes["fooInt"])
65-
assertEquals(12345L, userAttributes["fooLong"])
64+
assertEquals(123, userAttributes["fooInt"])
65+
assertEquals(12345, userAttributes["fooLong"])
6666
assertEquals(10.15, userAttributes["fooDouble"])
67-
assertEquals(-10L, userAttributes["fooNegInt"])
68-
assertEquals(-1010L, userAttributes["fooNegLong"])
67+
assertEquals(-10, userAttributes["fooNegInt"])
68+
assertEquals(-1010, userAttributes["fooNegLong"])
6969
assertEquals(null, userAttributes["fooNull"])
7070
}
7171
})
@@ -83,12 +83,12 @@ class MPUserTest : BaseCleanStartedEachTest() {
8383
incrementUserAttribute("foo", 3)
8484

8585
android_test_hack()
86-
assertEquals(4L, userAttributes["foo"])
86+
assertEquals(4, userAttributes["foo"])
8787

8888
// test negative increment
8989
incrementUserAttribute("foo", -2)
9090
android_test_hack()
91-
assertEquals(2L, userAttributes["foo"])
91+
assertEquals(2, userAttributes["foo"])
9292

9393
// test remove incremented attribute
9494
removeUserAttribute("foo")
@@ -130,20 +130,20 @@ class MPUserTest : BaseCleanStartedEachTest() {
130130
fun testIncrementLongAttribute() {
131131
MParticle.getInstance()!!.Identity().currentUser!!.apply {
132132
assertTrue { getUserAttributes().isEmpty() }
133-
setUserAttribute("foo", 10L)
133+
setUserAttribute("foo", 10)
134134

135135
android_test_hack()
136136
assertEquals(1, userAttributes.size)
137-
assertEquals(10L, userAttributes["foo"])
138-
incrementUserAttribute("foo", 37L)
137+
assertEquals(10, userAttributes["foo"])
138+
incrementUserAttribute("foo", 37)
139139

140140
android_test_hack()
141-
assertEquals(47L, userAttributes["foo"])
141+
assertEquals(47, userAttributes["foo"])
142142

143143
// test negative increment
144-
incrementUserAttribute("foo", -21L)
144+
incrementUserAttribute("foo", -21)
145145
android_test_hack()
146-
assertEquals(26L, userAttributes["foo"])
146+
assertEquals(26, userAttributes["foo"])
147147

148148
// test remove incremented attribute
149149
removeUserAttribute("foo")

android-core/src/main/java/com/mparticle/internal/MPUtility.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -833,17 +833,20 @@ public static Number addNumbers(Number number1, Number number2) {
833833

834834
public static Object toNumberOrString(String stringValue) {
835835
if (stringValue == null) {
836-
return stringValue;
836+
return null;
837837
}
838838
for (Character c : stringValue.toCharArray()) {
839839
if (!Character.isDigit(c) && c != '.' && c != '-') {
840840
return stringValue;
841841
}
842842
}
843843
try {
844-
return NumberFormat.getInstance().parse(stringValue);
845-
} catch (ParseException e) {
846-
}
844+
return Integer.parseInt(stringValue);
845+
} catch (NumberFormatException ignored){}
846+
try {
847+
return Double.parseDouble(stringValue);
848+
} catch (NumberFormatException ignored){}
849+
847850
return stringValue;
848851
}
849852

0 commit comments

Comments
 (0)