Skip to content

Commit d0e87ba

Browse files
committed
Make .decodeObject() strictly handle Java primitive types
1 parent 3608a0d commit d0e87ba

File tree

4 files changed

+15
-3
lines changed

4 files changed

+15
-3
lines changed

CHANGELOG.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
1-
Completely rebuilt the project to separate features into different modules
1+
### Fixed Bugs
2+
`reflection` module:
3+
- .decodeObject() not working properly with Java primitives

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
*/
1818

1919
val GROUP = "io.github.likespro" // Until normal group ID - eth.likespro.commons
20-
val VERSION = "3.0.0"
20+
val VERSION = "3.0.1"
2121
val NAME = "likespro Commons"
2222
val DESCRIPTION = "Common utilities for likespro projects"
2323
val URL = "https://github.com/likespro/commons"

reflection/src/main/java/eth/likespro/commons/reflection/ObjectEncoding.kt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
package eth.likespro.commons.reflection
2020

2121
import com.google.gson.*
22-
import com.google.gson.reflect.TypeToken
2322
import eth.likespro.commons.reflection.ReflectionUtils.getType
2423
import java.lang.reflect.Type
2524

@@ -106,6 +105,15 @@ object ObjectEncoding {
106105
}
107106

108107
private val gson = GsonBuilder()
108+
// Unboxed
109+
.registerTypeHierarchyAdapter(java.lang.Boolean.TYPE, StrictBooleanDeserializer())
110+
.registerTypeHierarchyAdapter(java.lang.Byte.TYPE, StrictByteDeserializer())
111+
.registerTypeHierarchyAdapter(java.lang.Short.TYPE, StrictShortDeserializer())
112+
.registerTypeHierarchyAdapter(java.lang.Integer.TYPE, StrictIntDeserializer())
113+
.registerTypeHierarchyAdapter(java.lang.Long.TYPE, StrictLongDeserializer())
114+
.registerTypeHierarchyAdapter(java.lang.Float.TYPE, StrictFloatDeserializer())
115+
.registerTypeHierarchyAdapter(java.lang.Double.TYPE, StrictDoubleDeserializer())
116+
//Boxed
109117
.registerTypeHierarchyAdapter(java.lang.Boolean::class.java, StrictBooleanDeserializer())
110118
.registerTypeHierarchyAdapter(java.lang.Byte::class.java, StrictByteDeserializer())
111119
.registerTypeHierarchyAdapter(java.lang.Short::class.java, StrictShortDeserializer())

reflection/src/test/java/eth/likespro/commons/reflection/ObjectEncodingTest.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ class ObjectEncodingTest {
3636
assertEquals("""{"key":"value"}""", json)
3737
}
3838

39+
40+
3941
@Test
4042
fun decodeObject_decodesValidJsonStringToObject() {
4143
val json = """{"key":"value"}"""

0 commit comments

Comments
 (0)