Skip to content

Commit 13a7490

Browse files
committed
Fix #1947
1 parent 881f920 commit 13a7490

File tree

4 files changed

+53
-1
lines changed

4 files changed

+53
-1
lines changed

release-notes/CREDITS-2.x

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -758,3 +758,7 @@ Aniruddha Maru (maroux@github)
758758
* Reported #1940: `Float` values with integer value beyond `int` lose precision if
759759
bound to `long`
760760
(2.9.5)
761+
762+
Timur Shakurov (saladinkzn@github)
763+
* Reported #1947: `MapperFeature.AUTO_DETECT_XXX` do not work if all disabled
764+
(2.9.5)

release-notes/VERSION-2.x

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ Project: jackson-databind
2020
#1941: `TypeFactory.constructFromCanonical()` throws NPE for Unparameterized
2121
generic canonical strings
2222
(reported by ayushgp@github)
23+
#1947: `MapperFeature.AUTO_DETECT_XXX` do not work if all disabled
24+
(reported by Timur S)
2325

2426
2.9.4 (24-Jan-2018)
2527

src/main/java/com/fasterxml/jackson/databind/cfg/MapperConfigBase.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -672,7 +672,8 @@ public final VisibilityChecker<?> getDefaultVisibilityChecker()
672672
{
673673
VisibilityChecker<?> vchecker = _configOverrides.getDefaultVisibility();
674674
// then global overrides (disabling)
675-
if ((_mapperFeatures & AUTO_DETECT_MASK) != 0) {
675+
// 05-Mar-2018, tatu: As per [databind#1947], need to see if any disabled
676+
if ((_mapperFeatures & AUTO_DETECT_MASK) != AUTO_DETECT_MASK) {
676677
if (!isEnabled(MapperFeature.AUTO_DETECT_FIELDS)) {
677678
vchecker = vchecker.withFieldVisibility(Visibility.NONE);
678679
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package com.fasterxml.jackson.databind.introspect;
2+
3+
import com.fasterxml.jackson.annotation.JsonProperty;
4+
5+
import com.fasterxml.jackson.databind.*;
6+
7+
// Test(s) for [databind#1947], regression for 2.9
8+
public class AutoDetect1947Test extends BaseMapTest
9+
{
10+
static class Entity1947 {
11+
public int shouldBeDetected;
12+
public String shouldNotBeDetected;
13+
14+
@JsonProperty
15+
public int getShouldBeDetected() {
16+
return shouldBeDetected;
17+
}
18+
19+
public void setShouldBeDetected(int shouldBeDetected) {
20+
this.shouldBeDetected = shouldBeDetected;
21+
}
22+
23+
public String getShouldNotBeDetected() {
24+
return shouldNotBeDetected;
25+
}
26+
27+
public void setShouldNotBeDetected(String shouldNotBeDetected) {
28+
this.shouldNotBeDetected = shouldNotBeDetected;
29+
}
30+
}
31+
public void testDisablingAll() throws Exception
32+
{
33+
ObjectMapper mapper = new ObjectMapper()
34+
.disable(MapperFeature.AUTO_DETECT_SETTERS)
35+
.disable(MapperFeature.AUTO_DETECT_FIELDS)
36+
.disable(MapperFeature.AUTO_DETECT_GETTERS)
37+
.disable(MapperFeature.AUTO_DETECT_CREATORS)
38+
.disable(MapperFeature.AUTO_DETECT_IS_GETTERS);
39+
String json = mapper.writeValueAsString(new Entity1947());
40+
JsonNode n = mapper.readTree(json);
41+
assertEquals(1, n.size());
42+
assertTrue(n.has("shouldBeDetected"));
43+
assertFalse(n.has("shouldNotBeDetected"));
44+
}
45+
}

0 commit comments

Comments
 (0)