Skip to content

Commit 8dee422

Browse files
committed
Treat BigDecimal and other Numbers as a serializable object type
1 parent c1dbba8 commit 8dee422

2 files changed

Lines changed: 11 additions & 1 deletion

File tree

src/main/java/com/hubspot/jinjava/util/EagerExpressionResolver.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,10 @@ private static boolean isResolvableObjectRec(
340340

341341
public static boolean isPrimitive(Object val) {
342342
return (
343-
val == null || Primitives.isWrapperType(val.getClass()) || val instanceof String
343+
val == null ||
344+
Primitives.isWrapperType(val.getClass()) ||
345+
val instanceof String ||
346+
val instanceof Number
344347
);
345348
}
346349

src/test/java/com/hubspot/jinjava/util/EagerExpressionResolverTest.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import com.hubspot.jinjava.tree.parse.TokenScannerSymbols;
2626
import com.hubspot.jinjava.util.EagerExpressionResolver.EagerExpressionResult;
2727
import java.io.IOException;
28+
import java.math.BigDecimal;
2829
import java.time.Instant;
2930
import java.time.ZoneId;
3031
import java.time.ZonedDateTime;
@@ -914,4 +915,10 @@ public <T extends Appendable & CharSequence> T appendPyishString(T appendable)
914915
throw new DeferredValueException("Can't serialize");
915916
}
916917
}
918+
919+
@Test
920+
public void itCountsBigDecimalAsPrimitive() {
921+
assertThat(EagerExpressionResolver.isResolvableObject(new BigDecimal("2.1E7")))
922+
.isTrue();
923+
}
917924
}

0 commit comments

Comments
 (0)