Skip to content

Commit b7edca6

Browse files
committed
More work on trying to make per-call configuration of JsonParser.Feature/JsonGenerator.Feature more reliable
1 parent 7e62d7e commit b7edca6

File tree

8 files changed

+215
-116
lines changed

8 files changed

+215
-116
lines changed

src/main/java/com/fasterxml/jackson/databind/DeserializationConfig.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -483,8 +483,8 @@ public DeserializationConfig withFeatures(JsonParser.Feature... features)
483483
*/
484484
public DeserializationConfig without(JsonParser.Feature feature)
485485
{
486-
int newSet = _parserFeaturesToChange & ~feature.getMask();
487-
int newMask = _parserFeatures | feature.getMask();
486+
int newSet = _parserFeatures & ~feature.getMask();
487+
int newMask = _parserFeaturesToChange | feature.getMask();
488488
return ((_parserFeatures == newSet) && (_parserFeaturesToChange == newMask)) ? this :
489489
new DeserializationConfig(this, _mapperFeatures, _deserFeatures,
490490
newSet, newMask);
@@ -646,6 +646,14 @@ public final boolean isEnabled(DeserializationFeature f) {
646646
return (_deserFeatures & f.getMask()) != 0;
647647
}
648648

649+
public final boolean isEnabled(JsonParser.Feature f, JsonFactory factory) {
650+
int mask = f.getMask();
651+
if ((_parserFeaturesToChange & mask) != 0) {
652+
return (_parserFeatures & f.getMask()) != 0;
653+
}
654+
return factory.isEnabled(f);
655+
}
656+
649657
/**
650658
* "Bulk" access method for checking that all features specified by
651659
* mask are enabled.

0 commit comments

Comments
 (0)