Skip to content

Commit ea37ddc

Browse files
committed
fixup! fixup! fixup! Support for jsonformat in duration deserializer based on Duration::of(long,TemporalUnit). ref FasterXML#184
1 parent f782c49 commit ea37ddc

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

Diff for: datetime/src/main/java/com/fasterxml/jackson/datatype/jsr310/deser/DurationDeserializer.java

+9-6
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,11 @@ protected DurationDeserializer(DurationDeserializer base, Boolean leniency) {
7070
super(base, leniency);
7171
}
7272

73+
protected DurationDeserializer(DurationDeserializer base, DurationPattern durationPattern) {
74+
super(base, base._isLenient);
75+
_durationPattern = durationPattern;
76+
}
77+
7378
@Override
7479
protected DurationDeserializer withLeniency(Boolean leniency) {
7580
return new DurationDeserializer(this, leniency);
@@ -89,18 +94,16 @@ public JsonDeserializer<?> createContextual(DeserializationContext ctxt,
8994
}
9095
}
9196
if (format.hasPattern()) {
92-
this._durationPattern = DurationPattern.from(format.getPattern())
93-
.orElse(null);
94-
} else {
95-
this._durationPattern = null;
97+
deser = DurationPattern.from(format.getPattern())
98+
.map(deser::withPattern)
99+
.orElse(deser);
96100
}
97101
}
98102
return deser;
99103
}
100104

101105
private DurationDeserializer withPattern(DurationPattern pattern) {
102-
this._durationPattern = pattern;
103-
return this;
106+
return new DurationDeserializer(this, pattern);
104107
}
105108

106109
@Override

0 commit comments

Comments
 (0)