Skip to content

Commit

Permalink
Fix #11699
Browse files Browse the repository at this point in the history
Add a null-check for XContentBuilder#field for BigDecimals
  • Loading branch information
jbarthelmes authored and jpountz committed Jun 25, 2015
1 parent d85f745 commit d988602
Showing 1 changed file with 20 additions and 12 deletions.
Expand Up @@ -499,28 +499,36 @@ public XContentBuilder field(XContentBuilderString name, BigDecimal value) throw

public XContentBuilder field(String name, BigDecimal value, int scale, RoundingMode rounding, boolean toDouble) throws IOException {
field(name);
if (toDouble) {
try {
generator.writeNumber(value.setScale(scale, rounding).doubleValue());
} catch (ArithmeticException e) {
if (value == null) {
generator.writeNull();
} else {
if (toDouble) {
try {
generator.writeNumber(value.setScale(scale, rounding).doubleValue());
} catch (ArithmeticException e) {
generator.writeString(value.toEngineeringString());
}
} else {
generator.writeString(value.toEngineeringString());
}
} else {
generator.writeString(value.toEngineeringString());
}
return this;
}

public XContentBuilder field(XContentBuilderString name, BigDecimal value, int scale, RoundingMode rounding, boolean toDouble) throws IOException {
field(name);
if (toDouble) {
try {
generator.writeNumber(value.setScale(scale, rounding).doubleValue());
} catch (ArithmeticException e) {
if (value == null) {
generator.writeNull();
} else {
if (toDouble) {
try {
generator.writeNumber(value.setScale(scale, rounding).doubleValue());
} catch (ArithmeticException e) {
generator.writeString(value.toEngineeringString());
}
} else {
generator.writeString(value.toEngineeringString());
}
} else {
generator.writeString(value.toEngineeringString());
}
return this;
}
Expand Down

0 comments on commit d988602

Please sign in to comment.