Skip to content

Commit f29b8c8

Browse files
reeshika-hclaude
andcommitted
fix: null-safety, whitespace trimming, and comma join for variants/branch headers
Addresses Copilot review on PR #295: - Guard variants(String) and variants(String[]) against null input - Treat whitespace-only variant/branch as blank via trim().isEmpty() - Join multi-variant header with "," for consistency with other SDK headers Blank input intentionally skips (does not remove) the header: headers are a shared Stack-level map, so remove() would clear the header for sibling Entry/Query objects and the Stack-level default. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 5f0828d commit f29b8c8

2 files changed

Lines changed: 8 additions & 8 deletions

File tree

src/main/java/com/contentstack/sdk/Entry.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1158,7 +1158,7 @@ public Entry includeMetadata() {
11581158
* </pre>
11591159
*/
11601160
public Entry variants(@NotNull String variants) {
1161-
if (!variants.isEmpty()) {
1161+
if (variants != null && !variants.trim().isEmpty()) {
11621162
this.headers.put("x-cs-variant-uid", variants.trim());
11631163
}
11641164
return this;
@@ -1178,14 +1178,14 @@ public Entry variants(@NotNull String variants) {
11781178
* </pre>
11791179
*/
11801180
public Entry variants(@NotNull String[] variants) {
1181-
if (variants.length > 0) {
1181+
if (variants != null && variants.length > 0) {
11821182
List<String> variantList = new ArrayList<>();
11831183
for (String variant : variants) {
11841184
if (variant != null && !variant.trim().isEmpty())
11851185
variantList.add(variant.trim());
11861186
}
11871187
if (!variantList.isEmpty()) {
1188-
this.headers.put("x-cs-variant-uid", String.join(", ", variantList));
1188+
this.headers.put("x-cs-variant-uid", String.join(",", variantList));
11891189
}
11901190
}
11911191
return this;
@@ -1230,7 +1230,7 @@ public Entry variants(@NotNull String[] variants, @NotNull String branch) {
12301230
}
12311231

12321232
private Entry applyBranch(String branch) {
1233-
if (branch != null && !branch.isEmpty()) {
1233+
if (branch != null && !branch.trim().isEmpty()) {
12341234
this.headers.put("branch", branch.trim());
12351235
}
12361236
return this;

src/main/java/com/contentstack/sdk/Query.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1574,7 +1574,7 @@ public Query includeMetadata() {
15741574
* </pre>
15751575
*/
15761576
public Query variants(@NotNull String variants) {
1577-
if (!variants.isEmpty()) {
1577+
if (variants != null && !variants.trim().isEmpty()) {
15781578
this.headers.put("x-cs-variant-uid", variants.trim());
15791579
}
15801580
return this;
@@ -1594,14 +1594,14 @@ public Query variants(@NotNull String variants) {
15941594
* </pre>
15951595
*/
15961596
public Query variants(@NotNull String[] variants) {
1597-
if (variants.length > 0) {
1597+
if (variants != null && variants.length > 0) {
15981598
List<String> variantList = new ArrayList<>();
15991599
for (String variant : variants) {
16001600
if (variant != null && !variant.trim().isEmpty())
16011601
variantList.add(variant.trim());
16021602
}
16031603
if (!variantList.isEmpty()) {
1604-
this.headers.put("x-cs-variant-uid", String.join(", ", variantList));
1604+
this.headers.put("x-cs-variant-uid", String.join(",", variantList));
16051605
}
16061606
}
16071607
return this;
@@ -1646,7 +1646,7 @@ public Query variants(@NotNull String[] variants, @NotNull String branch) {
16461646
}
16471647

16481648
private Query applyBranch(String branch) {
1649-
if (branch != null && !branch.isEmpty()) {
1649+
if (branch != null && !branch.trim().isEmpty()) {
16501650
this.headers.put("branch", branch.trim());
16511651
}
16521652
return this;

0 commit comments

Comments
 (0)