Skip to content

Commit ffd0f1c

Browse files
Merge pull request #312 from AbhishekKumar9984/json-version-04
Fix: Vulnerability for json_version
2 parents c1eaa49 + df6fdcc commit ffd0f1c

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@
7373
<commons.csv.version>1.6</commons.csv.version>
7474
<jackson.version>1.9.13</jackson.version>
7575
<jackson2.version>2.17.1</jackson2.version>
76-
<json.version>20180813</json.version>
76+
<json.version>20231013</json.version>
7777
<awaitility.version>3.1.6</awaitility.version>
7878
<commons-logging.version>1.2</commons-logging.version>
7979
<testSourceLocation>${project.basedir}/src/test/java/</testSourceLocation>

src/main/java/io/cdap/plugin/salesforce/plugin/source/streaming/SalesforceStreamingSourceUtil.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import org.slf4j.LoggerFactory;
3434
import scala.reflect.ClassTag$;
3535

36+
import java.math.BigDecimal;
3637
import java.time.Instant;
3738
import java.time.LocalTime;
3839
import java.time.format.DateTimeFormatter;
@@ -148,6 +149,13 @@ private static Object convertValue(Object value, Schema.Field field) {
148149
}
149150
}
150151

152+
// NOTE: org.json >= 20230227 returns BigDecimal for all non-integer JSON numbers.
153+
if (value instanceof BigDecimal && fieldSchemaType.equals(Schema.Type.DOUBLE)) {
154+
// Avro Schema.Type.DOUBLE expects a Double instance (or primitive double) at serialization time,
155+
// so converting BigDecimal → double for compatibility.
156+
return ((BigDecimal) value).doubleValue();
157+
}
158+
151159
return value;
152160
}
153161

0 commit comments

Comments
 (0)