Skip to content

Commit 8a4c307

Browse files
Merge branch 'bernd-fix/issue-121'
2 parents 43f2bb8 + 973de6d commit 8a4c307

File tree

3 files changed

+59
-4
lines changed

3 files changed

+59
-4
lines changed

build.gradle

+23-4
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ configurations {
3737
integrationTest211 { extendsFrom integrationTestBase }
3838
integrationTest212 { extendsFrom integrationTestBase }
3939
integrationTest213 { extendsFrom integrationTestBase }
40+
integrationTest214 { extendsFrom integrationTestBase }
41+
integrationTest215 { extendsFrom integrationTestBase }
4042
}
4143

4244
String jacksonCore = 'com.fasterxml.jackson.core:jackson-core:'
@@ -46,9 +48,9 @@ String junit = 'junit:junit:4.13.2'
4648
String mongoDbJavaDriver = 'org.mongodb:mongo-java-driver:3.12.12'
4749

4850
dependencies {
49-
implementation jacksonCore + '2.13.0'
50-
implementation jacksonAnnotations + '2.13.0'
51-
implementation jacksonDatabind + '2.13.0'
51+
implementation jacksonCore + '2.15.2'
52+
implementation jacksonAnnotations + '2.15.2'
53+
implementation jacksonDatabind + '2.15.2'
5254

5355
testImplementation junit
5456
testImplementation mongoDbJavaDriver
@@ -107,6 +109,14 @@ dependencies {
107109
integrationTest213 jacksonCore + '2.13.0'
108110
integrationTest213 jacksonAnnotations + '2.13.0'
109111
integrationTest213 jacksonDatabind + '2.13.0'
112+
113+
integrationTest214 jacksonCore + '2.14.3'
114+
integrationTest214 jacksonAnnotations + '2.14.3'
115+
integrationTest214 jacksonDatabind + '2.14.3'
116+
117+
integrationTest215 jacksonCore + '2.15.2'
118+
integrationTest215 jacksonAnnotations + '2.15.2'
119+
integrationTest215 jacksonDatabind + '2.15.2'
110120
}
111121

112122
jar {
@@ -201,11 +211,20 @@ task doIntegrationTest213(type: Test) {
201211
classpath = sourceSets.test.output + sourceSets.main.output + configurations.integrationTest213
202212
}
203213

214+
task doIntegrationTest214(type: Test) {
215+
classpath = sourceSets.test.output + sourceSets.main.output + configurations.integrationTest214
216+
}
217+
218+
task doIntegrationTest215(type: Test) {
219+
classpath = sourceSets.test.output + sourceSets.main.output + configurations.integrationTest215
220+
}
221+
204222
task integrationTest(dependsOn: [ doIntegrationTest21, doIntegrationTest22,
205223
doIntegrationTest23, doIntegrationTest24, doIntegrationTest25,
206224
doIntegrationTest26, doIntegrationTest27, doIntegrationTest28,
207225
doIntegrationTest29, doIntegrationTest210, doIntegrationTest211,
208-
doIntegrationTest212, doIntegrationTest213 ])
226+
doIntegrationTest212, doIntegrationTest213, doIntegrationTest214,
227+
doIntegrationTest215])
209228

210229
check.dependsOn integrationTest
211230

src/main/java/de/undercouch/bson4jackson/BsonParser.java

+5
Original file line numberDiff line numberDiff line change
@@ -710,6 +710,11 @@ public Number getNumberValueExact() throws IOException {
710710
return getNumberValue();
711711
}
712712

713+
@Override
714+
public Object getNumberValueDeferred() throws IOException {
715+
return getNumberValue();
716+
}
717+
713718
@Override
714719
public JsonParser.NumberType getNumberType() {
715720
if (_currentContext == null) {

src/test/java/de/undercouch/bson4jackson/BsonParserTest.java

+31
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package de.undercouch.bson4jackson;
22

3+
import com.fasterxml.jackson.annotation.JsonUnwrapped;
34
import com.fasterxml.jackson.core.JsonParser;
45
import com.fasterxml.jackson.core.JsonToken;
56
import com.fasterxml.jackson.databind.DeserializationContext;
@@ -654,4 +655,34 @@ public void parseMinKey() throws Exception {
654655
assertEquals(1, data.size());
655656
assertEquals("MinKey", data.get("A"));
656657
}
658+
659+
static class OuterClass {
660+
@JsonUnwrapped
661+
public InnerClass inner = new InnerClass();
662+
}
663+
664+
static class InnerClass {
665+
public float floatValue = 40.0f;
666+
}
667+
668+
/**
669+
* Test if wrapped floats deserialized. Refers issue #121.
670+
* @throws Exception if something goes wrong
671+
*/
672+
@Test
673+
public void parseWrappedFloat() throws Exception {
674+
OuterClass outer = new OuterClass();
675+
outer.inner.floatValue = 50.0f;
676+
677+
ByteArrayOutputStream baos = new ByteArrayOutputStream();
678+
679+
ObjectMapper mapper = new ObjectMapper(new BsonFactory());
680+
681+
mapper.writeValue(baos, outer);
682+
683+
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
684+
OuterClass clone = mapper.readValue(bais, OuterClass.class);
685+
686+
assertEquals(clone.inner.floatValue, outer.inner.floatValue, 0);
687+
}
657688
}

0 commit comments

Comments
 (0)