Skip to content

Commit cf95af0

Browse files
committed
Fix #1580 (and minor test cleanup)
1 parent 08cd242 commit cf95af0

File tree

7 files changed

+135
-800
lines changed

7 files changed

+135
-800
lines changed

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

+24-13
Original file line numberDiff line numberDiff line change
@@ -54,31 +54,36 @@ public ConfigOverrides() {
5454
// !!! TODO: change to (ALWAYS, ALWAYS)?
5555
JsonInclude.Value.empty(),
5656
JsonSetter.Value.empty(),
57-
VisibilityChecker.Std.defaultInstance()
57+
VisibilityChecker.Std.defaultInstance(),
58+
null
5859
);
5960
}
6061

6162
protected ConfigOverrides(Map<Class<?>, MutableConfigOverride> overrides,
6263
JsonInclude.Value defIncl,
6364
JsonSetter.Value defSetter,
64-
VisibilityChecker<?> defVisibility) {
65+
VisibilityChecker<?> defVisibility,
66+
Boolean defMergeable) {
6567
_overrides = overrides;
6668
_defaultInclusion = defIncl;
6769
_defaultSetterInfo = defSetter;
6870
_visibilityChecker = defVisibility;
71+
_defaultMergeable = defMergeable;
6972
}
7073

7174
public ConfigOverrides copy()
7275
{
76+
Map<Class<?>, MutableConfigOverride> newOverrides;
7377
if (_overrides == null) {
74-
return new ConfigOverrides();
75-
}
76-
Map<Class<?>, MutableConfigOverride> newOverrides = _newMap();
77-
for (Map.Entry<Class<?>, MutableConfigOverride> entry : _overrides.entrySet()) {
78-
newOverrides.put(entry.getKey(), entry.getValue().copy());
78+
newOverrides = null;
79+
} else {
80+
newOverrides = _newMap();
81+
for (Map.Entry<Class<?>, MutableConfigOverride> entry : _overrides.entrySet()) {
82+
newOverrides.put(entry.getKey(), entry.getValue().copy());
83+
}
7984
}
8085
return new ConfigOverrides(newOverrides,
81-
_defaultInclusion, _defaultSetterInfo, _visibilityChecker);
86+
_defaultInclusion, _defaultSetterInfo, _visibilityChecker, _defaultMergeable);
8287
}
8388

8489
/*
@@ -131,28 +136,34 @@ public VisibilityChecker<?> getDefaultVisibility() {
131136
return _visibilityChecker;
132137
}
133138

139+
/**
140+
* @since 2.9
141+
*/
134142
public void setDefaultInclusion(JsonInclude.Value v) {
135143
_defaultInclusion = v;
136144
}
137145

146+
/**
147+
* @since 2.9
148+
*/
138149
public void setDefaultSetterInfo(JsonSetter.Value v) {
139150
_defaultSetterInfo = v;
140151
}
141152

142153
/**
143154
* @since 2.9
144155
*/
145-
public void setDefaultVisibility(VisibilityChecker<?> v) {
146-
_visibilityChecker = v;
156+
public void setDefaultMergeable(Boolean v) {
157+
_defaultMergeable = v;
147158
}
148159

149160
/**
150161
* @since 2.9
151162
*/
152-
public void setDefaultMergeable(Boolean v) {
153-
_defaultMergeable = v;
163+
public void setDefaultVisibility(VisibilityChecker<?> v) {
164+
_visibilityChecker = v;
154165
}
155-
166+
156167
/*
157168
/**********************************************************
158169
/* Helper methods

src/main/java/com/fasterxml/jackson/databind/introspect/VisibilityChecker.java

+2-7
Original file line numberDiff line numberDiff line change
@@ -427,13 +427,8 @@ public boolean isSetterVisible(AnnotatedMethod m) {
427427

428428
@Override
429429
public String toString() {
430-
return new StringBuilder("[Visibility:")
431-
.append(" getter: ").append(_getterMinLevel)
432-
.append(", isGetter: ").append(_isGetterMinLevel)
433-
.append(", setter: ").append(_setterMinLevel)
434-
.append(", creator: ").append(_creatorMinLevel)
435-
.append(", field: ").append(_fieldMinLevel)
436-
.append("]").toString();
430+
return String.format("[Visibility: getter=%s,isGetter=%s,setter=%s,creator=%s,field=%s]",
431+
_getterMinLevel, _isGetterMinLevel, _setterMinLevel, _creatorMinLevel, _fieldMinLevel);
437432
}
438433
}
439434
}

src/test/java/com/fasterxml/jackson/databind/TestParserUsingMapper.java renamed to src/test/java/com/fasterxml/jackson/databind/MapperViaParserTest.java

+1-22
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import com.fasterxml.jackson.core.io.SerializedString;
99
import com.fasterxml.jackson.databind.ObjectMapper;
1010

11-
public class TestParserUsingMapper extends BaseMapTest
11+
public class MapperViaParserTest extends BaseMapTest
1212
{
1313
final static int TWO_BYTE_ESCAPED = 0x111;
1414
final static int THREE_BYTE_ESCAPED = 0x1111;
@@ -72,27 +72,6 @@ public SerializableString getEscapeSequence(int ch)
7272
/********************************************************
7373
*/
7474

75-
public void testReadingArrayAsTree() throws IOException
76-
{
77-
JsonFactory jf = new MappingJsonFactory();
78-
final String JSON = "[ 1, 2, false ]";
79-
80-
for (int i = 0; i < 2; ++i) {
81-
JsonParser jp = jf.createParser(new StringReader(JSON));
82-
// whether to try advancing first or not? Try both
83-
if (i == 0) {
84-
assertToken(JsonToken.START_ARRAY, jp.nextToken());
85-
}
86-
JsonNode root = (JsonNode) jp.readValueAsTree();
87-
jp.close();
88-
assertTrue(root.isArray());
89-
assertEquals(3, root.size());
90-
assertEquals(1, root.get(0).intValue());
91-
assertEquals(2, root.get(1).intValue());
92-
assertFalse(root.get(2).booleanValue());
93-
}
94-
}
95-
9675
public void testPojoReading() throws IOException
9776
{
9877
JsonFactory jf = new MappingJsonFactory();

0 commit comments

Comments
 (0)